From de1d009c69c6233340bb4b5e58427c87a1a7c5e8 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Thu, 15 Apr 2010 22:12:06 -0700 Subject: skeleton files copied over from a dead branch --- usrp2/top/safe_u2plus/.gitignore | 2 + usrp2/top/safe_u2plus/Makefile | 246 +++++++++++++++++ usrp2/top/safe_u2plus/safe_u2plus.v | 362 ++++++++++++++++++++++++ usrp2/top/safe_u2plus/u2plus.ucf | 401 +++++++++++++++++++++++++++ usrp2/top/u2plus/.gitignore | 1 + usrp2/top/u2plus/Makefile | 246 +++++++++++++++++ usrp2/top/u2plus/capture_ddrlvds.v | 39 +++ usrp2/top/u2plus/u2plus.ucf | 531 ++++++++++++++++++++---------------- usrp2/top/u2plus/u2plus.v | 274 ++++++++++--------- 9 files changed, 1728 insertions(+), 374 deletions(-) create mode 100644 usrp2/top/safe_u2plus/.gitignore create mode 100644 usrp2/top/safe_u2plus/Makefile create mode 100644 usrp2/top/safe_u2plus/safe_u2plus.v create mode 100755 usrp2/top/safe_u2plus/u2plus.ucf create mode 100644 usrp2/top/u2plus/.gitignore create mode 100644 usrp2/top/u2plus/Makefile create mode 100644 usrp2/top/u2plus/capture_ddrlvds.v diff --git a/usrp2/top/safe_u2plus/.gitignore b/usrp2/top/safe_u2plus/.gitignore new file mode 100644 index 000000000..a96f0be92 --- /dev/null +++ b/usrp2/top/safe_u2plus/.gitignore @@ -0,0 +1,2 @@ +build* +*impact* diff --git a/usrp2/top/safe_u2plus/Makefile b/usrp2/top/safe_u2plus/Makefile new file mode 100644 index 000000000..62a02ff40 --- /dev/null +++ b/usrp2/top/safe_u2plus/Makefile @@ -0,0 +1,246 @@ +# +# Copyright 2008 Ettus Research LLC +# +# This file is part of GNU Radio +# +# GNU Radio is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU Radio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +################################################## +# xtclsh Shell and tcl Script Path +################################################## +#XTCLSH := /opt/Xilinx/10.1/ISE/bin/lin/xtclsh +XTCLSH := xtclsh +ISE_HELPER := ../tcl/ise_helper.tcl + +################################################## +# Project Setup +################################################## +BUILD_DIR := build/ +export TOP_MODULE := safe_u2plus +export PROJ_FILE := $(BUILD_DIR)$(TOP_MODULE).ise + +################################################## +# Project Properties +################################################## +export PROJECT_PROPERTIES := \ +family "Spartan-3A DSP" \ +device xc3sd3400a \ +package fg676 \ +speed -5 \ +top_level_module_type "HDL" \ +synthesis_tool "XST (VHDL/Verilog)" \ +simulator "ISE Simulator (VHDL/Verilog)" \ +"Preferred Language" "Verilog" \ +"Enable Message Filtering" FALSE \ +"Display Incremental Messages" FALSE + +################################################## +# Sources +################################################## +export SOURCE_ROOT := ../../../ +export SOURCES := \ +control_lib/CRC16_D16.v \ +control_lib/atr_controller.v \ +control_lib/bin2gray.v \ +control_lib/dcache.v \ +control_lib/decoder_3_8.v \ +control_lib/dpram32.v \ +control_lib/gray2bin.v \ +control_lib/gray_send.v \ +control_lib/icache.v \ +control_lib/mux4.v \ +control_lib/mux8.v \ +control_lib/nsgpio.v \ +control_lib/ram_2port.v \ +control_lib/ram_harv_cache.v \ +control_lib/ram_loader.v \ +control_lib/setting_reg.v \ +control_lib/settings_bus.v \ +control_lib/srl.v \ +control_lib/system_control.v \ +control_lib/wb_1master.v \ +control_lib/wb_readback_mux.v \ +control_lib/simple_uart.v \ +control_lib/simple_uart_tx.v \ +control_lib/simple_uart_rx.v \ +control_lib/oneshot_2clk.v \ +control_lib/sd_spi.v \ +control_lib/sd_spi_wb.v \ +control_lib/wb_bridge_16_32.v \ +control_lib/reset_sync.v \ +simple_gemac/simple_gemac_wrapper.v \ +simple_gemac/simple_gemac.v \ +simple_gemac/simple_gemac_wb.v \ +simple_gemac/simple_gemac_tx.v \ +simple_gemac/simple_gemac_rx.v \ +simple_gemac/crc.v \ +simple_gemac/delay_line.v \ +simple_gemac/flow_ctrl_tx.v \ +simple_gemac/flow_ctrl_rx.v \ +simple_gemac/address_filter.v \ +simple_gemac/ll8_to_txmac.v \ +simple_gemac/rxmac_to_ll8.v \ +simple_gemac/miim/eth_miim.v \ +simple_gemac/miim/eth_clockgen.v \ +simple_gemac/miim/eth_outputcontrol.v \ +simple_gemac/miim/eth_shiftreg.v \ +control_lib/newfifo/buffer_int.v \ +control_lib/newfifo/buffer_pool.v \ +control_lib/newfifo/fifo_2clock.v \ +control_lib/newfifo/fifo_2clock_cascade.v \ +control_lib/newfifo/ll8_shortfifo.v \ +control_lib/newfifo/ll8_to_fifo36.v \ +control_lib/newfifo/fifo_short.v \ +control_lib/newfifo/fifo_long.v \ +control_lib/newfifo/fifo_cascade.v \ +control_lib/newfifo/fifo36_to_ll8.v \ +control_lib/longfifo.v \ +control_lib/shortfifo.v \ +control_lib/medfifo.v \ +coregen/fifo_xlnx_2Kx36_2clk.v \ +coregen/fifo_xlnx_2Kx36_2clk.xco \ +coregen/fifo_xlnx_512x36_2clk.v \ +coregen/fifo_xlnx_512x36_2clk.xco \ +coregen/fifo_xlnx_64x36_2clk.v \ +coregen/fifo_xlnx_64x36_2clk.xco \ +extram/wb_zbt16_b.v \ +opencores/8b10b/decode_8b10b.v \ +opencores/8b10b/encode_8b10b.v \ +opencores/aemb/rtl/verilog/aeMB_bpcu.v \ +opencores/aemb/rtl/verilog/aeMB_core_BE.v \ +opencores/aemb/rtl/verilog/aeMB_ctrl.v \ +opencores/aemb/rtl/verilog/aeMB_edk32.v \ +opencores/aemb/rtl/verilog/aeMB_ibuf.v \ +opencores/aemb/rtl/verilog/aeMB_regf.v \ +opencores/aemb/rtl/verilog/aeMB_xecu.v \ +opencores/i2c/rtl/verilog/i2c_master_bit_ctrl.v \ +opencores/i2c/rtl/verilog/i2c_master_byte_ctrl.v \ +opencores/i2c/rtl/verilog/i2c_master_defines.v \ +opencores/i2c/rtl/verilog/i2c_master_top.v \ +opencores/i2c/rtl/verilog/timescale.v \ +opencores/simple_pic/rtl/simple_pic.v \ +opencores/spi/rtl/verilog/spi_clgen.v \ +opencores/spi/rtl/verilog/spi_defines.v \ +opencores/spi/rtl/verilog/spi_shift.v \ +opencores/spi/rtl/verilog/spi_top.v \ +opencores/spi/rtl/verilog/timescale.v \ +sdr_lib/acc.v \ +sdr_lib/add2.v \ +sdr_lib/add2_and_round.v \ +sdr_lib/add2_and_round_reg.v \ +sdr_lib/add2_reg.v \ +sdr_lib/cic_dec_shifter.v \ +sdr_lib/cic_decim.v \ +sdr_lib/cic_int_shifter.v \ +sdr_lib/cic_interp.v \ +sdr_lib/cic_strober.v \ +sdr_lib/clip.v \ +sdr_lib/clip_reg.v \ +sdr_lib/cordic.v \ +sdr_lib/cordic_z24.v \ +sdr_lib/cordic_stage.v \ +sdr_lib/dsp_core_rx.v \ +sdr_lib/dsp_core_tx.v \ +sdr_lib/hb_dec.v \ +sdr_lib/hb_interp.v \ +sdr_lib/round.v \ +sdr_lib/round_reg.v \ +sdr_lib/rx_control.v \ +sdr_lib/rx_dcoffset.v \ +sdr_lib/sign_extend.v \ +sdr_lib/small_hb_dec.v \ +sdr_lib/small_hb_int.v \ +sdr_lib/tx_control.v \ +serdes/serdes.v \ +serdes/serdes_fc_rx.v \ +serdes/serdes_fc_tx.v \ +serdes/serdes_rx.v \ +serdes/serdes_tx.v \ +timing/time_receiver.v \ +timing/time_sender.v \ +timing/time_sync.v \ +timing/timer.v \ +top/u2_core/u2_core.v \ +top/u2plus/capture_ddrlvds.v \ +top/safe_u2plus/u2plus.ucf \ +top/safe_u2plus/safe_u2plus.v + +################################################## +# Process Properties +################################################## +export SYNTHESIZE_PROPERTIES := \ +"Number of Clock Buffers" 6 \ +"Pack I/O Registers into IOBs" Yes \ +"Optimization Effort" High \ +"Optimize Instantiated Primitives" TRUE \ +"Register Balancing" Yes \ +"Use Clock Enable" Auto \ +"Use Synchronous Reset" Auto \ +"Use Synchronous Set" Auto + +export TRANSLATE_PROPERTIES := \ +"Macro Search Path" "$(shell pwd)/../../coregen/" + +export MAP_PROPERTIES := \ +"Allow Logic Optimization Across Hierarchy" TRUE \ +"Map to Input Functions" 4 \ +"Optimization Strategy (Cover Mode)" Speed \ +"Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ +"Perform Timing-Driven Packing and Placement" TRUE \ +"Map Effort Level" High \ +"Extra Effort" Normal \ +"Combinatorial Logic Optimization" TRUE \ +"Register Duplication" TRUE + +export PLACE_ROUTE_PROPERTIES := \ +"Place & Route Effort Level (Overall)" High + +export STATIC_TIMING_PROPERTIES := \ +"Number of Paths in Error/Verbose Report" 10 \ +"Report Type" "Error Report" + +export GEN_PROG_FILE_PROPERTIES := \ +"Configuration Rate" 6 \ +"Create Binary Configuration File" TRUE \ +"Done (Output Events)" 5 \ +"Enable Bitstream Compression" TRUE \ +"Enable Outputs (Output Events)" 6 + +export SIM_MODEL_PROPERTIES := "" + +################################################## +# Make Options +################################################## +all: + @echo make proj, check, synth, bin, or clean + +proj: + PROCESS_RUN="" $(XTCLSH) $(ISE_HELPER) + +check: + PROCESS_RUN="Check Syntax" $(XTCLSH) $(ISE_HELPER) + +synth: + PROCESS_RUN="Synthesize - XST" $(XTCLSH) $(ISE_HELPER) + +bin: + PROCESS_RUN="Generate Programming File" $(XTCLSH) $(ISE_HELPER) + +clean: + rm -rf $(BUILD_DIR) + + diff --git a/usrp2/top/safe_u2plus/safe_u2plus.v b/usrp2/top/safe_u2plus/safe_u2plus.v new file mode 100644 index 000000000..38b276000 --- /dev/null +++ b/usrp2/top/safe_u2plus/safe_u2plus.v @@ -0,0 +1,362 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// + +module safe_u2plus + ( + input CLK_FPGA_P, input CLK_FPGA_N, // Diff + + // ADC + //input ADC_clkout_p, //input ADC_clkout_n, + //input ADCA_12_p, //input ADCA_12_n, + //input ADCA_10_p, //input ADCA_10_n, + //input ADCA_8_p, //input ADCA_8_n, + //input ADCA_6_p, //input ADCA_6_n, + //input ADCA_4_p, //input ADCA_4_n, + //input ADCA_2_p, //input ADCA_2_n, + //input ADCA_0_p, //input ADCA_0_n, + //input ADCB_12_p, //input ADCB_12_n, + //input ADCB_10_p, //input ADCB_10_n, + //input ADCB_8_p, //input ADCB_8_n, + //input ADCB_6_p, //input ADCB_6_n, + //input ADCB_4_p, //input ADCB_4_n, + //input ADCB_2_p, //input ADCB_2_n, + //input ADCB_0_p, //input ADCB_0_n, + + // DAC + //output [15:0] DACA, + //output [15:0] DACB, + //input DAC_LOCK, // unused for now + + // DB IO Pins + //inout [15:0] io_tx, + //inout [15:0] io_rx, + + // Misc, debug + output [5:1] leds, // LED4 is shared w/INIT_B + //input FPGA_RESET, + //output [1:0] debug_clk, + //output [31:0] debug, + //output [3:1] TXD, //input [3:1] RXD, // UARTs + ////input [3:0] dipsw, // Forgot DIP Switches... + + // Clock Gen Control + //output [1:0] clk_en, + //output [1:0] clk_sel, + //input CLK_FUNC, // FIXME is an //input to control the 9510 + //input CLK_STATUS, + + //inout SCL, //inout SDA, // I2C + + // PPS + //input PPS_IN, //input PPS2_IN, + + // SPI + //output SEN_CLK, //output SCLK_CLK, //output MOSI_CLK, //input MISO_CLK, + //output SEN_DAC, //output SCLK_DAC, //output MOSI_DAC, //input MISO_DAC, + //output SEN_ADC, //output SCLK_ADC, //output MOSI_ADC, + //output SEN_TX_DB, //output SCLK_TX_DB, //output MOSI_TX_DB, //input MISO_TX_DB, + //output SEN_TX_DAC, //output SCLK_TX_DAC, //output MOSI_TX_DAC, + //output SEN_TX_ADC, //output SCLK_TX_ADC, //output MOSI_TX_ADC, //input MISO_TX_ADC, + //output SEN_RX_DB, //output SCLK_RX_DB, //output MOSI_RX_DB, //input MISO_RX_DB, + //output SEN_RX_DAC, //output SCLK_RX_DAC, //output MOSI_RX_DAC, + //output SEN_RX_ADC, //output SCLK_RX_ADC, //output MOSI_RX_ADC, //input MISO_RX_ADC, + + // GigE PHY + //input CLK_TO_MAC, + + //output reg [7:0] GMII_TXD, + //output reg GMII_TX_EN, + //output reg GMII_TX_ER, + //output GMII_GTX_CLK, + //input GMII_TX_CLK, // 100mbps clk + + //input GMII_RX_CLK, + //input [7:0] GMII_RXD, + //input GMII_RX_DV, + //input GMII_RX_ER, + //input GMII_COL, + //input GMII_CRS, + + //input PHY_INTn, // open drain + //inout MDIO, + //output MDC, + //output PHY_RESETn, + output ETH_LED + + //input POR, + + // Expansion + //input exp_time_in_p, //input exp_time_in_n, // Diff + //output exp_time_out_p, //output exp_time_out_n, // Diff + //input exp_user_in_p, //input exp_user_in_n, // Diff + //output exp_user_out_p, //output exp_user_out_n, // Diff + + // SERDES + //output ser_enable, + //output ser_prbsen, + //output ser_loopen, + //output ser_rx_en, + + //output ser_tx_clk, + //output reg [15:0] ser_t, + //output reg ser_tklsb, + //output reg ser_tkmsb, + + //input ser_rx_clk, + //input [15:0] ser_r, + //input ser_rklsb, + //input ser_rkmsb, + + // SRAM + //inout [35:0] RAM_D, + //output [20:0] RAM_A, + //output [3:0] RAM_BWn, + //output RAM_ZZ, + //output RAM_LDn, + //output RAM_OEn, + //output RAM_WEn, + //output RAM_CENn, + //output RAM_CLK, + + // SPI Flash + //output flash_cs, + //output flash_clk, + //output flash_mosi, + //input flash_miso + ); + + // FPGA-specific pins connections + wire clk_fpga, dsp_clk, clk_div, dcm_out, wb_clk, clock_ready; + + IBUFGDS clk_fpga_pin (.O(clk_fpga),.I(CLK_FPGA_P),.IB(CLK_FPGA_N)); + defparam clk_fpga_pin.IOSTANDARD = "LVPECL_25"; + + reg [31:0] ctr; + + always @(posedge clk_fpga) + ctr <= ctr + 1; + + assign {leds,ETH_LED} = ~ctr[29:24]; + + +/* + wire exp_time_in; + IBUFDS exp_time_in_pin (.O(exp_time_in),.I(exp_time_in_p),.IB(exp_time_in_n)); + defparam exp_time_in_pin.IOSTANDARD = "LVDS_25"; + + wire exp_time_out; + OBUFDS exp_time_out_pin (.O(exp_time_out_p),.OB(exp_time_out_n),.I(exp_time_out)); + defparam exp_time_out_pin.IOSTANDARD = "LVDS_25"; + + wire dcm_rst = 0; + + wire [13:0] adc_a, adc_b; + + capture_ddrlvds #(.WIDTH(14)) capture_ddrlvds + (.clk(dsp_clk), .ssclk_p(ADC_clkout_p), .ssclk_n(ADC_clkout_n), + .in_p({{ADCA_12_p, ADCA_10_p, ADCA_8_p, ADCA_6_p, ADCA_4_p, ADCA_2_p, ADCA_0_p}, + {ADCB_12_p, ADCB_10_p, ADCB_8_p, ADCB_6_p, ADCB_4_p, ADCB_2_p, ADCB_0_p}}), + .in_n({{ADCA_12_n, ADCA_10_n, ADCA_8_n, ADCA_6_n, ADCA_4_n, ADCA_2_n, ADCA_0_n}, + {ADCB_12_n, ADCB_10_n, ADCB_8_n, ADCB_6_n, ADCB_4_n, ADCB_2_n, ADCB_0_n}}), + .out({adc_a,adc_b})); + + // Handle Clocks + DCM DCM_INST (.CLKFB(dsp_clk), + .CLKIN(clk_fpga), + .DSSEN(0), + .PSCLK(0), + .PSEN(0), + .PSINCDEC(0), + .RST(dcm_rst), + .CLKDV(clk_div), + .CLKFX(), + .CLKFX180(), + .CLK0(dcm_out), + .CLK2X(), + .CLK2X180(), + .CLK90(), + .CLK180(), + .CLK270(), + .LOCKED(LOCKED_OUT), + .PSDONE(), + .STATUS()); + defparam DCM_INST.CLK_FEEDBACK = "1X"; + defparam DCM_INST.CLKDV_DIVIDE = 2.0; + defparam DCM_INST.CLKFX_DIVIDE = 1; + defparam DCM_INST.CLKFX_MULTIPLY = 4; + defparam DCM_INST.CLKIN_DIVIDE_BY_2 = "FALSE"; + defparam DCM_INST.CLKIN_PERIOD = 10.000; + defparam DCM_INST.CLKOUT_PHASE_SHIFT = "NONE"; + defparam DCM_INST.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS"; + defparam DCM_INST.DFS_FREQUENCY_MODE = "LOW"; + defparam DCM_INST.DLL_FREQUENCY_MODE = "LOW"; + defparam DCM_INST.DUTY_CYCLE_CORRECTION = "TRUE"; + defparam DCM_INST.FACTORY_JF = 16'h8080; + defparam DCM_INST.PHASE_SHIFT = 0; + defparam DCM_INST.STARTUP_WAIT = "FALSE"; + + BUFG dspclk_BUFG (.I(dcm_out), .O(dsp_clk)); + BUFG wbclk_BUFG (.I(clk_div), .O(wb_clk)); + + // I2C -- Don't use external transistors for open drain, the FPGA implements this + IOBUF scl_pin(.O(scl_pad_i), .IO(SCL), .I(scl_pad_o), .T(scl_pad_oen_o)); + IOBUF sda_pin(.O(sda_pad_i), .IO(SDA), .I(sda_pad_o), .T(sda_pad_oen_o)); + + // LEDs are active low outputs + wire [4:0] leds_int; + assign leds = ~leds_int; // drive low to turn on leds + + // SPI + wire miso, mosi, sclk; + + assign {SCLK_CLK,MOSI_CLK} = ~SEN_CLK ? {sclk,mosi} : 2'B0; + assign {SCLK_DAC,MOSI_DAC} = ~SEN_DAC ? {sclk,mosi} : 2'B0; + assign {SCLK_ADC,MOSI_ADC} = ~SEN_ADC ? {sclk,mosi} : 2'B0; + assign {SCLK_TX_DB,MOSI_TX_DB} = ~SEN_TX_DB ? {sclk,mosi} : 2'B0; + assign {SCLK_TX_DAC,MOSI_TX_DAC} = ~SEN_TX_DAC ? {sclk,mosi} : 2'B0; + assign {SCLK_TX_ADC,MOSI_TX_ADC} = ~SEN_TX_ADC ? {sclk,mosi} : 2'B0; + assign {SCLK_RX_DB,MOSI_RX_DB} = ~SEN_RX_DB ? {sclk,mosi} : 2'B0; + assign {SCLK_RX_DAC,MOSI_RX_DAC} = ~SEN_RX_DAC ? {sclk,mosi} : 2'B0; + assign {SCLK_RX_ADC,MOSI_RX_ADC} = ~SEN_RX_ADC ? {sclk,mosi} : 2'B0; + + assign miso = (~SEN_CLK & MISO_CLK) | (~SEN_DAC & MISO_DAC) | + (~SEN_TX_DB & MISO_TX_DB) | (~SEN_TX_ADC & MISO_TX_ADC) | + (~SEN_RX_DB & MISO_RX_DB) | (~SEN_RX_ADC & MISO_RX_ADC); + + wire GMII_TX_EN_unreg, GMII_TX_ER_unreg; + wire [7:0] GMII_TXD_unreg; + wire GMII_GTX_CLK_int; + + always @(posedge GMII_GTX_CLK_int) + begin + GMII_TX_EN <= GMII_TX_EN_unreg; + GMII_TX_ER <= GMII_TX_ER_unreg; + GMII_TXD <= GMII_TXD_unreg; + end + + OFDDRRSE OFDDRRSE_gmii_inst + (.Q(GMII_GTX_CLK), // Data output (connect directly to top-level port) + .C0(GMII_GTX_CLK_int), // 0 degree clock input + .C1(~GMII_GTX_CLK_int), // 180 degree clock input + .CE(1), // Clock enable input + .D0(0), // Posedge data input + .D1(1), // Negedge data input + .R(0), // Synchronous reset input + .S(0) // Synchronous preset input + ); + + wire ser_tklsb_unreg, ser_tkmsb_unreg; + wire [15:0] ser_t_unreg; + wire ser_tx_clk_int; + + always @(posedge ser_tx_clk_int) + begin + ser_tklsb <= ser_tklsb_unreg; + ser_tkmsb <= ser_tkmsb_unreg; + ser_t <= ser_t_unreg; + end + + assign ser_tx_clk = clk_fpga; + + reg [15:0] ser_r_int; + reg ser_rklsb_int, ser_rkmsb_int; + + always @(posedge ser_rx_clk) + begin + ser_r_int <= ser_r; + ser_rklsb_int <= ser_rklsb; + ser_rkmsb_int <= ser_rkmsb; + end + + u2_core u2_core(.dsp_clk (dsp_clk), + .wb_clk (wb_clk), + .clock_ready (clock_ready), + .clk_to_mac (clk_to_mac), + .pps_in (pps_in), + .leds (leds_int), + .debug (debug[31:0]), + .debug_clk (debug_clk[1:0]), + .exp_pps_in (exp_time_in), + .exp_pps_out (exp_time_out), + .GMII_COL (GMII_COL), + .GMII_CRS (GMII_CRS), + .GMII_TXD (GMII_TXD_unreg[7:0]), + .GMII_TX_EN (GMII_TX_EN_unreg), + .GMII_TX_ER (GMII_TX_ER_unreg), + .GMII_GTX_CLK (GMII_GTX_CLK_int), + .GMII_TX_CLK (GMII_TX_CLK), + .GMII_RXD (GMII_RXD[7:0]), + .GMII_RX_CLK (GMII_RX_CLK), + .GMII_RX_DV (GMII_RX_DV), + .GMII_RX_ER (GMII_RX_ER), + .MDIO (MDIO), + .MDC (MDC), + .PHY_INTn (PHY_INTn), + .PHY_RESETn (PHY_RESETn), + .ser_enable (ser_enable), + .ser_prbsen (ser_prbsen), + .ser_loopen (ser_loopen), + .ser_rx_en (ser_rx_en), + .ser_tx_clk (ser_tx_clk_int), + .ser_t (ser_t_unreg[15:0]), + .ser_tklsb (ser_tklsb_unreg), + .ser_tkmsb (ser_tkmsb_unreg), + .ser_rx_clk (ser_rx_clk), + .ser_r (ser_r_int[15:0]), + .ser_rklsb (ser_rklsb_int), + .ser_rkmsb (ser_rkmsb_int), + .cpld_start (cpld_start), + .cpld_mode (cpld_mode), + .cpld_done (cpld_done), + .cpld_din (cpld_din), + .cpld_clk (cpld_clk), + .cpld_detached (cpld_detached), + .adc_a (adc_a[13:0]), + .adc_ovf_a (adc_ovf_a), + .adc_on_a (adc_on_a), + .adc_oe_a (adc_oe_a), + .adc_b (adc_b[13:0]), + .adc_ovf_b (adc_ovf_b), + .adc_on_b (adc_on_b), + .adc_oe_b (adc_oe_b), + .dac_a (DACA[15:0]), + .dac_b (DACB[15:0]), + .scl_pad_i (scl_pad_i), + .scl_pad_o (scl_pad_o), + .scl_pad_oen_o (scl_pad_oen_o), + .sda_pad_i (sda_pad_i), + .sda_pad_o (sda_pad_o), + .sda_pad_oen_o (sda_pad_oen_o), + .clk_en (clk_en[1:0]), + .clk_sel (clk_sel[1:0]), + .clk_func (clk_func), + .clk_status (clk_status), + .sclk (sclk_int), + .mosi (mosi), + .miso (miso), + .sen_clk (sen_clk), + .sen_dac (sen_dac), + .sen_tx_db (sen_tx_db), + .sen_tx_adc (sen_tx_adc), + .sen_tx_dac (sen_tx_dac), + .sen_rx_db (sen_rx_db), + .sen_rx_adc (sen_rx_adc), + .sen_rx_dac (sen_rx_dac), + .io_tx (io_tx[15:0]), + .io_rx (io_rx[15:0]), + .RAM_D (RAM_D), + .RAM_A (RAM_A), + .RAM_CE1n (RAM_CE1n), + .RAM_CENn (RAM_CENn), + .RAM_CLK (RAM_CLK), + .RAM_WEn (RAM_WEn), + .RAM_OEn (RAM_OEn), + .RAM_LDn (RAM_LDn), + .uart_tx_o (uart_tx_o), + .uart_rx_i (uart_rx_i), + .uart_baud_o (), + .sim_mode (1'b0), + .clock_divider (2) + ); +*/ +endmodule // safe_u2plus diff --git a/usrp2/top/safe_u2plus/u2plus.ucf b/usrp2/top/safe_u2plus/u2plus.ucf new file mode 100755 index 000000000..0a9460d86 --- /dev/null +++ b/usrp2/top/safe_u2plus/u2plus.ucf @@ -0,0 +1,401 @@ +## Main 100 MHz Clock +NET "CLK_FPGA_P" LOC = "AA13" ; +NET "CLK_FPGA_N" LOC = "Y13" ; + +## ADC +#NET "ADC_clkout_p" LOC = "P1" ; +#NET "ADC_clkout_n" LOC = "P2" ; +#NET "ADCA_12_p" LOC = "Y1" ; +#NET "ADCA_12_n" LOC = "Y2" ; +#NET "ADCA_10_p" LOC = "W3" ; +#NET "ADCA_10_n" LOC = "W4" ; +#NET "ADCA_8_p" LOC = "T7" ; +#NET "ADCA_8_n" LOC = "U6" ; +#NET "ADCA_6_p" LOC = "U5" ; +#NET "ADCA_6_n" LOC = "V5" ; +#NET "ADCA_4_p" LOC = "T10" ; +#NET "ADCA_4_n" LOC = "T9" ; +#NET "ADCA_2_p" LOC = "V1" ; +#NET "ADCA_2_n" LOC = "V2" ; +#NET "ADCA_0_p" LOC = "R8" ; +#NET "ADCA_0_n" LOC = "R7" ; +#NET "ADCB_2_p" LOC = "U7" ; +#NET "ADCB_2_n" LOC = "U8" ; +#NET "ADCB_0_p" LOC = "AA2" ; +#NET "ADCB_0_n" LOC = "AA3" ; +#NET "ADCB_4_p" LOC = "AE1" ; +#NET "ADCB_4_n" LOC = "AE2" ; +#NET "ADCB_6_p" LOC = "W1" ; +#NET "ADCB_6_n" LOC = "W2" ; +#NET "ADCB_8_p" LOC = "U3" ; +#NET "ADCB_8_n" LOC = "V4" ; +#NET "ADCB_10_p" LOC = "J1" ; +#NET "ADCB_10_n" LOC = "K1" ; +#NET "ADCB_12_p" LOC = "J3" ; +#NET "ADCB_12_n" LOC = "J2" ; + +## DAC +#NET "DAC_LOCK" LOC = "P4" ; +#NET "DACA<0>" LOC = "P8" ; +#NET "DACA<1>" LOC = "P9" ; +#NET "DACA<2>" LOC = "R5" ; +#NET "DACA<3>" LOC = "R6" ; +#NET "DACA<4>" LOC = "P7" ; +#NET "DACA<5>" LOC = "P6" ; +#NET "DACA<6>" LOC = "T3" ; +#NET "DACA<7>" LOC = "T4" ; +#NET "DACA<8>" LOC = "R3" ; +#NET "DACA<9>" LOC = "R4" ; +#NET "DACA<10>" LOC = "R2" ; +#NET "DACA<11>" LOC = "N1" ; +#NET "DACA<12>" LOC = "N2" ; +#NET "DACA<13>" LOC = "N5" ; +#NET "DACA<14>" LOC = "N4" ; +#NET "DACA<15>" LOC = "M2" ; +#NET "DACB<0>" LOC = "M5" ; +#NET "DACB<1>" LOC = "M6" ; +#NET "DACB<2>" LOC = "M4" ; +#NET "DACB<3>" LOC = "M3" ; +#NET "DACB<4>" LOC = "M8" ; +#NET "DACB<5>" LOC = "M7" ; +#NET "DACB<6>" LOC = "L4" ; +#NET "DACB<7>" LOC = "L3" ; +#NET "DACB<8>" LOC = "K3" ; +#NET "DACB<9>" LOC = "K2" ; +#NET "DACB<10>" LOC = "K5" ; +#NET "DACB<11>" LOC = "K4" ; +#NET "DACB<12>" LOC = "M10" ; +#NET "DACB<13>" LOC = "M9" ; +#NET "DACB<14>" LOC = "J5" ; +#NET "DACB<15>" LOC = "J4" ; + +## TX DB GPIO +#NET "io_tx<15>" LOC = "K6" ; +#NET "io_tx<14>" LOC = "L7" ; +#NET "io_tx<13>" LOC = "H2" ; +#NET "io_tx<12>" LOC = "H1" ; +#NET "io_tx<11>" LOC = "L10" ; +#NET "io_tx<10>" LOC = "L9" ; +#NET "io_tx<9>" LOC = "G3" ; +#NET "io_tx<8>" LOC = "F3" ; +#NET "io_tx<7>" LOC = "K7" ; +#NET "io_tx<6>" LOC = "J6" ; +#NET "io_tx<5>" LOC = "E1" ; +#NET "io_tx<4>" LOC = "F2" ; +#NET "io_tx<3>" LOC = "J7" ; +#NET "io_tx<2>" LOC = "H6" ; +#NET "io_tx<1>" LOC = "F5" ; +#NET "io_tx<0>" LOC = "G4" ; + +## RX DB GPIO +#NET "io_rx<15>" LOC = "AD1" ; +#NET "io_rx<14>" LOC = "AD2" ; +#NET "io_rx<13>" LOC = "AC2" ; +#NET "io_rx<12>" LOC = "AC3" ; +#NET "io_rx<11>" LOC = "W7" ; +#NET "io_rx<10>" LOC = "W6" ; +#NET "io_rx<9>" LOC = "U9" ; +#NET "io_rx<8>" LOC = "V8" ; +#NET "io_rx<7>" LOC = "AB1" ; +#NET "io_rx<6>" LOC = "AC1" ; +#NET "io_rx<5>" LOC = "V7" ; +#NET "io_rx<4>" LOC = "V6" ; +#NET "io_rx<3>" LOC = "Y5" ; +#NET "io_rx<2>" LOC = "R10" ; +#NET "io_rx<1>" LOC = "R1" ; +#NET "io_rx<0>" LOC = "M1" ; + +## MISC +NET "leds<5>" LOC = "AF25" ; +NET "leds<4>" LOC = "AE25" ; +NET "leds<3>" LOC = "AF23" ; +NET "leds<2>" LOC = "AE23" ; +NET "leds<1>" LOC = "AB18" ; +#NET "FPGA_RESET" LOC = "K24" ; + +## Debug +#NET "debug_clk<0>" LOC = "AA10" ; +#NET "debug_clk<1>" LOC = "AD11" ; +#NET "debug<0>" LOC = "AC19" ; +#NET "debug<1>" LOC = "AF20" ; +#NET "debug<2>" LOC = "AE20" ; +#NET "debug<3>" LOC = "AC16" ; +#NET "debug<4>" LOC = "AB16" ; +#NET "debug<5>" LOC = "AF19" ; +#NET "debug<6>" LOC = "AE19" ; +#NET "debug<7>" LOC = "V15" ; +#NET "debug<8>" LOC = "U15" ; +#NET "debug<9>" LOC = "AE17" ; +#NET "debug<10>" LOC = "AD17" ; +#NET "debug<11>" LOC = "V14" ; +#NET "debug<12>" LOC = "W15" ; +#NET "debug<13>" LOC = "AC15" ; +#NET "debug<14>" LOC = "AD14" ; +#NET "debug<15>" LOC = "AC14" ; +#NET "debug<16>" LOC = "AC11" ; +#NET "debug<17>" LOC = "AB12" ; +#NET "debug<18>" LOC = "AC12" ; +#NET "debug<19>" LOC = "V13" ; +#NET "debug<20>" LOC = "W13" ; +#NET "debug<21>" LOC = "AE8" ; +#NET "debug<22>" LOC = "AF8" ; +#NET "debug<23>" LOC = "V12" ; +#NET "debug<24>" LOC = "W12" ; +#NET "debug<25>" LOC = "AB9" ; +#NET "debug<26>" LOC = "AC9" ; +#NET "debug<27>" LOC = "AC8" ; +#NET "debug<28>" LOC = "AB7" ; +#NET "debug<29>" LOC = "V11" ; +#NET "debug<30>" LOC = "U11" ; +#NET "debug<31>" LOC = "Y10" ; + +## UARTS +#NET "TXD<3>" LOC = "AD20" ; +#NET "TXD<2>" LOC = "AC20" ; +#NET "TXD<1>" LOC = "AD19" ; +#NET "RXD<3>" LOC = "AF17" ; +#NET "RXD<2>" LOC = "AF15" ; +#NET "RXD<1>" LOC = "AD12" ; + +## AD9510 +#NET "CLK_STATUS" LOC = "AD22" ; +#NET "CLK_FUNC" LOC = "AC21" ; +#NET "clk_sel<0>" LOC = "AE21" ; +#NET "clk_sel<1>" LOC = "AD21" ; +#NET "clk_en<1>" LOC = "AA17" ; +#NET "clk_en<0>" LOC = "Y17" ; + +## I2C +#NET "SDA" LOC = "V16" ; +#NET "SCL" LOC = "U16" ; + +## Timing +#NET "PPS_IN" LOC = "AB6" ; +#NET "PPS2_IN" LOC = "AA20" ; + +## SPI +#NET "SEN_CLK" LOC = "AA18" ; +#NET "MOSI_CLK" LOC = "W17" ; +#NET "SCLK_CLK" LOC = "V17" ; +#NET "MISO_CLK" LOC = "AC10" ; + +#NET "SEN_DAC" LOC = "AE7" ; +#NET "SCLK_DAC" LOC = "AF5" ; +#NET "MOSI_DAC" LOC = "AE6" ; +#NET "MISO_DAC" LOC = "Y3" ; + +#NET "SCLK_ADC" LOC = "B1" ; +#NET "MOSI_ADC" LOC = "J8" ; +#NET "SEN_ADC" LOC = "J9" ; + +#NET "MOSI_TX_ADC" LOC = "V10" ; +#NET "SEN_TX_ADC" LOC = "W10" ; +#NET "SCLK_TX_ADC" LOC = "AC6" ; +#NET "MISO_TX_ADC" LOC = "G1" ; + +#NET "MOSI_TX_DAC" LOC = "AD6" ; +#NET "SEN_TX_DAC" LOC = "AE4" ; +#NET "SCLK_TX_DAC" LOC = "AF4" ; + +#NET "SCLK_TX_DB" LOC = "AE3" ; +#NET "MOSI_TX_DB" LOC = "AF3" ; +#NET "SEN_TX_DB" LOC = "W9" ; +#NET "MISO_TX_DB" LOC = "AA5" ; + +#NET "MOSI_RX_ADC" LOC = "E3" ; +#NET "SCLK_RX_ADC" LOC = "F4" ; +#NET "SEN_RX_ADC" LOC = "D3" ; +#NET "MISO_RX_ADC" LOC = "C1" ; + +#NET "SCLK_RX_DAC" LOC = "E4" ; +#NET "SEN_RX_DAC" LOC = "K9" ; +#NET "MOSI_RX_DAC" LOC = "K8" ; + +#NET "SCLK_RX_DB" LOC = "G6" ; +#NET "MOSI_RX_DB" LOC = "H7" ; +#NET "SEN_RX_DB" LOC = "B2" ; +#NET "MISO_RX_DB" LOC = "H4" ; + +## ETH PHY +#NET "CLK_TO_MAC" LOC = "P26" ; + +#NET "GMII_TXD<7>" LOC = "G21" ; +#NET "GMII_TXD<6>" LOC = "C26" ; +#NET "GMII_TXD<5>" LOC = "C25" ; +#NET "GMII_TXD<4>" LOC = "J21" ; +#NET "GMII_TXD<3>" LOC = "H21" ; +#NET "GMII_TXD<2>" LOC = "D25" ; +#NET "GMII_TXD<1>" LOC = "D24" ; +#NET "GMII_TXD<0>" LOC = "E26" ; +#NET "GMII_TX_EN" LOC = "D26" ; +#NET "GMII_TX_ER" LOC = "J19" ; +#NET "GMII_GTX_CLK" LOC = "J20" ; +#NET "GMII_TX_CLK" LOC = "P25" ; + +#NET "GMII_RX_CLK" LOC = "P21" ; +#NET "GMII_RXD<7>" LOC = "G22" ; +#NET "GMII_RXD<6>" LOC = "K19" ; +#NET "GMII_RXD<5>" LOC = "K18" ; +#NET "GMII_RXD<4>" LOC = "E24" ; +#NET "GMII_RXD<3>" LOC = "F23" ; +#NET "GMII_RXD<2>" LOC = "L18" ; +#NET "GMII_RXD<1>" LOC = "L17" ; +#NET "GMII_RXD<0>" LOC = "F25" ; +#NET "GMII_RX_DV" LOC = "F24" ; +#NET "GMII_RX_ER" LOC = "L20" ; +#NET "GMII_CRS" LOC = "K20" ; +#NET "GMII_COL" LOC = "G23" ; + +#NET "PHY_INTn" LOC = "L22" ; +#NET "MDIO" LOC = "K21" ; +#NET "MDC" LOC = "J23" ; +#NET "PHY_RESETn" LOC = "J22" ; +NET "ETH_LED" LOC = "H20" ; + +## MIMO Interface +#NET "exp_time_out_p" LOC = "Y14" ; +#NET "exp_time_out_n" LOC = "AA14" ; +#NET "exp_time_in_p" LOC = "N18" ; +#NET "exp_time_in_n" LOC = "N17" ; +#NET "exp_user_out_p" LOC = "AF14" ; +#NET "exp_user_out_n" LOC = "AE14" ; +#NET "exp_user_in_p" LOC = "L24" ; +#NET "exp_user_in_n" LOC = "M23" ; + +## SERDES +#NET "ser_enable" LOC = "R20" ; +#NET "ser_prbsen" LOC = "U23" ; +#NET "ser_loopen" LOC = "R19" ; +#NET "ser_rx_en" LOC = "Y21" ; +#NET "ser_tx_clk" LOC = "P23" ; # SERDES TX CLK +#NET "ser_t<15>" LOC = "V23" ; +#NET "ser_t<14>" LOC = "U22" ; +#NET "ser_t<13>" LOC = "V24" ; +#NET "ser_t<12>" LOC = "V25" ; +#NET "ser_t<11>" LOC = "W23" ; +#NET "ser_t<10>" LOC = "V22" ; +#NET "ser_t<9>" LOC = "T18" ; +#NET "ser_t<8>" LOC = "T17" ; +#NET "ser_t<7>" LOC = "Y24" ; +#NET "ser_t<6>" LOC = "Y25" ; +#NET "ser_t<5>" LOC = "U21" ; +#NET "ser_t<4>" LOC = "T20" ; +#NET "ser_t<3>" LOC = "Y22" ; +#NET "ser_t<2>" LOC = "Y23" ; +#NET "ser_t<1>" LOC = "U19" ; +#NET "ser_t<0>" LOC = "U18" ; +#NET "ser_tkmsb" LOC = "AA24" ; +#NET "ser_tklsb" LOC = "AA25" ; +#NET "ser_rx_clk" LOC = "P18" ; +#NET "ser_r<15>" LOC = "V21" ; +#NET "ser_r<14>" LOC = "U20" ; +#NET "ser_r<13>" LOC = "AA22" ; +#NET "ser_r<12>" LOC = "AA23" ; +#NET "ser_r<11>" LOC = "V18" ; +#NET "ser_r<10>" LOC = "V19" ; +#NET "ser_r<9>" LOC = "AB23" ; +#NET "ser_r<8>" LOC = "AC26" ; +#NET "ser_r<7>" LOC = "AB26" ; +#NET "ser_r<6>" LOC = "AD26" ; +#NET "ser_r<5>" LOC = "AC25" ; +#NET "ser_r<4>" LOC = "W20" ; +#NET "ser_r<3>" LOC = "W21" ; +#NET "ser_r<2>" LOC = "AC23" ; +#NET "ser_r<1>" LOC = "AC24" ; +#NET "ser_r<0>" LOC = "AE26" ; +#NET "ser_rkmsb" LOC = "AD25" ; +#NET "ser_rklsb" LOC = "Y20" ; + +## SRAM +#NET "RAM_D<35>" LOC = "K16" ; +#NET "RAM_D<34>" LOC = "D20" ; +#NET "RAM_D<33>" LOC = "C20" ; +#NET "RAM_D<32>" LOC = "E21" ; +#NET "RAM_D<31>" LOC = "D21" ; +#NET "RAM_D<30>" LOC = "C21" ; +#NET "RAM_D<29>" LOC = "B21" ; +#NET "RAM_D<28>" LOC = "H17" ; +#NET "RAM_D<27>" LOC = "G17" ; +#NET "RAM_D<26>" LOC = "B23" ; +#NET "RAM_D<25>" LOC = "A22" ; +#NET "RAM_D<24>" LOC = "D23" ; +#NET "RAM_D<23>" LOC = "C23" ; +#NET "RAM_D<22>" LOC = "D22" ; +#NET "RAM_D<21>" LOC = "C22" ; +#NET "RAM_D<20>" LOC = "F19" ; +#NET "RAM_D<19>" LOC = "G20" ; +#NET "RAM_D<18>" LOC = "F20" ; +#NET "RAM_D<17>" LOC = "F7" ; +#NET "RAM_D<16>" LOC = "E7" ; +#NET "RAM_D<15>" LOC = "G9" ; +#NET "RAM_D<14>" LOC = "H9" ; +#NET "RAM_D<13>" LOC = "G10" ; +#NET "RAM_D<12>" LOC = "H10" ; +#NET "RAM_D<11>" LOC = "A4" ; +#NET "RAM_D<10>" LOC = "B4" ; +#NET "RAM_D<9>" LOC = "C5" ; +#NET "RAM_D<8>" LOC = "D6" ; +#NET "RAM_D<7>" LOC = "J11" ; +#NET "RAM_D<6>" LOC = "K11" ; +#NET "RAM_D<5>" LOC = "B7" ; +#NET "RAM_D<4>" LOC = "C7" ; +#NET "RAM_D<3>" LOC = "B6" ; +#NET "RAM_D<2>" LOC = "C6" ; +#NET "RAM_D<1>" LOC = "C8" ; +#NET "RAM_D<0>" LOC = "D8" ; +#NET "RAM_A<0>" LOC = "C11" ; +#NET "RAM_A<1>" LOC = "E12" ; +#NET "RAM_A<2>" LOC = "F12" ; +#NET "RAM_A<3>" LOC = "D13" ; +#NET "RAM_A<4>" LOC = "C12" ; +#NET "RAM_A<5>" LOC = "A12" ; +#NET "RAM_A<6>" LOC = "B12" ; +#NET "RAM_A<7>" LOC = "E14" ; +#NET "RAM_A<8>" LOC = "F14" ; +#NET "RAM_A<9>" LOC = "B15" ; +#NET "RAM_A<10>" LOC = "A15" ; +#NET "RAM_A<11>" LOC = "D16" ; +#NET "RAM_A<12>" LOC = "C15" ; +#NET "RAM_A<13>" LOC = "D17" ; +#NET "RAM_A<14>" LOC = "C16" ; +#NET "RAM_A<15>" LOC = "F15" ; +#NET "RAM_A<16>" LOC = "C17" ; +#NET "RAM_A<17>" LOC = "B17" ; +#NET "RAM_A<18>" LOC = "B18" ; +#NET "RAM_A<19>" LOC = "A18" ; +#NET "RAM_A<20>" LOC = "D18" ; +#NET "RAM_BWn<3>" LOC = "D9" ; +#NET "RAM_BWn<2>" LOC = "A9" ; +#NET "RAM_BWn<1>" LOC = "B9" ; +#NET "RAM_BWn<0>" LOC = "G12" ; +#NET "RAM_ZZ" LOC = "J12" ; +#NET "RAM_LDn" LOC = "H12" ; +#NET "RAM_OEn" LOC = "C10" ; +#NET "RAM_WEn" LOC = "D10" ; +#NET "RAM_CENn" LOC = "B10" ; +#NET "RAM_CLK" LOC = "A10" ; + +## SPI Flash +#NET "flash_miso" LOC = "AF24" ; +#NET "flash_clk" LOC = "AE24" ; +#NET "flash_mosi" LOC = "AB15" ; +#NET "flash_cs" LOC = "AA7" ; + +## MISC FPGA, unused for now +##NET "PROG_B" LOC = "A2" ; +##NET "PUDC_B" LOC = "G8" ; +##NET "DONE" LOC = "AB21" ; +##NET "INIT_B" LOC = "AA15" ; + + +##NET "unnamed_net19" LOC = "AE9" ; # VS1 +##NET "unnamed_net18" LOC = "AF9" ; # VS0 +##NET "unnamed_net17" LOC = "AA12" ; # VS2 +##NET "unnamed_net16" LOC = "Y7" ; # M2 +##NET "unnamed_net15" LOC = "AC4" ; # M1 +##NET "unnamed_net14" LOC = "AD4" ; # M0 +##NET "unnamed_net13" LOC = "D4" ; # TMS +##NET "unnamed_net12" LOC = "E23" ; # TDO +##NET "unnamed_net11" LOC = "G7" ; # TDI +##NET "unnamed_net10" LOC = "A25" ; # TCK +##NET "unnamed_net20" LOC = "V20" ; # SUSPEND diff --git a/usrp2/top/u2plus/.gitignore b/usrp2/top/u2plus/.gitignore new file mode 100644 index 000000000..1b2211df0 --- /dev/null +++ b/usrp2/top/u2plus/.gitignore @@ -0,0 +1 @@ +build* diff --git a/usrp2/top/u2plus/Makefile b/usrp2/top/u2plus/Makefile new file mode 100644 index 000000000..305b5b9e3 --- /dev/null +++ b/usrp2/top/u2plus/Makefile @@ -0,0 +1,246 @@ +# +# Copyright 2008 Ettus Research LLC +# +# This file is part of GNU Radio +# +# GNU Radio is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU Radio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +################################################## +# xtclsh Shell and tcl Script Path +################################################## +#XTCLSH := /opt/Xilinx/10.1/ISE/bin/lin/xtclsh +XTCLSH := xtclsh +ISE_HELPER := ../tcl/ise_helper.tcl + +################################################## +# Project Setup +################################################## +BUILD_DIR := build/ +export TOP_MODULE := u2plus +export PROJ_FILE := $(BUILD_DIR)$(TOP_MODULE).ise + +################################################## +# Project Properties +################################################## +export PROJECT_PROPERTIES := \ +family "Spartan-3A DSP" \ +device xc3sd3400a \ +package fg676 \ +speed -5 \ +top_level_module_type "HDL" \ +synthesis_tool "XST (VHDL/Verilog)" \ +simulator "ISE Simulator (VHDL/Verilog)" \ +"Preferred Language" "Verilog" \ +"Enable Message Filtering" FALSE \ +"Display Incremental Messages" FALSE + +################################################## +# Sources +################################################## +export SOURCE_ROOT := ../../../ +export SOURCES := \ +control_lib/CRC16_D16.v \ +control_lib/atr_controller.v \ +control_lib/bin2gray.v \ +control_lib/dcache.v \ +control_lib/decoder_3_8.v \ +control_lib/dpram32.v \ +control_lib/gray2bin.v \ +control_lib/gray_send.v \ +control_lib/icache.v \ +control_lib/mux4.v \ +control_lib/mux8.v \ +control_lib/nsgpio.v \ +control_lib/ram_2port.v \ +control_lib/ram_harv_cache.v \ +control_lib/ram_loader.v \ +control_lib/setting_reg.v \ +control_lib/settings_bus.v \ +control_lib/srl.v \ +control_lib/system_control.v \ +control_lib/wb_1master.v \ +control_lib/wb_readback_mux.v \ +control_lib/simple_uart.v \ +control_lib/simple_uart_tx.v \ +control_lib/simple_uart_rx.v \ +control_lib/oneshot_2clk.v \ +control_lib/sd_spi.v \ +control_lib/sd_spi_wb.v \ +control_lib/wb_bridge_16_32.v \ +control_lib/reset_sync.v \ +simple_gemac/simple_gemac_wrapper.v \ +simple_gemac/simple_gemac.v \ +simple_gemac/simple_gemac_wb.v \ +simple_gemac/simple_gemac_tx.v \ +simple_gemac/simple_gemac_rx.v \ +simple_gemac/crc.v \ +simple_gemac/delay_line.v \ +simple_gemac/flow_ctrl_tx.v \ +simple_gemac/flow_ctrl_rx.v \ +simple_gemac/address_filter.v \ +simple_gemac/ll8_to_txmac.v \ +simple_gemac/rxmac_to_ll8.v \ +simple_gemac/miim/eth_miim.v \ +simple_gemac/miim/eth_clockgen.v \ +simple_gemac/miim/eth_outputcontrol.v \ +simple_gemac/miim/eth_shiftreg.v \ +control_lib/newfifo/buffer_int.v \ +control_lib/newfifo/buffer_pool.v \ +control_lib/newfifo/fifo_2clock.v \ +control_lib/newfifo/fifo_2clock_cascade.v \ +control_lib/newfifo/ll8_shortfifo.v \ +control_lib/newfifo/ll8_to_fifo36.v \ +control_lib/newfifo/fifo_short.v \ +control_lib/newfifo/fifo_long.v \ +control_lib/newfifo/fifo_cascade.v \ +control_lib/newfifo/fifo36_to_ll8.v \ +control_lib/longfifo.v \ +control_lib/shortfifo.v \ +control_lib/medfifo.v \ +coregen/fifo_xlnx_2Kx36_2clk.v \ +coregen/fifo_xlnx_2Kx36_2clk.xco \ +coregen/fifo_xlnx_512x36_2clk.v \ +coregen/fifo_xlnx_512x36_2clk.xco \ +coregen/fifo_xlnx_64x36_2clk.v \ +coregen/fifo_xlnx_64x36_2clk.xco \ +extram/wb_zbt16_b.v \ +opencores/8b10b/decode_8b10b.v \ +opencores/8b10b/encode_8b10b.v \ +opencores/aemb/rtl/verilog/aeMB_bpcu.v \ +opencores/aemb/rtl/verilog/aeMB_core_BE.v \ +opencores/aemb/rtl/verilog/aeMB_ctrl.v \ +opencores/aemb/rtl/verilog/aeMB_edk32.v \ +opencores/aemb/rtl/verilog/aeMB_ibuf.v \ +opencores/aemb/rtl/verilog/aeMB_regf.v \ +opencores/aemb/rtl/verilog/aeMB_xecu.v \ +opencores/i2c/rtl/verilog/i2c_master_bit_ctrl.v \ +opencores/i2c/rtl/verilog/i2c_master_byte_ctrl.v \ +opencores/i2c/rtl/verilog/i2c_master_defines.v \ +opencores/i2c/rtl/verilog/i2c_master_top.v \ +opencores/i2c/rtl/verilog/timescale.v \ +opencores/simple_pic/rtl/simple_pic.v \ +opencores/spi/rtl/verilog/spi_clgen.v \ +opencores/spi/rtl/verilog/spi_defines.v \ +opencores/spi/rtl/verilog/spi_shift.v \ +opencores/spi/rtl/verilog/spi_top.v \ +opencores/spi/rtl/verilog/timescale.v \ +sdr_lib/acc.v \ +sdr_lib/add2.v \ +sdr_lib/add2_and_round.v \ +sdr_lib/add2_and_round_reg.v \ +sdr_lib/add2_reg.v \ +sdr_lib/cic_dec_shifter.v \ +sdr_lib/cic_decim.v \ +sdr_lib/cic_int_shifter.v \ +sdr_lib/cic_interp.v \ +sdr_lib/cic_strober.v \ +sdr_lib/clip.v \ +sdr_lib/clip_reg.v \ +sdr_lib/cordic.v \ +sdr_lib/cordic_z24.v \ +sdr_lib/cordic_stage.v \ +sdr_lib/dsp_core_rx.v \ +sdr_lib/dsp_core_tx.v \ +sdr_lib/hb_dec.v \ +sdr_lib/hb_interp.v \ +sdr_lib/round.v \ +sdr_lib/round_reg.v \ +sdr_lib/rx_control.v \ +sdr_lib/rx_dcoffset.v \ +sdr_lib/sign_extend.v \ +sdr_lib/small_hb_dec.v \ +sdr_lib/small_hb_int.v \ +sdr_lib/tx_control.v \ +serdes/serdes.v \ +serdes/serdes_fc_rx.v \ +serdes/serdes_fc_tx.v \ +serdes/serdes_rx.v \ +serdes/serdes_tx.v \ +timing/time_receiver.v \ +timing/time_sender.v \ +timing/time_sync.v \ +timing/timer.v \ +top/u2_core/u2_core.v \ +top/u2plus/capture_ddrlvds.v \ +top/u2plus/u2plus.ucf \ +top/u2plus/u2plus.v + +################################################## +# Process Properties +################################################## +export SYNTHESIZE_PROPERTIES := \ +"Number of Clock Buffers" 6 \ +"Pack I/O Registers into IOBs" Yes \ +"Optimization Effort" High \ +"Optimize Instantiated Primitives" TRUE \ +"Register Balancing" Yes \ +"Use Clock Enable" Auto \ +"Use Synchronous Reset" Auto \ +"Use Synchronous Set" Auto + +export TRANSLATE_PROPERTIES := \ +"Macro Search Path" "$(shell pwd)/../../coregen/" + +export MAP_PROPERTIES := \ +"Allow Logic Optimization Across Hierarchy" TRUE \ +"Map to Input Functions" 4 \ +"Optimization Strategy (Cover Mode)" Speed \ +"Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ +"Perform Timing-Driven Packing and Placement" TRUE \ +"Map Effort Level" High \ +"Extra Effort" Normal \ +"Combinatorial Logic Optimization" TRUE \ +"Register Duplication" TRUE + +export PLACE_ROUTE_PROPERTIES := \ +"Place & Route Effort Level (Overall)" High + +export STATIC_TIMING_PROPERTIES := \ +"Number of Paths in Error/Verbose Report" 10 \ +"Report Type" "Error Report" + +export GEN_PROG_FILE_PROPERTIES := \ +"Configuration Rate" 6 \ +"Create Binary Configuration File" TRUE \ +"Done (Output Events)" 5 \ +"Enable Bitstream Compression" TRUE \ +"Enable Outputs (Output Events)" 6 + +export SIM_MODEL_PROPERTIES := "" + +################################################## +# Make Options +################################################## +all: + @echo make proj, check, synth, bin, or clean + +proj: + PROCESS_RUN="" $(XTCLSH) $(ISE_HELPER) + +check: + PROCESS_RUN="Check Syntax" $(XTCLSH) $(ISE_HELPER) + +synth: + PROCESS_RUN="Synthesize - XST" $(XTCLSH) $(ISE_HELPER) + +bin: + PROCESS_RUN="Generate Programming File" $(XTCLSH) $(ISE_HELPER) + +clean: + rm -rf $(BUILD_DIR) + + diff --git a/usrp2/top/u2plus/capture_ddrlvds.v b/usrp2/top/u2plus/capture_ddrlvds.v new file mode 100644 index 000000000..b9f53ff8c --- /dev/null +++ b/usrp2/top/u2plus/capture_ddrlvds.v @@ -0,0 +1,39 @@ + + +module capture_ddrlvds + #(parameter WIDTH=7) + (input clk, + input ssclk_p, + input ssclk_n, + input [WIDTH-1:0] in_p, + input [WIDTH-1:0] in_n, + output reg [(2*WIDTH)-1:0] out); + + wire [WIDTH-1:0] ddr_dat; + wire ssclk_regional; + wire ssclk_io; + wire ssclk; + wire [(2*WIDTH)-1:0] out_pre1; + reg [(2*WIDTH)-1:0] out_pre2; + + IBUFGDS #(.IOSTANDARD("LVDS_25"),.DIFF_TERM("TRUE")) clkbuf (.O(ssclk), .I(ssclk_p), .IB(ssclk_n)); + + genvar i; + generate + for(i = 0; i < WIDTH; i = i + 1) + begin : gen_lvds_pins + IBUFDS #(.IOSTANDARD("LVDS_25"),.DIFF_TERM("TRUE")) ibufds + (.O(ddr_dat[i]), .I(in_p[i]), .IB(in_n[i]) ); + IDDR2 #(.DDR_ALIGNMENT("C1")) iddr2 + (.Q0(out_pre1[2*i]), .Q1(out_pre1[(2*i)+1]), .C0(ssclk), .C1(~ssclk), + .CE(1'b1), .D(ddr_dat[i]), .R(1'b0), .S(1'b0)); + end + endgenerate + + always @(negedge clk) + out_pre2 <= out_pre1; + + always @(posedge clk) + out <= out_pre2; + +endmodule // capture_ddrlvds diff --git a/usrp2/top/u2plus/u2plus.ucf b/usrp2/top/u2plus/u2plus.ucf index 091eb2005..31404dda9 100755 --- a/usrp2/top/u2plus/u2plus.ucf +++ b/usrp2/top/u2plus/u2plus.ucf @@ -1,157 +1,137 @@ -NET "DAC_LOCK" LOC = "P4" ; +## Main 100 MHz Clock +NET "CLK_FPGA_P" LOC = "AA13" ; +NET "CLK_FPGA_N" LOC = "Y13" ; + +## ADC NET "ADC_clkout_p" LOC = "P1" ; NET "ADC_clkout_n" LOC = "P2" ; -NET "io_rx<15>" LOC = "AD1" ; -NET "io_rx<14>" LOC = "AD2" ; -NET "io_rx<13>" LOC = "AC2" ; -NET "io_rx<12>" LOC = "AC3" ; -NET "io_rx<11>" LOC = "W7" ; -NET "io_rx<10>" LOC = "W6" ; -NET "io_rx<09>" LOC = "U9" ; -NET "io_rx<08>" LOC = "V8" ; -NET "io_rx<07>" LOC = "AB1" ; -NET "io_rx<06>" LOC = "AC1" ; -NET "io_rx<05>" LOC = "V7" ; -NET "io_rx<04>" LOC = "V6" ; -NET "io_rx<03>" LOC = "Y5" ; -NET "ADCB_2_3_p" LOC = "U7" ; -NET "ADCB_2_3_n" LOC = "U8" ; -NET "ADCB_0_1_p" LOC = "AA2" ; -NET "ADCB_0_1_n" LOC = "AA3" ; -NET "ADCA_12_13_p" LOC = "Y1" ; -NET "ADCA_12_13_n" LOC = "Y2" ; -NET "ADCA_10_11_p" LOC = "W3" ; -NET "ADCA_10_11_n" LOC = "W4" ; -NET "ADCA_8_9_p" LOC = "T7" ; -NET "ADCA_8_9_n" LOC = "U6" ; -NET "ADCA_6_7_p" LOC = "U5" ; -NET "ADCA_6_7_n" LOC = "V5" ; -NET "ADCA_4_5_p" LOC = "T10" ; -NET "ADCA_4_5_n" LOC = "T9" ; -NET "ADCA_2_3_p" LOC = "V1" ; -NET "ADCA_2_3_n" LOC = "V2" ; -NET "ADCA_0_1_p" LOC = "R8" ; -NET "ADCA_0_1_n" LOC = "R7" ; -NET "TX00_A" LOC = "P8" ; -NET "TX01_A" LOC = "P9" ; -NET "TX02_A" LOC = "R5" ; -NET "TX03_A" LOC = "R6" ; -NET "TX04_A" LOC = "P7" ; -NET "TX05_A" LOC = "P6" ; -NET "TX06_A" LOC = "T3" ; -NET "TX07_A" LOC = "T4" ; -NET "TX08_A" LOC = "R3" ; -NET "TX09_A" LOC = "R4" ; -NET "TX10_A" LOC = "R2" ; -NET "TX11_A" LOC = "N1" ; -NET "TX12_A" LOC = "N2" ; -NET "TX13_A" LOC = "N5" ; -NET "TX14_A" LOC = "N4" ; -NET "TX15_A" LOC = "M2" ; -NET "TX00_B" LOC = "M5" ; -NET "TX01_B" LOC = "M6" ; -NET "TX02_B" LOC = "M4" ; -NET "TX03_B" LOC = "M3" ; -NET "TX04_B" LOC = "M8" ; -NET "TX05_B" LOC = "M7" ; -NET "TX06_B" LOC = "L4" ; -NET "TX07_B" LOC = "L3" ; -NET "TX08_B" LOC = "K3" ; -NET "TX09_B" LOC = "K2" ; -NET "TX10_B" LOC = "K5" ; -NET "TX11_B" LOC = "K4" ; -NET "TX12_B" LOC = "M10" ; -NET "TX13_B" LOC = "M9" ; -NET "TX14_B" LOC = "J5" ; -NET "TX15_B" LOC = "J4" ; +NET "ADCA_12_p" LOC = "Y1" ; +NET "ADCA_12_n" LOC = "Y2" ; +NET "ADCA_10_p" LOC = "W3" ; +NET "ADCA_10_n" LOC = "W4" ; +NET "ADCA_8_p" LOC = "T7" ; +NET "ADCA_8_n" LOC = "U6" ; +NET "ADCA_6_p" LOC = "U5" ; +NET "ADCA_6_n" LOC = "V5" ; +NET "ADCA_4_p" LOC = "T10" ; +NET "ADCA_4_n" LOC = "T9" ; +NET "ADCA_2_p" LOC = "V1" ; +NET "ADCA_2_n" LOC = "V2" ; +NET "ADCA_0_p" LOC = "R8" ; +NET "ADCA_0_n" LOC = "R7" ; +NET "ADCB_2_p" LOC = "U7" ; +NET "ADCB_2_n" LOC = "U8" ; +NET "ADCB_0_p" LOC = "AA2" ; +NET "ADCB_0_n" LOC = "AA3" ; +NET "ADCB_4_p" LOC = "AE1" ; +NET "ADCB_4_n" LOC = "AE2" ; +NET "ADCB_6_p" LOC = "W1" ; +NET "ADCB_6_n" LOC = "W2" ; +NET "ADCB_8_p" LOC = "U3" ; +NET "ADCB_8_n" LOC = "V4" ; +NET "ADCB_10_p" LOC = "J1" ; +NET "ADCB_10_n" LOC = "K1" ; +NET "ADCB_12_p" LOC = "J3" ; +NET "ADCB_12_n" LOC = "J2" ; + +## DAC +NET "DAC_LOCK" LOC = "P4" ; +NET "DACA<0>" LOC = "P8" ; +NET "DACA<1>" LOC = "P9" ; +NET "DACA<2>" LOC = "R5" ; +NET "DACA<3>" LOC = "R6" ; +NET "DACA<4>" LOC = "P7" ; +NET "DACA<5>" LOC = "P6" ; +NET "DACA<6>" LOC = "T3" ; +NET "DACA<7>" LOC = "T4" ; +NET "DACA<8>" LOC = "R3" ; +NET "DACA<9>" LOC = "R4" ; +NET "DACA<10>" LOC = "R2" ; +NET "DACA<11>" LOC = "N1" ; +NET "DACA<12>" LOC = "N2" ; +NET "DACA<13>" LOC = "N5" ; +NET "DACA<14>" LOC = "N4" ; +NET "DACA<15>" LOC = "M2" ; +NET "DACB<0>" LOC = "M5" ; +NET "DACB<1>" LOC = "M6" ; +NET "DACB<2>" LOC = "M4" ; +NET "DACB<3>" LOC = "M3" ; +NET "DACB<4>" LOC = "M8" ; +NET "DACB<5>" LOC = "M7" ; +NET "DACB<6>" LOC = "L4" ; +NET "DACB<7>" LOC = "L3" ; +NET "DACB<8>" LOC = "K3" ; +NET "DACB<9>" LOC = "K2" ; +NET "DACB<10>" LOC = "K5" ; +NET "DACB<11>" LOC = "K4" ; +NET "DACB<12>" LOC = "M10" ; +NET "DACB<13>" LOC = "M9" ; +NET "DACB<14>" LOC = "J5" ; +NET "DACB<15>" LOC = "J4" ; + +## TX DB GPIO NET "io_tx<15>" LOC = "K6" ; NET "io_tx<14>" LOC = "L7" ; NET "io_tx<13>" LOC = "H2" ; NET "io_tx<12>" LOC = "H1" ; NET "io_tx<11>" LOC = "L10" ; NET "io_tx<10>" LOC = "L9" ; -NET "io_tx<09>" LOC = "G3" ; -NET "io_tx<08>" LOC = "F3" ; -NET "io_tx<07>" LOC = "K7" ; -NET "io_tx<06>" LOC = "J6" ; -NET "io_tx<05>" LOC = "E1" ; -NET "io_tx<04>" LOC = "F2" ; -NET "io_tx<03>" LOC = "J7" ; -NET "io_tx<02>" LOC = "H6" ; -NET "io_tx<01>" LOC = "F5" ; -NET "io_tx<00>" LOC = "G4" ; -NET "MOSI_RX_ADC" LOC = "E3" ; -NET "SCLK_RX_ADC" LOC = "F4" ; -NET "SEN_RX_ADC" LOC = "D3" ; -NET "SCLK_RX_DAC" LOC = "E4" ; -NET "SEN_RX_DAC" LOC = "K9" ; -NET "MOSI_RX_DAC" LOC = "K8" ; -NET "SCLK_RX_DB" LOC = "G6" ; -NET "MOSI_RX_DB" LOC = "H7" ; -NET "SEN_RX_DB" LOC = "B2" ; -NET "SCLK_ADC" LOC = "B1" ; -NET "MOSI_ADC" LOC = "J8" ; -NET "SEN_ADC" LOC = "J9" ; -NET "ADCB_4_5_p" LOC = "AE1" ; -NET "ADCB_4_5_n" LOC = "AE2" ; -NET "ADCB_6_7_p" LOC = "W1" ; -NET "ADCB_6_7_n" LOC = "W2" ; -NET "ADCB_8_9_p" LOC = "U3" ; -NET "ADCB_8_9_n" LOC = "V4" ; -NET "ADCB_10_11_p" LOC = "J1" ; -NET "ADCB_10_11_n" LOC = "K1" ; -NET "ADCB_12_13_p" LOC = "J3" ; -NET "ADCB_12_13_n" LOC = "J2" ; -NET "MISO_RX_DB" LOC = "H4" ; -NET "MISO_RX_ADC" LOC = "C1" ; -NET "MISO_TX_DB" LOC = "AA5" ; -NET "MISO_DAC" LOC = "Y3" ; -NET "MISO_TX_ADC" LOC = "G1" ; -NET "io_rx<02>" LOC = "R10" ; -NET "io_rx<01>" LOC = "R1" ; -NET "io_rx<00>" LOC = "M1" ; -NET "exp_user_out_p" LOC = "AF14" ; -NET "exp_user_out_n" LOC = "AE14" ; -NET "exp_time_out_p" LOC = "Y14" ; -NET "exp_time_out_n" LOC = "AA14" ; -NET "CLK_FPGA_P" LOC = "AA13" ; -NET "CLK_FPGA_N" LOC = "Y13" ; +NET "io_tx<9>" LOC = "G3" ; +NET "io_tx<8>" LOC = "F3" ; +NET "io_tx<7>" LOC = "K7" ; +NET "io_tx<6>" LOC = "J6" ; +NET "io_tx<5>" LOC = "E1" ; +NET "io_tx<4>" LOC = "F2" ; +NET "io_tx<3>" LOC = "J7" ; +NET "io_tx<2>" LOC = "H6" ; +NET "io_tx<1>" LOC = "F5" ; +NET "io_tx<0>" LOC = "G4" ; + +## RX DB GPIO +NET "io_rx<15>" LOC = "AD1" ; +NET "io_rx<14>" LOC = "AD2" ; +NET "io_rx<13>" LOC = "AC2" ; +NET "io_rx<12>" LOC = "AC3" ; +NET "io_rx<11>" LOC = "W7" ; +NET "io_rx<10>" LOC = "W6" ; +NET "io_rx<9>" LOC = "U9" ; +NET "io_rx<8>" LOC = "V8" ; +NET "io_rx<7>" LOC = "AB1" ; +NET "io_rx<6>" LOC = "AC1" ; +NET "io_rx<5>" LOC = "V7" ; +NET "io_rx<4>" LOC = "V6" ; +NET "io_rx<3>" LOC = "Y5" ; +NET "io_rx<2>" LOC = "R10" ; +NET "io_rx<1>" LOC = "R1" ; +NET "io_rx<0>" LOC = "M1" ; + +## MISC NET "leds<5>" LOC = "AF25" ; NET "leds<4>" LOC = "AE25" ; NET "leds<3>" LOC = "AF23" ; NET "leds<2>" LOC = "AE23" ; NET "leds<1>" LOC = "AB18" ; -NET "SEN_CLK" LOC = "AA18" ; -NET "MOSI_CLK" LOC = "W17" ; -NET "SCLK_CLK" LOC = "V17" ; -NET "CLK_STATUS" LOC = "AD22" ; -NET "CLK_FUNC" LOC = "AC21" ; -NET "clk_sel<0>" LOC = "AE21" ; -NET "clk_sel<1>" LOC = "AD21" ; -NET "clk_en<1>" LOC = "AA17" ; -NET "clk_en<0>" LOC = "Y17" ; -NET "SDA" LOC = "V16" ; -NET "SCL" LOC = "U16" ; -NET "TXD3" LOC = "AD20" ; -NET "TXD2" LOC = "AC20" ; -NET "TXD1" LOC = "AD19" ; -NET "debug<00>" LOC = "AC19" ; -NET "debug<01>" LOC = "AF20" ; -NET "debug<02>" LOC = "AE20" ; -NET "debug<03>" LOC = "AC16" ; -NET "debug<04>" LOC = "AB16" ; -NET "debug<05>" LOC = "AF19" ; -NET "debug<06>" LOC = "AE19" ; -NET "debug<07>" LOC = "V15" ; -NET "debug<08>" LOC = "U15" ; -NET "debug<09>" LOC = "AE17" ; +NET "FPGA_RESET" LOC = "K24" ; + +## Debug +NET "debug_clk<0>" LOC = "AA10" ; +NET "debug_clk<1>" LOC = "AD11" ; +NET "debug<0>" LOC = "AC19" ; +NET "debug<1>" LOC = "AF20" ; +NET "debug<2>" LOC = "AE20" ; +NET "debug<3>" LOC = "AC16" ; +NET "debug<4>" LOC = "AB16" ; +NET "debug<5>" LOC = "AF19" ; +NET "debug<6>" LOC = "AE19" ; +NET "debug<7>" LOC = "V15" ; +NET "debug<8>" LOC = "U15" ; +NET "debug<9>" LOC = "AE17" ; NET "debug<10>" LOC = "AD17" ; NET "debug<11>" LOC = "V14" ; NET "debug<12>" LOC = "W15" ; NET "debug<13>" LOC = "AC15" ; NET "debug<14>" LOC = "AD14" ; NET "debug<15>" LOC = "AC14" ; -NET "debug_clk<1>" LOC = "AD11" ; NET "debug<16>" LOC = "AC11" ; NET "debug<17>" LOC = "AB12" ; NET "debug<18>" LOC = "AC12" ; @@ -168,103 +148,183 @@ NET "debug<28>" LOC = "AB7" ; NET "debug<29>" LOC = "V11" ; NET "debug<30>" LOC = "U11" ; NET "debug<31>" LOC = "Y10" ; -NET "debug_clk<0>" LOC = "AA10" ; + +## UARTS +NET "TXD<3>" LOC = "AD20" ; +NET "TXD<2>" LOC = "AC20" ; +NET "TXD<1>" LOC = "AD19" ; +NET "RXD<3>" LOC = "AF17" ; +NET "RXD<2>" LOC = "AF15" ; +NET "RXD<1>" LOC = "AD12" ; + +## AD9510 +NET "CLK_STATUS" LOC = "AD22" ; +NET "CLK_FUNC" LOC = "AC21" ; +NET "clk_sel<0>" LOC = "AE21" ; +NET "clk_sel<1>" LOC = "AD21" ; +NET "clk_en<1>" LOC = "AA17" ; +NET "clk_en<0>" LOC = "Y17" ; + +## I2C +NET "SDA" LOC = "V16" ; +NET "SCL" LOC = "U16" ; + +## Timing +NET "PPS_IN" LOC = "AB6" ; +NET "PPS2_IN" LOC = "AA20" ; + +## SPI +NET "SEN_CLK" LOC = "AA18" ; +NET "MOSI_CLK" LOC = "W17" ; +NET "SCLK_CLK" LOC = "V17" ; +NET "MISO_CLK" LOC = "AC10" ; + NET "SEN_DAC" LOC = "AE7" ; NET "SCLK_DAC" LOC = "AF5" ; NET "MOSI_DAC" LOC = "AE6" ; +NET "MISO_DAC" LOC = "Y3" ; + +NET "SCLK_ADC" LOC = "B1" ; +NET "MOSI_ADC" LOC = "J8" ; +NET "SEN_ADC" LOC = "J9" ; + NET "MOSI_TX_ADC" LOC = "V10" ; NET "SEN_TX_ADC" LOC = "W10" ; NET "SCLK_TX_ADC" LOC = "AC6" ; +NET "MISO_TX_ADC" LOC = "G1" ; + NET "MOSI_TX_DAC" LOC = "AD6" ; NET "SEN_TX_DAC" LOC = "AE4" ; NET "SCLK_TX_DAC" LOC = "AF4" ; + NET "SCLK_TX_DB" LOC = "AE3" ; NET "MOSI_TX_DB" LOC = "AF3" ; NET "SEN_TX_DB" LOC = "W9" ; -NET "RXD3" LOC = "AF17" ; -NET "RXD2" LOC = "AF15" ; -NET "RXD1" LOC = "AD12" ; -NET "MISO_CLK" LOC = "AC10" ; -NET "PPS_IN" LOC = "AB6" ; -NET "PPS2_IN" LOC = "AA20" ; -NET "ser_rx_clk" LOC = "P18" ; -NET "ser_tx_clk" LOC = "P23" ; # SERDES TX CLK +NET "MISO_TX_DB" LOC = "AA5" ; + +NET "MOSI_RX_ADC" LOC = "E3" ; +NET "SCLK_RX_ADC" LOC = "F4" ; +NET "SEN_RX_ADC" LOC = "D3" ; +NET "MISO_RX_ADC" LOC = "C1" ; + +NET "SCLK_RX_DAC" LOC = "E4" ; +NET "SEN_RX_DAC" LOC = "K9" ; +NET "MOSI_RX_DAC" LOC = "K8" ; + +NET "SCLK_RX_DB" LOC = "G6" ; +NET "MOSI_RX_DB" LOC = "H7" ; +NET "SEN_RX_DB" LOC = "B2" ; +NET "MISO_RX_DB" LOC = "H4" ; + +## ETH PHY NET "CLK_TO_MAC" LOC = "P26" ; -NET "GMII_TX_CLK" LOC = "P25" ; -NET "GMII_RX_CLK" LOC = "P21" ; -NET "ETH_LED" LOC = "H20" ; -NET "GMII_TXD7" LOC = "G21" ; -NET "GMII_TXD6" LOC = "C26" ; -NET "GMII_TXD5" LOC = "C25" ; -NET "GMII_TXD4" LOC = "J21" ; -NET "GMII_TXD3" LOC = "H21" ; -NET "GMII_TXD2" LOC = "D25" ; -NET "GMII_TXD1" LOC = "D24" ; -NET "GMII_TXD0" LOC = "E26" ; + +NET "GMII_TXD<7>" LOC = "G21" ; +NET "GMII_TXD<6>" LOC = "C26" ; +NET "GMII_TXD<5>" LOC = "C25" ; +NET "GMII_TXD<4>" LOC = "J21" ; +NET "GMII_TXD<3>" LOC = "H21" ; +NET "GMII_TXD<2>" LOC = "D25" ; +NET "GMII_TXD<1>" LOC = "D24" ; +NET "GMII_TXD<0>" LOC = "E26" ; NET "GMII_TX_EN" LOC = "D26" ; NET "GMII_TX_ER" LOC = "J19" ; NET "GMII_GTX_CLK" LOC = "J20" ; -NET "GMII_RXD7" LOC = "G22" ; -NET "GMII_RXD6" LOC = "K19" ; -NET "GMII_RXD5" LOC = "K18" ; -NET "GMII_RXD4" LOC = "E24" ; -NET "GMII_RXD3" LOC = "F23" ; -NET "GMII_RXD2" LOC = "L18" ; -NET "GMII_RXD1" LOC = "L17" ; -NET "GMII_RXD0" LOC = "F25" ; +NET "GMII_TX_CLK" LOC = "P25" ; + +NET "GMII_RX_CLK" LOC = "P21" ; +NET "GMII_RXD<7>" LOC = "G22" ; +NET "GMII_RXD<6>" LOC = "K19" ; +NET "GMII_RXD<5>" LOC = "K18" ; +NET "GMII_RXD<4>" LOC = "E24" ; +NET "GMII_RXD<3>" LOC = "F23" ; +NET "GMII_RXD<2>" LOC = "L18" ; +NET "GMII_RXD<1>" LOC = "L17" ; +NET "GMII_RXD<0>" LOC = "F25" ; NET "GMII_RX_DV" LOC = "F24" ; NET "GMII_RX_ER" LOC = "L20" ; NET "GMII_CRS" LOC = "K20" ; NET "GMII_COL" LOC = "G23" ; + NET "PHY_INTn" LOC = "L22" ; NET "MDIO" LOC = "K21" ; NET "MDC" LOC = "J23" ; -NET "PHY_RESET" LOC = "J22" ; +NET "PHY_RESETn" LOC = "J22" ; +NET "ETH_LED" LOC = "H20" ; + +## MIMO Interface +NET "exp_time_out_p" LOC = "Y14" ; +NET "exp_time_out_n" LOC = "AA14" ; NET "exp_time_in_p" LOC = "N18" ; NET "exp_time_in_n" LOC = "N17" ; +NET "exp_user_out_p" LOC = "AF14" ; +NET "exp_user_out_n" LOC = "AE14" ; NET "exp_user_in_p" LOC = "L24" ; NET "exp_user_in_n" LOC = "M23" ; + +## SERDES +NET "ser_enable" LOC = "R20" ; NET "ser_prbsen" LOC = "U23" ; NET "ser_loopen" LOC = "R19" ; -NET "ser_enable" LOC = "R20" ; +NET "ser_rx_en" LOC = "Y21" ; +NET "ser_tx_clk" LOC = "P23" ; # SERDES TX CLK NET "ser_t<15>" LOC = "V23" ; NET "ser_t<14>" LOC = "U22" ; NET "ser_t<13>" LOC = "V24" ; NET "ser_t<12>" LOC = "V25" ; NET "ser_t<11>" LOC = "W23" ; NET "ser_t<10>" LOC = "V22" ; -NET "ser_t<09>" LOC = "T18" ; -NET "ser_t<08>" LOC = "T17" ; -NET "ser_t<07>" LOC = "Y24" ; -NET "ser_t<06>" LOC = "Y25" ; -NET "ser_t<05>" LOC = "U21" ; -NET "ser_t<04>" LOC = "T20" ; -NET "ser_t<03>" LOC = "Y22" ; -NET "ser_t<02>" LOC = "Y23" ; -NET "ser_t<01>" LOC = "U19" ; -NET "ser_t<00>" LOC = "U18" ; +NET "ser_t<9>" LOC = "T18" ; +NET "ser_t<8>" LOC = "T17" ; +NET "ser_t<7>" LOC = "Y24" ; +NET "ser_t<6>" LOC = "Y25" ; +NET "ser_t<5>" LOC = "U21" ; +NET "ser_t<4>" LOC = "T20" ; +NET "ser_t<3>" LOC = "Y22" ; +NET "ser_t<2>" LOC = "Y23" ; +NET "ser_t<1>" LOC = "U19" ; +NET "ser_t<0>" LOC = "U18" ; NET "ser_tkmsb" LOC = "AA24" ; NET "ser_tklsb" LOC = "AA25" ; +NET "ser_rx_clk" LOC = "P18" ; NET "ser_r<15>" LOC = "V21" ; NET "ser_r<14>" LOC = "U20" ; NET "ser_r<13>" LOC = "AA22" ; NET "ser_r<12>" LOC = "AA23" ; NET "ser_r<11>" LOC = "V18" ; NET "ser_r<10>" LOC = "V19" ; -NET "ser_r<09>" LOC = "AB23" ; -NET "ser_r<08>" LOC = "AC26" ; -NET "ser_r<07>" LOC = "AB26" ; -NET "ser_r<06>" LOC = "AD26" ; -NET "ser_r<05>" LOC = "AC25" ; -NET "ser_r<04>" LOC = "W20" ; -NET "ser_r<03>" LOC = "W21" ; -NET "ser_r<02>" LOC = "AC23" ; -NET "ser_r<01>" LOC = "AC24" ; -NET "ser_r<00>" LOC = "AE26" ; +NET "ser_r<9>" LOC = "AB23" ; +NET "ser_r<8>" LOC = "AC26" ; +NET "ser_r<7>" LOC = "AB26" ; +NET "ser_r<6>" LOC = "AD26" ; +NET "ser_r<5>" LOC = "AC25" ; +NET "ser_r<4>" LOC = "W20" ; +NET "ser_r<3>" LOC = "W21" ; +NET "ser_r<2>" LOC = "AC23" ; +NET "ser_r<1>" LOC = "AC24" ; +NET "ser_r<0>" LOC = "AE26" ; NET "ser_rkmsb" LOC = "AD25" ; NET "ser_rklsb" LOC = "Y20" ; -NET "ser_rx_en" LOC = "Y21" ; -NET "FPGA_RESET" LOC = "K24" ; + +## SRAM +NET "RAM_D<35>" LOC = "K16" ; +NET "RAM_D<34>" LOC = "D20" ; +NET "RAM_D<33>" LOC = "C20" ; +NET "RAM_D<32>" LOC = "E21" ; +NET "RAM_D<31>" LOC = "D21" ; +NET "RAM_D<30>" LOC = "C21" ; +NET "RAM_D<29>" LOC = "B21" ; +NET "RAM_D<28>" LOC = "H17" ; +NET "RAM_D<27>" LOC = "G17" ; +NET "RAM_D<26>" LOC = "B23" ; +NET "RAM_D<25>" LOC = "A22" ; +NET "RAM_D<24>" LOC = "D23" ; +NET "RAM_D<23>" LOC = "C23" ; +NET "RAM_D<22>" LOC = "D22" ; +NET "RAM_D<21>" LOC = "C22" ; +NET "RAM_D<20>" LOC = "F19" ; +NET "RAM_D<19>" LOC = "G20" ; +NET "RAM_D<18>" LOC = "F20" ; NET "RAM_D<17>" LOC = "F7" ; NET "RAM_D<16>" LOC = "E7" ; NET "RAM_D<15>" LOC = "G9" ; @@ -273,36 +333,26 @@ NET "RAM_D<13>" LOC = "G10" ; NET "RAM_D<12>" LOC = "H10" ; NET "RAM_D<11>" LOC = "A4" ; NET "RAM_D<10>" LOC = "B4" ; -NET "RAM_D<09>" LOC = "C5" ; -NET "RAM_D<08>" LOC = "D6" ; -NET "RAM_D<07>" LOC = "J11" ; -NET "RAM_D<06>" LOC = "K11" ; -NET "RAM_D<05>" LOC = "B7" ; -NET "RAM_D<04>" LOC = "C7" ; -NET "RAM_D<03>" LOC = "B6" ; -NET "RAM_D<02>" LOC = "C6" ; -NET "RAM_D<01>" LOC = "C8" ; -NET "RAM_D<00>" LOC = "D8" ; -NET "RAM_ZZ" LOC = "J12" ; -NET "RAM_BWn<3>" LOC = "D9" ; -NET "RAM_BWn<2>" LOC = "A9" ; -NET "RAM_BWn<1>" LOC = "B9" ; -NET "RAM_BWn<0>" LOC = "G12" ; -NET "RAM_LDn" LOC = "H12" ; -NET "RAM_OEn" LOC = "C10" ; -NET "RAM_WEn" LOC = "D10" ; -NET "RAM_CLK" LOC = "A10" ; -NET "RAM_CENn" LOC = "B10" ; -NET "RAM_A<00>" LOC = "C11" ; -NET "RAM_A<01>" LOC = "E12" ; -NET "RAM_A<02>" LOC = "F12" ; -NET "RAM_A<03>" LOC = "D13" ; -NET "RAM_A<04>" LOC = "C12" ; -NET "RAM_A<05>" LOC = "A12" ; -NET "RAM_A<06>" LOC = "B12" ; -NET "RAM_A<07>" LOC = "E14" ; -NET "RAM_A<08>" LOC = "F14" ; -NET "RAM_A<09>" LOC = "B15" ; +NET "RAM_D<9>" LOC = "C5" ; +NET "RAM_D<8>" LOC = "D6" ; +NET "RAM_D<7>" LOC = "J11" ; +NET "RAM_D<6>" LOC = "K11" ; +NET "RAM_D<5>" LOC = "B7" ; +NET "RAM_D<4>" LOC = "C7" ; +NET "RAM_D<3>" LOC = "B6" ; +NET "RAM_D<2>" LOC = "C6" ; +NET "RAM_D<1>" LOC = "C8" ; +NET "RAM_D<0>" LOC = "D8" ; +NET "RAM_A<0>" LOC = "C11" ; +NET "RAM_A<1>" LOC = "E12" ; +NET "RAM_A<2>" LOC = "F12" ; +NET "RAM_A<3>" LOC = "D13" ; +NET "RAM_A<4>" LOC = "C12" ; +NET "RAM_A<5>" LOC = "A12" ; +NET "RAM_A<6>" LOC = "B12" ; +NET "RAM_A<7>" LOC = "E14" ; +NET "RAM_A<8>" LOC = "F14" ; +NET "RAM_A<9>" LOC = "B15" ; NET "RAM_A<10>" LOC = "A15" ; NET "RAM_A<11>" LOC = "D16" ; NET "RAM_A<12>" LOC = "C15" ; @@ -314,41 +364,38 @@ NET "RAM_A<17>" LOC = "B17" ; NET "RAM_A<18>" LOC = "B18" ; NET "RAM_A<19>" LOC = "A18" ; NET "RAM_A<20>" LOC = "D18" ; -NET "RAM_D<35>" LOC = "K16" ; -NET "RAM_D<34>" LOC = "D20" ; -NET "RAM_D<33>" LOC = "C20" ; -NET "RAM_D<32>" LOC = "E21" ; -NET "RAM_D<31>" LOC = "D21" ; -NET "RAM_D<30>" LOC = "C21" ; -NET "RAM_D<29>" LOC = "B21" ; -NET "RAM_D<28>" LOC = "H17" ; -NET "RAM_D<27>" LOC = "G17" ; -NET "RAM_D<26>" LOC = "B23" ; -NET "RAM_D<25>" LOC = "A22" ; -NET "RAM_D<24>" LOC = "D23" ; -NET "RAM_D<23>" LOC = "C23" ; -NET "RAM_D<22>" LOC = "D22" ; -NET "RAM_D<21>" LOC = "C22" ; -NET "RAM_D<20>" LOC = "F19" ; -NET "RAM_D<19>" LOC = "G20" ; -NET "RAM_D<18>" LOC = "F20" ; -#NET "unnamed_net20" LOC = "V20" ; # SUSPEND -NET "PROG_B" LOC = "A2" ; -NET "PUDC_B" LOC = "G8" ; -NET "DONE" LOC = "AB21" ; +NET "RAM_BWn<3>" LOC = "D9" ; +NET "RAM_BWn<2>" LOC = "A9" ; +NET "RAM_BWn<1>" LOC = "B9" ; +NET "RAM_BWn<0>" LOC = "G12" ; +NET "RAM_ZZ" LOC = "J12" ; +NET "RAM_LDn" LOC = "H12" ; +NET "RAM_OEn" LOC = "C10" ; +NET "RAM_WEn" LOC = "D10" ; +NET "RAM_CENn" LOC = "B10" ; +NET "RAM_CLK" LOC = "A10" ; + +## SPI Flash NET "flash_miso" LOC = "AF24" ; NET "flash_clk" LOC = "AE24" ; -NET "INIT_B" LOC = "AA15" ; NET "flash_mosi" LOC = "AB15" ; +NET "flash_cs" LOC = "AA7" ; + +## MISC FPGA, unused for now +#NET "PROG_B" LOC = "A2" ; +#NET "PUDC_B" LOC = "G8" ; +#NET "DONE" LOC = "AB21" ; +#NET "INIT_B" LOC = "AA15" ; + + #NET "unnamed_net19" LOC = "AE9" ; # VS1 #NET "unnamed_net18" LOC = "AF9" ; # VS0 #NET "unnamed_net17" LOC = "AA12" ; # VS2 #NET "unnamed_net16" LOC = "Y7" ; # M2 -NET "flash_cs" LOC = "AA7" ; #NET "unnamed_net15" LOC = "AC4" ; # M1 #NET "unnamed_net14" LOC = "AD4" ; # M0 #NET "unnamed_net13" LOC = "D4" ; # TMS #NET "unnamed_net12" LOC = "E23" ; # TDO #NET "unnamed_net11" LOC = "G7" ; # TDI #NET "unnamed_net10" LOC = "A25" ; # TCK - +#NET "unnamed_net20" LOC = "V20" ; # SUSPEND diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index e95445867..fef23af60 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -3,46 +3,93 @@ module u2plus ( + input CLK_FPGA_P, input CLK_FPGA_N, // Diff + + // ADC + input ADC_clkout_p, input ADC_clkout_n, + input ADCA_12_p, input ADCA_12_n, + input ADCA_10_p, input ADCA_10_n, + input ADCA_8_p, input ADCA_8_n, + input ADCA_6_p, input ADCA_6_n, + input ADCA_4_p, input ADCA_4_n, + input ADCA_2_p, input ADCA_2_n, + input ADCA_0_p, input ADCA_0_n, + input ADCB_12_p, input ADCB_12_n, + input ADCB_10_p, input ADCB_10_n, + input ADCB_8_p, input ADCB_8_n, + input ADCB_6_p, input ADCB_6_n, + input ADCB_4_p, input ADCB_4_n, + input ADCB_2_p, input ADCB_2_n, + input ADCB_0_p, input ADCB_0_n, + + // DAC + output [15:0] DACA, + output [15:0] DACB, + input DAC_LOCK, // unused for now + + // DB IO Pins + inout [15:0] io_tx, + inout [15:0] io_rx, + // Misc, debug - output [4:0] leds, // LED4 is shared w/INIT_B - input [3:0] dipsw, - output [31:0] debug, + output [5:1] leds, // LED4 is shared w/INIT_B + input FPGA_RESET, output [1:0] debug_clk, - output uart_tx_o, - input uart_rx_i, - - // Expansion - input exp_pps_in_p, // Diff - input exp_pps_in_n, // Diff - output exp_pps_out_p, // Diff - output exp_pps_out_n, // Diff + output [31:0] debug, + output [3:1] TXD, input [3:1] RXD, // UARTs + //input [3:0] dipsw, // Forgot DIP Switches... - // GMII - // GMII-CTRL - input GMII_COL, - input GMII_CRS, + // Clock Gen Control + output [1:0] clk_en, + output [1:0] clk_sel, + input CLK_FUNC, // FIXME is an input to control the 9510 + input CLK_STATUS, + + inout SCL, inout SDA, // I2C + + // PPS + input PPS_IN, input PPS2_IN, + + // SPI + output SEN_CLK, output SCLK_CLK, output MOSI_CLK, input MISO_CLK, + output SEN_DAC, output SCLK_DAC, output MOSI_DAC, input MISO_DAC, + output SEN_ADC, output SCLK_ADC, output MOSI_ADC, + output SEN_TX_DB, output SCLK_TX_DB, output MOSI_TX_DB, input MISO_TX_DB, + output SEN_TX_DAC, output SCLK_TX_DAC, output MOSI_TX_DAC, + output SEN_TX_ADC, output SCLK_TX_ADC, output MOSI_TX_ADC, input MISO_TX_ADC, + output SEN_RX_DB, output SCLK_RX_DB, output MOSI_RX_DB, input MISO_RX_DB, + output SEN_RX_DAC, output SCLK_RX_DAC, output MOSI_RX_DAC, + output SEN_RX_ADC, output SCLK_RX_ADC, output MOSI_RX_ADC, input MISO_RX_ADC, + + // GigE PHY + input CLK_TO_MAC, - // GMII-TX output reg [7:0] GMII_TXD, output reg GMII_TX_EN, output reg GMII_TX_ER, output GMII_GTX_CLK, input GMII_TX_CLK, // 100mbps clk - // GMII-RX - input [7:0] GMII_RXD, input GMII_RX_CLK, + input [7:0] GMII_RXD, input GMII_RX_DV, input GMII_RX_ER, + input GMII_COL, + input GMII_CRS, - // GMII-Management + input PHY_INTn, // open drain inout MDIO, output MDC, - input PHY_INTn, // open drain output PHY_RESETn, - input PHY_CLK, // possibly use on-board osc - input clk_to_mac, - output eth_led, + output ETH_LED, + + input POR, + + // Expansion + input exp_time_in_p, input exp_time_in_n, // Diff + output exp_time_out_p, output exp_time_out_n, // Diff + input exp_user_in_p, input exp_user_in_n, // Diff + output exp_user_out_p, output exp_user_out_n, // Diff // SERDES output ser_enable, @@ -59,75 +106,18 @@ module u2plus input [15:0] ser_r, input ser_rklsb, input ser_rkmsb, - - // ADC - input [13:0] adc_a, - input adc_ovf_a, - output adc_oen_a, - output adc_pdn_a, - - input [13:0] adc_b, - input adc_ovf_b, - output adc_oen_b, - output adc_pdn_b, - - // DAC - output [15:0] dac_a, - output [15:0] dac_b, - input dac_lock, // unused for now - - // I2C - inout SCL, - inout SDA, - // Clock Gen Control - output [1:0] clk_en, - output [1:0] clk_sel, - input clk_func, // FIXME is an input to control the 9510 - input clk_status, - - // Clocks - input clk_fpga_p, // Diff - input clk_fpga_n, // Diff - input pps_in, - input POR, + // SRAM + inout [35:0] RAM_D, + output [20:0] RAM_A, + output [3:0] RAM_BWn, + output RAM_ZZ, + output RAM_LDn, + output RAM_OEn, + output RAM_WEn, + output RAM_CENn, + output RAM_CLK, - // AD9510 SPI - output sclk, - output sen_clk, - output sdi, - input sdo, - - // TX side SPI -- tx_db, tx_adc, tx_dac, 9777 - output sen_dac, - output sen_tx_db, - output sen_tx_adc, - output sen_tx_dac, - output mosi_tx, - input miso_dac, - input miso_tx_db, - input miso_tx_adc, - output sclk_tx, - - // RX side SPI - output sen_rx_db, - output sclk_rx_db, - input sdo_rx_db, - output sdi_rx_db, - - output sen_rx_adc, - output sclk_rx_adc, - input sdo_rx_adc, - output sdi_rx_adc, - - output sen_rx_dac, - output sclk_rx_dac, - output sdi_rx_dac, - - // DB IO Pins - inout [15:0] io_tx, - inout [15:0] io_rx, - // SPI Flash output flash_cs, output flash_clk, @@ -136,37 +126,49 @@ module u2plus ); // FPGA-specific pins connections - wire aux_clk = PHY_CLK; - wire clk_fpga, dsp_clk, clk_div, dcm_out, wb_clk, clock_ready; - IBUFGDS clk_fpga_pin (.O(clk_fpga),.I(clk_fpga_p),.IB(clk_fpga_n)); + IBUFGDS clk_fpga_pin (.O(clk_fpga),.I(CLK_FPGA_P),.IB(CLK_FPGA_N)); defparam clk_fpga_pin.IOSTANDARD = "LVPECL_25"; - wire exp_pps_in; - IBUFDS exp_pps_in_pin (.O(exp_pps_in),.I(exp_pps_in_p),.IB(exp_pps_in_n)); - defparam exp_pps_in_pin.IOSTANDARD = "LVDS_25"; + wire exp_time_in; + IBUFDS exp_time_in_pin (.O(exp_time_in),.I(exp_time_in_p),.IB(exp_time_in_n)); + defparam exp_time_in_pin.IOSTANDARD = "LVDS_25"; - wire exp_pps_out; - OBUFDS exp_pps_out_pin (.O(exp_pps_out_p),.OB(exp_pps_out_n),.I(exp_pps_out)); - defparam exp_pps_out_pin.IOSTANDARD = "LVDS_25"; - - reg [5:0] clock_ready_d; - always @(posedge aux_clk) - clock_ready_d[5:0] <= {clock_ready_d[4:0],clock_ready}; + wire exp_time_out; + OBUFDS exp_time_out_pin (.O(exp_time_out_p),.OB(exp_time_out_n),.I(exp_time_out)); + defparam exp_time_out_pin.IOSTANDARD = "LVDS_25"; - wire dcm_rst = ~&clock_ready_d & |clock_ready_d; - wire clk_muxed = clock_ready ? clk_fpga : aux_clk; + wire exp_user_in; + IBUFDS exp_user_in_pin (.O(exp_user_in),.I(exp_user_in_p),.IB(exp_user_in_n)); + defparam exp_user_in_pin.IOSTANDARD = "LVDS_25"; + + wire exp_user_out; + OBUFDS exp_user_out_pin (.O(exp_user_out_p),.OB(exp_user_out_n),.I(exp_user_out)); + defparam exp_user_out_pin.IOSTANDARD = "LVDS_25"; - wire adc_on_a, adc_on_b, adc_oe_a, adc_oe_b; - assign adc_oen_a = ~adc_oe_a; - assign adc_oen_b = ~adc_oe_b; - assign adc_pdn_a = ~adc_on_a; - assign adc_pdn_b = ~adc_on_b; + wire dcm_rst = 0; + wire [13:0] adc_a, adc_b; +`ifdef LVDS + capture_ddrlvds #(.WIDTH(14)) capture_ddrlvds + (.clk(dsp_clk), .ssclk_p(ADC_clkout_p), .ssclk_n(ADC_clkout_n), + .in_p({{ADCA_12_p, ADCA_10_p, ADCA_8_p, ADCA_6_p, ADCA_4_p, ADCA_2_p, ADCA_0_p}, + {ADCB_12_p, ADCB_10_p, ADCB_8_p, ADCB_6_p, ADCB_4_p, ADCB_2_p, ADCB_0_p}}), + .in_n({{ADCA_12_n, ADCA_10_n, ADCA_8_n, ADCA_6_n, ADCA_4_n, ADCA_2_n, ADCA_0_n}, + {ADCB_12_n, ADCB_10_n, ADCB_8_n, ADCB_6_n, ADCB_4_n, ADCB_2_n, ADCB_0_n}}), + .out({adc_a,adc_b})); +`else + assign adc_a = {ADCA_12_p,ADCA_12_n, ADCA_10_p,ADCA_10_n, ADCA_8_p,ADCA_8_n, ADCA_6_p,ADCA_6_n, + ADCA_4_p,ADCA_4_n, ADCA_2_p,ADCA_2_n, ADCA_0_p,ADCA_0_n }; + assign adc_b = {ADCB_12_p,ADCB_12_n, ADCB_10_p,ADCB_10_n, ADCB_8_p,ADCB_8_n, ADCB_6_p,ADCB_6_n, + ADCB_4_p,ADCB_4_n, ADCB_2_p,ADCB_2_n, ADCB_0_p,ADCB_0_n }; + +`endif // !`ifdef LVDS + // Handle Clocks DCM DCM_INST (.CLKFB(dsp_clk), - .CLKIN(clk_muxed), + .CLKIN(clk_fpga), .DSSEN(0), .PSCLK(0), .PSEN(0), @@ -207,23 +209,26 @@ module u2plus IOBUF sda_pin(.O(sda_pad_i), .IO(SDA), .I(sda_pad_o), .T(sda_pad_oen_o)); // LEDs are active low outputs - wire [4:0] leds_int; - assign leds = ~leds_int; // drive low to turn on leds + wire [5:0] leds_int; + assign {leds,ETH_LED} = ~leds_int; // drive low to turn on leds // SPI - wire miso, mosi, sclk_int; - assign {sclk,sdi} = (~sen_clk | ~sen_dac) ? {sclk_int,mosi} : 2'b0; - assign {sclk_tx_db,sdi_tx_db} = ~sen_tx_db ? {sclk_int,mosi} : 2'b0; - assign {sclk_tx_dac,sdi_tx_dac} = ~sen_tx_dac ? {sclk_int,mosi} : 2'b0; - assign {sclk_tx_adc,sdi_tx_adc} = ~sen_tx_adc ? {sclk_int,mosi} : 2'b0; - assign {sclk_rx_db,sdi_rx_db} = ~sen_rx_db ? {sclk_int,mosi} : 2'b0; - assign {sclk_rx_dac,sdi_rx_dac} = ~sen_rx_dac ? {sclk_int,mosi} : 2'b0; - assign {sclk_rx_adc,sdi_rx_adc} = ~sen_rx_adc ? {sclk_int,mosi} : 2'b0; - - assign miso = (~sen_clk & sdo) | (~sen_dac & sdo) | - (~sen_tx_db & sdo_tx_db) | (~sen_tx_adc & sdo_tx_adc) | - (~sen_rx_db & sdo_rx_db) | (~sen_rx_adc & sdo_rx_adc); + wire miso, mosi, sclk; + assign {SCLK_CLK,MOSI_CLK} = ~SEN_CLK ? {sclk,mosi} : 2'B0; + assign {SCLK_DAC,MOSI_DAC} = ~SEN_DAC ? {sclk,mosi} : 2'B0; + assign {SCLK_ADC,MOSI_ADC} = ~SEN_ADC ? {sclk,mosi} : 2'B0; + assign {SCLK_TX_DB,MOSI_TX_DB} = ~SEN_TX_DB ? {sclk,mosi} : 2'B0; + assign {SCLK_TX_DAC,MOSI_TX_DAC} = ~SEN_TX_DAC ? {sclk,mosi} : 2'B0; + assign {SCLK_TX_ADC,MOSI_TX_ADC} = ~SEN_TX_ADC ? {sclk,mosi} : 2'B0; + assign {SCLK_RX_DB,MOSI_RX_DB} = ~SEN_RX_DB ? {sclk,mosi} : 2'B0; + assign {SCLK_RX_DAC,MOSI_RX_DAC} = ~SEN_RX_DAC ? {sclk,mosi} : 2'B0; + assign {SCLK_RX_ADC,MOSI_RX_ADC} = ~SEN_RX_ADC ? {sclk,mosi} : 2'B0; + + assign miso = (~SEN_CLK & MISO_CLK) | (~SEN_DAC & MISO_DAC) | + (~SEN_TX_DB & MISO_TX_DB) | (~SEN_TX_ADC & MISO_TX_ADC) | + (~SEN_RX_DB & MISO_RX_DB) | (~SEN_RX_ADC & MISO_RX_ADC); + wire GMII_TX_EN_unreg, GMII_TX_ER_unreg; wire [7:0] GMII_TXD_unreg; wire GMII_GTX_CLK_int; @@ -289,8 +294,8 @@ module u2plus .leds (leds_int), .debug (debug[31:0]), .debug_clk (debug_clk[1:0]), - .exp_pps_in (exp_pps_in), - .exp_pps_out (exp_pps_out), + .exp_pps_in (exp_time_in), + .exp_pps_out (exp_time_out), .GMII_COL (GMII_COL), .GMII_CRS (GMII_CRS), .GMII_TXD (GMII_TXD_unreg[7:0]), @@ -306,7 +311,6 @@ module u2plus .MDC (MDC), .PHY_INTn (PHY_INTn), .PHY_RESETn (PHY_RESETn), - .PHY_CLK (PHY_CLK), .ser_enable (ser_enable), .ser_prbsen (ser_prbsen), .ser_loopen (ser_loopen), @@ -333,8 +337,8 @@ module u2plus .adc_ovf_b (adc_ovf_b), .adc_on_b (adc_on_b), .adc_oe_b (adc_oe_b), - .dac_a (dac_a[15:0]), - .dac_b (dac_b[15:0]), + .dac_a (DACA[15:0]), + .dac_b (DACB[15:0]), .scl_pad_i (scl_pad_i), .scl_pad_o (scl_pad_o), .scl_pad_oen_o (scl_pad_oen_o), @@ -367,11 +371,17 @@ module u2plus .RAM_OEn (RAM_OEn), .RAM_LDn (RAM_LDn), .uart_tx_o (uart_tx_o), - //.uart_rx_i (uart_rx_i), - .uart_rx_i (), + .uart_rx_i (uart_rx_i), .uart_baud_o (), .sim_mode (1'b0), .clock_divider (2) ); + + assign RAM_ZZ = 1; + assign flash_clk = 0; + assign flash_cs = 1; + assign flash_mosi = 0; + assign RAM_BWn = 4'b1111; + assign TXD = 3'b111; endmodule // u2plus -- cgit v1.2.3 From 1f8934a3b3750eecf8f7c99938f064db27c83790 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 7 Jun 2010 12:12:44 -0700 Subject: works, leds on front count up. --- usrp2/top/safe_u2plus/safe_u2plus.v | 343 +----------------------------------- 1 file changed, 2 insertions(+), 341 deletions(-) diff --git a/usrp2/top/safe_u2plus/safe_u2plus.v b/usrp2/top/safe_u2plus/safe_u2plus.v index 38b276000..dca9688c5 100644 --- a/usrp2/top/safe_u2plus/safe_u2plus.v +++ b/usrp2/top/safe_u2plus/safe_u2plus.v @@ -4,130 +4,12 @@ module safe_u2plus ( input CLK_FPGA_P, input CLK_FPGA_N, // Diff - - // ADC - //input ADC_clkout_p, //input ADC_clkout_n, - //input ADCA_12_p, //input ADCA_12_n, - //input ADCA_10_p, //input ADCA_10_n, - //input ADCA_8_p, //input ADCA_8_n, - //input ADCA_6_p, //input ADCA_6_n, - //input ADCA_4_p, //input ADCA_4_n, - //input ADCA_2_p, //input ADCA_2_n, - //input ADCA_0_p, //input ADCA_0_n, - //input ADCB_12_p, //input ADCB_12_n, - //input ADCB_10_p, //input ADCB_10_n, - //input ADCB_8_p, //input ADCB_8_n, - //input ADCB_6_p, //input ADCB_6_n, - //input ADCB_4_p, //input ADCB_4_n, - //input ADCB_2_p, //input ADCB_2_n, - //input ADCB_0_p, //input ADCB_0_n, - - // DAC - //output [15:0] DACA, - //output [15:0] DACB, - //input DAC_LOCK, // unused for now - - // DB IO Pins - //inout [15:0] io_tx, - //inout [15:0] io_rx, - - // Misc, debug output [5:1] leds, // LED4 is shared w/INIT_B - //input FPGA_RESET, - //output [1:0] debug_clk, - //output [31:0] debug, - //output [3:1] TXD, //input [3:1] RXD, // UARTs - ////input [3:0] dipsw, // Forgot DIP Switches... - - // Clock Gen Control - //output [1:0] clk_en, - //output [1:0] clk_sel, - //input CLK_FUNC, // FIXME is an //input to control the 9510 - //input CLK_STATUS, - - //inout SCL, //inout SDA, // I2C - - // PPS - //input PPS_IN, //input PPS2_IN, - - // SPI - //output SEN_CLK, //output SCLK_CLK, //output MOSI_CLK, //input MISO_CLK, - //output SEN_DAC, //output SCLK_DAC, //output MOSI_DAC, //input MISO_DAC, - //output SEN_ADC, //output SCLK_ADC, //output MOSI_ADC, - //output SEN_TX_DB, //output SCLK_TX_DB, //output MOSI_TX_DB, //input MISO_TX_DB, - //output SEN_TX_DAC, //output SCLK_TX_DAC, //output MOSI_TX_DAC, - //output SEN_TX_ADC, //output SCLK_TX_ADC, //output MOSI_TX_ADC, //input MISO_TX_ADC, - //output SEN_RX_DB, //output SCLK_RX_DB, //output MOSI_RX_DB, //input MISO_RX_DB, - //output SEN_RX_DAC, //output SCLK_RX_DAC, //output MOSI_RX_DAC, - //output SEN_RX_ADC, //output SCLK_RX_ADC, //output MOSI_RX_ADC, //input MISO_RX_ADC, - - // GigE PHY - //input CLK_TO_MAC, - - //output reg [7:0] GMII_TXD, - //output reg GMII_TX_EN, - //output reg GMII_TX_ER, - //output GMII_GTX_CLK, - //input GMII_TX_CLK, // 100mbps clk - - //input GMII_RX_CLK, - //input [7:0] GMII_RXD, - //input GMII_RX_DV, - //input GMII_RX_ER, - //input GMII_COL, - //input GMII_CRS, - - //input PHY_INTn, // open drain - //inout MDIO, - //output MDC, - //output PHY_RESETn, output ETH_LED - - //input POR, - - // Expansion - //input exp_time_in_p, //input exp_time_in_n, // Diff - //output exp_time_out_p, //output exp_time_out_n, // Diff - //input exp_user_in_p, //input exp_user_in_n, // Diff - //output exp_user_out_p, //output exp_user_out_n, // Diff - - // SERDES - //output ser_enable, - //output ser_prbsen, - //output ser_loopen, - //output ser_rx_en, - - //output ser_tx_clk, - //output reg [15:0] ser_t, - //output reg ser_tklsb, - //output reg ser_tkmsb, - - //input ser_rx_clk, - //input [15:0] ser_r, - //input ser_rklsb, - //input ser_rkmsb, - - // SRAM - //inout [35:0] RAM_D, - //output [20:0] RAM_A, - //output [3:0] RAM_BWn, - //output RAM_ZZ, - //output RAM_LDn, - //output RAM_OEn, - //output RAM_WEn, - //output RAM_CENn, - //output RAM_CLK, - - // SPI Flash - //output flash_cs, - //output flash_clk, - //output flash_mosi, - //input flash_miso ); - // FPGA-specific pins connections - wire clk_fpga, dsp_clk, clk_div, dcm_out, wb_clk, clock_ready; - + wire clk_fpga; + IBUFGDS clk_fpga_pin (.O(clk_fpga),.I(CLK_FPGA_P),.IB(CLK_FPGA_N)); defparam clk_fpga_pin.IOSTANDARD = "LVPECL_25"; @@ -138,225 +20,4 @@ module safe_u2plus assign {leds,ETH_LED} = ~ctr[29:24]; - -/* - wire exp_time_in; - IBUFDS exp_time_in_pin (.O(exp_time_in),.I(exp_time_in_p),.IB(exp_time_in_n)); - defparam exp_time_in_pin.IOSTANDARD = "LVDS_25"; - - wire exp_time_out; - OBUFDS exp_time_out_pin (.O(exp_time_out_p),.OB(exp_time_out_n),.I(exp_time_out)); - defparam exp_time_out_pin.IOSTANDARD = "LVDS_25"; - - wire dcm_rst = 0; - - wire [13:0] adc_a, adc_b; - - capture_ddrlvds #(.WIDTH(14)) capture_ddrlvds - (.clk(dsp_clk), .ssclk_p(ADC_clkout_p), .ssclk_n(ADC_clkout_n), - .in_p({{ADCA_12_p, ADCA_10_p, ADCA_8_p, ADCA_6_p, ADCA_4_p, ADCA_2_p, ADCA_0_p}, - {ADCB_12_p, ADCB_10_p, ADCB_8_p, ADCB_6_p, ADCB_4_p, ADCB_2_p, ADCB_0_p}}), - .in_n({{ADCA_12_n, ADCA_10_n, ADCA_8_n, ADCA_6_n, ADCA_4_n, ADCA_2_n, ADCA_0_n}, - {ADCB_12_n, ADCB_10_n, ADCB_8_n, ADCB_6_n, ADCB_4_n, ADCB_2_n, ADCB_0_n}}), - .out({adc_a,adc_b})); - - // Handle Clocks - DCM DCM_INST (.CLKFB(dsp_clk), - .CLKIN(clk_fpga), - .DSSEN(0), - .PSCLK(0), - .PSEN(0), - .PSINCDEC(0), - .RST(dcm_rst), - .CLKDV(clk_div), - .CLKFX(), - .CLKFX180(), - .CLK0(dcm_out), - .CLK2X(), - .CLK2X180(), - .CLK90(), - .CLK180(), - .CLK270(), - .LOCKED(LOCKED_OUT), - .PSDONE(), - .STATUS()); - defparam DCM_INST.CLK_FEEDBACK = "1X"; - defparam DCM_INST.CLKDV_DIVIDE = 2.0; - defparam DCM_INST.CLKFX_DIVIDE = 1; - defparam DCM_INST.CLKFX_MULTIPLY = 4; - defparam DCM_INST.CLKIN_DIVIDE_BY_2 = "FALSE"; - defparam DCM_INST.CLKIN_PERIOD = 10.000; - defparam DCM_INST.CLKOUT_PHASE_SHIFT = "NONE"; - defparam DCM_INST.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS"; - defparam DCM_INST.DFS_FREQUENCY_MODE = "LOW"; - defparam DCM_INST.DLL_FREQUENCY_MODE = "LOW"; - defparam DCM_INST.DUTY_CYCLE_CORRECTION = "TRUE"; - defparam DCM_INST.FACTORY_JF = 16'h8080; - defparam DCM_INST.PHASE_SHIFT = 0; - defparam DCM_INST.STARTUP_WAIT = "FALSE"; - - BUFG dspclk_BUFG (.I(dcm_out), .O(dsp_clk)); - BUFG wbclk_BUFG (.I(clk_div), .O(wb_clk)); - - // I2C -- Don't use external transistors for open drain, the FPGA implements this - IOBUF scl_pin(.O(scl_pad_i), .IO(SCL), .I(scl_pad_o), .T(scl_pad_oen_o)); - IOBUF sda_pin(.O(sda_pad_i), .IO(SDA), .I(sda_pad_o), .T(sda_pad_oen_o)); - - // LEDs are active low outputs - wire [4:0] leds_int; - assign leds = ~leds_int; // drive low to turn on leds - - // SPI - wire miso, mosi, sclk; - - assign {SCLK_CLK,MOSI_CLK} = ~SEN_CLK ? {sclk,mosi} : 2'B0; - assign {SCLK_DAC,MOSI_DAC} = ~SEN_DAC ? {sclk,mosi} : 2'B0; - assign {SCLK_ADC,MOSI_ADC} = ~SEN_ADC ? {sclk,mosi} : 2'B0; - assign {SCLK_TX_DB,MOSI_TX_DB} = ~SEN_TX_DB ? {sclk,mosi} : 2'B0; - assign {SCLK_TX_DAC,MOSI_TX_DAC} = ~SEN_TX_DAC ? {sclk,mosi} : 2'B0; - assign {SCLK_TX_ADC,MOSI_TX_ADC} = ~SEN_TX_ADC ? {sclk,mosi} : 2'B0; - assign {SCLK_RX_DB,MOSI_RX_DB} = ~SEN_RX_DB ? {sclk,mosi} : 2'B0; - assign {SCLK_RX_DAC,MOSI_RX_DAC} = ~SEN_RX_DAC ? {sclk,mosi} : 2'B0; - assign {SCLK_RX_ADC,MOSI_RX_ADC} = ~SEN_RX_ADC ? {sclk,mosi} : 2'B0; - - assign miso = (~SEN_CLK & MISO_CLK) | (~SEN_DAC & MISO_DAC) | - (~SEN_TX_DB & MISO_TX_DB) | (~SEN_TX_ADC & MISO_TX_ADC) | - (~SEN_RX_DB & MISO_RX_DB) | (~SEN_RX_ADC & MISO_RX_ADC); - - wire GMII_TX_EN_unreg, GMII_TX_ER_unreg; - wire [7:0] GMII_TXD_unreg; - wire GMII_GTX_CLK_int; - - always @(posedge GMII_GTX_CLK_int) - begin - GMII_TX_EN <= GMII_TX_EN_unreg; - GMII_TX_ER <= GMII_TX_ER_unreg; - GMII_TXD <= GMII_TXD_unreg; - end - - OFDDRRSE OFDDRRSE_gmii_inst - (.Q(GMII_GTX_CLK), // Data output (connect directly to top-level port) - .C0(GMII_GTX_CLK_int), // 0 degree clock input - .C1(~GMII_GTX_CLK_int), // 180 degree clock input - .CE(1), // Clock enable input - .D0(0), // Posedge data input - .D1(1), // Negedge data input - .R(0), // Synchronous reset input - .S(0) // Synchronous preset input - ); - - wire ser_tklsb_unreg, ser_tkmsb_unreg; - wire [15:0] ser_t_unreg; - wire ser_tx_clk_int; - - always @(posedge ser_tx_clk_int) - begin - ser_tklsb <= ser_tklsb_unreg; - ser_tkmsb <= ser_tkmsb_unreg; - ser_t <= ser_t_unreg; - end - - assign ser_tx_clk = clk_fpga; - - reg [15:0] ser_r_int; - reg ser_rklsb_int, ser_rkmsb_int; - - always @(posedge ser_rx_clk) - begin - ser_r_int <= ser_r; - ser_rklsb_int <= ser_rklsb; - ser_rkmsb_int <= ser_rkmsb; - end - - u2_core u2_core(.dsp_clk (dsp_clk), - .wb_clk (wb_clk), - .clock_ready (clock_ready), - .clk_to_mac (clk_to_mac), - .pps_in (pps_in), - .leds (leds_int), - .debug (debug[31:0]), - .debug_clk (debug_clk[1:0]), - .exp_pps_in (exp_time_in), - .exp_pps_out (exp_time_out), - .GMII_COL (GMII_COL), - .GMII_CRS (GMII_CRS), - .GMII_TXD (GMII_TXD_unreg[7:0]), - .GMII_TX_EN (GMII_TX_EN_unreg), - .GMII_TX_ER (GMII_TX_ER_unreg), - .GMII_GTX_CLK (GMII_GTX_CLK_int), - .GMII_TX_CLK (GMII_TX_CLK), - .GMII_RXD (GMII_RXD[7:0]), - .GMII_RX_CLK (GMII_RX_CLK), - .GMII_RX_DV (GMII_RX_DV), - .GMII_RX_ER (GMII_RX_ER), - .MDIO (MDIO), - .MDC (MDC), - .PHY_INTn (PHY_INTn), - .PHY_RESETn (PHY_RESETn), - .ser_enable (ser_enable), - .ser_prbsen (ser_prbsen), - .ser_loopen (ser_loopen), - .ser_rx_en (ser_rx_en), - .ser_tx_clk (ser_tx_clk_int), - .ser_t (ser_t_unreg[15:0]), - .ser_tklsb (ser_tklsb_unreg), - .ser_tkmsb (ser_tkmsb_unreg), - .ser_rx_clk (ser_rx_clk), - .ser_r (ser_r_int[15:0]), - .ser_rklsb (ser_rklsb_int), - .ser_rkmsb (ser_rkmsb_int), - .cpld_start (cpld_start), - .cpld_mode (cpld_mode), - .cpld_done (cpld_done), - .cpld_din (cpld_din), - .cpld_clk (cpld_clk), - .cpld_detached (cpld_detached), - .adc_a (adc_a[13:0]), - .adc_ovf_a (adc_ovf_a), - .adc_on_a (adc_on_a), - .adc_oe_a (adc_oe_a), - .adc_b (adc_b[13:0]), - .adc_ovf_b (adc_ovf_b), - .adc_on_b (adc_on_b), - .adc_oe_b (adc_oe_b), - .dac_a (DACA[15:0]), - .dac_b (DACB[15:0]), - .scl_pad_i (scl_pad_i), - .scl_pad_o (scl_pad_o), - .scl_pad_oen_o (scl_pad_oen_o), - .sda_pad_i (sda_pad_i), - .sda_pad_o (sda_pad_o), - .sda_pad_oen_o (sda_pad_oen_o), - .clk_en (clk_en[1:0]), - .clk_sel (clk_sel[1:0]), - .clk_func (clk_func), - .clk_status (clk_status), - .sclk (sclk_int), - .mosi (mosi), - .miso (miso), - .sen_clk (sen_clk), - .sen_dac (sen_dac), - .sen_tx_db (sen_tx_db), - .sen_tx_adc (sen_tx_adc), - .sen_tx_dac (sen_tx_dac), - .sen_rx_db (sen_rx_db), - .sen_rx_adc (sen_rx_adc), - .sen_rx_dac (sen_rx_dac), - .io_tx (io_tx[15:0]), - .io_rx (io_rx[15:0]), - .RAM_D (RAM_D), - .RAM_A (RAM_A), - .RAM_CE1n (RAM_CE1n), - .RAM_CENn (RAM_CENn), - .RAM_CLK (RAM_CLK), - .RAM_WEn (RAM_WEn), - .RAM_OEn (RAM_OEn), - .RAM_LDn (RAM_LDn), - .uart_tx_o (uart_tx_o), - .uart_rx_i (uart_rx_i), - .uart_baud_o (), - .sim_mode (1'b0), - .clock_divider (2) - ); -*/ endmodule // safe_u2plus -- cgit v1.2.3 From b7e1b9ce77a0df46a5b336fda1e1972aa8199488 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 7 Jun 2010 14:22:30 -0700 Subject: compiles now, added clock constraints --- usrp2/top/u2plus/Makefile | 28 +++++++++++++++++++++++++--- usrp2/top/u2plus/u2plus.ucf | 18 ++++++++++++++++++ 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/usrp2/top/u2plus/Makefile b/usrp2/top/u2plus/Makefile index 305b5b9e3..29928e03e 100644 --- a/usrp2/top/u2plus/Makefile +++ b/usrp2/top/u2plus/Makefile @@ -70,6 +70,7 @@ control_lib/ram_harv_cache.v \ control_lib/ram_loader.v \ control_lib/setting_reg.v \ control_lib/settings_bus.v \ +control_lib/settings_bus_crossclock.v \ control_lib/srl.v \ control_lib/system_control.v \ control_lib/wb_1master.v \ @@ -82,7 +83,18 @@ control_lib/sd_spi.v \ control_lib/sd_spi_wb.v \ control_lib/wb_bridge_16_32.v \ control_lib/reset_sync.v \ +control_lib/priority_enc.v \ +control_lib/pic.v \ +vrt/vita_rx_control.v \ +vrt/vita_rx_framer.v \ +vrt/vita_tx_control.v \ +vrt/vita_tx_deframer.v \ +udp/udp_wrapper.v \ +udp/fifo19_rxrealign.v \ +udp/prot_eng_tx.v \ +udp/add_onescomp.v \ simple_gemac/simple_gemac_wrapper.v \ +simple_gemac/simple_gemac_wrapper19.v \ simple_gemac/simple_gemac.v \ simple_gemac/simple_gemac_wb.v \ simple_gemac/simple_gemac_tx.v \ @@ -103,11 +115,15 @@ control_lib/newfifo/buffer_pool.v \ control_lib/newfifo/fifo_2clock.v \ control_lib/newfifo/fifo_2clock_cascade.v \ control_lib/newfifo/ll8_shortfifo.v \ -control_lib/newfifo/ll8_to_fifo36.v \ control_lib/newfifo/fifo_short.v \ control_lib/newfifo/fifo_long.v \ control_lib/newfifo/fifo_cascade.v \ control_lib/newfifo/fifo36_to_ll8.v \ +control_lib/newfifo/ll8_to_fifo36.v \ +control_lib/newfifo/fifo19_to_ll8.v \ +control_lib/newfifo/ll8_to_fifo19.v \ +control_lib/newfifo/fifo36_to_fifo19.v \ +control_lib/newfifo/fifo19_to_fifo36.v \ control_lib/longfifo.v \ control_lib/shortfifo.v \ control_lib/medfifo.v \ @@ -117,6 +133,10 @@ coregen/fifo_xlnx_512x36_2clk.v \ coregen/fifo_xlnx_512x36_2clk.xco \ coregen/fifo_xlnx_64x36_2clk.v \ coregen/fifo_xlnx_64x36_2clk.xco \ +coregen/fifo_xlnx_16x19_2clk.v \ +coregen/fifo_xlnx_16x19_2clk.xco \ +coregen/fifo_xlnx_16x40_2clk.v \ +coregen/fifo_xlnx_16x40_2clk.xco \ extram/wb_zbt16_b.v \ opencores/8b10b/decode_8b10b.v \ opencores/8b10b/encode_8b10b.v \ @@ -132,7 +152,6 @@ opencores/i2c/rtl/verilog/i2c_master_byte_ctrl.v \ opencores/i2c/rtl/verilog/i2c_master_defines.v \ opencores/i2c/rtl/verilog/i2c_master_top.v \ opencores/i2c/rtl/verilog/timescale.v \ -opencores/simple_pic/rtl/simple_pic.v \ opencores/spi/rtl/verilog/spi_clgen.v \ opencores/spi/rtl/verilog/spi_defines.v \ opencores/spi/rtl/verilog/spi_shift.v \ @@ -170,10 +189,13 @@ serdes/serdes_fc_rx.v \ serdes/serdes_fc_tx.v \ serdes/serdes_rx.v \ serdes/serdes_tx.v \ +timing/time_64bit.v \ +timing/time_compare.v \ timing/time_receiver.v \ timing/time_sender.v \ timing/time_sync.v \ timing/timer.v \ +timing/simple_timer.v \ top/u2_core/u2_core.v \ top/u2plus/capture_ddrlvds.v \ top/u2plus/u2plus.ucf \ @@ -183,7 +205,7 @@ top/u2plus/u2plus.v # Process Properties ################################################## export SYNTHESIZE_PROPERTIES := \ -"Number of Clock Buffers" 6 \ +"Number of Clock Buffers" 8 \ "Pack I/O Registers into IOBs" Yes \ "Optimization Effort" High \ "Optimize Instantiated Primitives" TRUE \ diff --git a/usrp2/top/u2plus/u2plus.ucf b/usrp2/top/u2plus/u2plus.ucf index 31404dda9..a3cd61906 100755 --- a/usrp2/top/u2plus/u2plus.ucf +++ b/usrp2/top/u2plus/u2plus.ucf @@ -399,3 +399,21 @@ NET "flash_cs" LOC = "AA7" ; #NET "unnamed_net11" LOC = "G7" ; # TDI #NET "unnamed_net10" LOC = "A25" ; # TCK #NET "unnamed_net20" LOC = "V20" ; # SUSPEND + + +NET "clk_to_mac" TNM_NET = "clk_to_mac"; +TIMESPEC "TS_clk_to_mac" = PERIOD "clk_to_mac" 8 ns HIGH 50 %; + +NET "clk_fpga_p" TNM_NET = "clk_fpga_p"; +TIMESPEC "TS_clk_fpga_p" = PERIOD "clk_fpga_p" 10 ns HIGH 50 %; + +NET "cpld_clk" TNM_NET = "cpld_clk"; +TIMESPEC "TS_cpld_clk" = PERIOD "cpld_clk" 40 ns HIGH 50 %; + +NET "GMII_RX_CLK" TNM_NET = "GMII_RX_CLK"; +TIMESPEC "TS_GMII_RX_CLK" = PERIOD "GMII_RX_CLK" 8 ns HIGH 50 %; + +NET "ser_rx_clk" TNM_NET = "ser_rx_clk"; +TIMESPEC "TS_ser_rx_clk" = PERIOD "ser_rx_clk" 10 ns HIGH 50 %; + +TIMESPEC "TS_clk_div_to_dsp_clk" = FROM "clk_div" TO "dcm_out" 10 ns; -- cgit v1.2.3 From fb704918b285a7d039cda27daf35f628442a7dca Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Wed, 9 Jun 2010 18:25:35 -0700 Subject: actually generates an image --- usrp2/top/u2plus/Makefile | 6 +++--- usrp2/top/u2plus/u2plus.ucf | 3 --- usrp2/top/u2plus/u2plus.v | 17 ++++++----------- 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/usrp2/top/u2plus/Makefile b/usrp2/top/u2plus/Makefile index 29928e03e..777a03662 100644 --- a/usrp2/top/u2plus/Makefile +++ b/usrp2/top/u2plus/Makefile @@ -29,7 +29,7 @@ ISE_HELPER := ../tcl/ise_helper.tcl ################################################## # Project Setup ################################################## -BUILD_DIR := build/ +BUILD_DIR := build$(ISE)/ export TOP_MODULE := u2plus export PROJ_FILE := $(BUILD_DIR)$(TOP_MODULE).ise @@ -172,7 +172,7 @@ sdr_lib/clip_reg.v \ sdr_lib/cordic.v \ sdr_lib/cordic_z24.v \ sdr_lib/cordic_stage.v \ -sdr_lib/dsp_core_rx.v \ +sdr_lib/dsp_core_rx_udp.v \ sdr_lib/dsp_core_tx.v \ sdr_lib/hb_dec.v \ sdr_lib/hb_interp.v \ @@ -196,7 +196,7 @@ timing/time_sender.v \ timing/time_sync.v \ timing/timer.v \ timing/simple_timer.v \ -top/u2_core/u2_core.v \ +top/u2plus/u2plus_core.v \ top/u2plus/capture_ddrlvds.v \ top/u2plus/u2plus.ucf \ top/u2plus/u2plus.v diff --git a/usrp2/top/u2plus/u2plus.ucf b/usrp2/top/u2plus/u2plus.ucf index a3cd61906..00838e19d 100755 --- a/usrp2/top/u2plus/u2plus.ucf +++ b/usrp2/top/u2plus/u2plus.ucf @@ -407,9 +407,6 @@ TIMESPEC "TS_clk_to_mac" = PERIOD "clk_to_mac" 8 ns HIGH 50 %; NET "clk_fpga_p" TNM_NET = "clk_fpga_p"; TIMESPEC "TS_clk_fpga_p" = PERIOD "clk_fpga_p" 10 ns HIGH 50 %; -NET "cpld_clk" TNM_NET = "cpld_clk"; -TIMESPEC "TS_cpld_clk" = PERIOD "cpld_clk" 40 ns HIGH 50 %; - NET "GMII_RX_CLK" TNM_NET = "GMII_RX_CLK"; TIMESPEC "TS_GMII_RX_CLK" = PERIOD "GMII_RX_CLK" 8 ns HIGH 50 %; diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index fef23af60..13c7a811f 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -286,7 +286,7 @@ module u2plus .S(0) // Synchronous preset input ); */ - u2_core u2_core(.dsp_clk (dsp_clk), + u2plus_core u2p_c(.dsp_clk (dsp_clk), .wb_clk (wb_clk), .clock_ready (clock_ready), .clk_to_mac (clk_to_mac), @@ -323,12 +323,6 @@ module u2plus .ser_r (ser_r_int[15:0]), .ser_rklsb (ser_rklsb_int), .ser_rkmsb (ser_rkmsb_int), - .cpld_start (cpld_start), - .cpld_mode (cpld_mode), - .cpld_done (cpld_done), - .cpld_din (cpld_din), - .cpld_clk (cpld_clk), - .cpld_detached (cpld_detached), .adc_a (adc_a[13:0]), .adc_ovf_a (adc_ovf_a), .adc_on_a (adc_on_a), @@ -374,13 +368,14 @@ module u2plus .uart_rx_i (uart_rx_i), .uart_baud_o (), .sim_mode (1'b0), - .clock_divider (2) + .clock_divider (2), + .spiflash_cs (flash_cs), + .spiflash_clk (flash_clk), + .spiflash_miso (flash_miso), + .spiflash_mosi (flash_mosi) ); assign RAM_ZZ = 1; - assign flash_clk = 0; - assign flash_cs = 1; - assign flash_mosi = 0; assign RAM_BWn = 4'b1111; assign TXD = 3'b111; -- cgit v1.2.3 From 6c7c7e964ea9142c79f826b4407635760e6f01c5 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 14 Jun 2010 12:14:23 -0700 Subject: build using new build system --- usrp2/top/u2plus/Makefile | 239 +++++++--------------------------------------- 1 file changed, 34 insertions(+), 205 deletions(-) diff --git a/usrp2/top/u2plus/Makefile b/usrp2/top/u2plus/Makefile index 777a03662..23eb8908e 100644 --- a/usrp2/top/u2plus/Makefile +++ b/usrp2/top/u2plus/Makefile @@ -1,37 +1,29 @@ # # Copyright 2008 Ettus Research LLC -# -# This file is part of GNU Radio -# -# GNU Radio is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3, or (at your option) -# any later version. -# -# GNU Radio is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Radio; see the file COPYING. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, -# Boston, MA 02110-1301, USA. -# +# ################################################## -# xtclsh Shell and tcl Script Path +# Project Setup ################################################## -#XTCLSH := /opt/Xilinx/10.1/ISE/bin/lin/xtclsh -XTCLSH := xtclsh -ISE_HELPER := ../tcl/ise_helper.tcl +TOP_MODULE = u2plus +BUILD_DIR = $(abspath build$(ISE)) ################################################## -# Project Setup +# Include other makefiles ################################################## -BUILD_DIR := build$(ISE)/ -export TOP_MODULE := u2plus -export PROJ_FILE := $(BUILD_DIR)$(TOP_MODULE).ise + +include ../Makefile.common +include ../../fifo/Makefile.srcs +include ../../control_lib/Makefile.srcs +include ../../sdr_lib/Makefile.srcs +include ../../serdes/Makefile.srcs +include ../../simple_gemac/Makefile.srcs +include ../../timing/Makefile.srcs +include ../../opencores/Makefile.srcs +include ../../vrt/Makefile.srcs +include ../../udp/Makefile.srcs +include ../../coregen/Makefile.srcs +include ../../extram/Makefile.srcs ################################################## # Project Properties @@ -51,160 +43,20 @@ simulator "ISE Simulator (VHDL/Verilog)" \ ################################################## # Sources ################################################## -export SOURCE_ROOT := ../../../ -export SOURCES := \ -control_lib/CRC16_D16.v \ -control_lib/atr_controller.v \ -control_lib/bin2gray.v \ -control_lib/dcache.v \ -control_lib/decoder_3_8.v \ -control_lib/dpram32.v \ -control_lib/gray2bin.v \ -control_lib/gray_send.v \ -control_lib/icache.v \ -control_lib/mux4.v \ -control_lib/mux8.v \ -control_lib/nsgpio.v \ -control_lib/ram_2port.v \ -control_lib/ram_harv_cache.v \ -control_lib/ram_loader.v \ -control_lib/setting_reg.v \ -control_lib/settings_bus.v \ -control_lib/settings_bus_crossclock.v \ -control_lib/srl.v \ -control_lib/system_control.v \ -control_lib/wb_1master.v \ -control_lib/wb_readback_mux.v \ -control_lib/simple_uart.v \ -control_lib/simple_uart_tx.v \ -control_lib/simple_uart_rx.v \ -control_lib/oneshot_2clk.v \ -control_lib/sd_spi.v \ -control_lib/sd_spi_wb.v \ -control_lib/wb_bridge_16_32.v \ -control_lib/reset_sync.v \ -control_lib/priority_enc.v \ -control_lib/pic.v \ -vrt/vita_rx_control.v \ -vrt/vita_rx_framer.v \ -vrt/vita_tx_control.v \ -vrt/vita_tx_deframer.v \ -udp/udp_wrapper.v \ -udp/fifo19_rxrealign.v \ -udp/prot_eng_tx.v \ -udp/add_onescomp.v \ -simple_gemac/simple_gemac_wrapper.v \ -simple_gemac/simple_gemac_wrapper19.v \ -simple_gemac/simple_gemac.v \ -simple_gemac/simple_gemac_wb.v \ -simple_gemac/simple_gemac_tx.v \ -simple_gemac/simple_gemac_rx.v \ -simple_gemac/crc.v \ -simple_gemac/delay_line.v \ -simple_gemac/flow_ctrl_tx.v \ -simple_gemac/flow_ctrl_rx.v \ -simple_gemac/address_filter.v \ -simple_gemac/ll8_to_txmac.v \ -simple_gemac/rxmac_to_ll8.v \ -simple_gemac/miim/eth_miim.v \ -simple_gemac/miim/eth_clockgen.v \ -simple_gemac/miim/eth_outputcontrol.v \ -simple_gemac/miim/eth_shiftreg.v \ -control_lib/newfifo/buffer_int.v \ -control_lib/newfifo/buffer_pool.v \ -control_lib/newfifo/fifo_2clock.v \ -control_lib/newfifo/fifo_2clock_cascade.v \ -control_lib/newfifo/ll8_shortfifo.v \ -control_lib/newfifo/fifo_short.v \ -control_lib/newfifo/fifo_long.v \ -control_lib/newfifo/fifo_cascade.v \ -control_lib/newfifo/fifo36_to_ll8.v \ -control_lib/newfifo/ll8_to_fifo36.v \ -control_lib/newfifo/fifo19_to_ll8.v \ -control_lib/newfifo/ll8_to_fifo19.v \ -control_lib/newfifo/fifo36_to_fifo19.v \ -control_lib/newfifo/fifo19_to_fifo36.v \ -control_lib/longfifo.v \ -control_lib/shortfifo.v \ -control_lib/medfifo.v \ -coregen/fifo_xlnx_2Kx36_2clk.v \ -coregen/fifo_xlnx_2Kx36_2clk.xco \ -coregen/fifo_xlnx_512x36_2clk.v \ -coregen/fifo_xlnx_512x36_2clk.xco \ -coregen/fifo_xlnx_64x36_2clk.v \ -coregen/fifo_xlnx_64x36_2clk.xco \ -coregen/fifo_xlnx_16x19_2clk.v \ -coregen/fifo_xlnx_16x19_2clk.xco \ -coregen/fifo_xlnx_16x40_2clk.v \ -coregen/fifo_xlnx_16x40_2clk.xco \ -extram/wb_zbt16_b.v \ -opencores/8b10b/decode_8b10b.v \ -opencores/8b10b/encode_8b10b.v \ -opencores/aemb/rtl/verilog/aeMB_bpcu.v \ -opencores/aemb/rtl/verilog/aeMB_core_BE.v \ -opencores/aemb/rtl/verilog/aeMB_ctrl.v \ -opencores/aemb/rtl/verilog/aeMB_edk32.v \ -opencores/aemb/rtl/verilog/aeMB_ibuf.v \ -opencores/aemb/rtl/verilog/aeMB_regf.v \ -opencores/aemb/rtl/verilog/aeMB_xecu.v \ -opencores/i2c/rtl/verilog/i2c_master_bit_ctrl.v \ -opencores/i2c/rtl/verilog/i2c_master_byte_ctrl.v \ -opencores/i2c/rtl/verilog/i2c_master_defines.v \ -opencores/i2c/rtl/verilog/i2c_master_top.v \ -opencores/i2c/rtl/verilog/timescale.v \ -opencores/spi/rtl/verilog/spi_clgen.v \ -opencores/spi/rtl/verilog/spi_defines.v \ -opencores/spi/rtl/verilog/spi_shift.v \ -opencores/spi/rtl/verilog/spi_top.v \ -opencores/spi/rtl/verilog/timescale.v \ -sdr_lib/acc.v \ -sdr_lib/add2.v \ -sdr_lib/add2_and_round.v \ -sdr_lib/add2_and_round_reg.v \ -sdr_lib/add2_reg.v \ -sdr_lib/cic_dec_shifter.v \ -sdr_lib/cic_decim.v \ -sdr_lib/cic_int_shifter.v \ -sdr_lib/cic_interp.v \ -sdr_lib/cic_strober.v \ -sdr_lib/clip.v \ -sdr_lib/clip_reg.v \ -sdr_lib/cordic.v \ -sdr_lib/cordic_z24.v \ -sdr_lib/cordic_stage.v \ -sdr_lib/dsp_core_rx_udp.v \ -sdr_lib/dsp_core_tx.v \ -sdr_lib/hb_dec.v \ -sdr_lib/hb_interp.v \ -sdr_lib/round.v \ -sdr_lib/round_reg.v \ -sdr_lib/rx_control.v \ -sdr_lib/rx_dcoffset.v \ -sdr_lib/sign_extend.v \ -sdr_lib/small_hb_dec.v \ -sdr_lib/small_hb_int.v \ -sdr_lib/tx_control.v \ -serdes/serdes.v \ -serdes/serdes_fc_rx.v \ -serdes/serdes_fc_tx.v \ -serdes/serdes_rx.v \ -serdes/serdes_tx.v \ -timing/time_64bit.v \ -timing/time_compare.v \ -timing/time_receiver.v \ -timing/time_sender.v \ -timing/time_sync.v \ -timing/timer.v \ -timing/simple_timer.v \ -top/u2plus/u2plus_core.v \ -top/u2plus/capture_ddrlvds.v \ -top/u2plus/u2plus.ucf \ -top/u2plus/u2plus.v +TOP_SRCS = \ +u2plus_core.v \ +u2plus.v \ +u2plus.ucf + +SOURCES = $(abspath $(TOP_SRCS)) $(FIFO_SRCS) \ +$(CONTROL_LIB_SRCS) $(SDR_LIB_SRCS) $(SERDES_SRCS) \ +$(SIMPLE_GEMAC_SRCS) $(TIMING_SRCS) $(OPENCORES_SRCS) \ +$(VRT_SRCS) $(UDP_SRCS) $(COREGEN_SRCS) $(EXTRAM_SRCS) ################################################## # Process Properties ################################################## -export SYNTHESIZE_PROPERTIES := \ +SYNTHESIZE_PROPERTIES = \ "Number of Clock Buffers" 8 \ "Pack I/O Registers into IOBs" Yes \ "Optimization Effort" High \ @@ -214,10 +66,10 @@ export SYNTHESIZE_PROPERTIES := \ "Use Synchronous Reset" Auto \ "Use Synchronous Set" Auto -export TRANSLATE_PROPERTIES := \ +TRANSLATE_PROPERTIES = \ "Macro Search Path" "$(shell pwd)/../../coregen/" -export MAP_PROPERTIES := \ +MAP_PROPERTIES = \ "Allow Logic Optimization Across Hierarchy" TRUE \ "Map to Input Functions" 4 \ "Optimization Strategy (Cover Mode)" Speed \ @@ -228,41 +80,18 @@ export MAP_PROPERTIES := \ "Combinatorial Logic Optimization" TRUE \ "Register Duplication" TRUE -export PLACE_ROUTE_PROPERTIES := \ +PLACE_ROUTE_PROPERTIES = \ "Place & Route Effort Level (Overall)" High -export STATIC_TIMING_PROPERTIES := \ +STATIC_TIMING_PROPERTIES = \ "Number of Paths in Error/Verbose Report" 10 \ "Report Type" "Error Report" -export GEN_PROG_FILE_PROPERTIES := \ +GEN_PROG_FILE_PROPERTIES = \ "Configuration Rate" 6 \ "Create Binary Configuration File" TRUE \ "Done (Output Events)" 5 \ "Enable Bitstream Compression" TRUE \ "Enable Outputs (Output Events)" 6 -export SIM_MODEL_PROPERTIES := "" - -################################################## -# Make Options -################################################## -all: - @echo make proj, check, synth, bin, or clean - -proj: - PROCESS_RUN="" $(XTCLSH) $(ISE_HELPER) - -check: - PROCESS_RUN="Check Syntax" $(XTCLSH) $(ISE_HELPER) - -synth: - PROCESS_RUN="Synthesize - XST" $(XTCLSH) $(ISE_HELPER) - -bin: - PROCESS_RUN="Generate Programming File" $(XTCLSH) $(ISE_HELPER) - -clean: - rm -rf $(BUILD_DIR) - - +SIM_MODEL_PROPERTIES = "" -- cgit v1.2.3 From afbcdb33f31a90fbdec08ecef98c9680f2bfa940 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 14 Jun 2010 12:15:58 -0700 Subject: new core for u2p, based on u2_core --- usrp2/top/u2plus/u2plus_core.v | 856 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 856 insertions(+) create mode 100644 usrp2/top/u2plus/u2plus_core.v diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v new file mode 100644 index 000000000..d4b138c54 --- /dev/null +++ b/usrp2/top/u2plus/u2plus_core.v @@ -0,0 +1,856 @@ +// //////////////////////////////////////////////////////////////////////////////// +// Module Name: u2_core +// //////////////////////////////////////////////////////////////////////////////// + +module u2plus_core + #(parameter RAM_SIZE=32768) + (// Clocks + input dsp_clk, + input wb_clk, + output clock_ready, + input clk_to_mac, + input pps_in, + + // Misc, debug + output [7:0] leds, + output [31:0] debug, + output [1:0] debug_clk, + + // Expansion + input exp_pps_in, + output exp_pps_out, + + // GMII + // GMII-CTRL + input GMII_COL, + input GMII_CRS, + + // GMII-TX + output [7:0] GMII_TXD, + output GMII_TX_EN, + output GMII_TX_ER, + output GMII_GTX_CLK, + input GMII_TX_CLK, // 100mbps clk + + // GMII-RX + input [7:0] GMII_RXD, + input GMII_RX_CLK, + input GMII_RX_DV, + input GMII_RX_ER, + + // GMII-Management + inout MDIO, + output MDC, + input PHY_INTn, // open drain + output PHY_RESETn, + + // SERDES + output ser_enable, + output ser_prbsen, + output ser_loopen, + output ser_rx_en, + + output ser_tx_clk, + output [15:0] ser_t, + output ser_tklsb, + output ser_tkmsb, + + input ser_rx_clk, + input [15:0] ser_r, + input ser_rklsb, + input ser_rkmsb, + + input por, + output config_success, + + // ADC + input [13:0] adc_a, + input adc_ovf_a, + output adc_on_a, + output adc_oe_a, + + input [13:0] adc_b, + input adc_ovf_b, + output adc_on_b, + output adc_oe_b, + + // DAC + output [15:0] dac_a, + output [15:0] dac_b, + + // I2C + input scl_pad_i, + output scl_pad_o, + output scl_pad_oen_o, + input sda_pad_i, + output sda_pad_o, + output sda_pad_oen_o, + + // Clock Gen Control + output [1:0] clk_en, + output [1:0] clk_sel, + input clk_func, // FIXME is an input to control the 9510 + input clk_status, + + // Generic SPI + output sclk, + output mosi, + input miso, + output sen_clk, + output sen_dac, + output sen_tx_db, + output sen_tx_adc, + output sen_tx_dac, + output sen_rx_db, + output sen_rx_adc, + output sen_rx_dac, + + // GPIO to DBoards + inout [15:0] io_tx, + inout [15:0] io_rx, + + // External RAM + inout [35:0] RAM_D, + output [20:0] RAM_A, + output RAM_CE1n, + output RAM_CENn, + output RAM_CLK, + output RAM_WEn, + output RAM_OEn, + output RAM_LDn, + + // Debug stuff + output uart_tx_o, + input uart_rx_i, + output uart_baud_o, + input sim_mode, + input [3:0] clock_divider, + + output spiflash_cs, output spiflash_clk, input spiflash_miso, output spiflash_mosi + ); + + localparam SR_BUF_POOL = 64; // Uses 1 reg + localparam SR_UDP_SM = 96; // 64 regs + localparam SR_RX_DSP = 160; // 16 + localparam SR_RX_CTRL = 176; // 16 + localparam SR_TIME64 = 192; // 3 + localparam SR_SIMTIMER = 198; // 2 + localparam SR_TX_DSP = 208; // 16 + localparam SR_TX_CTRL = 224; // 16 + + // FIFO Sizes, 9 = 512 lines, 10 = 1024, 11 = 2048 + // all (most?) are 36 bits wide, so 9 is 1 BRAM, 10 is 2, 11 is 4 BRAMs + localparam DSP_TX_FIFOSIZE = 10; + localparam DSP_RX_FIFOSIZE = 10; + localparam ETH_TX_FIFOSIZE = 10; + localparam ETH_RX_FIFOSIZE = 11; + localparam SERDES_TX_FIFOSIZE = 9; + localparam SERDES_RX_FIFOSIZE = 9; // RX currently doesn't use a fifo? + + wire [7:0] set_addr, set_addr_dsp; + wire [31:0] set_data, set_data_dsp; + wire set_stb, set_stb_dsp; + + wire ram_loader_done; + wire ram_loader_rst, wb_rst, dsp_rst; + + wire [31:0] status, status_b0, status_b1, status_b2, status_b3, status_b4, status_b5, status_b6, status_b7; + wire bus_error, spi_int, i2c_int, pps_int, onetime_int, periodic_int, buffer_int; + wire proc_int, overrun, underrun, uart_tx_int, uart_rx_int; + + wire [31:0] debug_gpio_0, debug_gpio_1; + wire [31:0] atr_lines; + + wire [31:0] debug_rx, debug_mac, debug_mac0, debug_mac1, debug_tx_dsp, debug_txc, + debug_serdes0, debug_serdes1, debug_serdes2, debug_rx_dsp, debug_udp; + + wire [15:0] ser_rx_occ, ser_tx_occ, dsp_rx_occ, dsp_tx_occ, eth_rx_occ, eth_tx_occ, eth_rx_occ2; + wire ser_rx_full, ser_tx_full, dsp_rx_full, dsp_tx_full, eth_rx_full, eth_tx_full, eth_rx_full2; + wire ser_rx_empty, ser_tx_empty, dsp_rx_empty, dsp_tx_empty, eth_rx_empty, eth_tx_empty, eth_rx_empty2; + + wire serdes_link_up; + wire epoch; + wire [31:0] irq; + wire [63:0] vita_time; + + // /////////////////////////////////////////////////////////////////////////////////////////////// + // Wishbone Single Master INTERCON + localparam dw = 32; // Data bus width + localparam aw = 16; // Address bus width, for byte addressibility, 16 = 64K byte memory space + localparam sw = 4; // Select width -- 32-bit data bus with 8-bit granularity. + + wire [dw-1:0] m0_dat_o, m0_dat_i; + wire [dw-1:0] s0_dat_o, s1_dat_o, s0_dat_i, s1_dat_i, s2_dat_o, s3_dat_o, s2_dat_i, s3_dat_i, + s4_dat_o, s5_dat_o, s4_dat_i, s5_dat_i, s6_dat_o, s7_dat_o, s6_dat_i, s7_dat_i, + s8_dat_o, s9_dat_o, s8_dat_i, s9_dat_i, sa_dat_o, sa_dat_i, sb_dat_i, sb_dat_o, + sc_dat_i, sc_dat_o, sd_dat_i, sd_dat_o, se_dat_i, se_dat_o, sf_dat_i, sf_dat_o; + wire [aw-1:0] m0_adr,s0_adr,s1_adr,s2_adr,s3_adr,s4_adr,s5_adr,s6_adr,s7_adr,s8_adr,s9_adr,sa_adr,sb_adr,sc_adr, sd_adr, se_adr, sf_adr; + wire [sw-1:0] m0_sel,s0_sel,s1_sel,s2_sel,s3_sel,s4_sel,s5_sel,s6_sel,s7_sel,s8_sel,s9_sel,sa_sel,sb_sel,sc_sel, sd_sel, se_sel, sf_sel; + wire m0_ack,s0_ack,s1_ack,s2_ack,s3_ack,s4_ack,s5_ack,s6_ack,s7_ack,s8_ack,s9_ack,sa_ack,sb_ack,sc_ack, sd_ack, se_ack, sf_ack; + wire m0_stb,s0_stb,s1_stb,s2_stb,s3_stb,s4_stb,s5_stb,s6_stb,s7_stb,s8_stb,s9_stb,sa_stb,sb_stb,sc_stb, sd_stb, se_stb, sf_stb; + wire m0_cyc,s0_cyc,s1_cyc,s2_cyc,s3_cyc,s4_cyc,s5_cyc,s6_cyc,s7_cyc,s8_cyc,s9_cyc,sa_cyc,sb_cyc,sc_cyc, sd_cyc, se_cyc, sf_cyc; + wire m0_err, m0_rty; + wire m0_we,s0_we,s1_we,s2_we,s3_we,s4_we,s5_we,s6_we,s7_we,s8_we,s9_we,sa_we,sb_we,sc_we,sd_we,se_we,sf_we; + + wb_1master #(.decode_w(6), + .s0_addr(6'b0000_00),.s0_mask(6'b100000), + .s1_addr(6'b1000_00),.s1_mask(6'b110000), + .s2_addr(6'b1100_00),.s2_mask(6'b111111), + .s3_addr(6'b1100_01),.s3_mask(6'b111111), + .s4_addr(6'b1100_10),.s4_mask(6'b111111), + .s5_addr(6'b1100_11),.s5_mask(6'b111111), + .s6_addr(6'b1101_00),.s6_mask(6'b111111), + .s7_addr(6'b1101_01),.s7_mask(6'b111111), + .s8_addr(6'b1101_10),.s8_mask(6'b111111), + .s9_addr(6'b1101_11),.s9_mask(6'b111111), + .sa_addr(6'b1110_00),.sa_mask(6'b111111), + .sb_addr(6'b1110_01),.sb_mask(6'b111111), + .sc_addr(6'b1110_10),.sc_mask(6'b111111), + .sd_addr(6'b1110_11),.sd_mask(6'b111111), + .se_addr(6'b1111_00),.se_mask(6'b111111), + .sf_addr(6'b1111_01),.sf_mask(6'b111111), + .dw(dw),.aw(aw),.sw(sw)) wb_1master + (.clk_i(wb_clk),.rst_i(wb_rst), + .m0_dat_o(m0_dat_o),.m0_ack_o(m0_ack),.m0_err_o(m0_err),.m0_rty_o(m0_rty),.m0_dat_i(m0_dat_i), + .m0_adr_i(m0_adr),.m0_sel_i(m0_sel),.m0_we_i(m0_we),.m0_cyc_i(m0_cyc),.m0_stb_i(m0_stb), + .s0_dat_o(s0_dat_o),.s0_adr_o(s0_adr),.s0_sel_o(s0_sel),.s0_we_o (s0_we),.s0_cyc_o(s0_cyc),.s0_stb_o(s0_stb), + .s0_dat_i(s0_dat_i),.s0_ack_i(s0_ack),.s0_err_i(0),.s0_rty_i(0), + .s1_dat_o(s1_dat_o),.s1_adr_o(s1_adr),.s1_sel_o(s1_sel),.s1_we_o (s1_we),.s1_cyc_o(s1_cyc),.s1_stb_o(s1_stb), + .s1_dat_i(s1_dat_i),.s1_ack_i(s1_ack),.s1_err_i(0),.s1_rty_i(0), + .s2_dat_o(s2_dat_o),.s2_adr_o(s2_adr),.s2_sel_o(s2_sel),.s2_we_o (s2_we),.s2_cyc_o(s2_cyc),.s2_stb_o(s2_stb), + .s2_dat_i(s2_dat_i),.s2_ack_i(s2_ack),.s2_err_i(0),.s2_rty_i(0), + .s3_dat_o(s3_dat_o),.s3_adr_o(s3_adr),.s3_sel_o(s3_sel),.s3_we_o (s3_we),.s3_cyc_o(s3_cyc),.s3_stb_o(s3_stb), + .s3_dat_i(s3_dat_i),.s3_ack_i(s3_ack),.s3_err_i(0),.s3_rty_i(0), + .s4_dat_o(s4_dat_o),.s4_adr_o(s4_adr),.s4_sel_o(s4_sel),.s4_we_o (s4_we),.s4_cyc_o(s4_cyc),.s4_stb_o(s4_stb), + .s4_dat_i(s4_dat_i),.s4_ack_i(s4_ack),.s4_err_i(0),.s4_rty_i(0), + .s5_dat_o(s5_dat_o),.s5_adr_o(s5_adr),.s5_sel_o(s5_sel),.s5_we_o (s5_we),.s5_cyc_o(s5_cyc),.s5_stb_o(s5_stb), + .s5_dat_i(s5_dat_i),.s5_ack_i(s5_ack),.s5_err_i(0),.s5_rty_i(0), + .s6_dat_o(s6_dat_o),.s6_adr_o(s6_adr),.s6_sel_o(s6_sel),.s6_we_o (s6_we),.s6_cyc_o(s6_cyc),.s6_stb_o(s6_stb), + .s6_dat_i(s6_dat_i),.s6_ack_i(s6_ack),.s6_err_i(0),.s6_rty_i(0), + .s7_dat_o(s7_dat_o),.s7_adr_o(s7_adr),.s7_sel_o(s7_sel),.s7_we_o (s7_we),.s7_cyc_o(s7_cyc),.s7_stb_o(s7_stb), + .s7_dat_i(s7_dat_i),.s7_ack_i(s7_ack),.s7_err_i(0),.s7_rty_i(0), + .s8_dat_o(s8_dat_o),.s8_adr_o(s8_adr),.s8_sel_o(s8_sel),.s8_we_o (s8_we),.s8_cyc_o(s8_cyc),.s8_stb_o(s8_stb), + .s8_dat_i(s8_dat_i),.s8_ack_i(s8_ack),.s8_err_i(0),.s8_rty_i(0), + .s9_dat_o(s9_dat_o),.s9_adr_o(s9_adr),.s9_sel_o(s9_sel),.s9_we_o (s9_we),.s9_cyc_o(s9_cyc),.s9_stb_o(s9_stb), + .s9_dat_i(s9_dat_i),.s9_ack_i(s9_ack),.s9_err_i(0),.s9_rty_i(0), + .sa_dat_o(sa_dat_o),.sa_adr_o(sa_adr),.sa_sel_o(sa_sel),.sa_we_o(sa_we),.sa_cyc_o(sa_cyc),.sa_stb_o(sa_stb), + .sa_dat_i(sa_dat_i),.sa_ack_i(sa_ack),.sa_err_i(0),.sa_rty_i(0), + .sb_dat_o(sb_dat_o),.sb_adr_o(sb_adr),.sb_sel_o(sb_sel),.sb_we_o(sb_we),.sb_cyc_o(sb_cyc),.sb_stb_o(sb_stb), + .sb_dat_i(sb_dat_i),.sb_ack_i(sb_ack),.sb_err_i(0),.sb_rty_i(0), + .sc_dat_o(sc_dat_o),.sc_adr_o(sc_adr),.sc_sel_o(sc_sel),.sc_we_o(sc_we),.sc_cyc_o(sc_cyc),.sc_stb_o(sc_stb), + .sc_dat_i(sc_dat_i),.sc_ack_i(sc_ack),.sc_err_i(0),.sc_rty_i(0), + .sd_dat_o(sd_dat_o),.sd_adr_o(sd_adr),.sd_sel_o(sd_sel),.sd_we_o(sd_we),.sd_cyc_o(sd_cyc),.sd_stb_o(sd_stb), + .sd_dat_i(sd_dat_i),.sd_ack_i(sd_ack),.sd_err_i(0),.sd_rty_i(0), + .se_dat_o(se_dat_o),.se_adr_o(se_adr),.se_sel_o(se_sel),.se_we_o(se_we),.se_cyc_o(se_cyc),.se_stb_o(se_stb), + .se_dat_i(se_dat_i),.se_ack_i(se_ack),.se_err_i(0),.se_rty_i(0), + .sf_dat_o(sf_dat_o),.sf_adr_o(sf_adr),.sf_sel_o(sf_sel),.sf_we_o(sf_we),.sf_cyc_o(sf_cyc),.sf_stb_o(sf_stb), + .sf_dat_i(sf_dat_i),.sf_ack_i(sf_ack),.sf_err_i(0),.sf_rty_i(0)); + + ////////////////////////////////////////////////////////////////////////////////////////// + // Reset Controller + + // /////////////////////////////////////////////////////////////////// + // RAM Loader + + wire [31:0] ram_loader_dat, iwb_dat; + wire [15:0] ram_loader_adr, iwb_adr; + wire [3:0] ram_loader_sel; + wire ram_loader_stb, ram_loader_we, ram_loader_ack; + wire iwb_ack, iwb_stb; + ram_loader #(.AWIDTH(16),.RAM_SIZE(RAM_SIZE)) + ram_loader (.clk_i(wb_clk),.rst_i(ram_loader_rst), + // CPLD Interface + .cfg_clk_i(cpld_clk), + .cfg_data_i(cpld_din), + .start_o(cpld_start_int), + .mode_o(cpld_mode_int), + .done_o(cpld_done_int), + .detached_i(cpld_detached), + // Wishbone Interface + .wb_dat_o(ram_loader_dat),.wb_adr_o(ram_loader_adr), + .wb_stb_o(ram_loader_stb),.wb_cyc_o(),.wb_sel_o(ram_loader_sel), + .wb_we_o(ram_loader_we),.wb_ack_i(ram_loader_ack), + .ram_loader_done_o(ram_loader_done)); + + // ///////////////////////////////////////////////////////////////////////// + // Processor + aeMB_core_BE #(.ISIZ(16),.DSIZ(16),.MUL(0),.BSF(1)) + aeMB (.sys_clk_i(wb_clk), .sys_rst_i(wb_rst), + // Instruction Wishbone bus to I-RAM + .iwb_stb_o(iwb_stb),.iwb_adr_o(iwb_adr), + .iwb_dat_i(iwb_dat),.iwb_ack_i(iwb_ack), + // Data Wishbone bus to system bus fabric + .dwb_we_o(m0_we),.dwb_stb_o(m0_stb),.dwb_dat_o(m0_dat_i),.dwb_adr_o(m0_adr), + .dwb_dat_i(m0_dat_o),.dwb_ack_i(m0_ack),.dwb_sel_o(m0_sel),.dwb_cyc_o(m0_cyc), + // Interrupts and exceptions + .sys_int_i(proc_int),.sys_exc_i(bus_error) ); + + assign bus_error = m0_err | m0_rty; + + // ///////////////////////////////////////////////////////////////////////// + // Dual Ported RAM -- D-Port is Slave #0 on main Wishbone + // I-port connects directly to processor and ram loader + + wire flush_icache; + ram_harv_cache #(.AWIDTH(15),.RAM_SIZE(RAM_SIZE),.ICWIDTH(7),.DCWIDTH(6)) + sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), + + .ram_loader_adr_i(ram_loader_adr[14:0]), .ram_loader_dat_i(ram_loader_dat), + .ram_loader_stb_i(ram_loader_stb), .ram_loader_sel_i(ram_loader_sel), + .ram_loader_we_i(ram_loader_we), .ram_loader_ack_o(ram_loader_ack), + .ram_loader_done_i(ram_loader_done), + + .iwb_adr_i(iwb_adr[14:0]), .iwb_stb_i(iwb_stb), + .iwb_dat_o(iwb_dat), .iwb_ack_o(iwb_ack), + + .dwb_adr_i(s0_adr[14:0]), .dwb_dat_i(s0_dat_o), .dwb_dat_o(s0_dat_i), + .dwb_we_i(s0_we), .dwb_ack_o(s0_ack), .dwb_stb_i(s0_stb), .dwb_sel_i(s0_sel), + .flush_icache(flush_icache)); + + setting_reg #(.my_addr(7)) sr_icache (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(),.changed(flush_icache)); + + // ///////////////////////////////////////////////////////////////////////// + // Buffer Pool, slave #1 + wire rd0_ready_i, rd0_ready_o; + wire rd1_ready_i, rd1_ready_o; + wire rd2_ready_i, rd2_ready_o; + wire rd3_ready_i, rd3_ready_o; + wire [3:0] rd0_flags, rd1_flags, rd2_flags, rd3_flags; + wire [31:0] rd0_dat, rd1_dat, rd2_dat, rd3_dat; + + wire wr0_ready_i, wr0_ready_o; + wire wr1_ready_i, wr1_ready_o; + wire wr2_ready_i, wr2_ready_o; + wire wr3_ready_i, wr3_ready_o; + wire [3:0] wr0_flags, wr1_flags, wr2_flags, wr3_flags; + wire [31:0] wr0_dat, wr1_dat, wr2_dat, wr3_dat; + + buffer_pool #(.BUF_SIZE(9), .SET_ADDR(SR_BUF_POOL)) buffer_pool + (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), + .wb_we_i(s1_we),.wb_stb_i(s1_stb),.wb_adr_i(s1_adr),.wb_dat_i(s1_dat_o), + .wb_dat_o(s1_dat_i),.wb_ack_o(s1_ack),.wb_err_o(),.wb_rty_o(), + + .stream_clk(dsp_clk), .stream_rst(dsp_rst), + .set_stb(set_stb_dsp), .set_addr(set_addr_dsp), .set_data(set_data_dsp), + .status(status),.sys_int_o(buffer_int), + + .s0(status_b0),.s1(status_b1),.s2(status_b2),.s3(status_b3), + .s4(status_b4),.s5(status_b5),.s6(status_b6),.s7(status_b7), + + // Write Interfaces + .wr0_data_i(wr0_dat), .wr0_flags_i(wr0_flags), .wr0_ready_i(wr0_ready_i), .wr0_ready_o(wr0_ready_o), + .wr1_data_i(wr1_dat), .wr1_flags_i(wr1_flags), .wr1_ready_i(wr1_ready_i), .wr1_ready_o(wr1_ready_o), + .wr2_data_i(wr2_dat), .wr2_flags_i(wr2_flags), .wr2_ready_i(wr2_ready_i), .wr2_ready_o(wr2_ready_o), + .wr3_data_i(wr3_dat), .wr3_flags_i(wr3_flags), .wr3_ready_i(wr3_ready_i), .wr3_ready_o(wr3_ready_o), + // Read Interfaces + .rd0_data_o(rd0_dat), .rd0_flags_o(rd0_flags), .rd0_ready_i(rd0_ready_i), .rd0_ready_o(rd0_ready_o), + .rd1_data_o(rd1_dat), .rd1_flags_o(rd1_flags), .rd1_ready_i(rd1_ready_i), .rd1_ready_o(rd1_ready_o), + .rd2_data_o(rd2_dat), .rd2_flags_o(rd2_flags), .rd2_ready_i(rd2_ready_i), .rd2_ready_o(rd2_ready_o), + .rd3_data_o(rd3_dat), .rd3_flags_o(rd3_flags), .rd3_ready_i(rd3_ready_i), .rd3_ready_o(rd3_ready_o) + ); + + wire [31:0] status_enc; + priority_enc priority_enc (.in({16'b0,status[15:0]}), .out(status_enc)); + + // ///////////////////////////////////////////////////////////////////////// + // SPI -- Slave #2 + spi_top shared_spi + (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.wb_adr_i(s2_adr[4:0]),.wb_dat_i(s2_dat_o), + .wb_dat_o(s2_dat_i),.wb_sel_i(s2_sel),.wb_we_i(s2_we),.wb_stb_i(s2_stb), + .wb_cyc_i(s2_cyc),.wb_ack_o(s2_ack),.wb_err_o(),.wb_int_o(spi_int), + .ss_pad_o({sen_tx_db,sen_tx_adc,sen_tx_dac,sen_rx_db,sen_rx_adc,sen_rx_dac,sen_dac,sen_clk}), + .sclk_pad_o(sclk),.mosi_pad_o(mosi),.miso_pad_i(miso) ); + + // ///////////////////////////////////////////////////////////////////////// + // I2C -- Slave #3 + i2c_master_top #(.ARST_LVL(1)) + i2c (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.arst_i(1'b0), + .wb_adr_i(s3_adr[4:2]),.wb_dat_i(s3_dat_o[7:0]),.wb_dat_o(s3_dat_i[7:0]), + .wb_we_i(s3_we),.wb_stb_i(s3_stb),.wb_cyc_i(s3_cyc), + .wb_ack_o(s3_ack),.wb_inta_o(i2c_int), + .scl_pad_i(scl_pad_i),.scl_pad_o(scl_pad_o),.scl_padoen_o(scl_pad_oen_o), + .sda_pad_i(sda_pad_i),.sda_pad_o(sda_pad_o),.sda_padoen_o(sda_pad_oen_o) ); + + assign s3_dat_i[31:8] = 24'd0; + + // ///////////////////////////////////////////////////////////////////////// + // GPIOs -- Slave #4 + nsgpio nsgpio(.clk_i(wb_clk),.rst_i(wb_rst), + .cyc_i(s4_cyc),.stb_i(s4_stb),.adr_i(s4_adr[3:0]),.we_i(s4_we), + .dat_i(s4_dat_o),.dat_o(s4_dat_i),.ack_o(s4_ack), + .atr(atr_lines),.debug_0(debug_gpio_0),.debug_1(debug_gpio_1), + .gpio( {io_tx,io_rx} ) ); + + // ///////////////////////////////////////////////////////////////////////// + // Buffer Pool Status -- Slave #5 + + reg [31:0] cycle_count; + always @(posedge wb_clk) + if(wb_rst) + cycle_count <= 0; + else + cycle_count <= cycle_count + 1; + + wb_readback_mux buff_pool_status + (.wb_clk_i(wb_clk), .wb_rst_i(wb_rst), .wb_stb_i(s5_stb), + .wb_adr_i(s5_adr), .wb_dat_o(s5_dat_i), .wb_ack_o(s5_ack), + + .word00(status_b0),.word01(status_b1),.word02(status_b2),.word03(status_b3), + .word04(status_b4),.word05(status_b5),.word06(status_b6),.word07(status_b7), + .word08(status),.word09({sim_mode,27'b0,clock_divider[3:0]}),.word10(vita_time[63:32]), + .word11(vita_time[31:0]),.word12(32'b0),.word13(irq),.word14(status_enc),.word15(cycle_count) + ); + + // ///////////////////////////////////////////////////////////////////////// + // Ethernet MAC Slave #6 + + wire [18:0] rx_f19_data, tx_f19_data; + wire rx_f19_src_rdy, rx_f19_dst_rdy, rx_f36_src_rdy, rx_f36_dst_rdy; + + simple_gemac_wrapper19 #(.RXFIFOSIZE(11), .TXFIFOSIZE(6)) simple_gemac_wrapper19 + (.clk125(clk_to_mac), .reset(wb_rst), + .GMII_GTX_CLK(GMII_GTX_CLK), .GMII_TX_EN(GMII_TX_EN), + .GMII_TX_ER(GMII_TX_ER), .GMII_TXD(GMII_TXD), + .GMII_RX_CLK(GMII_RX_CLK), .GMII_RX_DV(GMII_RX_DV), + .GMII_RX_ER(GMII_RX_ER), .GMII_RXD(GMII_RXD), + .sys_clk(dsp_clk), + .rx_f19_data(rx_f19_data), .rx_f19_src_rdy(rx_f19_src_rdy), .rx_f19_dst_rdy(rx_f19_dst_rdy), + .tx_f19_data(tx_f19_data), .tx_f19_src_rdy(tx_f19_src_rdy), .tx_f19_dst_rdy(tx_f19_dst_rdy), + .wb_clk(wb_clk), .wb_rst(wb_rst), .wb_stb(s6_stb), .wb_cyc(s6_cyc), .wb_ack(s6_ack), + .wb_we(s6_we), .wb_adr(s6_adr), .wb_dat_i(s6_dat_o), .wb_dat_o(s6_dat_i), + .mdio(MDIO), .mdc(MDC), + .debug(debug_mac)); + + wire [35:0] udp_tx_data, udp_rx_data; + wire udp_tx_src_rdy, udp_tx_dst_rdy, udp_rx_src_rdy, udp_rx_dst_rdy; + + udp_wrapper #(.BASE(SR_UDP_SM)) udp_wrapper + (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + .set_stb(set_stb_dsp), .set_addr(set_addr_dsp), .set_data(set_data_dsp), + .rx_f19_data(rx_f19_data), .rx_f19_src_rdy_i(rx_f19_src_rdy), .rx_f19_dst_rdy_o(rx_f19_dst_rdy), + .tx_f19_data(tx_f19_data), .tx_f19_src_rdy_o(tx_f19_src_rdy), .tx_f19_dst_rdy_i(tx_f19_dst_rdy), + .rx_f36_data(udp_rx_data), .rx_f36_src_rdy_o(udp_rx_src_rdy), .rx_f36_dst_rdy_i(udp_rx_dst_rdy), + .tx_f36_data(udp_tx_data), .tx_f36_src_rdy_i(udp_tx_src_rdy), .tx_f36_dst_rdy_o(udp_tx_dst_rdy), + .debug(debug_udp) ); + + fifo_cascade #(.WIDTH(36), .SIZE(ETH_TX_FIFOSIZE)) tx_eth_fifo + (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + .datain({rd2_flags,rd2_dat}), .src_rdy_i(rd2_ready_o), .dst_rdy_o(rd2_ready_i), + .dataout(udp_tx_data), .src_rdy_o(udp_tx_src_rdy), .dst_rdy_i(udp_tx_dst_rdy)); + + fifo_cascade #(.WIDTH(36), .SIZE(ETH_RX_FIFOSIZE)) rx_eth_fifo + (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + .datain(udp_rx_data), .src_rdy_i(udp_rx_src_rdy), .dst_rdy_o(udp_rx_dst_rdy), + .dataout({wr2_flags,wr2_dat}), .src_rdy_o(wr2_ready_i), .dst_rdy_i(wr2_ready_o)); + + // ///////////////////////////////////////////////////////////////////////// + // Settings Bus -- Slave #7 + settings_bus settings_bus + (.wb_clk(wb_clk),.wb_rst(wb_rst),.wb_adr_i(s7_adr),.wb_dat_i(s7_dat_o), + .wb_stb_i(s7_stb),.wb_we_i(s7_we),.wb_ack_o(s7_ack), + .strobe(set_stb),.addr(set_addr),.data(set_data)); + + assign s7_dat_i = 32'd0; + + settings_bus_crossclock settings_bus_crossclock + (.clk_i(wb_clk), .rst_i(wb_rst), .set_stb_i(set_stb), .set_addr_i(set_addr), .set_data_i(set_data), + .clk_o(dsp_clk), .rst_o(dsp_rst), .set_stb_o(set_stb_dsp), .set_addr_o(set_addr_dsp), .set_data_o(set_data_dsp)); + + // Output control lines + wire [7:0] clock_outs, serdes_outs, adc_outs; + assign {clock_ready, clk_en[1:0], clk_sel[1:0]} = clock_outs[4:0]; + assign {ser_enable, ser_prbsen, ser_loopen, ser_rx_en} = serdes_outs[3:0]; + assign {adc_oe_a, adc_on_a, adc_oe_b, adc_on_b } = adc_outs[3:0]; + + wire phy_reset; + assign PHY_RESETn = ~phy_reset; + + setting_reg #(.my_addr(0),.width(8)) sr_clk (.clk(wb_clk),.rst(wb_rst),.strobe(s7_ack),.addr(set_addr), + .in(set_data),.out(clock_outs),.changed()); + setting_reg #(.my_addr(1),.width(8)) sr_ser (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(serdes_outs),.changed()); + setting_reg #(.my_addr(2),.width(8)) sr_adc (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(adc_outs),.changed()); + setting_reg #(.my_addr(4),.width(1)) sr_phy (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(phy_reset),.changed()); + + // ///////////////////////////////////////////////////////////////////////// + // LEDS + // register 8 determines whether leds are controlled by SW or not + // 1 = controlled by HW, 0 = by SW + // In Rev3 there are only 6 leds, and the highest one is on the ETH connector + + wire [7:0] led_src, led_sw; + wire [7:0] led_hw = {clk_status,serdes_link_up}; + + setting_reg #(.my_addr(3),.width(8)) sr_led (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(led_sw),.changed()); + setting_reg #(.my_addr(8),.width(8)) sr_led_src (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(led_src),.changed()); + + assign leds = (led_src & led_hw) | (~led_src & led_sw); + + // ///////////////////////////////////////////////////////////////////////// + // Interrupt Controller, Slave #8 + + assign irq= {{8'b0}, + {8'b0}, + {3'b0, periodic_int, clk_status, serdes_link_up, uart_tx_int, uart_rx_int}, + {pps_int,overrun,underrun,PHY_INTn,i2c_int,spi_int,onetime_int,buffer_int}}; + + pic pic(.clk_i(wb_clk),.rst_i(wb_rst),.cyc_i(s8_cyc),.stb_i(s8_stb),.adr_i(s8_adr[4:2]), + .we_i(s8_we),.dat_i(s8_dat_o),.dat_o(s8_dat_i),.ack_o(s8_ack),.int_o(proc_int), + .irq(irq) ); + + // ///////////////////////////////////////////////////////////////////////// + // Master Timer, Slave #9 + + // No longer used, replaced with simple_timer below + /* + wire [31:0] master_time; + timer timer + (.wb_clk_i(wb_clk),.rst_i(wb_rst), + .cyc_i(s9_cyc),.stb_i(s9_stb),.adr_i(s9_adr[4:2]), + .we_i(s9_we),.dat_i(s9_dat_o),.dat_o(s9_dat_i),.ack_o(s9_ack), + .sys_clk_i(dsp_clk),.master_time_i(master_time),.int_o(timer_int) ); + */ + assign s9_ack = 0; + + // ///////////////////////////////////////////////////////////////////////// + // Simple Timer interrupts + + simple_timer #(.BASE(SR_SIMTIMER)) simple_timer + (.clk(wb_clk), .reset(wb_rst), + .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), + .onetime_int(onetime_int), .periodic_int(periodic_int)); + + // ///////////////////////////////////////////////////////////////////////// + // UART, Slave #10 + + simple_uart #(.TXDEPTH(3),.RXDEPTH(3)) uart // depth of 3 is 128 entries + (.clk_i(wb_clk),.rst_i(wb_rst), + .we_i(sa_we),.stb_i(sa_stb),.cyc_i(sa_cyc),.ack_o(sa_ack), + .adr_i(sa_adr[4:2]),.dat_i(sa_dat_o),.dat_o(sa_dat_i), + .rx_int_o(uart_rx_int),.tx_int_o(uart_tx_int), + .tx_o(uart_tx_o),.rx_i(uart_rx_i),.baud_o(uart_baud_o)); + + // ///////////////////////////////////////////////////////////////////////// + // ATR Controller, Slave #11 + + wire run_rx, run_tx; + reg run_rx_d1; + always @(posedge dsp_clk) + run_rx_d1 <= run_rx; + + atr_controller atr_controller + (.clk_i(wb_clk),.rst_i(wb_rst), + .adr_i(sb_adr[5:0]),.sel_i(sb_sel),.dat_i(sb_dat_o),.dat_o(sb_dat_i), + .we_i(sb_we),.stb_i(sb_stb),.cyc_i(sb_cyc),.ack_o(sb_ack), + .run_rx(run_rx_d1),.run_tx(run_tx),.ctrl_lines(atr_lines) ); + + // ////////////////////////////////////////////////////////////////////////// + // Time Sync, Slave #12 + + // No longer used, see time_64bit. Still need to handle mimo time, though + assign sc_ack = 0; + + // ///////////////////////////////////////////////////////////////////////// + // SD Card Reader / Writer, Slave #13 + + // Not used anymore + assign sd_ack = 0; + + // ///////////////////////////////////////////////////////////////////////// + // DSP RX + wire [31:0] sample_rx, sample_tx; + wire strobe_rx, strobe_tx; + wire rx_dst_rdy, rx_src_rdy, rx1_dst_rdy, rx1_src_rdy; + wire [99:0] rx_data; + wire [35:0] rx1_data; + + dsp_core_rx #(.BASE(SR_RX_DSP)) dsp_core_rx + (.clk(dsp_clk),.rst(dsp_rst), + .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), + .adc_a(adc_a),.adc_ovf_a(adc_ovf_a),.adc_b(adc_b),.adc_ovf_b(adc_ovf_b), + .sample(sample_rx), .run(run_rx_d1), .strobe(strobe_rx), + .debug(debug_rx_dsp) ); + + wire [31:0] vrc_debug; + + vita_rx_control #(.BASE(SR_RX_CTRL), .WIDTH(32)) vita_rx_control + (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), + .vita_time(vita_time), .overrun(overrun), + .sample(sample_rx), .run(run_rx), .strobe(strobe_rx), + .sample_fifo_o(rx_data), .sample_fifo_dst_rdy_i(rx_dst_rdy), .sample_fifo_src_rdy_o(rx_src_rdy), + .debug_rx(vrc_debug)); + + wire [3:0] vita_state; + + vita_rx_framer #(.BASE(SR_RX_CTRL), .MAXCHAN(1)) vita_rx_framer + (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), + .sample_fifo_i(rx_data), .sample_fifo_dst_rdy_o(rx_dst_rdy), .sample_fifo_src_rdy_i(rx_src_rdy), + .data_o(rx1_data), .dst_rdy_i(rx1_dst_rdy), .src_rdy_o(rx1_src_rdy), + .fifo_occupied(), .fifo_full(), .fifo_empty(), + .debug_rx(vita_state) ); + + fifo_cascade #(.WIDTH(36), .SIZE(DSP_RX_FIFOSIZE)) rx_fifo_cascade + (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + .datain(rx1_data), .src_rdy_i(rx1_src_rdy), .dst_rdy_o(rx1_dst_rdy), + .dataout({wr1_flags,wr1_dat}), .src_rdy_o(wr1_ready_i), .dst_rdy_i(wr1_ready_o)); + + // /////////////////////////////////////////////////////////////////////////////////// + // DSP TX + + wire [35:0] tx_data; + wire [99:0] tx1_data; + wire tx_src_rdy, tx_dst_rdy, tx1_src_rdy, tx1_dst_rdy; + + wire [31:0] debug_vtc, debug_vtd, debug_vt; + + fifo_cascade #(.WIDTH(36), .SIZE(DSP_TX_FIFOSIZE)) tx_fifo_cascade + (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + .datain({rd1_flags,rd1_dat}), .src_rdy_i(rd1_ready_o), .dst_rdy_o(rd1_ready_i), + .dataout(tx_data), .src_rdy_o(tx_src_rdy), .dst_rdy_i(tx_dst_rdy) ); + + vita_tx_deframer #(.BASE(SR_TX_CTRL), .MAXCHAN(1)) vita_tx_deframer + (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), + .data_i(tx_data), .src_rdy_i(tx_src_rdy), .dst_rdy_o(tx_dst_rdy), + .sample_fifo_o(tx1_data), .sample_fifo_src_rdy_o(tx1_src_rdy), .sample_fifo_dst_rdy_i(tx1_dst_rdy), + .debug(debug_vtd) ); + + vita_tx_control #(.BASE(SR_TX_CTRL), .WIDTH(32)) vita_tx_control + (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), + .vita_time(vita_time),.underrun(underrun), + .sample_fifo_i(tx1_data), .sample_fifo_src_rdy_i(tx1_src_rdy), .sample_fifo_dst_rdy_o(tx1_dst_rdy), + .sample(sample_tx), .run(run_tx), .strobe(strobe_tx), + .debug(debug_vtc) ); + + assign debug_vt = debug_vtc | debug_vtd; + + dsp_core_tx #(.BASE(SR_TX_DSP)) dsp_core_tx + (.clk(dsp_clk),.rst(dsp_rst), + .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), + .sample(sample_tx), .run(run_tx), .strobe(strobe_tx), + .dac_a(dac_a),.dac_b(dac_b), + .debug(debug_tx_dsp) ); + + assign dsp_rst = wb_rst; + + // /////////////////////////////////////////////////////////////////////////////////// + // SERDES + + serdes #(.TXFIFOSIZE(SERDES_TX_FIFOSIZE),.RXFIFOSIZE(SERDES_RX_FIFOSIZE)) serdes + (.clk(dsp_clk),.rst(dsp_rst), + .ser_tx_clk(ser_tx_clk),.ser_t(ser_t),.ser_tklsb(ser_tklsb),.ser_tkmsb(ser_tkmsb), + .rd_dat_i(rd0_dat),.rd_flags_i(rd0_flags),.rd_ready_o(rd0_ready_i),.rd_ready_i(rd0_ready_o), + .ser_rx_clk(ser_rx_clk),.ser_r(ser_r),.ser_rklsb(ser_rklsb),.ser_rkmsb(ser_rkmsb), + .wr_dat_o(wr0_dat),.wr_flags_o(wr0_flags),.wr_ready_o(wr0_ready_i),.wr_ready_i(wr0_ready_o), + .tx_occupied(ser_tx_occ),.tx_full(ser_tx_full),.tx_empty(ser_tx_empty), + .rx_occupied(ser_rx_occ),.rx_full(ser_rx_full),.rx_empty(ser_rx_empty), + .serdes_link_up(serdes_link_up),.debug0(debug_serdes0), .debug1(debug_serdes1) ); + + // /////////////////////////////////////////////////////////////////////////////////// + // External RAM Interface + + /* + localparam PAGE_SIZE = 10; // PAGE SIZE is in bytes, 10 = 1024 bytes + + wire [15:0] bus2ram, ram2bus; + wire [15:0] bridge_adr; + wire [1:0] bridge_sel; + wire bridge_stb, bridge_cyc, bridge_we, bridge_ack; + + wire [19:0] page; + wire [19:0] wb_ram_adr = {page[19:PAGE_SIZE],bridge_adr[PAGE_SIZE-1:0]}; + setting_reg #(.my_addr(6),.width(20)) sr_page (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(page),.changed()); + + wb_bridge_16_32 bridge + (.wb_clk(wb_clk),.wb_rst(wb_rst), + .A_cyc_i(se_cyc),.A_stb_i(se_stb),.A_we_i(se_we),.A_sel_i(se_sel), + .A_adr_i(se_adr),.A_dat_i(se_dat_o),.A_dat_o(se_dat_i),.A_ack_o(se_ack), + .B_cyc_o(bridge_cyc),.B_stb_o(bridge_stb),.B_we_o(bridge_we),.B_sel_o(bridge_sel), + .B_adr_o(bridge_adr),.B_dat_o(bus2ram),.B_dat_i(ram2bus),.B_ack_i(bridge_ack)); + + wb_zbt16_b wb_zbt16_b + (.clk(wb_clk),.rst(wb_rst), + .wb_adr_i(wb_ram_adr),.wb_dat_i(bus2ram),.wb_dat_o(ram2bus),.wb_sel_i(bridge_sel), + .wb_cyc_i(bridge_cyc),.wb_stb_i(bridge_stb),.wb_ack_o(bridge_ack),.wb_we_i(bridge_we), + .sram_clk(RAM_CLK),.sram_a(RAM_A),.sram_d(RAM_D[15:0]),.sram_we(RAM_WEn), + .sram_bw(),.sram_adv(RAM_LDn),.sram_ce(RAM_CENn),.sram_oe(RAM_OEn), + .sram_mode(),.sram_zz() ); + + assign RAM_CE1n = 0; + assign RAM_D[17:16] = 2'bzz; + */ + + // ///////////////////////////////////////////////////////////////////////// + // SPI for Flash -- Slave #2 + spi_top flash_spi + (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.wb_adr_i(sf_adr[4:0]),.wb_dat_i(sf_dat_o), + .wb_dat_o(sf_dat_i),.wb_sel_i(sf_sel),.wb_we_i(sf_we),.wb_stb_i(sf_stb), + .wb_cyc_i(sf_cyc),.wb_ack_o(sf_ack),.wb_err_o(sf_err),.wb_int_o(spiflash_int), + .ss_pad_o(spiflash_cs), + .sclk_pad_o(spiflash_clk),.mosi_pad_o(spiflash_mosi),.miso_pad_i(spiflash_miso) ); + + // ///////////////////////////////////////////////////////////////////////// + // VITA Timing + + time_64bit #(.TICKS_PER_SEC(32'd100000000),.BASE(SR_TIME64)) time_64bit + (.clk(dsp_clk), .rst(dsp_rst), .set_stb(set_stb_dsp), .set_addr(set_addr_dsp), .set_data(set_data_dsp), + .pps(pps_in), .vita_time(vita_time), .pps_int(pps_int)); + + // ///////////////////////////////////////////////////////////////////////////////////////// + // Debug Pins + + assign debug_clk = 2'b00; + assign debug = 32'd0; + assign debug_gpio_0 = 32'd0; + assign debug_gpio_1 = 32'd0; + +endmodule // u2_core + +/* + // FIFO Level Debugging + reg [31:0] host_to_dsp_fifo,dsp_to_host_fifo,eth_mac_debug,serdes_to_dsp_fifo,dsp_to_serdes_fifo; + + always @(posedge dsp_clk) + serdes_to_dsp_fifo <= { {ser_rx_full,ser_rx_empty,ser_rx_occ[13:0]}, + {dsp_tx_full,dsp_tx_empty,dsp_tx_occ[13:0]} }; + + always @(posedge dsp_clk) + dsp_to_serdes_fifo <= { {ser_tx_full,ser_tx_empty,ser_tx_occ[13:0]}, + {dsp_rx_full,dsp_rx_empty,dsp_rx_occ[13:0]} }; + + always @(posedge dsp_clk) + host_to_dsp_fifo <= { {eth_rx_full,eth_rx_empty,eth_rx_occ[13:0]}, + {dsp_tx_full,dsp_tx_empty,dsp_tx_occ[13:0]} }; + + always @(posedge dsp_clk) + dsp_to_host_fifo <= { {eth_tx_full,eth_tx_empty,eth_tx_occ[13:0]}, + {dsp_rx_full,dsp_rx_empty,dsp_rx_occ[13:0]} }; + + always @(posedge dsp_clk) + eth_mac_debug <= { { 6'd0, GMII_TX_EN, GMII_RX_DV, debug_mac0[7:0]}, + {eth_rx_full2, eth_rx_empty2, eth_rx_occ2[13:0]} }; + + assign debug_clk[0] = GMII_RX_CLK; // wb_clk; + assign debug_clk[1] = dsp_clk; +*/ +/* + + wire mdio_cpy = MDIO; + assign debug = { { 1'b0, s6_stb, s6_ack, s6_we, s6_sel[3:0] }, + { s6_adr[15:8] }, + { s6_adr[7:0] }, + { 6'd0, mdio_cpy, MDC } }; +*/ +/* + assign debug = { { GMII_TXD }, + { 5'd0, GMII_TX_EN, GMII_TX_ER, GMII_GTX_CLK }, + { wr2_flags, rd2_flags }, + { 4'd0, wr2_ready_i, wr2_ready_o, rd2_ready_i, rd2_ready_o } }; + assign debug = { { GMII_RXD }, + { 5'd0, GMII_RX_DV, GMII_RX_ER, GMII_RX_CLK }, + { wr2_flags, rd2_flags }, + { GMII_TX_EN,3'd0, wr2_ready_i, wr2_ready_o, rd2_ready_i, rd2_ready_o } }; + */ + +// assign debug = debug_udp; + // assign debug = vrc_debug; +/* + assign debug_gpio_0 = { {pps_in, pps_int, 2'd0, vita_state}, + {2'd0, rx_dst_rdy, rx_src_rdy, rx_data[99:96]}, + {run_rx_d1, run_rx, strobe_rx, overrun, wr1_flags[3:0]} , + {wr1_ready_i, wr1_ready_o, rx1_src_rdy, rx1_dst_rdy, rx1_data[35:32]}}; +*/ +// assign debug_gpio_1 = {vita_time[63:32] }; + +/* + assign debug_gpio_1 = { { tx_f19_data[15:8] }, + { tx_f19_data[7:0] }, + { 3'd0, tx_f19_src_rdy, tx_f19_dst_rdy, tx_f19_data[18:16] }, + { 2'b0, rd2_ready_i, rd2_ready_o, rd2_flags } }; + */ + +// wire debug_mux; +// setting_reg #(.my_addr(5)) sr_debug (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), +// .in(set_data),.out(debug_mux),.changed()); + +//assign debug = debug_mux ? host_to_dsp_fifo : dsp_to_host_fifo; +//assign debug = debug_mux ? serdes_to_dsp_fifo : dsp_to_serdes_fifo; + +//assign debug = {{strobe_rx,/*adc_ovf_a*/ 1'b0,adc_a}, +// {run_rx,/*adc_ovf_b*/ 1'b0,adc_b}}; + +//assign debug = debug_tx_dsp; +//assign debug = debug_serdes0; + +//assign debug_gpio_0 = 0; //debug_serdes0; +//assign debug_gpio_1 = 0; //debug_serdes1; + +// assign debug={{3'b0, wb_clk, wb_rst, dsp_rst, por, config_success}, +// {8'b0}, +// {3'b0,ram_loader_ack, ram_loader_stb, ram_loader_we,ram_loader_rst,ram_loader_done }, +// {cpld_start,cpld_mode,cpld_done,cpld_din,cpld_clk,cpld_detached,cpld_misc,cpld_init_b} }; + +//assign debug = {dac_a,dac_b}; + +/* + assign debug = {{ram_loader_done, takeover, 6'd0}, + {1'b0, cpld_start_int, cpld_mode_int, cpld_done_int, sd_clk, sd_csn, sd_miso, sd_mosi}, + {8'd0}, + {cpld_start, cpld_mode, cpld_done, cpld_din, cpld_misc, cpld_detached, cpld_clk, cpld_init_b}}; */ + +/*assign debug = host_to_dsp_fifo; + assign debug_gpio_0 = eth_mac_debug; + assign debug_gpio_1 = 0; + */ +// Assign various commonly used debug buses. +/* + wire [31:0] debug_rx_1 = {uart_tx_o,GMII_TX_EN,strobe_rx,overrun,proc_int,buffer_int,timer_int,GMII_RX_DV, + irq[7:0], + GMII_RXD, + GMII_TXD}; + + wire [31:0] debug_rx_2 = { 5'd0, s8_we, s8_stb, s8_ack, debug_rx[23:0] }; + + wire [31:0] debug_time = {uart_tx_o, 7'b0, + irq[7:0], + 6'b0, GMII_RX_DV, GMII_TX_EN, + 4'b0, exp_pps_in, exp_pps_out, pps_in, pps_int}; + + wire [31:0] debug_irq = {uart_tx_o, iwb_adr, iwb_ack, + irq[7:0], + proc_int, 7'b0 }; + + wire [31:0] debug_eth = + {{uart_tx_o,proc_int,underrun,buffer_int,wr2_ready,wr2_error,wr2_done,wr2_write}, + {8'd0}, + {8'd0}, + {GMII_TX_EN,GMII_RX_DV,Rx_mac_empty,Rx_mac_rd,Rx_mac_err,Rx_mac_sop,Rx_mac_eop,wr2_full} }; + + assign debug_serdes0 = { { rd0_dat[7:0] }, + { ser_tx_clk, ser_tkmsb, ser_tklsb, rd0_sop, rd0_eop, rd0_read, rd0_error, rd0_done }, + { ser_t[15:8] }, + { ser_t[7:0] } }; + + assign debug_serdes1 = { {1'b0,proc_int,underrun,buffer_int,wr0_ready,wr0_error,wr0_done,wr0_write}, + { 1'b0, ser_rx_clk, ser_rkmsb, ser_rklsb, ser_enable, ser_prbsen, ser_loopen, ser_rx_en }, + { ser_r[15:8] }, + { ser_r[7:0] } }; + + assign debug_gpio_1 = {uart_tx_o,7'd0, + 3'd0,rd1_sop,rd1_eop,rd1_read,rd1_done,rd1_error, + debug_txc[15:0]}; + assign debug_gpio_1 = debug_rx; + assign debug_gpio_1 = debug_serdes1; + assign debug_gpio_1 = debug_eth; + + */ + -- cgit v1.2.3 From dcdc873e90d8fbd79127d0a69783834339768467 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 12 Jul 2010 13:23:48 -0700 Subject: updated to ise12 fixes from main development line --- usrp2/top/u2plus/u2plus_core.v | 44 +++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index d4b138c54..7b8cbb1bb 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -252,33 +252,33 @@ module u2plus_core // /////////////////////////////////////////////////////////////////// // RAM Loader - wire [31:0] ram_loader_dat, iwb_dat; - wire [15:0] ram_loader_adr, iwb_adr; + wire [31:0] ram_loader_dat, if_dat; + wire [15:0] ram_loader_adr; + wire [14:0] if_adr; wire [3:0] ram_loader_sel; - wire ram_loader_stb, ram_loader_we, ram_loader_ack; + wire ram_loader_stb, ram_loader_we; wire iwb_ack, iwb_stb; ram_loader #(.AWIDTH(16),.RAM_SIZE(RAM_SIZE)) - ram_loader (.clk_i(wb_clk),.rst_i(ram_loader_rst), + ram_loader (.wb_clk(wb_clk),.dsp_clk(dsp_clk),.ram_loader_rst(ram_loader_rst), + .wb_dat(ram_loader_dat),.wb_adr(ram_loader_adr), + .wb_stb(ram_loader_stb),.wb_sel(ram_loader_sel), + .wb_we(ram_loader_we), + .ram_loader_done(ram_loader_done), // CPLD Interface - .cfg_clk_i(cpld_clk), - .cfg_data_i(cpld_din), - .start_o(cpld_start_int), - .mode_o(cpld_mode_int), - .done_o(cpld_done_int), - .detached_i(cpld_detached), - // Wishbone Interface - .wb_dat_o(ram_loader_dat),.wb_adr_o(ram_loader_adr), - .wb_stb_o(ram_loader_stb),.wb_cyc_o(),.wb_sel_o(ram_loader_sel), - .wb_we_o(ram_loader_we),.wb_ack_i(ram_loader_ack), - .ram_loader_done_o(ram_loader_done)); - + .cpld_clk(cpld_clk), + .cpld_din(cpld_din), + .cpld_start(cpld_start_int), + .cpld_mode(cpld_mode_int), + .cpld_done(cpld_done_int), + .cpld_detached(cpld_detached)); + // ///////////////////////////////////////////////////////////////////////// // Processor aeMB_core_BE #(.ISIZ(16),.DSIZ(16),.MUL(0),.BSF(1)) aeMB (.sys_clk_i(wb_clk), .sys_rst_i(wb_rst), // Instruction Wishbone bus to I-RAM - .iwb_stb_o(iwb_stb),.iwb_adr_o(iwb_adr), - .iwb_dat_i(iwb_dat),.iwb_ack_i(iwb_ack), + .if_adr(if_adr), + .if_dat(if_dat), // Data Wishbone bus to system bus fabric .dwb_we_o(m0_we),.dwb_stb_o(m0_stb),.dwb_dat_o(m0_dat_i),.dwb_adr_o(m0_adr), .dwb_dat_i(m0_dat_o),.dwb_ack_i(m0_ack),.dwb_sel_o(m0_sel),.dwb_cyc_o(m0_cyc), @@ -292,16 +292,16 @@ module u2plus_core // I-port connects directly to processor and ram loader wire flush_icache; - ram_harv_cache #(.AWIDTH(15),.RAM_SIZE(RAM_SIZE),.ICWIDTH(7),.DCWIDTH(6)) + ram_harvard #(.AWIDTH(15),.RAM_SIZE(RAM_SIZE),.ICWIDTH(7),.DCWIDTH(6)) sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), .ram_loader_adr_i(ram_loader_adr[14:0]), .ram_loader_dat_i(ram_loader_dat), .ram_loader_stb_i(ram_loader_stb), .ram_loader_sel_i(ram_loader_sel), - .ram_loader_we_i(ram_loader_we), .ram_loader_ack_o(ram_loader_ack), + .ram_loader_we_i(ram_loader_we), .ram_loader_done_i(ram_loader_done), - .iwb_adr_i(iwb_adr[14:0]), .iwb_stb_i(iwb_stb), - .iwb_dat_o(iwb_dat), .iwb_ack_o(iwb_ack), + .if_adr(if_adr), + .if_data(if_dat), .dwb_adr_i(s0_adr[14:0]), .dwb_dat_i(s0_dat_o), .dwb_dat_o(s0_dat_i), .dwb_we_i(s0_we), .dwb_ack_o(s0_ack), .dwb_stb_i(s0_stb), .dwb_sel_i(s0_sel), -- cgit v1.2.3 From 41e7903589e4d47e82a3c49c738065a516204deb Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 12 Jul 2010 15:05:35 -0700 Subject: remove ram loader --- usrp2/top/u2plus/u2plus_core.v | 37 ++++++++----------------------------- 1 file changed, 8 insertions(+), 29 deletions(-) diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index 7b8cbb1bb..2b5ea4295 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -151,8 +151,7 @@ module u2plus_core wire [31:0] set_data, set_data_dsp; wire set_stb, set_stb_dsp; - wire ram_loader_done; - wire ram_loader_rst, wb_rst, dsp_rst; + wire wb_rst, dsp_rst; wire [31:0] status, status_b0, status_b1, status_b2, status_b3, status_b4, status_b5, status_b6, status_b7; wire bus_error, spi_int, i2c_int, pps_int, onetime_int, periodic_int, buffer_int; @@ -249,31 +248,11 @@ module u2plus_core ////////////////////////////////////////////////////////////////////////////////////////// // Reset Controller - // /////////////////////////////////////////////////////////////////// - // RAM Loader - - wire [31:0] ram_loader_dat, if_dat; - wire [15:0] ram_loader_adr; - wire [14:0] if_adr; - wire [3:0] ram_loader_sel; - wire ram_loader_stb, ram_loader_we; - wire iwb_ack, iwb_stb; - ram_loader #(.AWIDTH(16),.RAM_SIZE(RAM_SIZE)) - ram_loader (.wb_clk(wb_clk),.dsp_clk(dsp_clk),.ram_loader_rst(ram_loader_rst), - .wb_dat(ram_loader_dat),.wb_adr(ram_loader_adr), - .wb_stb(ram_loader_stb),.wb_sel(ram_loader_sel), - .wb_we(ram_loader_we), - .ram_loader_done(ram_loader_done), - // CPLD Interface - .cpld_clk(cpld_clk), - .cpld_din(cpld_din), - .cpld_start(cpld_start_int), - .cpld_mode(cpld_mode_int), - .cpld_done(cpld_done_int), - .cpld_detached(cpld_detached)); - // ///////////////////////////////////////////////////////////////////////// // Processor + wire [31:0] if_dat; + wire [14:0] if_adr; + aeMB_core_BE #(.ISIZ(16),.DSIZ(16),.MUL(0),.BSF(1)) aeMB (.sys_clk_i(wb_clk), .sys_rst_i(wb_rst), // Instruction Wishbone bus to I-RAM @@ -295,10 +274,10 @@ module u2plus_core ram_harvard #(.AWIDTH(15),.RAM_SIZE(RAM_SIZE),.ICWIDTH(7),.DCWIDTH(6)) sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), - .ram_loader_adr_i(ram_loader_adr[14:0]), .ram_loader_dat_i(ram_loader_dat), - .ram_loader_stb_i(ram_loader_stb), .ram_loader_sel_i(ram_loader_sel), - .ram_loader_we_i(ram_loader_we), - .ram_loader_done_i(ram_loader_done), + .ram_loader_adr_i(0), .ram_loader_dat_i(0), + .ram_loader_stb_i(0), .ram_loader_sel_i(0), + .ram_loader_we_i(0), + .ram_loader_done_i(1'b1), .if_adr(if_adr), .if_data(if_dat), -- cgit v1.2.3 From 825a9a04890017c24e561c39268157dbd4ef6adc Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 12 Jul 2010 16:04:40 -0700 Subject: copied from quad radio --- usrp2/control_lib/v5icap_wb.v | 54 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 usrp2/control_lib/v5icap_wb.v diff --git a/usrp2/control_lib/v5icap_wb.v b/usrp2/control_lib/v5icap_wb.v new file mode 100644 index 000000000..c8800285a --- /dev/null +++ b/usrp2/control_lib/v5icap_wb.v @@ -0,0 +1,54 @@ + + +module v5icap_wb + (input clk, input reset, + input cyc_i, input stb_i, input we_i, output ack_o, + input [31:0] dat_i, output [31:0] dat_o); + + wire BUSY, CE, WRITE; + + reg [2:0] icap_state; + localparam ICAP_IDLE = 0; + localparam ICAP_WR0 = 1; + localparam ICAP_WR1 = 2; + localparam ICAP_RD0 = 3; + localparam ICAP_RD1 = 4; + + always @(posedge clk) + if(reset) + icap_state <= ICAP_IDLE; + else + case(icap_state) + ICAP_IDLE : + begin + if(stb_i & cyc_i) + if(we_i) + icap_state <= ICAP_WR0; + else + icap_state <= ICAP_RD0; + end + ICAP_WR0 : + icap_state <= ICAP_WR1; + ICAP_WR1 : + icap_state <= ICAP_IDLE; + ICAP_RD0 : + icap_state <= ICAP_RD1; + ICAP_RD1 : + icap_state <= ICAP_IDLE; + endcase // case (icap_state) + + assign WRITE = (icap_state == ICAP_WR0) | (icap_state == ICAP_WR1); + assign CE = (icap_state == ICAP_WR1) | (icap_state == ICAP_RD0); + + assign ack_o = (icap_state == ICAP_WR1) | (icap_state == ICAP_RD1); + + ICAP_VIRTEX5 #(.ICAP_WIDTH("X32")) ICAP_VIRTEX5_inst + (.BUSY(BUSY), // Busy output + .O(dat_o), // 32-bit data output + .CE(~CE), // Clock enable input + .CLK(clk), // Clock input + .I(dat_i), // 32-bit data input + .WRITE(~WRITE) // Write input + ); + +endmodule // v5icap_wb -- cgit v1.2.3 From ed682e09b55a4f587077665e3ee62ecc7053ff53 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 12 Jul 2010 16:10:12 -0700 Subject: very slight mods from v5 version --- usrp2/control_lib/s3a_icap_wb.v | 56 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 usrp2/control_lib/s3a_icap_wb.v diff --git a/usrp2/control_lib/s3a_icap_wb.v b/usrp2/control_lib/s3a_icap_wb.v new file mode 100644 index 000000000..9a9db0f96 --- /dev/null +++ b/usrp2/control_lib/s3a_icap_wb.v @@ -0,0 +1,56 @@ + + +module s3a_icap_wb + (input clk, input reset, + input cyc_i, input stb_i, input we_i, output ack_o, + input [31:0] dat_i, output [31:0] dat_o); + + assign dat_o[31:8] = 24'd0; + + wire BUSY, CE, WRITE; + + reg [2:0] icap_state; + localparam ICAP_IDLE = 0; + localparam ICAP_WR0 = 1; + localparam ICAP_WR1 = 2; + localparam ICAP_RD0 = 3; + localparam ICAP_RD1 = 4; + + always @(posedge clk) + if(reset) + icap_state <= ICAP_IDLE; + else + case(icap_state) + ICAP_IDLE : + begin + if(stb_i & cyc_i) + if(we_i) + icap_state <= ICAP_WR0; + else + icap_state <= ICAP_RD0; + end + ICAP_WR0 : + icap_state <= ICAP_WR1; + ICAP_WR1 : + icap_state <= ICAP_IDLE; + ICAP_RD0 : + icap_state <= ICAP_RD1; + ICAP_RD1 : + icap_state <= ICAP_IDLE; + endcase // case (icap_state) + + assign WRITE = (icap_state == ICAP_WR0) | (icap_state == ICAP_WR1); + assign CE = (icap_state == ICAP_WR1) | (icap_state == ICAP_RD0); + + assign ack_o = (icap_state == ICAP_WR1) | (icap_state == ICAP_RD1); + + ICAP_SPARTAN3A ICAP_SPARTAN3A_inst + (.BUSY(BUSY), // Busy output + .O(dat_o[7:0]), // 32-bit data output + .CE(~CE), // Clock enable input + .CLK(clk), // Clock input + .I(dat_i[7:0]), // 32-bit data input + .WRITE(~WRITE) // Write input + ); + +endmodule // s3a_icap_wb -- cgit v1.2.3 From c9343570f681a042beb0cf231ddcfff950228095 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 12 Jul 2010 16:28:19 -0700 Subject: ram_harvard2 is a workaround for a Xilinx bug that gets confused by an unused write port on a ram --- usrp2/control_lib/Makefile.srcs | 2 ++ usrp2/control_lib/ram_harvard2.v | 77 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 usrp2/control_lib/ram_harvard2.v diff --git a/usrp2/control_lib/Makefile.srcs b/usrp2/control_lib/Makefile.srcs index bc8e4d5bc..60fb2516d 100644 --- a/usrp2/control_lib/Makefile.srcs +++ b/usrp2/control_lib/Makefile.srcs @@ -21,6 +21,7 @@ nsgpio.v \ ram_2port.v \ ram_harv_cache.v \ ram_harvard.v \ +ram_harvard2.v \ ram_loader.v \ setting_reg.v \ settings_bus.v \ @@ -42,4 +43,5 @@ pic.v \ longfifo.v \ shortfifo.v \ medfifo.v \ +s3a_icap_wb.v \ )) diff --git a/usrp2/control_lib/ram_harvard2.v b/usrp2/control_lib/ram_harvard2.v new file mode 100644 index 000000000..67777af2a --- /dev/null +++ b/usrp2/control_lib/ram_harvard2.v @@ -0,0 +1,77 @@ + + +// Dual ported, Harvard architecture + +module ram_harvard2 + #(parameter AWIDTH=15, + parameter RAM_SIZE=32768) + (input wb_clk_i, + input wb_rst_i, + // Instruction fetch port. + input [AWIDTH-1:0] if_adr, + output reg [31:0] if_data, + // Data access port. + input [AWIDTH-1:0] dwb_adr_i, + input [31:0] dwb_dat_i, + output reg [31:0] dwb_dat_o, + input dwb_we_i, + output dwb_ack_o, + input dwb_stb_i, + input [3:0] dwb_sel_i); + + reg ack_d1; + reg stb_d1; + + assign dwb_ack_o = dwb_stb_i & (dwb_we_i | (stb_d1 & ~ack_d1)); + + always @(posedge wb_clk_i) + if(wb_rst_i) + ack_d1 <= 1'b0; + else + ack_d1 <= dwb_ack_o; + + always @(posedge wb_clk_i) + if(wb_rst_i) + stb_d1 <= 0; + else + stb_d1 <= dwb_stb_i; + + reg [7:0] ram0 [0:(RAM_SIZE/4)-1]; + reg [7:0] ram1 [0:(RAM_SIZE/4)-1]; + reg [7:0] ram2 [0:(RAM_SIZE/4)-1]; + reg [7:0] ram3 [0:(RAM_SIZE/4)-1]; + + // Port 1, Read only + always @(posedge wb_clk_i) + if_data[31:24] <= ram3[if_adr[AWIDTH-1:2]]; + always @(posedge wb_clk_i) + if_data[23:16] <= ram2[if_adr[AWIDTH-1:2]]; + always @(posedge wb_clk_i) + if_data[15:8] <= ram1[if_adr[AWIDTH-1:2]]; + always @(posedge wb_clk_i) + if_data[7:0] <= ram0[if_adr[AWIDTH-1:2]]; + + // Port 2, R/W + always @(posedge wb_clk_i) + if(dwb_stb_i) dwb_dat_o[31:24] <= ram3[dwb_adr_i[AWIDTH-1:2]]; + always @(posedge wb_clk_i) + if(dwb_stb_i) dwb_dat_o[23:16] <= ram2[dwb_adr_i[AWIDTH-1:2]]; + always @(posedge wb_clk_i) + if(dwb_stb_i) dwb_dat_o[15:8] <= ram1[dwb_adr_i[AWIDTH-1:2]]; + always @(posedge wb_clk_i) + if(dwb_stb_i) dwb_dat_o[7:0] <= ram0[dwb_adr_i[AWIDTH-1:2]]; + + always @(posedge wb_clk_i) + if(dwb_we_i & dwb_stb_i & dwb_sel_i[3]) + ram3[dwb_adr_i[AWIDTH-1:2]] <= dwb_dat_i[31:24]; + always @(posedge wb_clk_i) + if(dwb_we_i & dwb_stb_i & dwb_sel_i[2]) + ram2[dwb_adr_i[AWIDTH-1:2]] <= dwb_dat_i[23:16]; + always @(posedge wb_clk_i) + if(dwb_we_i & dwb_stb_i & dwb_sel_i[1]) + ram1[dwb_adr_i[AWIDTH-1:2]] <= dwb_dat_i[15:8]; + always @(posedge wb_clk_i) + if(dwb_we_i & dwb_stb_i & dwb_sel_i[0]) + ram0[dwb_adr_i[AWIDTH-1:2]] <= dwb_dat_i[7:0]; + +endmodule // ram_harvard -- cgit v1.2.3 From 864096d9b717a557b9d84d562b0803bc491313c8 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 12 Jul 2010 16:35:57 -0700 Subject: further cleanup --- usrp2/top/u2plus/u2plus.v | 6 +- usrp2/top/u2plus/u2plus_core.v | 237 +++++------------------------------------ 2 files changed, 27 insertions(+), 216 deletions(-) diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index 13c7a811f..32dfb0331 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -364,8 +364,8 @@ module u2plus .RAM_WEn (RAM_WEn), .RAM_OEn (RAM_OEn), .RAM_LDn (RAM_LDn), - .uart_tx_o (uart_tx_o), - .uart_rx_i (uart_rx_i), + .uart_tx_o (TXD[0]), + .uart_rx_i (RXD[0]), .uart_baud_o (), .sim_mode (1'b0), .clock_divider (2), @@ -377,6 +377,6 @@ module u2plus assign RAM_ZZ = 1; assign RAM_BWn = 4'b1111; - assign TXD = 3'b111; + assign TXD[2:1] = 2'b11; endmodule // u2plus diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index 2b5ea4295..d49c461cb 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -268,27 +268,15 @@ module u2plus_core // ///////////////////////////////////////////////////////////////////////// // Dual Ported RAM -- D-Port is Slave #0 on main Wishbone - // I-port connects directly to processor and ram loader + // I-port connects directly to processor wire flush_icache; - ram_harvard #(.AWIDTH(15),.RAM_SIZE(RAM_SIZE),.ICWIDTH(7),.DCWIDTH(6)) - sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), - - .ram_loader_adr_i(0), .ram_loader_dat_i(0), - .ram_loader_stb_i(0), .ram_loader_sel_i(0), - .ram_loader_we_i(0), - .ram_loader_done_i(1'b1), - - .if_adr(if_adr), - .if_data(if_dat), - + ram_harvard2 #(.AWIDTH(15),.RAM_SIZE(RAM_SIZE)) + sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), + .if_adr(if_adr), .if_data(if_dat), .dwb_adr_i(s0_adr[14:0]), .dwb_dat_i(s0_dat_o), .dwb_dat_o(s0_dat_i), - .dwb_we_i(s0_we), .dwb_ack_o(s0_ack), .dwb_stb_i(s0_stb), .dwb_sel_i(s0_sel), - .flush_icache(flush_icache)); + .dwb_we_i(s0_we), .dwb_ack_o(s0_ack), .dwb_stb_i(s0_stb), .dwb_sel_i(s0_sel)); - setting_reg #(.my_addr(7)) sr_icache (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), - .in(set_data),.out(),.changed(flush_icache)); - // ///////////////////////////////////////////////////////////////////////// // Buffer Pool, slave #1 wire rd0_ready_i, rd0_ready_o; @@ -486,14 +474,6 @@ module u2plus_core // Master Timer, Slave #9 // No longer used, replaced with simple_timer below - /* - wire [31:0] master_time; - timer timer - (.wb_clk_i(wb_clk),.rst_i(wb_rst), - .cyc_i(s9_cyc),.stb_i(s9_stb),.adr_i(s9_adr[4:2]), - .we_i(s9_we),.dat_i(s9_dat_o),.dat_o(s9_dat_i),.ack_o(s9_ack), - .sys_clk_i(dsp_clk),.master_time_i(master_time),.int_o(timer_int) ); - */ assign s9_ack = 0; // ///////////////////////////////////////////////////////////////////////// @@ -535,11 +515,26 @@ module u2plus_core assign sc_ack = 0; // ///////////////////////////////////////////////////////////////////////// - // SD Card Reader / Writer, Slave #13 + // ICAP for reprogramming the FPGA, Slave #13 (D) + + s3a_icap_wb s3a_icap_wb + (.clk(wb_clk), .reset(wb_rst), .cyc_i(sd_cyc), .stb_i(sd_stb), + .we_i(sd_we), .ack_o(sd_ack), .dat_i(sd_dat_o), .dat_o(sd_dat_i)); + + // ///////////////////////////////////////////////////////////////////////// + // Unused -- Slave #14 (E) + + assign se_ack = 0; + + // ///////////////////////////////////////////////////////////////////////// + // SPI for Flash -- Slave #15 (F) + spi_top flash_spi + (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.wb_adr_i(sf_adr[4:0]),.wb_dat_i(sf_dat_o), + .wb_dat_o(sf_dat_i),.wb_sel_i(sf_sel),.wb_we_i(sf_we),.wb_stb_i(sf_stb), + .wb_cyc_i(sf_cyc),.wb_ack_o(sf_ack),.wb_err_o(sf_err),.wb_int_o(spiflash_int), + .ss_pad_o(spiflash_cs), + .sclk_pad_o(spiflash_clk),.mosi_pad_o(spiflash_mosi),.miso_pad_i(spiflash_miso) ); - // Not used anymore - assign sd_ack = 0; - // ///////////////////////////////////////////////////////////////////////// // DSP RX wire [31:0] sample_rx, sample_tx; @@ -633,50 +628,6 @@ module u2plus_core .rx_occupied(ser_rx_occ),.rx_full(ser_rx_full),.rx_empty(ser_rx_empty), .serdes_link_up(serdes_link_up),.debug0(debug_serdes0), .debug1(debug_serdes1) ); - // /////////////////////////////////////////////////////////////////////////////////// - // External RAM Interface - - /* - localparam PAGE_SIZE = 10; // PAGE SIZE is in bytes, 10 = 1024 bytes - - wire [15:0] bus2ram, ram2bus; - wire [15:0] bridge_adr; - wire [1:0] bridge_sel; - wire bridge_stb, bridge_cyc, bridge_we, bridge_ack; - - wire [19:0] page; - wire [19:0] wb_ram_adr = {page[19:PAGE_SIZE],bridge_adr[PAGE_SIZE-1:0]}; - setting_reg #(.my_addr(6),.width(20)) sr_page (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), - .in(set_data),.out(page),.changed()); - - wb_bridge_16_32 bridge - (.wb_clk(wb_clk),.wb_rst(wb_rst), - .A_cyc_i(se_cyc),.A_stb_i(se_stb),.A_we_i(se_we),.A_sel_i(se_sel), - .A_adr_i(se_adr),.A_dat_i(se_dat_o),.A_dat_o(se_dat_i),.A_ack_o(se_ack), - .B_cyc_o(bridge_cyc),.B_stb_o(bridge_stb),.B_we_o(bridge_we),.B_sel_o(bridge_sel), - .B_adr_o(bridge_adr),.B_dat_o(bus2ram),.B_dat_i(ram2bus),.B_ack_i(bridge_ack)); - - wb_zbt16_b wb_zbt16_b - (.clk(wb_clk),.rst(wb_rst), - .wb_adr_i(wb_ram_adr),.wb_dat_i(bus2ram),.wb_dat_o(ram2bus),.wb_sel_i(bridge_sel), - .wb_cyc_i(bridge_cyc),.wb_stb_i(bridge_stb),.wb_ack_o(bridge_ack),.wb_we_i(bridge_we), - .sram_clk(RAM_CLK),.sram_a(RAM_A),.sram_d(RAM_D[15:0]),.sram_we(RAM_WEn), - .sram_bw(),.sram_adv(RAM_LDn),.sram_ce(RAM_CENn),.sram_oe(RAM_OEn), - .sram_mode(),.sram_zz() ); - - assign RAM_CE1n = 0; - assign RAM_D[17:16] = 2'bzz; - */ - - // ///////////////////////////////////////////////////////////////////////// - // SPI for Flash -- Slave #2 - spi_top flash_spi - (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.wb_adr_i(sf_adr[4:0]),.wb_dat_i(sf_dat_o), - .wb_dat_o(sf_dat_i),.wb_sel_i(sf_sel),.wb_we_i(sf_we),.wb_stb_i(sf_stb), - .wb_cyc_i(sf_cyc),.wb_ack_o(sf_ack),.wb_err_o(sf_err),.wb_int_o(spiflash_int), - .ss_pad_o(spiflash_cs), - .sclk_pad_o(spiflash_clk),.mosi_pad_o(spiflash_mosi),.miso_pad_i(spiflash_miso) ); - // ///////////////////////////////////////////////////////////////////////// // VITA Timing @@ -693,143 +644,3 @@ module u2plus_core assign debug_gpio_1 = 32'd0; endmodule // u2_core - -/* - // FIFO Level Debugging - reg [31:0] host_to_dsp_fifo,dsp_to_host_fifo,eth_mac_debug,serdes_to_dsp_fifo,dsp_to_serdes_fifo; - - always @(posedge dsp_clk) - serdes_to_dsp_fifo <= { {ser_rx_full,ser_rx_empty,ser_rx_occ[13:0]}, - {dsp_tx_full,dsp_tx_empty,dsp_tx_occ[13:0]} }; - - always @(posedge dsp_clk) - dsp_to_serdes_fifo <= { {ser_tx_full,ser_tx_empty,ser_tx_occ[13:0]}, - {dsp_rx_full,dsp_rx_empty,dsp_rx_occ[13:0]} }; - - always @(posedge dsp_clk) - host_to_dsp_fifo <= { {eth_rx_full,eth_rx_empty,eth_rx_occ[13:0]}, - {dsp_tx_full,dsp_tx_empty,dsp_tx_occ[13:0]} }; - - always @(posedge dsp_clk) - dsp_to_host_fifo <= { {eth_tx_full,eth_tx_empty,eth_tx_occ[13:0]}, - {dsp_rx_full,dsp_rx_empty,dsp_rx_occ[13:0]} }; - - always @(posedge dsp_clk) - eth_mac_debug <= { { 6'd0, GMII_TX_EN, GMII_RX_DV, debug_mac0[7:0]}, - {eth_rx_full2, eth_rx_empty2, eth_rx_occ2[13:0]} }; - - assign debug_clk[0] = GMII_RX_CLK; // wb_clk; - assign debug_clk[1] = dsp_clk; -*/ -/* - - wire mdio_cpy = MDIO; - assign debug = { { 1'b0, s6_stb, s6_ack, s6_we, s6_sel[3:0] }, - { s6_adr[15:8] }, - { s6_adr[7:0] }, - { 6'd0, mdio_cpy, MDC } }; -*/ -/* - assign debug = { { GMII_TXD }, - { 5'd0, GMII_TX_EN, GMII_TX_ER, GMII_GTX_CLK }, - { wr2_flags, rd2_flags }, - { 4'd0, wr2_ready_i, wr2_ready_o, rd2_ready_i, rd2_ready_o } }; - assign debug = { { GMII_RXD }, - { 5'd0, GMII_RX_DV, GMII_RX_ER, GMII_RX_CLK }, - { wr2_flags, rd2_flags }, - { GMII_TX_EN,3'd0, wr2_ready_i, wr2_ready_o, rd2_ready_i, rd2_ready_o } }; - */ - -// assign debug = debug_udp; - // assign debug = vrc_debug; -/* - assign debug_gpio_0 = { {pps_in, pps_int, 2'd0, vita_state}, - {2'd0, rx_dst_rdy, rx_src_rdy, rx_data[99:96]}, - {run_rx_d1, run_rx, strobe_rx, overrun, wr1_flags[3:0]} , - {wr1_ready_i, wr1_ready_o, rx1_src_rdy, rx1_dst_rdy, rx1_data[35:32]}}; -*/ -// assign debug_gpio_1 = {vita_time[63:32] }; - -/* - assign debug_gpio_1 = { { tx_f19_data[15:8] }, - { tx_f19_data[7:0] }, - { 3'd0, tx_f19_src_rdy, tx_f19_dst_rdy, tx_f19_data[18:16] }, - { 2'b0, rd2_ready_i, rd2_ready_o, rd2_flags } }; - */ - -// wire debug_mux; -// setting_reg #(.my_addr(5)) sr_debug (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), -// .in(set_data),.out(debug_mux),.changed()); - -//assign debug = debug_mux ? host_to_dsp_fifo : dsp_to_host_fifo; -//assign debug = debug_mux ? serdes_to_dsp_fifo : dsp_to_serdes_fifo; - -//assign debug = {{strobe_rx,/*adc_ovf_a*/ 1'b0,adc_a}, -// {run_rx,/*adc_ovf_b*/ 1'b0,adc_b}}; - -//assign debug = debug_tx_dsp; -//assign debug = debug_serdes0; - -//assign debug_gpio_0 = 0; //debug_serdes0; -//assign debug_gpio_1 = 0; //debug_serdes1; - -// assign debug={{3'b0, wb_clk, wb_rst, dsp_rst, por, config_success}, -// {8'b0}, -// {3'b0,ram_loader_ack, ram_loader_stb, ram_loader_we,ram_loader_rst,ram_loader_done }, -// {cpld_start,cpld_mode,cpld_done,cpld_din,cpld_clk,cpld_detached,cpld_misc,cpld_init_b} }; - -//assign debug = {dac_a,dac_b}; - -/* - assign debug = {{ram_loader_done, takeover, 6'd0}, - {1'b0, cpld_start_int, cpld_mode_int, cpld_done_int, sd_clk, sd_csn, sd_miso, sd_mosi}, - {8'd0}, - {cpld_start, cpld_mode, cpld_done, cpld_din, cpld_misc, cpld_detached, cpld_clk, cpld_init_b}}; */ - -/*assign debug = host_to_dsp_fifo; - assign debug_gpio_0 = eth_mac_debug; - assign debug_gpio_1 = 0; - */ -// Assign various commonly used debug buses. -/* - wire [31:0] debug_rx_1 = {uart_tx_o,GMII_TX_EN,strobe_rx,overrun,proc_int,buffer_int,timer_int,GMII_RX_DV, - irq[7:0], - GMII_RXD, - GMII_TXD}; - - wire [31:0] debug_rx_2 = { 5'd0, s8_we, s8_stb, s8_ack, debug_rx[23:0] }; - - wire [31:0] debug_time = {uart_tx_o, 7'b0, - irq[7:0], - 6'b0, GMII_RX_DV, GMII_TX_EN, - 4'b0, exp_pps_in, exp_pps_out, pps_in, pps_int}; - - wire [31:0] debug_irq = {uart_tx_o, iwb_adr, iwb_ack, - irq[7:0], - proc_int, 7'b0 }; - - wire [31:0] debug_eth = - {{uart_tx_o,proc_int,underrun,buffer_int,wr2_ready,wr2_error,wr2_done,wr2_write}, - {8'd0}, - {8'd0}, - {GMII_TX_EN,GMII_RX_DV,Rx_mac_empty,Rx_mac_rd,Rx_mac_err,Rx_mac_sop,Rx_mac_eop,wr2_full} }; - - assign debug_serdes0 = { { rd0_dat[7:0] }, - { ser_tx_clk, ser_tkmsb, ser_tklsb, rd0_sop, rd0_eop, rd0_read, rd0_error, rd0_done }, - { ser_t[15:8] }, - { ser_t[7:0] } }; - - assign debug_serdes1 = { {1'b0,proc_int,underrun,buffer_int,wr0_ready,wr0_error,wr0_done,wr0_write}, - { 1'b0, ser_rx_clk, ser_rkmsb, ser_rklsb, ser_enable, ser_prbsen, ser_loopen, ser_rx_en }, - { ser_r[15:8] }, - { ser_r[7:0] } }; - - assign debug_gpio_1 = {uart_tx_o,7'd0, - 3'd0,rd1_sop,rd1_eop,rd1_read,rd1_done,rd1_error, - debug_txc[15:0]}; - assign debug_gpio_1 = debug_rx; - assign debug_gpio_1 = debug_serdes1; - assign debug_gpio_1 = debug_eth; - - */ - -- cgit v1.2.3 From 8bac5fc488db2123b5ac713c52bbaa01b616e0eb Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Tue, 13 Jul 2010 11:50:54 -0700 Subject: separate boot ram, redone memory map, connected uart --- usrp2/control_lib/Makefile.srcs | 1 + usrp2/control_lib/bootram.v | 246 ++++++++++++++++++++++++ usrp2/opencores/aemb/rtl/verilog/aeMB_core_BE.v | 4 +- usrp2/top/u2plus/u2plus.v | 6 +- usrp2/top/u2plus/u2plus_core.v | 72 +++---- 5 files changed, 289 insertions(+), 40 deletions(-) create mode 100644 usrp2/control_lib/bootram.v diff --git a/usrp2/control_lib/Makefile.srcs b/usrp2/control_lib/Makefile.srcs index 60fb2516d..ad491b83d 100644 --- a/usrp2/control_lib/Makefile.srcs +++ b/usrp2/control_lib/Makefile.srcs @@ -44,4 +44,5 @@ longfifo.v \ shortfifo.v \ medfifo.v \ s3a_icap_wb.v \ +bootram.v \ )) diff --git a/usrp2/control_lib/bootram.v b/usrp2/control_lib/bootram.v new file mode 100644 index 000000000..648ccc9ed --- /dev/null +++ b/usrp2/control_lib/bootram.v @@ -0,0 +1,246 @@ + +// Boot RAM for S3A, 8KB, dual port + +// RAMB16BWE_S36_S36: 512 x 32 + 4 Parity bits byte-wide write Dual-Port RAM +// Spartan-3A Xilinx HDL Libraries Guide, version 10.1.1 + +module bootram + (input clk, + input [12:0] if_adr, + output [31:0] if_data, + + input [12:0] dwb_adr_i, + input [31:0] dwb_dat_i, + output [31:0] dwb_dat_o, + input dwb_we_i, + output reg dwb_ack_o, + input dwb_stb_i, + input [3:0] dwb_sel_i); + + wire [31:0] DOA0, DOA1, DOA2, DOA3; + wire [31:0] DOB0, DOB1, DOB2, DOB3; + wire ENB0, ENB1, ENB2, ENB3; + wire [3:0] WEB; + + assign if_data = if_adr[12] ? (if_adr[11] ? DOA3 : DOA2) : (if_adr[11] ? DOA1 : DOA0); + assign dwb_dat_o = dwb_adr_i[12] ? (dwb_adr_i[11] ? DOA3 : DOA2) : (dwb_adr_i[11] ? DOA1 : DOA0); + + always @(posedge clk) + if(dwb_stb_i & ~dwb_ack_o) + dwb_ack_o <= 1; + else + dwb_ack_o <= 0; + + assign ENB0 = dwb_stb_i & (dwb_adr_i[12:11] == 2'b00); + assign ENB1 = dwb_stb_i & (dwb_adr_i[12:11] == 2'b01); + assign ENB2 = dwb_stb_i & (dwb_adr_i[12:11] == 2'b10); + assign ENB3 = dwb_stb_i & (dwb_adr_i[12:11] == 2'b11); + + assign WEB = {4{dwb_we_i}} & dwb_sel_i; + + RAMB16BWE_S36_S36 + #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup + .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup + .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" + .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion + .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion + .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE + .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE + RAM0 + (.DOA(DOA0), // Port A 32-bit Data Output + .DOPA(), // Port A 4-bit Parity Output + .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input + .CLKA(clk), // Port A 1-bit Clock + .DIA(32'd0), // Port A 32-bit Data Input + .DIPA(4'd0), // Port A 4-bit parity Input + .ENA(1'b1), // Port A 1-bit RAM Enable Input + .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input + .WEA(1'b0), // Port A 4-bit Write Enable Input + + .DOB(DOB0), // Port B 32-bit Data Output + .DOPB(), // Port B 4-bit Parity Output + .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input + .CLKB(clk), // Port B 1-bit Clock + .DIB(dwb_dat_i), // Port B 32-bit Data Input + .DIPB(4'd0), // Port-B 4-bit parity Input + .ENB(ENB0), // Port B 1-bit RAM Enable Input + .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input + .WEB(WEB) // Port B 4-bit Write Enable Input + ); // End of RAMB16BWE_S36_S36_inst instantiation + + RAMB16BWE_S36_S36 + #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup + .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup + .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" + .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion + .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion + .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE + .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE + RAM1 + (.DOA(DOA1), // Port A 32-bit Data Output + .DOPA(), // Port A 4-bit Parity Output + .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input + .CLKA(clk), // Port A 1-bit Clock + .DIA(32'd0), // Port A 32-bit Data Input + .DIPA(4'd0), // Port A 4-bit parity Input + .ENA(1'b1), // Port A 1-bit RAM Enable Input + .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input + .WEA(1'b0), // Port A 4-bit Write Enable Input + + .DOB(DOB1), // Port B 32-bit Data Output + .DOPB(), // Port B 4-bit Parity Output + .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input + .CLKB(clk), // Port B 1-bit Clock + .DIB(dwb_dat_i), // Port B 32-bit Data Input + .DIPB(4'd0), // Port-B 4-bit parity Input + .ENB(ENB1), // Port B 1-bit RAM Enable Input + .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input + .WEB(WEB) // Port B 4-bit Write Enable Input + ); // End of RAMB16BWE_S36_S36_inst instantiation + + RAMB16BWE_S36_S36 + #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup + .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup + .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" + .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion + .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion + .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE + .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE + RAM2 + (.DOA(DOA2), // Port A 32-bit Data Output + .DOPA(), // Port A 4-bit Parity Output + .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input + .CLKA(clk), // Port A 1-bit Clock + .DIA(32'd0), // Port A 32-bit Data Input + .DIPA(4'd0), // Port A 4-bit parity Input + .ENA(1'b1), // Port A 1-bit RAM Enable Input + .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input + .WEA(1'b0), // Port A 4-bit Write Enable Input + + .DOB(DOB2), // Port B 32-bit Data Output + .DOPB(), // Port B 4-bit Parity Output + .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input + .CLKB(clk), // Port B 1-bit Clock + .DIB(dwb_dat_i), // Port B 32-bit Data Input + .DIPB(4'd0), // Port-B 4-bit parity Input + .ENB(ENB2), // Port B 1-bit RAM Enable Input + .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input + .WEB(WEB) // Port B 4-bit Write Enable Input + ); // End of RAMB16BWE_S36_S36_inst instantiation + + RAMB16BWE_S36_S36 + #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup + .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup + .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" + .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion + .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion + .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE + .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE + RAM3 + (.DOA(DOA3), // Port A 32-bit Data Output + .DOPA(), // Port A 4-bit Parity Output + .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input + .CLKA(clk), // Port A 1-bit Clock + .DIA(32'd0), // Port A 32-bit Data Input + .DIPA(4'd0), // Port A 4-bit parity Input + .ENA(1'b1), // Port A 1-bit RAM Enable Input + .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input + .WEA(1'b0), // Port A 4-bit Write Enable Input + + .DOB(DOB3), // Port B 32-bit Data Output + .DOPB(), // Port B 4-bit Parity Output + .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input + .CLKB(clk), // Port B 1-bit Clock + .DIB(dwb_dat_i), // Port B 32-bit Data Input + .DIPB(4'd0), // Port-B 4-bit parity Input + .ENB(ENB3), // Port B 1-bit RAM Enable Input + .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input + .WEB(WEB) // Port B 4-bit Write Enable Input + ); // End of RAMB16BWE_S36_S36_inst instantiation + +endmodule // bootram + +/* + // The following INIT_xx declarations specify the initial contents of the RAM + // Address 0 to 127 + .INIT_00(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_01(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_02(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_03(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_04(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_05(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_06(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_07(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_08(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_09(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_0A(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_0B(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_0C(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_0D(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_0E(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_0F(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + // Address 128 to 255 + .INIT_10(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_11(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_12(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_13(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_14(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_15(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_16(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_17(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_18(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_19(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_1A(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_1B(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_1C(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_1D(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_1E(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_1F(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + // Address 256 to 383 + .INIT_20(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_21(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_22(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_23(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_24(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_25(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_26(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_27(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_28(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_29(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_2A(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_2B(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_2C(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_2D(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_2E(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_2F(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + // Address 384 to 511 + .INIT_30(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_31(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_32(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_33(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_34(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_35(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_36(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_37(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_38(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_39(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_3A(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_3B(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_3C(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_3D(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_3E(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_3F(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + // The next set of INITP_xx are for the parity bits + // Address 0 to 127 + .INITP_00(256’h0000000000000000000000000000000000000000000000000000000000000000), + .INITP_01(256’h0000000000000000000000000000000000000000000000000000000000000000), + // Address 128 to 255 + .INITP_02(256’h0000000000000000000000000000000000000000000000000000000000000000), + .INITP_03(256’h0000000000000000000000000000000000000000000000000000000000000000), + // Address 256 to 383 + .INITP_04(256’h0000000000000000000000000000000000000000000000000000000000000000), + .INITP_05(256’h0000000000000000000000000000000000000000000000000000000000000000), + // Address 384 to 511 + .INITP_06(256’h0000000000000000000000000000000000000000000000000000000000000000), + .INITP_07(256’h0000000000000000000000000000000000000000000000000000000000000000) +*/ diff --git a/usrp2/opencores/aemb/rtl/verilog/aeMB_core_BE.v b/usrp2/opencores/aemb/rtl/verilog/aeMB_core_BE.v index 38ca3a023..6c066d5d9 100644 --- a/usrp2/opencores/aemb/rtl/verilog/aeMB_core_BE.v +++ b/usrp2/opencores/aemb/rtl/verilog/aeMB_core_BE.v @@ -11,7 +11,7 @@ module aeMB_core_BE (input sys_clk_i, input sys_rst_i, // Instruction port - output [14:0] if_adr, + output [ISIZ-1:0] if_adr, input [31:0] if_dat, // Data port output dwb_we_o, @@ -34,7 +34,7 @@ module aeMB_core_BE assign dwb_cyc_o = dwb_stb_o; assign iwb_ack_i = 1'b1; - assign if_adr = iwb_adr_o[14:0]; + assign if_adr = iwb_adr_o[ISIZ-1:0]; assign iwb_dat_i = if_dat; // Note some "wishbone" instruction fetch signals pruned on external interface diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index 32dfb0331..ac0f6bbd1 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -364,8 +364,8 @@ module u2plus .RAM_WEn (RAM_WEn), .RAM_OEn (RAM_OEn), .RAM_LDn (RAM_LDn), - .uart_tx_o (TXD[0]), - .uart_rx_i (RXD[0]), + .uart_tx_o (TXD[1]), + .uart_rx_i (RXD[1]), .uart_baud_o (), .sim_mode (1'b0), .clock_divider (2), @@ -377,6 +377,6 @@ module u2plus assign RAM_ZZ = 1; assign RAM_BWn = 4'b1111; - assign TXD[2:1] = 2'b11; + assign TXD[3:2] = 2'b11; endmodule // u2plus diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index d49c461cb..bf6bf8b3e 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -3,7 +3,6 @@ // //////////////////////////////////////////////////////////////////////////////// module u2plus_core - #(parameter RAM_SIZE=32768) (// Clocks input dsp_clk, input wb_clk, @@ -191,23 +190,23 @@ module u2plus_core wire m0_err, m0_rty; wire m0_we,s0_we,s1_we,s2_we,s3_we,s4_we,s5_we,s6_we,s7_we,s8_we,s9_we,sa_we,sb_we,sc_we,sd_we,se_we,sf_we; - wb_1master #(.decode_w(6), - .s0_addr(6'b0000_00),.s0_mask(6'b100000), - .s1_addr(6'b1000_00),.s1_mask(6'b110000), - .s2_addr(6'b1100_00),.s2_mask(6'b111111), - .s3_addr(6'b1100_01),.s3_mask(6'b111111), - .s4_addr(6'b1100_10),.s4_mask(6'b111111), - .s5_addr(6'b1100_11),.s5_mask(6'b111111), - .s6_addr(6'b1101_00),.s6_mask(6'b111111), - .s7_addr(6'b1101_01),.s7_mask(6'b111111), - .s8_addr(6'b1101_10),.s8_mask(6'b111111), - .s9_addr(6'b1101_11),.s9_mask(6'b111111), - .sa_addr(6'b1110_00),.sa_mask(6'b111111), - .sb_addr(6'b1110_01),.sb_mask(6'b111111), - .sc_addr(6'b1110_10),.sc_mask(6'b111111), - .sd_addr(6'b1110_11),.sd_mask(6'b111111), - .se_addr(6'b1111_00),.se_mask(6'b111111), - .sf_addr(6'b1111_01),.sf_mask(6'b111111), + wb_1master #(.decode_w(8), + .s0_addr(8'b0000_0000),.s0_mask(8'b1110_0000), // 0-8K, Boot RAM + .s1_addr(8'b0100_0000),.s1_mask(8'b1100_0000), // 16K-32K, Buffer Pool + .s2_addr(8'b0011_0000),.s2_mask(8'b1111_1111), // SPI + .s3_addr(8'b0011_0001),.s3_mask(8'b1111_1111), // I2C + .s4_addr(8'b0011_0010),.s4_mask(8'b1111_1111), // GPIO + .s5_addr(8'b0011_0011),.s5_mask(8'b1111_1111), // Readback + .s6_addr(8'b0011_0100),.s6_mask(8'b1111_1111), // Ethernet MAC + .s7_addr(8'b0010_0000),.s7_mask(8'b1111_0000), // 8-12K, Settings Bus (only uses 1K) + .s8_addr(8'b0011_0101),.s8_mask(8'b1111_1111), // PIC + .s9_addr(8'b0011_0110),.s9_mask(8'b1111_1111), // Unused + .sa_addr(8'b0011_0111),.sa_mask(8'b1111_1111), // UART + .sb_addr(8'b0011_1000),.sb_mask(8'b1111_1111), // ATR + .sc_addr(8'b0011_1001),.sc_mask(8'b1111_1111), // Unused + .sd_addr(8'b0011_1010),.sd_mask(8'b1111_1111), // ICAP + .se_addr(8'b0011_1011),.se_mask(8'b1111_1111), // SPI Flash + .sf_addr(8'b1000_0000),.sf_mask(8'b1000_0000), // 32-64K, Main RAM .dw(dw),.aw(aw),.sw(sw)) wb_1master (.clk_i(wb_clk),.rst_i(wb_rst), .m0_dat_o(m0_dat_o),.m0_ack_o(m0_ack),.m0_err_o(m0_err),.m0_rty_o(m0_rty),.m0_dat_i(m0_dat_i), @@ -251,7 +250,7 @@ module u2plus_core // ///////////////////////////////////////////////////////////////////////// // Processor wire [31:0] if_dat; - wire [14:0] if_adr; + wire [15:0] if_adr; aeMB_core_BE #(.ISIZ(16),.DSIZ(16),.MUL(0),.BSF(1)) aeMB (.sys_clk_i(wb_clk), .sys_rst_i(wb_rst), @@ -267,15 +266,23 @@ module u2plus_core assign bus_error = m0_err | m0_rty; // ///////////////////////////////////////////////////////////////////////// - // Dual Ported RAM -- D-Port is Slave #0 on main Wishbone + // Dual Ported Boot RAM -- D-Port is Slave #0 on main Wishbone + // Dual Ported Main RAM -- D-Port is Slave #F on main Wishbone // I-port connects directly to processor - wire flush_icache; - ram_harvard2 #(.AWIDTH(15),.RAM_SIZE(RAM_SIZE)) - sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), - .if_adr(if_adr), .if_data(if_dat), - .dwb_adr_i(s0_adr[14:0]), .dwb_dat_i(s0_dat_o), .dwb_dat_o(s0_dat_i), - .dwb_we_i(s0_we), .dwb_ack_o(s0_ack), .dwb_stb_i(s0_stb), .dwb_sel_i(s0_sel)); + wire [31:0] if_dat_boot, if_dat_main; + assign if_dat = if_adr[15] ? if_dat_main : if_dat_boot; + + bootram bootram(.clk(wb_clk), + .if_adr(if_adr[12:0]), .if_data(if_dat_boot), + .dwb_adr_i(s0_adr[12:0]), .dwb_dat_i(s0_dat_o), .dwb_dat_o(s0_dat_i), + .dwb_we_i(s0_we), .dwb_ack_o(s0_ack), .dwb_stb_i(s0_stb), .dwb_sel_i(s0_sel)); + + ram_harvard2 #(.AWIDTH(15),.RAM_SIZE(32768)) + sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), + .if_adr(if_adr[14:0]), .if_data(if_dat_main), + .dwb_adr_i(sf_adr[14:0]), .dwb_dat_i(sf_dat_o), .dwb_dat_o(sf_dat_i), + .dwb_we_i(sf_we), .dwb_ack_o(sf_ack), .dwb_stb_i(sf_stb), .dwb_sel_i(sf_sel)); // ///////////////////////////////////////////////////////////////////////// // Buffer Pool, slave #1 @@ -522,16 +529,11 @@ module u2plus_core .we_i(sd_we), .ack_o(sd_ack), .dat_i(sd_dat_o), .dat_o(sd_dat_i)); // ///////////////////////////////////////////////////////////////////////// - // Unused -- Slave #14 (E) - - assign se_ack = 0; - - // ///////////////////////////////////////////////////////////////////////// - // SPI for Flash -- Slave #15 (F) + // SPI for Flash -- Slave #14 (E) spi_top flash_spi - (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.wb_adr_i(sf_adr[4:0]),.wb_dat_i(sf_dat_o), - .wb_dat_o(sf_dat_i),.wb_sel_i(sf_sel),.wb_we_i(sf_we),.wb_stb_i(sf_stb), - .wb_cyc_i(sf_cyc),.wb_ack_o(sf_ack),.wb_err_o(sf_err),.wb_int_o(spiflash_int), + (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.wb_adr_i(se_adr[4:0]),.wb_dat_i(se_dat_o), + .wb_dat_o(se_dat_i),.wb_sel_i(se_sel),.wb_we_i(se_we),.wb_stb_i(se_stb), + .wb_cyc_i(se_cyc),.wb_ack_o(se_ack),.wb_err_o(se_err),.wb_int_o(spiflash_int), .ss_pad_o(spiflash_cs), .sclk_pad_o(spiflash_clk),.mosi_pad_o(spiflash_mosi),.miso_pad_i(spiflash_miso) ); -- cgit v1.2.3 From 703c20be608b2a15ab68a6c15514facdeac527cc Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Tue, 13 Jul 2010 14:47:25 -0700 Subject: includes led blinker in bootram --- usrp2/top/u2plus/u2plus_core.v | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index bf6bf8b3e..601f1a1bb 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -277,7 +277,10 @@ module u2plus_core .if_adr(if_adr[12:0]), .if_data(if_dat_boot), .dwb_adr_i(s0_adr[12:0]), .dwb_dat_i(s0_dat_o), .dwb_dat_o(s0_dat_i), .dwb_we_i(s0_we), .dwb_ack_o(s0_ack), .dwb_stb_i(s0_stb), .dwb_sel_i(s0_sel)); - + +defparam bootram.RAM0.INIT_00=256'hbc32fff0_aa43502b_b00000fe_30630001_80000000_10600000_a48500ff_10a00000; +defparam bootram.RAM0.INIT_01=256'ha48500ff_b810ffd0_f880200c_30a50001_10830000_308000ff_be23000c_a4640001; + ram_harvard2 #(.AWIDTH(15),.RAM_SIZE(32768)) sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), .if_adr(if_adr[14:0]), .if_data(if_dat_main), @@ -640,8 +643,9 @@ module u2plus_core // ///////////////////////////////////////////////////////////////////////////////////////// // Debug Pins - assign debug_clk = 2'b00; - assign debug = 32'd0; + assign debug_clk = {dsp_clk, wb_clk}; + assign debug = if_dat; + assign debug_gpio_0 = 32'd0; assign debug_gpio_1 = 32'd0; -- cgit v1.2.3 From ee7208f5ea0e3105c1a45d37cc7709a665dc07b2 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Tue, 13 Jul 2010 20:24:25 -0700 Subject: attach the correct data port --- usrp2/control_lib/bootram.v | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/usrp2/control_lib/bootram.v b/usrp2/control_lib/bootram.v index 648ccc9ed..00c604f20 100644 --- a/usrp2/control_lib/bootram.v +++ b/usrp2/control_lib/bootram.v @@ -23,14 +23,14 @@ module bootram wire [3:0] WEB; assign if_data = if_adr[12] ? (if_adr[11] ? DOA3 : DOA2) : (if_adr[11] ? DOA1 : DOA0); - assign dwb_dat_o = dwb_adr_i[12] ? (dwb_adr_i[11] ? DOA3 : DOA2) : (dwb_adr_i[11] ? DOA1 : DOA0); + assign dwb_dat_o = dwb_adr_i[12] ? (dwb_adr_i[11] ? DOB3 : DOB2) : (dwb_adr_i[11] ? DOB1 : DOB0); always @(posedge clk) - if(dwb_stb_i & ~dwb_ack_o) - dwb_ack_o <= 1; - else + if(reset) dwb_ack_o <= 0; - + else + dwb_ack_o <= dwb_stb_i & ~dwb_ack_o; + assign ENB0 = dwb_stb_i & (dwb_adr_i[12:11] == 2'b00); assign ENB1 = dwb_stb_i & (dwb_adr_i[12:11] == 2'b01); assign ENB2 = dwb_stb_i & (dwb_adr_i[12:11] == 2'b10); -- cgit v1.2.3 From eddfcda0a2c84edd4818836e812c6a95ea44cb99 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Tue, 13 Jul 2010 23:41:42 -0700 Subject: reset the ack signal --- usrp2/control_lib/bootram.v | 2 +- usrp2/top/u2plus/u2plus_core.v | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/usrp2/control_lib/bootram.v b/usrp2/control_lib/bootram.v index 00c604f20..5e527de90 100644 --- a/usrp2/control_lib/bootram.v +++ b/usrp2/control_lib/bootram.v @@ -5,7 +5,7 @@ // Spartan-3A Xilinx HDL Libraries Guide, version 10.1.1 module bootram - (input clk, + (input clk, input reset, input [12:0] if_adr, output [31:0] if_data, diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index 601f1a1bb..0470e6e9e 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -273,7 +273,7 @@ module u2plus_core wire [31:0] if_dat_boot, if_dat_main; assign if_dat = if_adr[15] ? if_dat_main : if_dat_boot; - bootram bootram(.clk(wb_clk), + bootram bootram(.clk(wb_clk), .reset(wb_rst), .if_adr(if_adr[12:0]), .if_data(if_dat_boot), .dwb_adr_i(s0_adr[12:0]), .dwb_dat_i(s0_dat_o), .dwb_dat_o(s0_dat_i), .dwb_we_i(s0_we), .dwb_ack_o(s0_ack), .dwb_stb_i(s0_stb), .dwb_sel_i(s0_sel)); -- cgit v1.2.3 From 3ac97f05c32942ba06a88c39f5d16edd51ae6658 Mon Sep 17 00:00:00 2001 From: nick Date: Wed, 14 Jul 2010 09:35:40 -0700 Subject: just local commit before updating w/matt's fix --- usrp2/top/u2plus/u2plus_core.v | 50 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index 601f1a1bb..579e946e8 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -278,8 +278,46 @@ module u2plus_core .dwb_adr_i(s0_adr[12:0]), .dwb_dat_i(s0_dat_o), .dwb_dat_o(s0_dat_i), .dwb_we_i(s0_we), .dwb_ack_o(s0_ack), .dwb_stb_i(s0_stb), .dwb_sel_i(s0_sel)); -defparam bootram.RAM0.INIT_00=256'hbc32fff0_aa43502b_b00000fe_30630001_80000000_10600000_a48500ff_10a00000; -defparam bootram.RAM0.INIT_01=256'ha48500ff_b810ffd0_f880200c_30a50001_10830000_308000ff_be23000c_a4640001; +////blinkenlights v0.1 +//defparam bootram.RAM0.INIT_00=256'hbc32fff0_aa43502b_b00000fe_30630001_80000000_10600000_a48500ff_10a00000; +//defparam bootram.RAM0.INIT_01=256'ha48500ff_b810ffd0_f880200c_30a50001_10830000_308000ff_be23000c_a4640001; + +////ICAP test v0.1 +defparam bootram.RAM0.INIT_00=256'h00000000_00000000_00000000_b8080234_00000000_b8080348_00000000_b8080050; +defparam bootram.RAM0.INIT_01=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_b8080350; +defparam bootram.RAM0.INIT_02=256'h3020ffe0_b0000000_304003f8_31a00430_00000000_00000000_00000000_00000000; +defparam bootram.RAM0.INIT_03=256'h3021ffe4_e060f800_b0000000_b8000000_30a30000_b9f40198_80000000_b9f400cc; +defparam bootram.RAM0.INIT_04=256'he8830000_e8600400_80000000_99fc2000_f8600400_b8000044_bc030014_f9e10000; +defparam bootram.RAM0.INIT_05=256'h80000000_99fc1800_30a00428_bc030010_30600000_b0000000_30630004_be24ffec; +defparam bootram.RAM0.INIT_06=256'h30600000_b0000000_3021001c_b60f0008_e9e10000_f060f800_b0000000_30600001; +defparam bootram.RAM0.INIT_07=256'h80000000_99fc1800_bc03000c_30c0f804_b0000000_30a00428_f9e10000_3021ffe4; +defparam bootram.RAM0.INIT_08=256'h80000000_99fc2000_bc04000c_30a0042c_bc030014_30800000_b0000000_e860042c; +defparam bootram.RAM0.INIT_09=256'h06463800_20e00430_20c00430_f9e10000_2021ffec_3021001c_b60f0008_e9e10000; +defparam bootram.RAM0.INIT_0A=256'hb0000000_20c0f800_b0000000_bc92fff4_06463800_20c60004_f8060000_bc720014; +defparam bootram.RAM0.INIT_0B=256'hb9f401e4_bc92fff4_06463800_20c60004_f8060000_bc720014_06463800_20e0f81c; +defparam bootram.RAM0.INIT_0C=256'h32630000_20a00000_b9f4002c_20e00000_20c00000_80000000_b9f40224_80000000; +defparam bootram.RAM0.INIT_0D=256'h20210014_b60f0008_30730000_c9e10000_80000000_b9f401b0_80000000_b9f4022c; +defparam bootram.RAM0.INIT_0E=256'hbc32fff0_aa434b40_b000004c_30630001_80000000_10600000_a48500ff_10a00000; +defparam bootram.RAM0.INIT_0F=256'ha48500ff_b810ffd0_f880200c_30a50001_10830000_308000ff_be23000c_a4640001; +defparam bootram.RAM0.INIT_10=256'hf8803500_30800012_f8603508_3060ffff_80000000_b9f4fe68_f9e10000_3021ffe4; +defparam bootram.RAM0.INIT_11=256'hf8610020_f9e10000_3021ffac_80000000_b60f0008_f860350c_f8a03504_30a0ffef; +defparam bootram.RAM0.INIT_12=256'hf9610040_f941003c_f9210038_f9010034_f8e10030_f8c1002c_f8a10028_f8810024; +defparam bootram.RAM0.INIT_13=256'he8603508_e880350c_f961001c_fa610050_95608001_fa41004c_fa210048_f9810044; +defparam bootram.RAM0.INIT_14=256'h30a50001_bc230060_84732000_32600001_84841800_a863ffff_10a00000_30c00404; +defparam bootram.RAM0.INIT_15=256'he8810024_e8610020_e961001c_e9e10000_30c60004_be32ffec_aa450008_12739800; +defparam bootram.RAM0.INIT_16=256'he9610040_e941003c_e9210038_e9010034_e8e10030_e8c1002c_e8a10028_940bc001; +defparam bootram.RAM0.INIT_17=256'h99fc1800_e8660000_30210054_b62e0000_ea610050_ea41004c_ea210048_e9810044; +defparam bootram.RAM0.INIT_18=256'h16459003_22400007_64e50402_44632c00_30600001_b800ffa8_fa60350c_80000000; +defparam bootram.RAM0.INIT_19=256'h80000000_b60f0008_f8603508_84632000_f8c70404_e8603508_a883ffff_be520018; +defparam bootram.RAM0.INIT_1A=256'h80000000_b60f0008_80000000_b6910000_80000000_b6110000_80000000_b60f0008; +defparam bootram.RAM0.INIT_1B=256'haa43ffff_326003e8_f9e10000_fa61001c_3021ffe0_e86003e8_80000000_b60f0008; +defparam bootram.RAM0.INIT_1C=256'hea61001c_e9e10000_bc32fff0_aa43ffff_e8730000_3273fffc_99fc1800_bc120018; +defparam bootram.RAM0.INIT_1D=256'h80000000_b9f4ffb0_80000000_b9f4fd28_d9e00800_3021fff8_30210020_b60f0008; +defparam bootram.RAM0.INIT_1E=256'hc9e00800_80000000_b9f4fca0_d9e00800_3021fff8_30210008_b60f0008_c9e00800; +defparam bootram.RAM0.INIT_1F=256'h00000000_00000000_00000000_ffffffff_00000000_ffffffff_30210008_b60f0008; +defparam bootram.RAM0.INIT_20=256'h00000340_00000340_00000340_00000340_00000340_00000340_00000340_000003f4; +defparam bootram.RAM0.INIT_21=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000340; + ram_harvard2 #(.AWIDTH(15),.RAM_SIZE(32768)) sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), @@ -356,8 +394,9 @@ defparam bootram.RAM0.INIT_01=256'ha48500ff_b810ffd0_f880200c_30a50001_10830000_ nsgpio nsgpio(.clk_i(wb_clk),.rst_i(wb_rst), .cyc_i(s4_cyc),.stb_i(s4_stb),.adr_i(s4_adr[3:0]),.we_i(s4_we), .dat_i(s4_dat_o),.dat_o(s4_dat_i),.ack_o(s4_ack), - .atr(atr_lines),.debug_0(debug_gpio_0),.debug_1(debug_gpio_1), - .gpio( {io_tx,io_rx} ) ); + .atr(atr_lines),.debug_0(debug_gpio_0),.debug_1(debug_gpio_1) + //.gpio( {io_tx,io_rx} ) + ); // ///////////////////////////////////////////////////////////////////////// // Buffer Pool Status -- Slave #5 @@ -644,9 +683,10 @@ defparam bootram.RAM0.INIT_01=256'ha48500ff_b810ffd0_f880200c_30a50001_10830000_ // Debug Pins assign debug_clk = {dsp_clk, wb_clk}; - assign debug = if_dat; + assign debug = m0_dat_o; assign debug_gpio_0 = 32'd0; assign debug_gpio_1 = 32'd0; + assign {io_tx,io_rx} = {if_adr, m0_adr}; endmodule // u2_core -- cgit v1.2.3 From ed11f715c45ad129600e20849254e3899407002a Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 19 Jul 2010 13:33:32 -0700 Subject: proper selection of bank of ram for instruction, since the address has already incremented by the time the data is returned --- usrp2/control_lib/bootram.v | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/usrp2/control_lib/bootram.v b/usrp2/control_lib/bootram.v index 5e527de90..668012504 100644 --- a/usrp2/control_lib/bootram.v +++ b/usrp2/control_lib/bootram.v @@ -21,8 +21,12 @@ module bootram wire [31:0] DOB0, DOB1, DOB2, DOB3; wire ENB0, ENB1, ENB2, ENB3; wire [3:0] WEB; + + reg [1:0] delayed_if_bank; + always @(posedge clk) + delayed_if_bank <= if_adr[12:11]; - assign if_data = if_adr[12] ? (if_adr[11] ? DOA3 : DOA2) : (if_adr[11] ? DOA1 : DOA0); + assign if_data = delayed_if_bank[1] ? (delayed_if_bank[0] ? DOA3 : DOA2) : (delayed_if_bank[0] ? DOA1 : DOA0); assign dwb_dat_o = dwb_adr_i[12] ? (dwb_adr_i[11] ? DOB3 : DOB2) : (dwb_adr_i[11] ? DOB1 : DOB0); always @(posedge clk) -- cgit v1.2.3 From 814b06dff3ffccdf7d8f80fcb93d21d740612804 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 19 Jul 2010 18:10:40 -0700 Subject: pushbutton now goes into interrupt controller, can be read from software. Normally high, goes low when pushed --- usrp2/top/u2plus/u2plus.v | 1 + usrp2/top/u2plus/u2plus_core.v | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index ac0f6bbd1..1feed1314 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -369,6 +369,7 @@ module u2plus .uart_baud_o (), .sim_mode (1'b0), .clock_divider (2), + .button (FPGA_RESET), .spiflash_cs (flash_cs), .spiflash_clk (flash_clk), .spiflash_miso (flash_miso), diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index 0470e6e9e..fa3fd9ff0 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -124,7 +124,8 @@ module u2plus_core output uart_baud_o, input sim_mode, input [3:0] clock_divider, - + input button, + output spiflash_cs, output spiflash_clk, input spiflash_miso, output spiflash_mosi ); @@ -473,7 +474,7 @@ defparam bootram.RAM0.INIT_01=256'ha48500ff_b810ffd0_f880200c_30a50001_10830000_ assign irq= {{8'b0}, {8'b0}, - {3'b0, periodic_int, clk_status, serdes_link_up, uart_tx_int, uart_rx_int}, + {2'b0, button, periodic_int, clk_status, serdes_link_up, uart_tx_int, uart_rx_int}, {pps_int,overrun,underrun,PHY_INTn,i2c_int,spi_int,onetime_int,buffer_int}}; pic pic(.clk_i(wb_clk),.rst_i(wb_rst),.cyc_i(s8_cyc),.stb_i(s8_stb),.adr_i(s8_adr[4:2]), -- cgit v1.2.3 From e73ffa9f830b070a6b897edfbcfadf35b6b1f0c6 Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Tue, 20 Jul 2010 11:00:42 -0700 Subject: Fixed Makefile.common to correctly generate .mcs files. --- usrp2/top/Makefile.common | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/usrp2/top/Makefile.common b/usrp2/top/Makefile.common index d0435fa1e..2f6b5fde3 100644 --- a/usrp2/top/Makefile.common +++ b/usrp2/top/Makefile.common @@ -15,6 +15,7 @@ BASE_DIR = $(abspath ..) ISE_HELPER = xtclsh $(BASE_DIR)/tcl/ise_helper.tcl ISE_FILE = $(BUILD_DIR)/$(TOP_MODULE).$(ISE_EXT) BIN_FILE = $(BUILD_DIR)/$(TOP_MODULE).bin +BIT_FILE = $(BUILD_DIR)/$(TOP_MODULE).bit MCS_FILE = $(BUILD_DIR)/$(TOP_MODULE).mcs ################################################## @@ -53,6 +54,6 @@ $(BIN_FILE): $(ISE_FILE) touch $@ $(MCS_FILE): $(BIN_FILE) - promgen -w -spi -p mcs -o $(MCS_FILE) -s 4096 -u 0 $(BIN_FILE) + promgen -w -spi -p mcs -o $(MCS_FILE) -s 4096 -u 0 $(BIT_FILE) .EXPORT_ALL_VARIABLES: -- cgit v1.2.3 From 3b6b6e153084bf1d57231c0a565e2a0204467b04 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Tue, 20 Jul 2010 11:16:41 -0700 Subject: connect SPI to adc, correct capitalization of SEN pins --- usrp2/top/u2plus/u2plus.v | 17 +++++++++-------- usrp2/top/u2plus/u2plus_core.v | 3 ++- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index 1feed1314..efa1c9390 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -346,14 +346,15 @@ module u2plus .sclk (sclk_int), .mosi (mosi), .miso (miso), - .sen_clk (sen_clk), - .sen_dac (sen_dac), - .sen_tx_db (sen_tx_db), - .sen_tx_adc (sen_tx_adc), - .sen_tx_dac (sen_tx_dac), - .sen_rx_db (sen_rx_db), - .sen_rx_adc (sen_rx_adc), - .sen_rx_dac (sen_rx_dac), + .sen_clk (SEN_CLK), + .sen_dac (SEN_DAC), + .sen_adc (SEN_ADC), + .sen_tx_db (SEN_TX_DB), + .sen_tx_adc (SEN_TX_ADC), + .sen_tx_dac (SEN_TX_DAC), + .sen_rx_db (SEN_RX_DB), + .sen_rx_adc (SEN_RX_ADC), + .sen_rx_dac (SEN_RX_DAC), .io_tx (io_tx[15:0]), .io_rx (io_rx[15:0]), .RAM_D (RAM_D), diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index 9e197cfbb..b71b34e8d 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -97,6 +97,7 @@ module u2plus_core input miso, output sen_clk, output sen_dac, + output sen_adc, output sen_tx_db, output sen_tx_adc, output sen_tx_dac, @@ -375,7 +376,7 @@ defparam bootram.RAM0.INIT_21=256'h00000000_00000000_00000000_00000000_00000000_ (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.wb_adr_i(s2_adr[4:0]),.wb_dat_i(s2_dat_o), .wb_dat_o(s2_dat_i),.wb_sel_i(s2_sel),.wb_we_i(s2_we),.wb_stb_i(s2_stb), .wb_cyc_i(s2_cyc),.wb_ack_o(s2_ack),.wb_err_o(),.wb_int_o(spi_int), - .ss_pad_o({sen_tx_db,sen_tx_adc,sen_tx_dac,sen_rx_db,sen_rx_adc,sen_rx_dac,sen_dac,sen_clk}), + .ss_pad_o({sen_adc, sen_tx_db,sen_tx_adc,sen_tx_dac,sen_rx_db,sen_rx_adc,sen_rx_dac,sen_dac,sen_clk}), .sclk_pad_o(sclk),.mosi_pad_o(mosi),.miso_pad_i(miso) ); // ///////////////////////////////////////////////////////////////////////// -- cgit v1.2.3 From e161ad7c61d88cac0ec85a972a64af8fe4449fce Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Tue, 20 Jul 2010 13:22:02 -0700 Subject: reconnect the serial clock --- usrp2/top/u2plus/u2plus.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index efa1c9390..e382b1aa4 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -343,7 +343,7 @@ module u2plus .clk_sel (clk_sel[1:0]), .clk_func (clk_func), .clk_status (clk_status), - .sclk (sclk_int), + .sclk (sclk), .mosi (mosi), .miso (miso), .sen_clk (SEN_CLK), -- cgit v1.2.3 From ef662b0c952f8e22ba760917f3781279471d69dc Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Wed, 21 Jul 2010 16:21:14 -0700 Subject: capitalization matching --- usrp2/top/u2plus/u2plus.v | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index e382b1aa4..d1a9166ac 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -125,6 +125,10 @@ module u2plus input flash_miso ); + wire CLK_TO_MAC_int, CLK_TO_MAC_int2; + IBUFG phyclk (.O(CLK_TO_MAC_int), .I(CLK_TO_MAC)); + BUFG phyclk2 (.O(CLK_TO_MAC_int2), .I(CLK_TO_MAC_int)); + // FPGA-specific pins connections wire clk_fpga, dsp_clk, clk_div, dcm_out, wb_clk, clock_ready; @@ -289,7 +293,7 @@ module u2plus u2plus_core u2p_c(.dsp_clk (dsp_clk), .wb_clk (wb_clk), .clock_ready (clock_ready), - .clk_to_mac (clk_to_mac), + .clk_to_mac (CLK_TO_MAC), .pps_in (pps_in), .leds (leds_int), .debug (debug[31:0]), -- cgit v1.2.3 From 0e98b9cfe5183f284da698243c6e91b61572c41e Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Tue, 27 Jul 2010 13:25:33 -0700 Subject: fix timing races on ADC and DAC pins --- usrp2/top/u2plus/u2plus.v | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index e382b1aa4..df91d8875 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -23,8 +23,8 @@ module u2plus input ADCB_0_p, input ADCB_0_n, // DAC - output [15:0] DACA, - output [15:0] DACB, + output reg [15:0] DACA, + output reg [15:0] DACB, input DAC_LOCK, // unused for now // DB IO Pins @@ -149,9 +149,10 @@ module u2plus wire dcm_rst = 0; - wire [13:0] adc_a, adc_b; + `ifdef LVDS - capture_ddrlvds #(.WIDTH(14)) capture_ddrlvds + wire [13:0] adc_a, adc_b; + capture_ddrlvds #(.WIDTH(14)) capture_ddrlvds (.clk(dsp_clk), .ssclk_p(ADC_clkout_p), .ssclk_n(ADC_clkout_n), .in_p({{ADCA_12_p, ADCA_10_p, ADCA_8_p, ADCA_6_p, ADCA_4_p, ADCA_2_p, ADCA_0_p}, {ADCB_12_p, ADCB_10_p, ADCB_8_p, ADCB_6_p, ADCB_4_p, ADCB_2_p, ADCB_0_p}}), @@ -159,11 +160,14 @@ module u2plus {ADCB_12_n, ADCB_10_n, ADCB_8_n, ADCB_6_n, ADCB_4_n, ADCB_2_n, ADCB_0_n}}), .out({adc_a,adc_b})); `else - assign adc_a = {ADCA_12_p,ADCA_12_n, ADCA_10_p,ADCA_10_n, ADCA_8_p,ADCA_8_n, ADCA_6_p,ADCA_6_n, + reg [13:0] adc_a, adc_b; + always @(posedge dsp_clk) + begin + adc_a <= {ADCA_12_p,ADCA_12_n, ADCA_10_p,ADCA_10_n, ADCA_8_p,ADCA_8_n, ADCA_6_p,ADCA_6_n, ADCA_4_p,ADCA_4_n, ADCA_2_p,ADCA_2_n, ADCA_0_p,ADCA_0_n }; - assign adc_b = {ADCB_12_p,ADCB_12_n, ADCB_10_p,ADCB_10_n, ADCB_8_p,ADCB_8_n, ADCB_6_p,ADCB_6_n, + adc_b <= {ADCB_12_p,ADCB_12_n, ADCB_10_p,ADCB_10_n, ADCB_8_p,ADCB_8_n, ADCB_6_p,ADCB_6_n, ADCB_4_p,ADCB_4_n, ADCB_2_p,ADCB_2_n, ADCB_0_p,ADCB_0_n }; - + end `endif // !`ifdef LVDS // Handle Clocks @@ -286,10 +290,16 @@ module u2plus .S(0) // Synchronous preset input ); */ + + wire [15:0] dac_a_int, dac_b_int; + + always @(negedge dsp_clk) DACA <= dac_a_int; + always @(negedge dsp_clk) DACB <= dac_b_int; + u2plus_core u2p_c(.dsp_clk (dsp_clk), .wb_clk (wb_clk), .clock_ready (clock_ready), - .clk_to_mac (clk_to_mac), + .clk_to_mac (CLK_TO_MAC), .pps_in (pps_in), .leds (leds_int), .debug (debug[31:0]), @@ -331,8 +341,8 @@ module u2plus .adc_ovf_b (adc_ovf_b), .adc_on_b (adc_on_b), .adc_oe_b (adc_oe_b), - .dac_a (DACA[15:0]), - .dac_b (DACB[15:0]), + .dac_a (dac_a_int[15:0]), + .dac_b (dac_b_int[15:0]), .scl_pad_i (scl_pad_i), .scl_pad_o (scl_pad_o), .scl_pad_oen_o (scl_pad_oen_o), -- cgit v1.2.3 From fc99cdcb6c3980e386c5d0124086cbe13e345c97 Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Wed, 28 Jul 2010 09:49:12 -0700 Subject: latest bootloader in core, fixed eth_led to be active high, connected eth clk --- usrp2/top/u2plus/u2plus.v | 4 +- usrp2/top/u2plus/u2plus_core.v | 202 +++++++++++++++++++++++++++++++++-------- 2 files changed, 167 insertions(+), 39 deletions(-) diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index c4db0d6cd..b349175de 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -218,7 +218,7 @@ module u2plus // LEDs are active low outputs wire [5:0] leds_int; - assign {leds,ETH_LED} = ~leds_int; // drive low to turn on leds + assign {leds,ETH_LED} = {6'b111110 ^ leds_int}; // drive low to turn on leds // SPI wire miso, mosi, sclk; @@ -303,7 +303,7 @@ module u2plus u2plus_core u2p_c(.dsp_clk (dsp_clk), .wb_clk (wb_clk), .clock_ready (clock_ready), - .clk_to_mac (CLK_TO_MAC), + .clk_to_mac (CLK_TO_MAC_int2), .pps_in (pps_in), .leds (leds_int), .debug (debug[31:0]), diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index b71b34e8d..6092f1ba3 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -285,41 +285,170 @@ module u2plus_core //defparam bootram.RAM0.INIT_01=256'ha48500ff_b810ffd0_f880200c_30a50001_10830000_308000ff_be23000c_a4640001; ////ICAP test v0.1 -defparam bootram.RAM0.INIT_00=256'h00000000_00000000_00000000_b8080234_00000000_b8080348_00000000_b8080050; -defparam bootram.RAM0.INIT_01=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_b8080350; -defparam bootram.RAM0.INIT_02=256'h3020ffe0_b0000000_304003f8_31a00430_00000000_00000000_00000000_00000000; -defparam bootram.RAM0.INIT_03=256'h3021ffe4_e060f800_b0000000_b8000000_30a30000_b9f40198_80000000_b9f400cc; -defparam bootram.RAM0.INIT_04=256'he8830000_e8600400_80000000_99fc2000_f8600400_b8000044_bc030014_f9e10000; -defparam bootram.RAM0.INIT_05=256'h80000000_99fc1800_30a00428_bc030010_30600000_b0000000_30630004_be24ffec; +defparam bootram.RAM0.INIT_00=256'h00000000_00000000_00000000_b80801c0_00000000_b8080d54_00000000_b8080050; +defparam bootram.RAM0.INIT_01=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_b8080d5c; +defparam bootram.RAM0.INIT_02=256'h3020ffe0_b0000000_30401448_31a01468_00000000_00000000_00000000_00000000; +defparam bootram.RAM0.INIT_03=256'h3021ffe4_e060f800_b0000000_b8000000_30a30000_b9f4047c_80000000_b9f400cc; +defparam bootram.RAM0.INIT_04=256'he8830000_e8601450_80000000_99fc2000_f8601450_b8000044_bc030014_f9e10000; +defparam bootram.RAM0.INIT_05=256'h80000000_99fc1800_30a01460_bc030010_30600000_b0000000_30630004_be24ffec; defparam bootram.RAM0.INIT_06=256'h30600000_b0000000_3021001c_b60f0008_e9e10000_f060f800_b0000000_30600001; -defparam bootram.RAM0.INIT_07=256'h80000000_99fc1800_bc03000c_30c0f804_b0000000_30a00428_f9e10000_3021ffe4; -defparam bootram.RAM0.INIT_08=256'h80000000_99fc2000_bc04000c_30a0042c_bc030014_30800000_b0000000_e860042c; -defparam bootram.RAM0.INIT_09=256'h06463800_20e00430_20c00430_f9e10000_2021ffec_3021001c_b60f0008_e9e10000; +defparam bootram.RAM0.INIT_07=256'h80000000_99fc1800_bc03000c_30c0f804_b0000000_30a01460_f9e10000_3021ffe4; +defparam bootram.RAM0.INIT_08=256'h80000000_99fc2000_bc04000c_30a01464_bc030014_30800000_b0000000_e8601464; +defparam bootram.RAM0.INIT_09=256'h06463800_20e01468_20c01468_f9e10000_2021ffec_3021001c_b60f0008_e9e10000; defparam bootram.RAM0.INIT_0A=256'hb0000000_20c0f800_b0000000_bc92fff4_06463800_20c60004_f8060000_bc720014; -defparam bootram.RAM0.INIT_0B=256'hb9f401e4_bc92fff4_06463800_20c60004_f8060000_bc720014_06463800_20e0f81c; -defparam bootram.RAM0.INIT_0C=256'h32630000_20a00000_b9f4002c_20e00000_20c00000_80000000_b9f40224_80000000; -defparam bootram.RAM0.INIT_0D=256'h20210014_b60f0008_30730000_c9e10000_80000000_b9f401b0_80000000_b9f4022c; -defparam bootram.RAM0.INIT_0E=256'hbc32fff0_aa434b40_b000004c_30630001_80000000_10600000_a48500ff_10a00000; -defparam bootram.RAM0.INIT_0F=256'ha48500ff_b810ffd0_f880200c_30a50001_10830000_308000ff_be23000c_a4640001; -defparam bootram.RAM0.INIT_10=256'hf8803500_30800012_f8603508_3060ffff_80000000_b9f4fe68_f9e10000_3021ffe4; -defparam bootram.RAM0.INIT_11=256'hf8610020_f9e10000_3021ffac_80000000_b60f0008_f860350c_f8a03504_30a0ffef; -defparam bootram.RAM0.INIT_12=256'hf9610040_f941003c_f9210038_f9010034_f8e10030_f8c1002c_f8a10028_f8810024; -defparam bootram.RAM0.INIT_13=256'he8603508_e880350c_f961001c_fa610050_95608001_fa41004c_fa210048_f9810044; -defparam bootram.RAM0.INIT_14=256'h30a50001_bc230060_84732000_32600001_84841800_a863ffff_10a00000_30c00404; -defparam bootram.RAM0.INIT_15=256'he8810024_e8610020_e961001c_e9e10000_30c60004_be32ffec_aa450008_12739800; -defparam bootram.RAM0.INIT_16=256'he9610040_e941003c_e9210038_e9010034_e8e10030_e8c1002c_e8a10028_940bc001; -defparam bootram.RAM0.INIT_17=256'h99fc1800_e8660000_30210054_b62e0000_ea610050_ea41004c_ea210048_e9810044; -defparam bootram.RAM0.INIT_18=256'h16459003_22400007_64e50402_44632c00_30600001_b800ffa8_fa60350c_80000000; -defparam bootram.RAM0.INIT_19=256'h80000000_b60f0008_f8603508_84632000_f8c70404_e8603508_a883ffff_be520018; -defparam bootram.RAM0.INIT_1A=256'h80000000_b60f0008_80000000_b6910000_80000000_b6110000_80000000_b60f0008; -defparam bootram.RAM0.INIT_1B=256'haa43ffff_326003e8_f9e10000_fa61001c_3021ffe0_e86003e8_80000000_b60f0008; -defparam bootram.RAM0.INIT_1C=256'hea61001c_e9e10000_bc32fff0_aa43ffff_e8730000_3273fffc_99fc1800_bc120018; -defparam bootram.RAM0.INIT_1D=256'h80000000_b9f4ffb0_80000000_b9f4fd28_d9e00800_3021fff8_30210020_b60f0008; -defparam bootram.RAM0.INIT_1E=256'hc9e00800_80000000_b9f4fca0_d9e00800_3021fff8_30210008_b60f0008_c9e00800; -defparam bootram.RAM0.INIT_1F=256'h00000000_00000000_00000000_ffffffff_00000000_ffffffff_30210008_b60f0008; -defparam bootram.RAM0.INIT_20=256'h00000340_00000340_00000340_00000340_00000340_00000340_00000340_000003f4; -defparam bootram.RAM0.INIT_21=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000340; - +defparam bootram.RAM0.INIT_0B=256'hb9f40bf0_bc92fff4_06463800_20c60004_f8060000_bc720014_06463800_20e0f828; +defparam bootram.RAM0.INIT_0C=256'h32630000_20a00000_b9f4014c_20e00000_20c00000_80000000_b9f40d70_80000000; +defparam bootram.RAM0.INIT_0D=256'h20210014_b60f0008_30730000_c9e10000_80000000_b9f40bbc_80000000_b9f40d78; +defparam bootram.RAM0.INIT_0E=256'he9e10000_f9610004_fa410010_95608001_fa21000c_f9610008_f9e10000_3021ffec; +defparam bootram.RAM0.INIT_0F=256'hbc050018_30210014_b62e0000_ea410010_ea21000c_e9610008_940bc001_e9610004; +defparam bootram.RAM0.INIT_10=256'h3021ff2c_80000000_b60f0008_bc32fff4_16432800_30630001_80000000_10600000; +defparam bootram.RAM0.INIT_11=256'hb9f402c0_32c1001c_3261004c_f8610028_f9e10000_fac100d0_fa6100cc_3061002c; +defparam bootram.RAM0.INIT_12=256'h22407fff_e8610024_bc230038_30a00f7c_10b30000_b9f405cc_10d60000_10b30000; +defparam bootram.RAM0.INIT_13=256'h30a00f7c_bc120040_aa430001_30a00f44_e061001c_10a30000_be520034_16439003; +defparam bootram.RAM0.INIT_14=256'he8e10020_e8c10028_b800ffa8_80000000_b9f40440_b800ffb4_80000000_b9f4044c; +defparam bootram.RAM0.INIT_15=256'h80000000_b9f40414_b800ff88_80000000_b9f40420_30a00f44_80000000_b9f40b54; +defparam bootram.RAM0.INIT_16=256'hb800ff60_80000000_b9f403f8_30a00f48_80000000_b9f409a0_30a08000_b0000000; +defparam bootram.RAM0.INIT_17=256'h30a0a120_b0000007_9403c001_ac640002_94808001_fa61001c_f9e10000_3021ffe0; +defparam bootram.RAM0.INIT_18=256'hb9f40750_80000000_b9f40408_f800200c_80000000_b9f4fef4_f860200c_306000ff; +defparam bootram.RAM0.INIT_19=256'h30a01048_bc04013c_a4842000_e8803334_80000000_b9f403a4_30a00f80_80000000; +defparam bootram.RAM0.INIT_1A=256'h30a010ac_bc23010c_80000000_b9f4099c_30a00000_b0000020_80000000_b9f4038c; +defparam bootram.RAM0.INIT_1B=256'h30a010fc_bc030058_80000000_b9f40930_30a00000_b0000040_80000000_b9f4036c; +defparam bootram.RAM0.INIT_1C=256'h30c07c00_b9f4070c_30a00000_b0000040_30e08000_b0000000_80000000_b9f4034c; +defparam bootram.RAM0.INIT_1D=256'he9e10000_80000000_b9f40318_30a01128_80000000_b9f408c0_30a08000_b0000000; +defparam bootram.RAM0.INIT_1E=256'hb000007f_80000000_b9f402f8_30a01164_30210020_b60f0008_30600001_ea61001c; +defparam bootram.RAM0.INIT_1F=256'h80000000_b9f402d4_30a00ff0_12630000_be230030_80000000_b9f408bc_30a00000; +defparam bootram.RAM0.INIT_20=256'hb0000000_30210020_b60f0008_ea61001c_e9e10000_10730000_80000000_b9f4fe1c; +defparam bootram.RAM0.INIT_21=256'hb9f4082c_30a08000_b0000000_30c07c00_b9f40678_30a00000_b000007f_30e08000; +defparam bootram.RAM0.INIT_22=256'hb60f0008_30600001_ea61001c_e9e10000_80000000_b9f40284_30a00fb4_80000000; +defparam bootram.RAM0.INIT_23=256'h80000000_b9f40254_30a00f94_b800feec_80000000_b9f40264_30a01074_30210020; +defparam bootram.RAM0.INIT_24=256'h80000000_b9f40234_30a00ff0_bc23001c_80000000_b9f40818_30a00000_b000007f; +defparam bootram.RAM0.INIT_25=256'hb9f405e8_30a00000_b000007f_30e08000_b0000000_b800fe94_80000000_b9f4fd7c; +defparam bootram.RAM0.INIT_26=256'h80000000_b9f401f4_30a00fb4_80000000_b9f4079c_30a08000_b0000000_30c07c00; +defparam bootram.RAM0.INIT_27=256'h3021ffdc_80000000_b60f0008_80000000_b9f4fb84_f9e10000_3021ffe4_b800fe5c; +defparam bootram.RAM0.INIT_28=256'h90630060_80000000_b9f402b0_12c50000_f9e10000_12650000_fac10020_fa61001c; +defparam bootram.RAM0.INIT_29=256'he9e10000_10760000_f0130000_3273ffff_32730001_be32ffec_aa43000a_f0730000; +defparam bootram.RAM0.INIT_2A=256'h80000000_b9f4026c_f9e10000_3021ffe4_30210024_b60f0008_eac10020_ea61001c; +defparam bootram.RAM0.INIT_2B=256'h12650000_e0650000_f9e10000_fa61001c_3021ffe0_3021001c_b60f0008_e9e10000; +defparam bootram.RAM0.INIT_2C=256'he9e10000_bc25fff0_90a30060_e0730000_32730001_b9f401b8_bc050018_90a30060; +defparam bootram.RAM0.INIT_2D=256'hb9f40184_f9e10000_fac1001c_3021ffe0_30210020_b60f0008_10600000_ea61001c; +defparam bootram.RAM0.INIT_2E=256'hf9e10000_3021ffe4_30210020_b60f0008_eac1001c_e9e10000_10760000_12c50000; +defparam bootram.RAM0.INIT_2F=256'h9404c001_ac870002_94e08001_3021001c_b60f0008_e9e10000_80000000_b9f4013c; +defparam bootram.RAM0.INIT_30=256'hb0000000_f860200c_80633000_84632000_84c62800_a866ffff_e880f81c_b0000000; +defparam bootram.RAM0.INIT_31=256'h80000000_b60f0008_9404c001_80843800_ac840002_94808001_a4e70002_f860f81c; +defparam bootram.RAM0.INIT_32=256'hb0000000_f8a0200c_88a52000_e880f81c_b0000000_9406c001_acc30002_94608001; +defparam bootram.RAM0.INIT_33=256'h80000000_b60f0008_9404c001_80841800_ac840002_94808001_a4630002_f8a0f81c; +defparam bootram.RAM0.INIT_34=256'h84632000_84c62800_a866ffff_e880f820_b0000000_9404c001_ac870002_94e08001; +defparam bootram.RAM0.INIT_35=256'h80843800_ac840002_94808001_a4e70002_f860f820_b0000000_f8602020_80633000; +defparam bootram.RAM0.INIT_36=256'hb9f40064_80000000_b9f4fe98_f9e10000_3021ffe4_80000000_b60f0008_9404c001; +defparam bootram.RAM0.INIT_37=256'hb9f40044_f9e10000_3021ffe4_3021001c_b60f0008_10600000_e9e10000_30a0000a; +defparam bootram.RAM0.INIT_38=256'h3021ffe4_80000000_b60f0008_f0a01454_3021001c_b60f0008_e9e10000_30a0000a; +defparam bootram.RAM0.INIT_39=256'h3021001c_b60f0008_e9e10000_f8603700_306000d9_30a00001_b9f4ffec_f9e10000; +defparam bootram.RAM0.INIT_3A=256'hbc03fffc_e8603704_12650000_be120024_aa45000a_f9e10000_fa61001c_3021ffe0; +defparam bootram.RAM0.INIT_3B=256'hb800ffdc_30a0000d_b9f4ffcc_30210020_b60f0008_ea61001c_e9e10000_fa60370c; +defparam bootram.RAM0.INIT_3C=256'he8603704_30a0000d_be120024_aa53000a_f9e10000_12650000_fa61001c_3021ffe0; +defparam bootram.RAM0.INIT_3D=256'h80000000_b9f4ff88_30210020_b60f0008_ea61001c_e9e10000_fa60370c_bc030008; +defparam bootram.RAM0.INIT_3E=256'h3065ffa9_90a50060_80000000_b60f0008_e8603710_bc03fffc_e8603708_b800ffdc; +defparam bootram.RAM0.INIT_3F=256'h16459001_32400039_a46300ff_3065ffc9_a46300ff_be520024_16459001_3240005a; +defparam bootram.RAM1.INIT_00=256'h13250000_fb21002c_3021ffc8_80000000_b60f0008_a46400ff_3085ffd0_be52000c; +defparam bootram.RAM1.INIT_01=256'he0790000_fb410030_fb010028_fae10024_fac10020_fa61001c_f9e10000_fb610034; +defparam bootram.RAM1.INIT_02=256'heac10020_ea61001c_e9e10000_10650000_30a0ffff_be120034_aa43003a_13660000; +defparam bootram.RAM1.INIT_03=256'he8c01458_30210038_b60f0008_eb610034_eb410030_eb21002c_eb010028_eae10024; +defparam bootram.RAM1.INIT_04=256'ha4630044_c0662000_a4a300ff_be04001c_90840060_30650001_c085c800_30a00001; +defparam bootram.RAM1.INIT_05=256'hb9f4ff1c_e0b90002_80000000_b9f4ff28_e0b90001_30a0fffe_b810ffac_bc23ffe4; +defparam bootram.RAM1.INIT_06=256'hbe38ff74_93040060_e083000b_10791800_fa7b0004_10739800_12761800_66c30404; +defparam bootram.RAM1.INIT_07=256'he0b90004_66e30404_b9f4fee4_e0b90003_13530000_b9f4fef0_e0b90005_30a0fffd; +defparam bootram.RAM1.INIT_08=256'h12f7b000_12d61800_12d61800_b9f4fec8_64630408_e0b90006_66c3040c_b9f4fed8; +defparam bootram.RAM1.INIT_09=256'h1063b000_66c30404_b9f4fea4_e0b90008_80000000_b9f4feb0_e0b90007_fafb0008; +defparam bootram.RAM1.INIT_0A=256'ha6d600ff_32d60009_12d8c000_ea7b000c_13580000_10f30000_be130060_f07b0000; +defparam bootram.RAM1.INIT_0B=256'hd0789800_1063b800_66e30404_b9f4fe68_e0b60001_12d9b000_b9f4fe74_c0b6c800; +defparam bootram.RAM1.INIT_0C=256'hbe52ffb8_1647c003_107a1800_a70400ff_c073c000_30980001_e8fb0004_ea7b000c; +defparam bootram.RAM1.INIT_0D=256'h10632000_e0b70009_12f9b800_64760008_12e73800_e09b0000_eadb0008_a74300ff; +defparam bootram.RAM1.INIT_0E=256'h16d60000_67030404_b9f4fe04_e0b7000a_12d61800_b9f4fe10_107a1800_12c7b000; +defparam bootram.RAM1.INIT_0F=256'h10a00000_b810fe58_30a0fffb_be32fe60_1643b000_a46300ff_a6d600ff_1063c000; +defparam bootram.RAM1.INIT_10=256'ha1292000_a508007f_a5290600_80000000_b60f0008_bc23fff8_a4630100_e8603b10; +defparam bootram.RAM1.INIT_11=256'ha46600ff_f8803b10_f8e03b00_bc23fff8_a4630100_e8603b10_a4a500ff_80884800; +defparam bootram.RAM1.INIT_12=256'hbc23fff8_a4630100_e8603b10_10650000_be050018_f8803b10_a0840100_f8603b18; +defparam bootram.RAM1.INIT_13=256'h10a00000_f9e10000_3021ffe4_10e60000_10c00000_80000000_b60f0008_e8603b00; +defparam bootram.RAM1.INIT_14=256'hb60f0008_e9e10000_80000000_b9f4ff84_f8603b14_30600001_31200400_31000008; +defparam bootram.RAM1.INIT_15=256'h13060000_f9e10000_fb010038_fa61002c_12c50000_fac10030_3021ffc4_3021001c; +defparam bootram.RAM1.INIT_16=256'h3060000b_66d60408_f8603b10_f8003b18_30600400_12670000_b9f4ff3c_fae10034; +defparam bootram.RAM1.INIT_17=256'hf8603b10_30600528_f8803b10_30800428_f8603b18_30600001_fac03b00_f8603b04; +defparam bootram.RAM1.INIT_18=256'hf8603b10_30600400_3261001c_12e00000_12d30000_be18009c_80000000_b9f4ff00; +defparam bootram.RAM1.INIT_19=256'he8603b08_f881001c_14b7c000_e8803b0c_80000000_b9f4fed8_f8803b10_30800500; +defparam bootram.RAM1.INIT_1A=256'hbeb20034_16459003_22400010_f8610028_e8603b00_f8810024_e8803b04_f8610020; +defparam bootram.RAM1.INIT_1B=256'h12f72800_bc32fff0_16442800_30840001_d0762000_c0732000_30a00010_10800000; +defparam bootram.RAM1.INIT_1C=256'hbe52ff7c_1658b803_12f72800_bc25ffd8_b800ff8c_12d62800_beb20020_1658b803; +defparam bootram.RAM1.INIT_1D=256'hb60f0008_eb010038_eae10034_eac10030_ea61002c_e9e10000_f8003b18_12d62800; +defparam bootram.RAM1.INIT_1E=256'hf9e10000_31000020_30c00001_30a00001_3021ffe4_30e00000_b0009f00_3021003c; +defparam bootram.RAM1.INIT_1F=256'hb0000000_3021001c_b60f0008_a463ffff_b00000ff_e9e10000_31200400_b9f4fe34; +defparam bootram.RAM1.INIT_20=256'hb9f4ffa8_3021001c_b60f0008_e9e10000_bc030010_f9e10000_3021ffe4_e860f824; +defparam bootram.RAM1.INIT_21=256'h80000000_b9f40100_a46300ff_be120010_aa440020_a48400ff_64830008_80000000; +defparam bootram.RAM1.INIT_22=256'hb0000000_e063118a_bc52ffe4_16439001_32400018_bcb2fff0_16439001_32400015; +defparam bootram.RAM1.INIT_23=256'hf9e10000_10b60000_10c50000_12c00000_fac1001c_3021ffe0_b800ffac_f860f824; +defparam bootram.RAM1.INIT_24=256'h30210020_b60f0008_eac1001c_e9e10000_80000000_99fcb000_30e00024_b9f40174; +defparam bootram.RAM1.INIT_25=256'h10b60000_30c00006_b9f4fdf0_f9e10000_10f60000_32c1001c_fac10028_3021ffd4; +defparam bootram.RAM1.INIT_26=256'heac10028_e9e10000_a884ffff_80841800_14830000_30e00006_b9f400b0_30c011a4; +defparam bootram.RAM1.INIT_27=256'hf9e10000_10f60000_32c1001c_fac10028_3021ffd4_3021002c_b60f0008_6464001f; +defparam bootram.RAM1.INIT_28=256'h80841800_14830000_30e00006_b9f40064_30c011ac_10b60000_30c00006_b9f4fda4; +defparam bootram.RAM1.INIT_29=256'h3021ffe4_30a011b4_3021002c_b60f0008_6464001f_eac10028_e9e10000_a884ffff; +defparam bootram.RAM1.INIT_2A=256'hb6910000_80000000_b6110000_30a0ffff_b9f4f324_80000000_b9f4f828_f9e10000; +defparam bootram.RAM1.INIT_2B=256'hbeb2005c_16479003_22400003_80000000_b60f0008_80000000_b60f0008_80000000; +defparam bootram.RAM1.INIT_2C=256'h30e7fffc_bc320040_16432000_e8660000_e8850000_bc230050_a4630003_80653000; +defparam bootram.RAM1.INIT_2D=256'hbc120028_aa47ffff_30e7ffff_30c60004_be52ffe0_16479003_22400003_30a50004; +defparam bootram.RAM1.INIT_2E=256'haa47ffff_30e7ffff_30c60001_30a50001_be320020_16434000_e0660000_e1050000; +defparam bootram.RAM1.INIT_2F=256'hbeb20018_16479003_2240000f_14634000_b60f0008_10600000_b60f0008_bc32ffe0; +defparam bootram.RAM1.INIT_30=256'h10e72000_11040000_bc070024_11050000_be030034_a4630003_80662800_10850000; +defparam bootram.RAM1.INIT_31=256'h10650000_b60f0008_30c60001_be32fff0_16474000_31080001_f0680000_e0660000; +defparam bootram.RAM1.INIT_32=256'he866000c_f8880008_e8860008_f8680004_e8660004_f8880000_30e7fff0_e8860000; +defparam bootram.RAM1.INIT_33=256'h16479003_22400003_31080010_be52ffd0_16479003_2240000f_f868000c_30c60010; +defparam bootram.RAM1.INIT_34=256'hbe52ffec_16479003_22400003_d8682000_30e7fffc_c8662000_10800000_bcb2002c; +defparam bootram.RAM1.INIT_35=256'hfa61001c_3021ffe0_e8600f34_10880000_b810ff68_11044000_10c43000_30840004; +defparam bootram.RAM1.INIT_36=256'haa43ffff_e8730000_3273fffc_99fc1800_bc120018_aa43ffff_32600f34_f9e10000; +defparam bootram.RAM1.INIT_37=256'hb9f4f1dc_d9e00800_3021fff8_30210020_b60f0008_ea61001c_e9e10000_bc32fff0; +defparam bootram.RAM1.INIT_38=256'hd9e00800_3021fff8_30210008_b60f0008_c9e00800_80000000_b9f4ffb0_80000000; +defparam bootram.RAM1.INIT_39=256'hffffffff_00000000_ffffffff_30210008_b60f0008_c9e00800_80000000_b9f4f154; +defparam bootram.RAM1.INIT_3A=256'h7475726e_65207265_696d6167_61696e20_523a206d_4552524f_4f4b0000_00000000; +defparam bootram.RAM1.INIT_3B=256'h4e4f4b00_64652e00_64206d6f_206c6f61_49484558_20696e20_4261636b_65642120; +defparam bootram.RAM1.INIT_3C=256'h20555352_74696e67_53746172_720a0000_6f616465_6f6f746c_322b2062_55535250; +defparam bootram.RAM1.INIT_3D=256'h65747572_523a2072_4552524f_2e000000_6d6f6465_61666520_696e2073_50322b20; +defparam bootram.RAM1.INIT_3E=256'h6f756c64_73207368_20546869_72616d21_70726f67_61696e20_6f6d206d_6e206672; +defparam bootram.RAM1.INIT_3F=256'h66652066_6f207361_523a206e_4552524f_6e210000_61707065_65722068_206e6576; +defparam bootram.RAM2.INIT_00=256'h6d206120_20492061_626c652e_61696c61_65206176_696d6167_61726520_69726d77; +defparam bootram.RAM2.INIT_01=256'h5820746f_20494845_6c6f6164_20746f20_66726565_65656c20_6b2e2046_62726963; +defparam bootram.RAM2.INIT_02=256'h726f6475_69642070_2076616c_20666f72_6b696e67_43686563_2e000000_2052414d; +defparam bootram.RAM2.INIT_03=256'h6f647563_64207072_56616c69_2e2e2e00_6d616765_47412069_6e204650_6374696f; +defparam bootram.RAM2.INIT_04=256'h7074696e_7474656d_642e2041_666f756e_61676520_4120696d_20465047_74696f6e; +defparam bootram.RAM2.INIT_05=256'h696f6e20_64756374_2070726f_616c6964_4e6f2076_742e0000_20626f6f_6720746f; +defparam bootram.RAM2.INIT_06=256'h20746f20_74696e67_74656d70_2e0a4174_6f756e64_67652066_20696d61_46504741; +defparam bootram.RAM2.INIT_07=256'h56616c69_2e2e2e00_77617265_6669726d_696f6e20_64756374_2070726f_6c6f6164; +defparam bootram.RAM2.INIT_08=256'h204c6f61_756e642e_6520666f_6d776172_20666972_74696f6e_6f647563_64207072; +defparam bootram.RAM2.INIT_09=256'h61696e20_6f6d206d_6e206672_65747572_523a2052_4552524f_2e2e2e00_64696e67; +defparam bootram.RAM2.INIT_0A=256'h61707065_65722068_206e6576_6f756c64_73207368_20546869_72616d21_70726f67; +defparam bootram.RAM2.INIT_0B=256'h77617265_6669726d_696f6e20_64756374_2070726f_616c6964_4e6f2076_6e210000; +defparam bootram.RAM2.INIT_0C=256'h2e2e2e00_77617265_6669726d_61666520_6e672073_54727969_6e642e20_20666f75; +defparam bootram.RAM2.INIT_0D=256'h00000000_6f72740a_0a0a6162_aa990000_ffffffff_b8080000_b0000000_10101200; +defparam bootram.RAM2.INIT_0E=256'h20202020_20202020_20202020_20202020_28282820_20202828_20202020_00202020; +defparam bootram.RAM2.INIT_0F=256'h10101010_04040410_04040404_10040404_10101010_10101010_10101010_20881010; +defparam bootram.RAM2.INIT_10=256'h10101010_01010101_01010101_01010101_01010101_01010101_41414141_10104141; +defparam bootram.RAM2.INIT_11=256'h10101010_02020202_02020202_02020202_02020202_02020202_42424242_10104242; +defparam bootram.RAM2.INIT_12=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_20000000; +defparam bootram.RAM2.INIT_13=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_14=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_15=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_16=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_17=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_18=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_19=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_1A=256'h20202020_20202020_20202020_28282020_20282828_20202020_20202020_00000000; +defparam bootram.RAM2.INIT_1B=256'h04041010_04040404_04040404_10101010_10101010_10101010_88101010_20202020; +defparam bootram.RAM2.INIT_1C=256'h01010110_01010101_01010101_01010101_01010101_41414101_10414141_10101010; +defparam bootram.RAM2.INIT_1D=256'h02020210_02020202_02020202_02020202_02020202_42424202_10424242_10101010; +defparam bootram.RAM2.INIT_1E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_10101020; +defparam bootram.RAM2.INIT_1F=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_20=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_21=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_22=256'h00000000_00001344_01000000_00000f40_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; ram_harvard2 #(.AWIDTH(15),.RAM_SIZE(32768)) sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), @@ -396,8 +525,8 @@ defparam bootram.RAM0.INIT_21=256'h00000000_00000000_00000000_00000000_00000000_ nsgpio nsgpio(.clk_i(wb_clk),.rst_i(wb_rst), .cyc_i(s4_cyc),.stb_i(s4_stb),.adr_i(s4_adr[3:0]),.we_i(s4_we), .dat_i(s4_dat_o),.dat_o(s4_dat_i),.ack_o(s4_ack), - .atr(atr_lines),.debug_0(debug_gpio_0),.debug_1(debug_gpio_1) - //.gpio( {io_tx,io_rx} ) + .atr(atr_lines),.debug_0(debug_gpio_0),.debug_1(debug_gpio_1), + .gpio( {io_tx,io_rx} ) ); // ///////////////////////////////////////////////////////////////////////// @@ -685,10 +814,9 @@ defparam bootram.RAM0.INIT_21=256'h00000000_00000000_00000000_00000000_00000000_ // Debug Pins assign debug_clk = {dsp_clk, wb_clk}; - assign debug = m0_dat_o; + assign debug = debug_vt; assign debug_gpio_0 = 32'd0; assign debug_gpio_1 = 32'd0; - assign {io_tx,io_rx} = {if_adr, m0_adr}; endmodule // u2_core -- cgit v1.2.3 From ed2882e600832f6cb46d05bde7aa49d045e63895 Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Wed, 28 Jul 2010 15:52:00 -0700 Subject: Fix for SPI SS > 8 bits wide --- usrp2/opencores/spi/rtl/verilog/spi_defines.v | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usrp2/opencores/spi/rtl/verilog/spi_defines.v b/usrp2/opencores/spi/rtl/verilog/spi_defines.v index a6925918e..25c08214b 100644 --- a/usrp2/opencores/spi/rtl/verilog/spi_defines.v +++ b/usrp2/opencores/spi/rtl/verilog/spi_defines.v @@ -102,8 +102,8 @@ // Number of device select signals. Use SPI_SS_NB for fine tuning the // exact number. // -`define SPI_SS_NB_8 -//`define SPI_SS_NB_16 +//`define SPI_SS_NB_8 +`define SPI_SS_NB_16 //`define SPI_SS_NB_24 //`define SPI_SS_NB_32 -- cgit v1.2.3 From dcdab8c84ed9d4481ee929fdb13a11e2be930329 Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Thu, 29 Jul 2010 10:59:53 -0700 Subject: Added DCM reset line to sr. --- usrp2/top/u2plus/u2plus.v | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index b349175de..d894631ac 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -151,9 +151,11 @@ module u2plus OBUFDS exp_user_out_pin (.O(exp_user_out_p),.OB(exp_user_out_n),.I(exp_user_out)); defparam exp_user_out_pin.IOSTANDARD = "LVDS_25"; - wire dcm_rst = 0; - - + reg [5:0] clock_ready_d; + always @(posedge clk_fpga) + clock_ready_d[5:0] <= {clock_ready_d[4:0],clock_ready}; + wire dcm_rst = ~&clock_ready_d & |clock_ready_d; + `ifdef LVDS wire [13:0] adc_a, adc_b; capture_ddrlvds #(.WIDTH(14)) capture_ddrlvds -- cgit v1.2.3 From f0e231396d6c512dc4a3fee0c186b3651327e9f2 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Wed, 11 Aug 2010 14:34:35 -0700 Subject: quad uart instead of single, for the extra on board serial ports --- usrp2/control_lib/Makefile.srcs | 1 + usrp2/control_lib/quad_uart.v | 71 +++++++++++++++++++++++++++++++++++++++++ usrp2/top/u2plus/u2plus.v | 5 ++- usrp2/top/u2plus/u2plus_core.v | 15 +++++---- 4 files changed, 82 insertions(+), 10 deletions(-) create mode 100644 usrp2/control_lib/quad_uart.v diff --git a/usrp2/control_lib/Makefile.srcs b/usrp2/control_lib/Makefile.srcs index ad491b83d..666ac344c 100644 --- a/usrp2/control_lib/Makefile.srcs +++ b/usrp2/control_lib/Makefile.srcs @@ -30,6 +30,7 @@ srl.v \ system_control.v \ wb_1master.v \ wb_readback_mux.v \ +quad_uart.v \ simple_uart.v \ simple_uart_tx.v \ simple_uart_rx.v \ diff --git a/usrp2/control_lib/quad_uart.v b/usrp2/control_lib/quad_uart.v new file mode 100644 index 000000000..afa6fae1d --- /dev/null +++ b/usrp2/control_lib/quad_uart.v @@ -0,0 +1,71 @@ + +module quad_uart + #(parameter TXDEPTH = 1, + parameter RXDEPTH = 1) + (input clk_i, input rst_i, + input we_i, input stb_i, input cyc_i, output reg ack_o, + input [4:0] adr_i, input [31:0] dat_i, output reg [31:0] dat_o, + output [3:0] rx_int_o, output [3:0] tx_int_o, + output [3:0] tx_o, input [3:0] rx_i, output [3:0] baud_o + ); + + // Register Map + localparam SUART_CLKDIV = 0; + localparam SUART_TXLEVEL = 1; + localparam SUART_RXLEVEL = 2; + localparam SUART_TXCHAR = 3; + localparam SUART_RXCHAR = 4; + + wire wb_acc = cyc_i & stb_i; // WISHBONE access + wire wb_wr = wb_acc & we_i; // WISHBONE write access + + reg [15:0] clkdiv[0:3]; + wire [7:0] rx_char[0:3]; + wire [3:0] tx_fifo_full, rx_fifo_empty; + wire [7:0] tx_fifo_level[0:3], rx_fifo_level[0:3]; + + always @(posedge clk_i) + if (rst_i) + ack_o <= 1'b0; + else + ack_o <= wb_acc & ~ack_o; + + integer i; + always @(posedge clk_i) + if (rst_i) + for(i=0;i<4;i=i+1) + clkdiv[i] <= 0; + else if (wb_wr) + case(adr_i[2:0]) + SUART_CLKDIV : clkdiv[adr_i[4:3]] <= dat_i[15:0]; + endcase // case(adr_i) + + always @(posedge clk_i) + case (adr_i[2:0]) + SUART_TXLEVEL : dat_o <= tx_fifo_level[adr_i[4:3]]; + SUART_RXLEVEL : dat_o <= rx_fifo_level[adr_i[4:3]]; + SUART_RXCHAR : dat_o <= rx_char[adr_i[4:3]]; + endcase // case(adr_i) + + genvar j; + generate + for(j=0;j<4;j=j+1) + begin : gen_uarts + simple_uart_tx #(.DEPTH(TXDEPTH)) simple_uart_tx + (.clk(clk_i),.rst(rst_i), + .fifo_in(dat_i[7:0]),.fifo_write(ack_o && wb_wr && (adr_i[2:0] == SUART_TXCHAR) && (adr_i[4:3]==j)), + .fifo_level(tx_fifo_level[j]),.fifo_full(tx_fifo_full[j]), + .clkdiv(clkdiv[j]),.baudclk(baud_o[j]),.tx(tx_o[j])); + + simple_uart_rx #(.DEPTH(RXDEPTH)) simple_uart_rx + (.clk(clk_i),.rst(rst_i), + .fifo_out(rx_char[j]),.fifo_read(ack_o && ~wb_wr && (adr_i[2:0] == SUART_RXCHAR) && (adr_i[4:3]==j)), + .fifo_level(rx_fifo_level[j]),.fifo_empty(rx_fifo_empty[j]), + .clkdiv(clkdiv[j]),.rx(rx_i[j])); + end // block: gen_uarts + endgenerate + + assign tx_int_o = ~tx_fifo_full; // Interrupt for those that have space + assign rx_int_o = ~rx_fifo_empty; // Interrupt for those that have data + +endmodule // quad_uart diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index d894631ac..a0ba4d4cc 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -381,8 +381,8 @@ module u2plus .RAM_WEn (RAM_WEn), .RAM_OEn (RAM_OEn), .RAM_LDn (RAM_LDn), - .uart_tx_o (TXD[1]), - .uart_rx_i (RXD[1]), + .uart_tx_o (TXD[3:1]), + .uart_rx_i ({1'b1,RXD[3:1]}), .uart_baud_o (), .sim_mode (1'b0), .clock_divider (2), @@ -395,6 +395,5 @@ module u2plus assign RAM_ZZ = 1; assign RAM_BWn = 4'b1111; - assign TXD[3:2] = 2'b11; endmodule // u2plus diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index 6092f1ba3..79318aa27 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -120,9 +120,9 @@ module u2plus_core output RAM_LDn, // Debug stuff - output uart_tx_o, - input uart_rx_i, - output uart_baud_o, + output [3:0] uart_tx_o, + input [3:0] uart_rx_i, + output [3:0] uart_baud_o, input sim_mode, input [3:0] clock_divider, input button, @@ -156,7 +156,8 @@ module u2plus_core wire [31:0] status, status_b0, status_b1, status_b2, status_b3, status_b4, status_b5, status_b6, status_b7; wire bus_error, spi_int, i2c_int, pps_int, onetime_int, periodic_int, buffer_int; - wire proc_int, overrun, underrun, uart_tx_int, uart_rx_int; + wire proc_int, overrun, underrun; + wire [3:0] uart_tx_int, uart_rx_int; wire [31:0] debug_gpio_0, debug_gpio_1; wire [31:0] atr_lines; @@ -642,8 +643,8 @@ defparam bootram.RAM2.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_ // Interrupt Controller, Slave #8 assign irq= {{8'b0}, - {8'b0}, - {2'b0, button, periodic_int, clk_status, serdes_link_up, uart_tx_int, uart_rx_int}, + {uart_tx_int[3:0], uart_rx_int[3:0]}, + {2'b0, button, periodic_int, clk_status, serdes_link_up, 2'b00}, {pps_int,overrun,underrun,PHY_INTn,i2c_int,spi_int,onetime_int,buffer_int}}; pic pic(.clk_i(wb_clk),.rst_i(wb_rst),.cyc_i(s8_cyc),.stb_i(s8_stb),.adr_i(s8_adr[4:2]), @@ -670,7 +671,7 @@ defparam bootram.RAM2.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_ simple_uart #(.TXDEPTH(3),.RXDEPTH(3)) uart // depth of 3 is 128 entries (.clk_i(wb_clk),.rst_i(wb_rst), .we_i(sa_we),.stb_i(sa_stb),.cyc_i(sa_cyc),.ack_o(sa_ack), - .adr_i(sa_adr[4:2]),.dat_i(sa_dat_o),.dat_o(sa_dat_i), + .adr_i(sa_adr[6:2]),.dat_i(sa_dat_o),.dat_o(sa_dat_i), .rx_int_o(uart_rx_int),.tx_int_o(uart_tx_int), .tx_o(uart_tx_o),.rx_i(uart_rx_i),.baud_o(uart_baud_o)); -- cgit v1.2.3 From fe9ff1691f632677573f1cb3737684cfd181a21d Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Thu, 12 Aug 2010 11:37:59 -0700 Subject: Fixed u2plus_core.v to use quad_uart instead of simple_uart. --- usrp2/top/u2plus/u2plus_core.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index 79318aa27..1db7e5b79 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -668,7 +668,7 @@ defparam bootram.RAM2.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_ // ///////////////////////////////////////////////////////////////////////// // UART, Slave #10 - simple_uart #(.TXDEPTH(3),.RXDEPTH(3)) uart // depth of 3 is 128 entries + quad_uart #(.TXDEPTH(3),.RXDEPTH(3)) uart // depth of 3 is 128 entries (.clk_i(wb_clk),.rst_i(wb_rst), .we_i(sa_we),.stb_i(sa_stb),.cyc_i(sa_cyc),.ack_o(sa_ack), .adr_i(sa_adr[6:2]),.dat_i(sa_dat_o),.dat_o(sa_dat_i), -- cgit v1.2.3 From 2c70f2bdd17708321d0ce2010f8471900ca4349a Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Fri, 20 Aug 2010 15:29:53 -0700 Subject: Added 12mA current spec to eth phy LED pin. Changed debug pins to debug ICAP instead of VITA -- which makes it actually meet timing, too. Bonus. --- usrp2/top/u2plus/u2plus.ucf | 2 +- usrp2/top/u2plus/u2plus_core.v | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/usrp2/top/u2plus/u2plus.ucf b/usrp2/top/u2plus/u2plus.ucf index 00838e19d..aee9e57bf 100755 --- a/usrp2/top/u2plus/u2plus.ucf +++ b/usrp2/top/u2plus/u2plus.ucf @@ -250,7 +250,7 @@ NET "PHY_INTn" LOC = "L22" ; NET "MDIO" LOC = "K21" ; NET "MDC" LOC = "J23" ; NET "PHY_RESETn" LOC = "J22" ; -NET "ETH_LED" LOC = "H20" ; +NET "ETH_LED" LOC = "H20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; ## MIMO Interface NET "exp_time_out_p" LOC = "Y14" ; diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index 1db7e5b79..ee9d206d8 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -815,7 +815,8 @@ defparam bootram.RAM2.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_ // Debug Pins assign debug_clk = {dsp_clk, wb_clk}; - assign debug = debug_vt; +// assign debug = debug_vt; + assign debug = {wb_clk, wb_rst, sd_cyc, sd_stb, sd_we, sd_ack, sd_dat_o[7:0], sd_dat_i[7:0], 10'd0}; assign debug_gpio_0 = 32'd0; assign debug_gpio_1 = 32'd0; -- cgit v1.2.3 From e5c97b4a2cdccf0d87c585cf807945e4f58e58a7 Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Tue, 24 Aug 2010 13:25:36 -0700 Subject: Ensure ethernet LED pin has 12mA output --- usrp2/top/u2plus/u2plus.ucf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usrp2/top/u2plus/u2plus.ucf b/usrp2/top/u2plus/u2plus.ucf index aee9e57bf..a9ff9413d 100755 --- a/usrp2/top/u2plus/u2plus.ucf +++ b/usrp2/top/u2plus/u2plus.ucf @@ -250,7 +250,7 @@ NET "PHY_INTn" LOC = "L22" ; NET "MDIO" LOC = "K21" ; NET "MDC" LOC = "J23" ; NET "PHY_RESETn" LOC = "J22" ; -NET "ETH_LED" LOC = "H20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "ETH_LEd" LOC = "H20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; ## MIMO Interface NET "exp_time_out_p" LOC = "Y14" ; -- cgit v1.2.3 From d0815967a27d01059230679e2d635377ac8c18b3 Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Tue, 24 Aug 2010 13:36:48 -0700 Subject: Added a sanity checker Python script. The script just looks for input/inout/outputs that are declared in the .v but not in the .ucf. If it finds an occurrence, it aborts the compile. Removed pin "POR" from u2plus.v due to the script. Also reverted an error I introduced to test the script, which I mistakenly committed earlier. --- usrp2/top/Makefile.common | 4 ++- usrp2/top/python/check_inout.py | 62 +++++++++++++++++++++++++++++++++++++++++ usrp2/top/u2plus/u2plus.ucf | 2 +- usrp2/top/u2plus/u2plus.v | 2 +- 4 files changed, 67 insertions(+), 3 deletions(-) create mode 100755 usrp2/top/python/check_inout.py diff --git a/usrp2/top/Makefile.common b/usrp2/top/Makefile.common index 2f6b5fde3..0e08b800e 100644 --- a/usrp2/top/Makefile.common +++ b/usrp2/top/Makefile.common @@ -13,6 +13,7 @@ else endif BASE_DIR = $(abspath ..) ISE_HELPER = xtclsh $(BASE_DIR)/tcl/ise_helper.tcl +SANITY_CHECKER = python $(BASE_DIR)/python/check_inout.py ISE_FILE = $(BUILD_DIR)/$(TOP_MODULE).$(ISE_EXT) BIN_FILE = $(BUILD_DIR)/$(TOP_MODULE).bin BIT_FILE = $(BUILD_DIR)/$(TOP_MODULE).bit @@ -26,12 +27,13 @@ all: bin proj: $(ISE_FILE) check: $(ISE_FILE) + $(SANITY_CHECKER) $(TOP_MODULE).v $(TOP_MODULE).ucf $(ISE_HELPER) "Check Syntax" synth: $(ISE_FILE) $(ISE_HELPER) "Synthesize - XST" -bin: $(BIN_FILE) +bin: check $(BIN_FILE) mcs: $(MCS_FILE) diff --git a/usrp2/top/python/check_inout.py b/usrp2/top/python/check_inout.py new file mode 100755 index 000000000..ff371d378 --- /dev/null +++ b/usrp2/top/python/check_inout.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python +# +# Copyright 2010 Ettus Research LLC +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Description: +# generates a list of inputs and outputs from the top-level Verilog file and cross-references them to the .ucf. +# outputs errors for pins that aren't found in the UCF, checks for capitalization errors and other common mistakes + +import sys +import re + +if __name__=='__main__': + if len(sys.argv) == 2: + print "Usage: %s " + sys.exit(-1) + + verilog_filename = sys.argv[1] + ucf_filename = sys.argv[2] + + verilog_file = open(verilog_filename, 'r') + ucf_file = open(ucf_filename, 'r') + + verilog_iolist = list() + ucf_iolist = list() + + #read in all input, inout, and output declarations and compile a list + for line in verilog_file: + for match in re.findall(r"(?:input|inout|output) (?:reg )*(?:\[.*\] )*(\w+)", line.split("//")[0]): + verilog_iolist.append(match) + + for line in ucf_file: + m = re.search(r"""NET "(\w+).*" """, line.split("#")[0]) + if m is not None: + ucf_iolist.append(m.group(1)) + + #now find corresponding matches and error when you don't find one + #we search for .v defs without matching .ucf defs since the reverse isn't necessarily a problem + err = False + + for item in verilog_iolist: + if item not in ucf_iolist: + print "Error: %s appears in the top-level Verilog file, but is not in the UCF definition file!" % item + err = True + + if err: + sys.exit(-1) + + print "No errors found." + sys.exit(0) diff --git a/usrp2/top/u2plus/u2plus.ucf b/usrp2/top/u2plus/u2plus.ucf index a9ff9413d..aee9e57bf 100755 --- a/usrp2/top/u2plus/u2plus.ucf +++ b/usrp2/top/u2plus/u2plus.ucf @@ -250,7 +250,7 @@ NET "PHY_INTn" LOC = "L22" ; NET "MDIO" LOC = "K21" ; NET "MDC" LOC = "J23" ; NET "PHY_RESETn" LOC = "J22" ; -NET "ETH_LEd" LOC = "H20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "ETH_LED" LOC = "H20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; ## MIMO Interface NET "exp_time_out_p" LOC = "Y14" ; diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index a0ba4d4cc..3641ce962 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -83,7 +83,7 @@ module u2plus output PHY_RESETn, output ETH_LED, - input POR, +// input POR, // Expansion input exp_time_in_p, input exp_time_in_n, // Diff -- cgit v1.2.3 From 2e526a8411f97654a2e87bdd1e524729da71315e Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Wed, 25 Aug 2010 18:44:56 -0700 Subject: Use new tx_policy stuff, reassigned leds to be just like U2 --- usrp2/top/u2plus/u2plus.v | 2 +- usrp2/top/u2plus/u2plus_core.v | 68 ++++++++++++++++++++---------------------- 2 files changed, 34 insertions(+), 36 deletions(-) diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index 3641ce962..d330e336b 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -220,7 +220,7 @@ module u2plus // LEDs are active low outputs wire [5:0] leds_int; - assign {leds,ETH_LED} = {6'b111110 ^ leds_int}; // drive low to turn on leds + assign {ETH_LED,leds} = {6'b011111 ^ leds_int}; // drive low to turn on leds // SPI wire miso, mosi, sclk; diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index ee9d206d8..e394e68af 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -173,6 +173,7 @@ module u2plus_core wire epoch; wire [31:0] irq; wire [63:0] vita_time; + wire run_rx, run_tx; // /////////////////////////////////////////////////////////////////////////////////////////////// // Wishbone Single Master INTERCON @@ -527,8 +528,7 @@ defparam bootram.RAM2.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_ .cyc_i(s4_cyc),.stb_i(s4_stb),.adr_i(s4_adr[3:0]),.we_i(s4_we), .dat_i(s4_dat_o),.dat_o(s4_dat_i),.ack_o(s4_ack), .atr(atr_lines),.debug_0(debug_gpio_0),.debug_1(debug_gpio_1), - .gpio( {io_tx,io_rx} ) - ); + .gpio( {io_tx,io_rx} ) ); // ///////////////////////////////////////////////////////////////////////// // Buffer Pool Status -- Slave #5 @@ -539,7 +539,10 @@ defparam bootram.RAM2.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_ cycle_count <= 0; else cycle_count <= cycle_count + 1; - + + //compatibility number -> increment when the fpga has been sufficiently altered + localparam compat_num = 32'd2; + wb_readback_mux buff_pool_status (.wb_clk_i(wb_clk), .wb_rst_i(wb_rst), .wb_stb_i(s5_stb), .wb_adr_i(s5_adr), .wb_dat_o(s5_dat_i), .wb_ack_o(s5_ack), @@ -547,7 +550,7 @@ defparam bootram.RAM2.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_ .word00(status_b0),.word01(status_b1),.word02(status_b2),.word03(status_b3), .word04(status_b4),.word05(status_b5),.word06(status_b6),.word07(status_b7), .word08(status),.word09({sim_mode,27'b0,clock_divider[3:0]}),.word10(vita_time[63:32]), - .word11(vita_time[31:0]),.word12(32'b0),.word13(irq),.word14(status_enc),.word15(cycle_count) + .word11(vita_time[31:0]),.word12(compat_num),.word13(irq),.word14(status_enc),.word15(cycle_count) ); // ///////////////////////////////////////////////////////////////////////// @@ -582,11 +585,20 @@ defparam bootram.RAM2.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_ .tx_f36_data(udp_tx_data), .tx_f36_src_rdy_i(udp_tx_src_rdy), .tx_f36_dst_rdy_o(udp_tx_dst_rdy), .debug(debug_udp) ); + wire [35:0] tx_err_data, udp1_tx_data; + wire tx_err_src_rdy, tx_err_dst_rdy, udp1_tx_src_rdy, udp1_tx_dst_rdy; + fifo_cascade #(.WIDTH(36), .SIZE(ETH_TX_FIFOSIZE)) tx_eth_fifo (.clk(dsp_clk), .reset(dsp_rst), .clear(0), .datain({rd2_flags,rd2_dat}), .src_rdy_i(rd2_ready_o), .dst_rdy_o(rd2_ready_i), - .dataout(udp_tx_data), .src_rdy_o(udp_tx_src_rdy), .dst_rdy_i(udp_tx_dst_rdy)); + .dataout(udp1_tx_data), .src_rdy_o(udp1_tx_src_rdy), .dst_rdy_i(udp1_tx_dst_rdy)); + fifo36_mux #(.prio(0)) mux_err_stream + (.clk(dsp_clk), .reset(dsp_reset), .clear(0), + .data0_i(udp1_tx_data), .src0_rdy_i(udp1_tx_src_rdy), .dst0_rdy_o(udp1_tx_dst_rdy), + .data1_i(tx_err_data), .src1_rdy_i(tx_err_src_rdy), .dst1_rdy_o(tx_err_dst_rdy), + .data_o(udp_tx_data), .src_rdy_o(udp_tx_src_rdy), .dst_rdy_i(udp_tx_dst_rdy)); + fifo_cascade #(.WIDTH(36), .SIZE(ETH_RX_FIFOSIZE)) rx_eth_fifo (.clk(dsp_clk), .reset(dsp_rst), .clear(0), .datain(udp_rx_data), .src_rdy_i(udp_rx_src_rdy), .dst_rdy_o(udp_rx_dst_rdy), @@ -630,12 +642,13 @@ defparam bootram.RAM2.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_ // In Rev3 there are only 6 leds, and the highest one is on the ETH connector wire [7:0] led_src, led_sw; - wire [7:0] led_hw = {clk_status,serdes_link_up}; + wire [7:0] led_hw = {run_tx, run_rx, clk_status, serdes_link_up, 1'b0}; setting_reg #(.my_addr(3),.width(8)) sr_led (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(led_sw),.changed()); - setting_reg #(.my_addr(8),.width(8)) sr_led_src (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), - .in(set_data),.out(led_src),.changed()); + + setting_reg #(.my_addr(8),.width(8), .at_reset(8'b0001_1110)) + sr_led_src (.clk(wb_clk),.rst(wb_rst), .strobe(set_stb),.addr(set_addr), .in(set_data),.out(led_src),.changed()); assign leds = (led_src & led_hw) | (~led_src & led_sw); @@ -678,7 +691,6 @@ defparam bootram.RAM2.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_ // ///////////////////////////////////////////////////////////////////////// // ATR Controller, Slave #11 - wire run_rx, run_tx; reg run_rx_d1; always @(posedge dsp_clk) run_rx_d1 <= run_rx; @@ -755,40 +767,26 @@ defparam bootram.RAM2.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_ // DSP TX wire [35:0] tx_data; - wire [99:0] tx1_data; - wire tx_src_rdy, tx_dst_rdy, tx1_src_rdy, tx1_dst_rdy; - - wire [31:0] debug_vtc, debug_vtd, debug_vt; + wire tx_src_rdy, tx_dst_rdy; + wire [31:0] debug_vt; fifo_cascade #(.WIDTH(36), .SIZE(DSP_TX_FIFOSIZE)) tx_fifo_cascade (.clk(dsp_clk), .reset(dsp_rst), .clear(0), .datain({rd1_flags,rd1_dat}), .src_rdy_i(rd1_ready_o), .dst_rdy_o(rd1_ready_i), .dataout(tx_data), .src_rdy_o(tx_src_rdy), .dst_rdy_i(tx_dst_rdy) ); - vita_tx_deframer #(.BASE(SR_TX_CTRL), .MAXCHAN(1)) vita_tx_deframer - (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + vita_tx_chain #(.BASE_CTRL(SR_TX_CTRL), .BASE_DSP(SR_TX_DSP), + .REPORT_ERROR(1), .PROT_ENG_FLAGS(1)) + vita_tx_chain + (.clk(dsp_clk), .reset(dsp_rst), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), - .data_i(tx_data), .src_rdy_i(tx_src_rdy), .dst_rdy_o(tx_dst_rdy), - .sample_fifo_o(tx1_data), .sample_fifo_src_rdy_o(tx1_src_rdy), .sample_fifo_dst_rdy_i(tx1_dst_rdy), - .debug(debug_vtd) ); - - vita_tx_control #(.BASE(SR_TX_CTRL), .WIDTH(32)) vita_tx_control - (.clk(dsp_clk), .reset(dsp_rst), .clear(0), - .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), - .vita_time(vita_time),.underrun(underrun), - .sample_fifo_i(tx1_data), .sample_fifo_src_rdy_i(tx1_src_rdy), .sample_fifo_dst_rdy_o(tx1_dst_rdy), - .sample(sample_tx), .run(run_tx), .strobe(strobe_tx), - .debug(debug_vtc) ); - - assign debug_vt = debug_vtc | debug_vtd; - - dsp_core_tx #(.BASE(SR_TX_DSP)) dsp_core_tx - (.clk(dsp_clk),.rst(dsp_rst), - .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), - .sample(sample_tx), .run(run_tx), .strobe(strobe_tx), + .vita_time(vita_time), + .tx_data_i(tx_data), .tx_src_rdy_i(tx_src_rdy), .tx_dst_rdy_o(tx_dst_rdy), + .err_data_o(tx_err_data), .err_src_rdy_o(tx_err_src_rdy), .err_dst_rdy_i(tx_err_dst_rdy), .dac_a(dac_a),.dac_b(dac_b), - .debug(debug_tx_dsp) ); - + .underrun(underrun), .run(run_tx), + .debug(debug_vt)); + assign dsp_rst = wb_rst; // /////////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3 From 9e2e78642251ee9e024461becfd70a75b11d818a Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Wed, 25 Aug 2010 19:00:02 -0700 Subject: SWAP DAC A and B, invert B to match schematics --- usrp2/top/u2plus/u2plus.v | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index d330e336b..db31b4a68 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -298,10 +298,11 @@ module u2plus */ wire [15:0] dac_a_int, dac_b_int; + // DAC A and B are swapped in schematic to facilitate clean layout + // DAC A is also inverted in schematic to facilitate clean layout + always @(negedge dsp_clk) DACA <= ~dac_b_int; + always @(negedge dsp_clk) DACB <= dac_a_int; - always @(negedge dsp_clk) DACA <= dac_a_int; - always @(negedge dsp_clk) DACB <= dac_b_int; - u2plus_core u2p_c(.dsp_clk (dsp_clk), .wb_clk (wb_clk), .clock_ready (clock_ready), -- cgit v1.2.3 From ea545df8aa9da7b647160d59a0f33a35d9ec1378 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Wed, 25 Aug 2010 19:04:47 -0700 Subject: invert adc_a because it is inverted on schematic. Also clean up extraneous adc signals from old adc on U2 --- usrp2/top/u2plus/u2plus.v | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index db31b4a68..66cb8005c 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -155,25 +155,28 @@ module u2plus always @(posedge clk_fpga) clock_ready_d[5:0] <= {clock_ready_d[4:0],clock_ready}; wire dcm_rst = ~&clock_ready_d & |clock_ready_d; - + + // ADC A is inverted on the schematic to facilitate a clean layout + // We account for that here by inverting it `ifdef LVDS - wire [13:0] adc_a, adc_b; - capture_ddrlvds #(.WIDTH(14)) capture_ddrlvds + wire [13:0] adc_a, adc_a_inv, adc_b; + capture_ddrlvds #(.WIDTH(14)) capture_ddrlvds (.clk(dsp_clk), .ssclk_p(ADC_clkout_p), .ssclk_n(ADC_clkout_n), .in_p({{ADCA_12_p, ADCA_10_p, ADCA_8_p, ADCA_6_p, ADCA_4_p, ADCA_2_p, ADCA_0_p}, {ADCB_12_p, ADCB_10_p, ADCB_8_p, ADCB_6_p, ADCB_4_p, ADCB_2_p, ADCB_0_p}}), .in_n({{ADCA_12_n, ADCA_10_n, ADCA_8_n, ADCA_6_n, ADCA_4_n, ADCA_2_n, ADCA_0_n}, {ADCB_12_n, ADCB_10_n, ADCB_8_n, ADCB_6_n, ADCB_4_n, ADCB_2_n, ADCB_0_n}}), - .out({adc_a,adc_b})); + .out({adc_a_inv,adc_b})); + assign adc_a = ~adc_a_inv; `else - reg [13:0] adc_a, adc_b; + reg [13:0] adc_a, adc_b; always @(posedge dsp_clk) - begin - adc_a <= {ADCA_12_p,ADCA_12_n, ADCA_10_p,ADCA_10_n, ADCA_8_p,ADCA_8_n, ADCA_6_p,ADCA_6_n, + begin + adc_a <= ~{ADCA_12_p,ADCA_12_n, ADCA_10_p,ADCA_10_n, ADCA_8_p,ADCA_8_n, ADCA_6_p,ADCA_6_n, ADCA_4_p,ADCA_4_n, ADCA_2_p,ADCA_2_n, ADCA_0_p,ADCA_0_n }; - adc_b <= {ADCB_12_p,ADCB_12_n, ADCB_10_p,ADCB_10_n, ADCB_8_p,ADCB_8_n, ADCB_6_p,ADCB_6_n, + adc_b <= {ADCB_12_p,ADCB_12_n, ADCB_10_p,ADCB_10_n, ADCB_8_p,ADCB_8_n, ADCB_6_p,ADCB_6_n, ADCB_4_p,ADCB_4_n, ADCB_2_p,ADCB_2_n, ADCB_0_p,ADCB_0_n }; - end + end `endif // !`ifdef LVDS // Handle Clocks @@ -341,13 +344,13 @@ module u2plus .ser_rklsb (ser_rklsb_int), .ser_rkmsb (ser_rkmsb_int), .adc_a (adc_a[13:0]), - .adc_ovf_a (adc_ovf_a), - .adc_on_a (adc_on_a), - .adc_oe_a (adc_oe_a), + .adc_ovf_a (1'b0), + .adc_on_a (), + .adc_oe_a (), .adc_b (adc_b[13:0]), - .adc_ovf_b (adc_ovf_b), - .adc_on_b (adc_on_b), - .adc_oe_b (adc_oe_b), + .adc_ovf_b (1'b0), + .adc_on_b (), + .adc_oe_b (), .dac_a (dac_a_int[15:0]), .dac_b (dac_b_int[15:0]), .scl_pad_i (scl_pad_i), -- cgit v1.2.3 From f810520cc06401d535708b1d4d832309d7bc47f5 Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Fri, 27 Aug 2010 16:09:20 -0700 Subject: Fixed PPS. Instantiation was miscapitalized. --- usrp2/top/u2plus/u2plus.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index 66cb8005c..90dbe9d55 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -310,7 +310,7 @@ module u2plus .wb_clk (wb_clk), .clock_ready (clock_ready), .clk_to_mac (CLK_TO_MAC_int2), - .pps_in (pps_in), + .pps_in (PPS_IN), .leds (leds_int), .debug (debug[31:0]), .debug_clk (debug_clk[1:0]), -- cgit v1.2.3 From 4c85220512ed25ae87e26c1e550e8e2debd5e64e Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Tue, 5 Oct 2010 17:37:21 -0700 Subject: U2P: newest bootloader with support for 32Mbit flash --- usrp2/top/u2plus/u2plus_core.v | 353 +++++++++++++++++++++++------------------ 1 file changed, 196 insertions(+), 157 deletions(-) diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index e394e68af..3a6bf0f64 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -286,171 +286,210 @@ module u2plus_core //defparam bootram.RAM0.INIT_00=256'hbc32fff0_aa43502b_b00000fe_30630001_80000000_10600000_a48500ff_10a00000; //defparam bootram.RAM0.INIT_01=256'ha48500ff_b810ffd0_f880200c_30a50001_10830000_308000ff_be23000c_a4640001; -////ICAP test v0.1 -defparam bootram.RAM0.INIT_00=256'h00000000_00000000_00000000_b80801c0_00000000_b8080d54_00000000_b8080050; -defparam bootram.RAM0.INIT_01=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_b8080d5c; -defparam bootram.RAM0.INIT_02=256'h3020ffe0_b0000000_30401448_31a01468_00000000_00000000_00000000_00000000; +////bootloader 10/5/10 for 32/64Mbit FLASH +defparam bootram.RAM0.INIT_00=256'h00000000_00000000_00000000_b80801c0_00000000_b8081210_00000000_b8080050; +defparam bootram.RAM0.INIT_01=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_b8081218; +defparam bootram.RAM0.INIT_02=256'h3020ffe0_b0000000_30401920_31a01948_00000000_00000000_00000000_00000000; defparam bootram.RAM0.INIT_03=256'h3021ffe4_e060f800_b0000000_b8000000_30a30000_b9f4047c_80000000_b9f400cc; -defparam bootram.RAM0.INIT_04=256'he8830000_e8601450_80000000_99fc2000_f8601450_b8000044_bc030014_f9e10000; -defparam bootram.RAM0.INIT_05=256'h80000000_99fc1800_30a01460_bc030010_30600000_b0000000_30630004_be24ffec; +defparam bootram.RAM0.INIT_04=256'he8830000_e8601928_80000000_99fc2000_f8601928_b8000044_bc030014_f9e10000; +defparam bootram.RAM0.INIT_05=256'h80000000_99fc1800_30a0193c_bc030010_30600000_b0000000_30630004_be24ffec; defparam bootram.RAM0.INIT_06=256'h30600000_b0000000_3021001c_b60f0008_e9e10000_f060f800_b0000000_30600001; -defparam bootram.RAM0.INIT_07=256'h80000000_99fc1800_bc03000c_30c0f804_b0000000_30a01460_f9e10000_3021ffe4; -defparam bootram.RAM0.INIT_08=256'h80000000_99fc2000_bc04000c_30a01464_bc030014_30800000_b0000000_e8601464; -defparam bootram.RAM0.INIT_09=256'h06463800_20e01468_20c01468_f9e10000_2021ffec_3021001c_b60f0008_e9e10000; +defparam bootram.RAM0.INIT_07=256'h80000000_99fc1800_bc03000c_30c0f804_b0000000_30a0193c_f9e10000_3021ffe4; +defparam bootram.RAM0.INIT_08=256'h80000000_99fc2000_bc04000c_30a01940_bc030014_30800000_b0000000_e8601940; +defparam bootram.RAM0.INIT_09=256'h06463800_20e01948_20c01948_f9e10000_2021ffec_3021001c_b60f0008_e9e10000; defparam bootram.RAM0.INIT_0A=256'hb0000000_20c0f800_b0000000_bc92fff4_06463800_20c60004_f8060000_bc720014; -defparam bootram.RAM0.INIT_0B=256'hb9f40bf0_bc92fff4_06463800_20c60004_f8060000_bc720014_06463800_20e0f828; -defparam bootram.RAM0.INIT_0C=256'h32630000_20a00000_b9f4014c_20e00000_20c00000_80000000_b9f40d70_80000000; -defparam bootram.RAM0.INIT_0D=256'h20210014_b60f0008_30730000_c9e10000_80000000_b9f40bbc_80000000_b9f40d78; +defparam bootram.RAM0.INIT_0B=256'hb9f410ac_bc92fff4_06463800_20c60004_f8060000_bc720014_06463800_20e0f82c; +defparam bootram.RAM0.INIT_0C=256'h32630000_20a00000_b9f4014c_20e00000_20c00000_80000000_b9f4122c_80000000; +defparam bootram.RAM0.INIT_0D=256'h20210014_b60f0008_30730000_c9e10000_80000000_b9f41078_80000000_b9f41234; defparam bootram.RAM0.INIT_0E=256'he9e10000_f9610004_fa410010_95608001_fa21000c_f9610008_f9e10000_3021ffec; defparam bootram.RAM0.INIT_0F=256'hbc050018_30210014_b62e0000_ea410010_ea21000c_e9610008_940bc001_e9610004; defparam bootram.RAM0.INIT_10=256'h3021ff2c_80000000_b60f0008_bc32fff4_16432800_30630001_80000000_10600000; -defparam bootram.RAM0.INIT_11=256'hb9f402c0_32c1001c_3261004c_f8610028_f9e10000_fac100d0_fa6100cc_3061002c; -defparam bootram.RAM0.INIT_12=256'h22407fff_e8610024_bc230038_30a00f7c_10b30000_b9f405cc_10d60000_10b30000; -defparam bootram.RAM0.INIT_13=256'h30a00f7c_bc120040_aa430001_30a00f44_e061001c_10a30000_be520034_16439003; -defparam bootram.RAM0.INIT_14=256'he8e10020_e8c10028_b800ffa8_80000000_b9f40440_b800ffb4_80000000_b9f4044c; -defparam bootram.RAM0.INIT_15=256'h80000000_b9f40414_b800ff88_80000000_b9f40420_30a00f44_80000000_b9f40b54; -defparam bootram.RAM0.INIT_16=256'hb800ff60_80000000_b9f403f8_30a00f48_80000000_b9f409a0_30a08000_b0000000; +defparam bootram.RAM0.INIT_11=256'hb9f40440_32c1001c_3261004c_f8610028_f9e10000_fac100d0_fa6100cc_3061002c; +defparam bootram.RAM0.INIT_12=256'h22407fff_e8610024_bc230038_30a01438_10b30000_b9f40a18_10d60000_10b30000; +defparam bootram.RAM0.INIT_13=256'h30a01438_bc120040_aa430001_30a01400_e061001c_10a30000_be520034_16439003; +defparam bootram.RAM0.INIT_14=256'he8e10020_e8c10028_b800ffa8_80000000_b9f404d4_b800ffb4_80000000_b9f404e0; +defparam bootram.RAM0.INIT_15=256'h80000000_b9f404a8_b800ff88_80000000_b9f404b4_30a01400_80000000_b9f41010; +defparam bootram.RAM0.INIT_16=256'hb800ff60_80000000_b9f4048c_30a01404_80000000_b9f40e5c_30a08000_b0000000; defparam bootram.RAM0.INIT_17=256'h30a0a120_b0000007_9403c001_ac640002_94808001_fa61001c_f9e10000_3021ffe0; -defparam bootram.RAM0.INIT_18=256'hb9f40750_80000000_b9f40408_f800200c_80000000_b9f4fef4_f860200c_306000ff; -defparam bootram.RAM0.INIT_19=256'h30a01048_bc04013c_a4842000_e8803334_80000000_b9f403a4_30a00f80_80000000; -defparam bootram.RAM0.INIT_1A=256'h30a010ac_bc23010c_80000000_b9f4099c_30a00000_b0000020_80000000_b9f4038c; -defparam bootram.RAM0.INIT_1B=256'h30a010fc_bc030058_80000000_b9f40930_30a00000_b0000040_80000000_b9f4036c; -defparam bootram.RAM0.INIT_1C=256'h30c07c00_b9f4070c_30a00000_b0000040_30e08000_b0000000_80000000_b9f4034c; -defparam bootram.RAM0.INIT_1D=256'he9e10000_80000000_b9f40318_30a01128_80000000_b9f408c0_30a08000_b0000000; -defparam bootram.RAM0.INIT_1E=256'hb000007f_80000000_b9f402f8_30a01164_30210020_b60f0008_30600001_ea61001c; -defparam bootram.RAM0.INIT_1F=256'h80000000_b9f402d4_30a00ff0_12630000_be230030_80000000_b9f408bc_30a00000; +defparam bootram.RAM0.INIT_18=256'hb9f40b9c_80000000_b9f406c0_f800200c_80000000_b9f4fef4_f860200c_306000ff; +defparam bootram.RAM0.INIT_19=256'h30a01504_bc04013c_a4842000_e8803334_80000000_b9f40438_30a0143c_80000000; +defparam bootram.RAM0.INIT_1A=256'h30a01568_bc23010c_80000000_b9f40e58_30a00000_b0000018_80000000_b9f40420; +defparam bootram.RAM0.INIT_1B=256'h30a015b8_bc030058_80000000_b9f40dec_30a00000_b0000030_80000000_b9f40400; +defparam bootram.RAM0.INIT_1C=256'h30c07c00_b9f40b58_30a00000_b0000030_30e08000_b0000000_80000000_b9f403e0; +defparam bootram.RAM0.INIT_1D=256'he9e10000_80000000_b9f403ac_30a015e4_80000000_b9f40d7c_30a08000_b0000000; +defparam bootram.RAM0.INIT_1E=256'hb000003f_80000000_b9f4038c_30a01620_30210020_b60f0008_30600001_ea61001c; +defparam bootram.RAM0.INIT_1F=256'h80000000_b9f40368_30a014ac_12630000_be230030_80000000_b9f40d78_30a00000; defparam bootram.RAM0.INIT_20=256'hb0000000_30210020_b60f0008_ea61001c_e9e10000_10730000_80000000_b9f4fe1c; -defparam bootram.RAM0.INIT_21=256'hb9f4082c_30a08000_b0000000_30c07c00_b9f40678_30a00000_b000007f_30e08000; -defparam bootram.RAM0.INIT_22=256'hb60f0008_30600001_ea61001c_e9e10000_80000000_b9f40284_30a00fb4_80000000; -defparam bootram.RAM0.INIT_23=256'h80000000_b9f40254_30a00f94_b800feec_80000000_b9f40264_30a01074_30210020; -defparam bootram.RAM0.INIT_24=256'h80000000_b9f40234_30a00ff0_bc23001c_80000000_b9f40818_30a00000_b000007f; -defparam bootram.RAM0.INIT_25=256'hb9f405e8_30a00000_b000007f_30e08000_b0000000_b800fe94_80000000_b9f4fd7c; -defparam bootram.RAM0.INIT_26=256'h80000000_b9f401f4_30a00fb4_80000000_b9f4079c_30a08000_b0000000_30c07c00; -defparam bootram.RAM0.INIT_27=256'h3021ffdc_80000000_b60f0008_80000000_b9f4fb84_f9e10000_3021ffe4_b800fe5c; -defparam bootram.RAM0.INIT_28=256'h90630060_80000000_b9f402b0_12c50000_f9e10000_12650000_fac10020_fa61001c; -defparam bootram.RAM0.INIT_29=256'he9e10000_10760000_f0130000_3273ffff_32730001_be32ffec_aa43000a_f0730000; -defparam bootram.RAM0.INIT_2A=256'h80000000_b9f4026c_f9e10000_3021ffe4_30210024_b60f0008_eac10020_ea61001c; -defparam bootram.RAM0.INIT_2B=256'h12650000_e0650000_f9e10000_fa61001c_3021ffe0_3021001c_b60f0008_e9e10000; -defparam bootram.RAM0.INIT_2C=256'he9e10000_bc25fff0_90a30060_e0730000_32730001_b9f401b8_bc050018_90a30060; -defparam bootram.RAM0.INIT_2D=256'hb9f40184_f9e10000_fac1001c_3021ffe0_30210020_b60f0008_10600000_ea61001c; -defparam bootram.RAM0.INIT_2E=256'hf9e10000_3021ffe4_30210020_b60f0008_eac1001c_e9e10000_10760000_12c50000; -defparam bootram.RAM0.INIT_2F=256'h9404c001_ac870002_94e08001_3021001c_b60f0008_e9e10000_80000000_b9f4013c; -defparam bootram.RAM0.INIT_30=256'hb0000000_f860200c_80633000_84632000_84c62800_a866ffff_e880f81c_b0000000; -defparam bootram.RAM0.INIT_31=256'h80000000_b60f0008_9404c001_80843800_ac840002_94808001_a4e70002_f860f81c; -defparam bootram.RAM0.INIT_32=256'hb0000000_f8a0200c_88a52000_e880f81c_b0000000_9406c001_acc30002_94608001; -defparam bootram.RAM0.INIT_33=256'h80000000_b60f0008_9404c001_80841800_ac840002_94808001_a4630002_f8a0f81c; -defparam bootram.RAM0.INIT_34=256'h84632000_84c62800_a866ffff_e880f820_b0000000_9404c001_ac870002_94e08001; -defparam bootram.RAM0.INIT_35=256'h80843800_ac840002_94808001_a4e70002_f860f820_b0000000_f8602020_80633000; -defparam bootram.RAM0.INIT_36=256'hb9f40064_80000000_b9f4fe98_f9e10000_3021ffe4_80000000_b60f0008_9404c001; -defparam bootram.RAM0.INIT_37=256'hb9f40044_f9e10000_3021ffe4_3021001c_b60f0008_10600000_e9e10000_30a0000a; -defparam bootram.RAM0.INIT_38=256'h3021ffe4_80000000_b60f0008_f0a01454_3021001c_b60f0008_e9e10000_30a0000a; -defparam bootram.RAM0.INIT_39=256'h3021001c_b60f0008_e9e10000_f8603700_306000d9_30a00001_b9f4ffec_f9e10000; -defparam bootram.RAM0.INIT_3A=256'hbc03fffc_e8603704_12650000_be120024_aa45000a_f9e10000_fa61001c_3021ffe0; -defparam bootram.RAM0.INIT_3B=256'hb800ffdc_30a0000d_b9f4ffcc_30210020_b60f0008_ea61001c_e9e10000_fa60370c; -defparam bootram.RAM0.INIT_3C=256'he8603704_30a0000d_be120024_aa53000a_f9e10000_12650000_fa61001c_3021ffe0; -defparam bootram.RAM0.INIT_3D=256'h80000000_b9f4ff88_30210020_b60f0008_ea61001c_e9e10000_fa60370c_bc030008; -defparam bootram.RAM0.INIT_3E=256'h3065ffa9_90a50060_80000000_b60f0008_e8603710_bc03fffc_e8603708_b800ffdc; -defparam bootram.RAM0.INIT_3F=256'h16459001_32400039_a46300ff_3065ffc9_a46300ff_be520024_16459001_3240005a; -defparam bootram.RAM1.INIT_00=256'h13250000_fb21002c_3021ffc8_80000000_b60f0008_a46400ff_3085ffd0_be52000c; -defparam bootram.RAM1.INIT_01=256'he0790000_fb410030_fb010028_fae10024_fac10020_fa61001c_f9e10000_fb610034; -defparam bootram.RAM1.INIT_02=256'heac10020_ea61001c_e9e10000_10650000_30a0ffff_be120034_aa43003a_13660000; -defparam bootram.RAM1.INIT_03=256'he8c01458_30210038_b60f0008_eb610034_eb410030_eb21002c_eb010028_eae10024; -defparam bootram.RAM1.INIT_04=256'ha4630044_c0662000_a4a300ff_be04001c_90840060_30650001_c085c800_30a00001; -defparam bootram.RAM1.INIT_05=256'hb9f4ff1c_e0b90002_80000000_b9f4ff28_e0b90001_30a0fffe_b810ffac_bc23ffe4; -defparam bootram.RAM1.INIT_06=256'hbe38ff74_93040060_e083000b_10791800_fa7b0004_10739800_12761800_66c30404; -defparam bootram.RAM1.INIT_07=256'he0b90004_66e30404_b9f4fee4_e0b90003_13530000_b9f4fef0_e0b90005_30a0fffd; -defparam bootram.RAM1.INIT_08=256'h12f7b000_12d61800_12d61800_b9f4fec8_64630408_e0b90006_66c3040c_b9f4fed8; -defparam bootram.RAM1.INIT_09=256'h1063b000_66c30404_b9f4fea4_e0b90008_80000000_b9f4feb0_e0b90007_fafb0008; -defparam bootram.RAM1.INIT_0A=256'ha6d600ff_32d60009_12d8c000_ea7b000c_13580000_10f30000_be130060_f07b0000; -defparam bootram.RAM1.INIT_0B=256'hd0789800_1063b800_66e30404_b9f4fe68_e0b60001_12d9b000_b9f4fe74_c0b6c800; -defparam bootram.RAM1.INIT_0C=256'hbe52ffb8_1647c003_107a1800_a70400ff_c073c000_30980001_e8fb0004_ea7b000c; -defparam bootram.RAM1.INIT_0D=256'h10632000_e0b70009_12f9b800_64760008_12e73800_e09b0000_eadb0008_a74300ff; -defparam bootram.RAM1.INIT_0E=256'h16d60000_67030404_b9f4fe04_e0b7000a_12d61800_b9f4fe10_107a1800_12c7b000; -defparam bootram.RAM1.INIT_0F=256'h10a00000_b810fe58_30a0fffb_be32fe60_1643b000_a46300ff_a6d600ff_1063c000; -defparam bootram.RAM1.INIT_10=256'ha1292000_a508007f_a5290600_80000000_b60f0008_bc23fff8_a4630100_e8603b10; -defparam bootram.RAM1.INIT_11=256'ha46600ff_f8803b10_f8e03b00_bc23fff8_a4630100_e8603b10_a4a500ff_80884800; -defparam bootram.RAM1.INIT_12=256'hbc23fff8_a4630100_e8603b10_10650000_be050018_f8803b10_a0840100_f8603b18; -defparam bootram.RAM1.INIT_13=256'h10a00000_f9e10000_3021ffe4_10e60000_10c00000_80000000_b60f0008_e8603b00; -defparam bootram.RAM1.INIT_14=256'hb60f0008_e9e10000_80000000_b9f4ff84_f8603b14_30600001_31200400_31000008; -defparam bootram.RAM1.INIT_15=256'h13060000_f9e10000_fb010038_fa61002c_12c50000_fac10030_3021ffc4_3021001c; -defparam bootram.RAM1.INIT_16=256'h3060000b_66d60408_f8603b10_f8003b18_30600400_12670000_b9f4ff3c_fae10034; -defparam bootram.RAM1.INIT_17=256'hf8603b10_30600528_f8803b10_30800428_f8603b18_30600001_fac03b00_f8603b04; -defparam bootram.RAM1.INIT_18=256'hf8603b10_30600400_3261001c_12e00000_12d30000_be18009c_80000000_b9f4ff00; -defparam bootram.RAM1.INIT_19=256'he8603b08_f881001c_14b7c000_e8803b0c_80000000_b9f4fed8_f8803b10_30800500; -defparam bootram.RAM1.INIT_1A=256'hbeb20034_16459003_22400010_f8610028_e8603b00_f8810024_e8803b04_f8610020; -defparam bootram.RAM1.INIT_1B=256'h12f72800_bc32fff0_16442800_30840001_d0762000_c0732000_30a00010_10800000; -defparam bootram.RAM1.INIT_1C=256'hbe52ff7c_1658b803_12f72800_bc25ffd8_b800ff8c_12d62800_beb20020_1658b803; -defparam bootram.RAM1.INIT_1D=256'hb60f0008_eb010038_eae10034_eac10030_ea61002c_e9e10000_f8003b18_12d62800; -defparam bootram.RAM1.INIT_1E=256'hf9e10000_31000020_30c00001_30a00001_3021ffe4_30e00000_b0009f00_3021003c; -defparam bootram.RAM1.INIT_1F=256'hb0000000_3021001c_b60f0008_a463ffff_b00000ff_e9e10000_31200400_b9f4fe34; -defparam bootram.RAM1.INIT_20=256'hb9f4ffa8_3021001c_b60f0008_e9e10000_bc030010_f9e10000_3021ffe4_e860f824; -defparam bootram.RAM1.INIT_21=256'h80000000_b9f40100_a46300ff_be120010_aa440020_a48400ff_64830008_80000000; -defparam bootram.RAM1.INIT_22=256'hb0000000_e063118a_bc52ffe4_16439001_32400018_bcb2fff0_16439001_32400015; -defparam bootram.RAM1.INIT_23=256'hf9e10000_10b60000_10c50000_12c00000_fac1001c_3021ffe0_b800ffac_f860f824; -defparam bootram.RAM1.INIT_24=256'h30210020_b60f0008_eac1001c_e9e10000_80000000_99fcb000_30e00024_b9f40174; -defparam bootram.RAM1.INIT_25=256'h10b60000_30c00006_b9f4fdf0_f9e10000_10f60000_32c1001c_fac10028_3021ffd4; -defparam bootram.RAM1.INIT_26=256'heac10028_e9e10000_a884ffff_80841800_14830000_30e00006_b9f400b0_30c011a4; -defparam bootram.RAM1.INIT_27=256'hf9e10000_10f60000_32c1001c_fac10028_3021ffd4_3021002c_b60f0008_6464001f; -defparam bootram.RAM1.INIT_28=256'h80841800_14830000_30e00006_b9f40064_30c011ac_10b60000_30c00006_b9f4fda4; -defparam bootram.RAM1.INIT_29=256'h3021ffe4_30a011b4_3021002c_b60f0008_6464001f_eac10028_e9e10000_a884ffff; -defparam bootram.RAM1.INIT_2A=256'hb6910000_80000000_b6110000_30a0ffff_b9f4f324_80000000_b9f4f828_f9e10000; -defparam bootram.RAM1.INIT_2B=256'hbeb2005c_16479003_22400003_80000000_b60f0008_80000000_b60f0008_80000000; -defparam bootram.RAM1.INIT_2C=256'h30e7fffc_bc320040_16432000_e8660000_e8850000_bc230050_a4630003_80653000; -defparam bootram.RAM1.INIT_2D=256'hbc120028_aa47ffff_30e7ffff_30c60004_be52ffe0_16479003_22400003_30a50004; -defparam bootram.RAM1.INIT_2E=256'haa47ffff_30e7ffff_30c60001_30a50001_be320020_16434000_e0660000_e1050000; -defparam bootram.RAM1.INIT_2F=256'hbeb20018_16479003_2240000f_14634000_b60f0008_10600000_b60f0008_bc32ffe0; -defparam bootram.RAM1.INIT_30=256'h10e72000_11040000_bc070024_11050000_be030034_a4630003_80662800_10850000; -defparam bootram.RAM1.INIT_31=256'h10650000_b60f0008_30c60001_be32fff0_16474000_31080001_f0680000_e0660000; -defparam bootram.RAM1.INIT_32=256'he866000c_f8880008_e8860008_f8680004_e8660004_f8880000_30e7fff0_e8860000; -defparam bootram.RAM1.INIT_33=256'h16479003_22400003_31080010_be52ffd0_16479003_2240000f_f868000c_30c60010; -defparam bootram.RAM1.INIT_34=256'hbe52ffec_16479003_22400003_d8682000_30e7fffc_c8662000_10800000_bcb2002c; -defparam bootram.RAM1.INIT_35=256'hfa61001c_3021ffe0_e8600f34_10880000_b810ff68_11044000_10c43000_30840004; -defparam bootram.RAM1.INIT_36=256'haa43ffff_e8730000_3273fffc_99fc1800_bc120018_aa43ffff_32600f34_f9e10000; -defparam bootram.RAM1.INIT_37=256'hb9f4f1dc_d9e00800_3021fff8_30210020_b60f0008_ea61001c_e9e10000_bc32fff0; -defparam bootram.RAM1.INIT_38=256'hd9e00800_3021fff8_30210008_b60f0008_c9e00800_80000000_b9f4ffb0_80000000; -defparam bootram.RAM1.INIT_39=256'hffffffff_00000000_ffffffff_30210008_b60f0008_c9e00800_80000000_b9f4f154; -defparam bootram.RAM1.INIT_3A=256'h7475726e_65207265_696d6167_61696e20_523a206d_4552524f_4f4b0000_00000000; -defparam bootram.RAM1.INIT_3B=256'h4e4f4b00_64652e00_64206d6f_206c6f61_49484558_20696e20_4261636b_65642120; -defparam bootram.RAM1.INIT_3C=256'h20555352_74696e67_53746172_720a0000_6f616465_6f6f746c_322b2062_55535250; -defparam bootram.RAM1.INIT_3D=256'h65747572_523a2072_4552524f_2e000000_6d6f6465_61666520_696e2073_50322b20; -defparam bootram.RAM1.INIT_3E=256'h6f756c64_73207368_20546869_72616d21_70726f67_61696e20_6f6d206d_6e206672; -defparam bootram.RAM1.INIT_3F=256'h66652066_6f207361_523a206e_4552524f_6e210000_61707065_65722068_206e6576; -defparam bootram.RAM2.INIT_00=256'h6d206120_20492061_626c652e_61696c61_65206176_696d6167_61726520_69726d77; -defparam bootram.RAM2.INIT_01=256'h5820746f_20494845_6c6f6164_20746f20_66726565_65656c20_6b2e2046_62726963; -defparam bootram.RAM2.INIT_02=256'h726f6475_69642070_2076616c_20666f72_6b696e67_43686563_2e000000_2052414d; -defparam bootram.RAM2.INIT_03=256'h6f647563_64207072_56616c69_2e2e2e00_6d616765_47412069_6e204650_6374696f; -defparam bootram.RAM2.INIT_04=256'h7074696e_7474656d_642e2041_666f756e_61676520_4120696d_20465047_74696f6e; -defparam bootram.RAM2.INIT_05=256'h696f6e20_64756374_2070726f_616c6964_4e6f2076_742e0000_20626f6f_6720746f; -defparam bootram.RAM2.INIT_06=256'h20746f20_74696e67_74656d70_2e0a4174_6f756e64_67652066_20696d61_46504741; -defparam bootram.RAM2.INIT_07=256'h56616c69_2e2e2e00_77617265_6669726d_696f6e20_64756374_2070726f_6c6f6164; -defparam bootram.RAM2.INIT_08=256'h204c6f61_756e642e_6520666f_6d776172_20666972_74696f6e_6f647563_64207072; -defparam bootram.RAM2.INIT_09=256'h61696e20_6f6d206d_6e206672_65747572_523a2052_4552524f_2e2e2e00_64696e67; -defparam bootram.RAM2.INIT_0A=256'h61707065_65722068_206e6576_6f756c64_73207368_20546869_72616d21_70726f67; -defparam bootram.RAM2.INIT_0B=256'h77617265_6669726d_696f6e20_64756374_2070726f_616c6964_4e6f2076_6e210000; -defparam bootram.RAM2.INIT_0C=256'h2e2e2e00_77617265_6669726d_61666520_6e672073_54727969_6e642e20_20666f75; -defparam bootram.RAM2.INIT_0D=256'h00000000_6f72740a_0a0a6162_aa990000_ffffffff_b8080000_b0000000_10101200; -defparam bootram.RAM2.INIT_0E=256'h20202020_20202020_20202020_20202020_28282820_20202828_20202020_00202020; -defparam bootram.RAM2.INIT_0F=256'h10101010_04040410_04040404_10040404_10101010_10101010_10101010_20881010; -defparam bootram.RAM2.INIT_10=256'h10101010_01010101_01010101_01010101_01010101_01010101_41414141_10104141; -defparam bootram.RAM2.INIT_11=256'h10101010_02020202_02020202_02020202_02020202_02020202_42424242_10104242; -defparam bootram.RAM2.INIT_12=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_20000000; -defparam bootram.RAM2.INIT_13=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_14=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_15=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_16=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_17=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_18=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_19=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_1A=256'h20202020_20202020_20202020_28282020_20282828_20202020_20202020_00000000; -defparam bootram.RAM2.INIT_1B=256'h04041010_04040404_04040404_10101010_10101010_10101010_88101010_20202020; -defparam bootram.RAM2.INIT_1C=256'h01010110_01010101_01010101_01010101_01010101_41414101_10414141_10101010; -defparam bootram.RAM2.INIT_1D=256'h02020210_02020202_02020202_02020202_02020202_42424202_10424242_10101010; -defparam bootram.RAM2.INIT_1E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_10101020; -defparam bootram.RAM2.INIT_1F=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_20=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_21=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_22=256'h00000000_00001344_01000000_00000f40_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM0.INIT_21=256'hb9f40ce8_30a08000_b0000000_30c07c00_b9f40ac4_30a00000_b000003f_30e08000; +defparam bootram.RAM0.INIT_22=256'hb60f0008_30600001_ea61001c_e9e10000_80000000_b9f40318_30a01470_80000000; +defparam bootram.RAM0.INIT_23=256'h80000000_b9f402e8_30a01450_b800feec_80000000_b9f402f8_30a01530_30210020; +defparam bootram.RAM0.INIT_24=256'h80000000_b9f402c8_30a014ac_bc23001c_80000000_b9f40cd4_30a00000_b000003f; +defparam bootram.RAM0.INIT_25=256'hb9f40a34_30a00000_b000003f_30e08000_b0000000_b800fe94_80000000_b9f4fd7c; +defparam bootram.RAM0.INIT_26=256'h80000000_b9f40288_30a01470_80000000_b9f40c58_30a08000_b0000000_30c07c00; +defparam bootram.RAM0.INIT_27=256'h3021ffd0_80000000_b60f0008_80000000_b9f4fb84_f9e10000_3021ffe4_b800fe5c; +defparam bootram.RAM0.INIT_28=256'h13260000_12e70000_13050000_12660000_fb21002c_fb010028_fae10024_fa61001c; +defparam bootram.RAM0.INIT_29=256'hbcb2002c_16572001_bc120030_aa43ffff_12c00000_b810001c_f9e10000_fac10020; +defparam bootram.RAM0.INIT_2A=256'hbe32ffd4_aa43000a_f0730000_10960000_90630060_10b80000_b9f405ec_32730001; +defparam bootram.RAM0.INIT_2B=256'heae10024_eac10020_ea61001c_e9e10000_10640000_f0130000_14999800_32d60001; +defparam bootram.RAM0.INIT_2C=256'hfb010028_fae10024_fa61001c_3021ffd0_30210030_b60f0008_eb21002c_eb010028; +defparam bootram.RAM0.INIT_2D=256'hb8100014_f9e10000_fac10020_13260000_12e70000_13050000_12660000_fb21002c; +defparam bootram.RAM0.INIT_2E=256'h10960000_90630060_10b80000_b9f4051c_32730001_bcb2002c_16572001_12c00000; +defparam bootram.RAM0.INIT_2F=256'he9e10000_10640000_f0130000_14999800_32d60001_be32ffdc_aa43000a_f0730000; +defparam bootram.RAM0.INIT_30=256'h3021ffd8_30210030_b60f0008_eb21002c_eb010028_eae10024_eac10020_ea61001c; +defparam bootram.RAM0.INIT_31=256'hb9f404b0_12660000_f9e10000_12e60000_12c50000_fae10024_fac10020_fa61001c; +defparam bootram.RAM0.INIT_32=256'hf0130000_3273ffff_32730001_be32ffec_aa43000a_f0730000_90630060_10b60000; +defparam bootram.RAM0.INIT_33=256'h10c50000_30210028_b60f0008_eae10024_eac10020_ea61001c_e9e10000_10770000; +defparam bootram.RAM0.INIT_34=256'h3021ffe4_3021001c_b60f0008_e9e10000_10a00000_b9f4ff94_f9e10000_3021ffe4; +defparam bootram.RAM0.INIT_35=256'hf9e10000_3021ffe4_3021001c_b60f0008_e9e10000_80000000_b9f40448_f9e10000; +defparam bootram.RAM0.INIT_36=256'hfac10020_fa61001c_3021ffdc_3021001c_b60f0008_e9e10000_10a00000_b9f4ffdc; +defparam bootram.RAM0.INIT_37=256'hb9f40324_10b60000_12c50000_be060024_90c30060_12660000_e0660000_f9e10000; +defparam bootram.RAM0.INIT_38=256'heac10020_ea61001c_e9e10000_10b60000_be26fff0_90c30060_e0730000_32730001; +defparam bootram.RAM0.INIT_39=256'h12c50000_b9f4ff9c_f9e10000_fac1001c_3021ffe0_30210024_b60f0008_10600000; +defparam bootram.RAM0.INIT_3A=256'h30210020_b60f0008_10600000_eac1001c_e9e10000_30c0000a_b9f402dc_10b60000; +defparam bootram.RAM0.INIT_3B=256'h3021001c_b60f0008_e9e10000_10a00000_b9f4ffc0_f9e10000_3021ffe4_10c50000; +defparam bootram.RAM0.INIT_3C=256'h3021001c_b60f0008_e9e10000_10a00000_b9f4ff48_f9e10000_3021ffe4_10c50000; +defparam bootram.RAM0.INIT_3D=256'h3021ffe0_3021001c_b60f0008_e9e10000_30c0000a_b9f40278_f9e10000_3021ffe4; +defparam bootram.RAM0.INIT_3E=256'he9e10000_10760000_10d60000_b9f40250_f9e10000_10a00000_12c50000_fac1001c; +defparam bootram.RAM0.INIT_3F=256'h12c60000_b9f40228_f9e10000_fac1001c_3021ffe0_30210020_b60f0008_eac1001c; +defparam bootram.RAM1.INIT_00=256'hb9f401b8_f9e10000_3021ffe4_30210020_b60f0008_eac1001c_e9e10000_10760000; +defparam bootram.RAM1.INIT_01=256'hb0000000_9404c001_ac870002_94e08001_3021001c_b60f0008_e9e10000_80000000; +defparam bootram.RAM1.INIT_02=256'hf860f81c_b0000000_f860200c_80633000_84632000_84c62800_a866ffff_e880f81c; +defparam bootram.RAM1.INIT_03=256'h94608001_80000000_b60f0008_9404c001_80843800_ac840002_94808001_a4e70002; +defparam bootram.RAM1.INIT_04=256'hf8a0f81c_b0000000_f8a0200c_88a52000_e880f81c_b0000000_9406c001_acc30002; +defparam bootram.RAM1.INIT_05=256'h94e08001_80000000_b60f0008_9404c001_80841800_ac840002_94808001_a4630002; +defparam bootram.RAM1.INIT_06=256'h80633000_84632000_84c62800_a866ffff_e880f820_b0000000_9404c001_ac870002; +defparam bootram.RAM1.INIT_07=256'h9404c001_80843800_ac840002_94808001_a4e70002_f860f820_b0000000_f8602020; +defparam bootram.RAM1.INIT_08=256'hfac10020_f9e10000_fb010028_fae10024_fa61001c_3021ffd4_80000000_b60f0008; +defparam bootram.RAM1.INIT_09=256'h32600001_be670038_12660000_be060040_90c30060_13050000_12e60000_e0660000; +defparam bootram.RAM1.INIT_0A=256'hc0779800_10b80000_b9f400cc_10730000_be120028_16569800_32c70001_b8100014; +defparam bootram.RAM1.INIT_0B=256'heac10020_ea61001c_e9e10000_10730000_3273ffff_32730001_be26ffe4_90c30060; +defparam bootram.RAM1.INIT_0C=256'hb9f40084_f9e10000_10a00000_3021ffe4_3021002c_b60f0008_eb010028_eae10024; +defparam bootram.RAM1.INIT_0D=256'h10c63000_80000000_b60f0008_f0c5192c_3021001c_b60f0008_e9e10000_30c0000a; +defparam bootram.RAM1.INIT_0E=256'hf9e10000_fa61001c_3021ffe0_80000000_b60f0008_f8653700_64a50405_e4661660; +defparam bootram.RAM1.INIT_0F=256'h32730001_10b30000_e0d3165c_90c60060_b9f4ffc4_10b30000_e0d3192c_12600000; +defparam bootram.RAM1.INIT_10=256'h30210020_b60f0008_ea61001c_e9e10000_bc32ffd8_aa530003_90c60060_b9f4ffbc; +defparam bootram.RAM1.INIT_11=256'h12650000_be120030_aa46000a_12c60000_f9e10000_fac10020_fa61001c_3021ffdc; +defparam bootram.RAM1.INIT_12=256'heac10020_ea61001c_e9e10000_fac5000c_bc03fffc_e8650004_30a33700_64730405; +defparam bootram.RAM1.INIT_13=256'hb810ffc8_30c0000d_b9f4ffac_bc32ffd0_aa430001_e065192c_30210024_b60f0008; +defparam bootram.RAM1.INIT_14=256'hbe120030_aa46000a_12c60000_f9e10000_fac10020_fa61001c_3021ffdc_64730405; +defparam bootram.RAM1.INIT_15=256'hea61001c_e9e10000_fac3000c_bc040008_e8830004_30633700_64730405_12650000; +defparam bootram.RAM1.INIT_16=256'hb9f4ff44_30c0000d_be32ffd0_aa430001_e065192c_30210024_b60f0008_eac10020; +defparam bootram.RAM1.INIT_17=256'he8650010_bc03fffc_e8650008_30a53700_64a50405_64730405_b810ffc4_80000000; +defparam bootram.RAM1.INIT_18=256'he8850008_e8650010_bc030014_e8650008_30a53700_64a50405_80000000_b60f0008; +defparam bootram.RAM1.INIT_19=256'hf9e10000_fac10020_3021ffdc_64a50405_80000000_b60f0008_90630060_be24fff8; +defparam bootram.RAM1.INIT_1A=256'hbe120034_aa53012d_b8000010_32600001_be230040_e8760008_32c53700_fa61001c; +defparam bootram.RAM1.INIT_1B=256'h3240012b_3273ffff_32730001_be03ffe8_e8760008_30a00001_b9f40040_3060ffff; +defparam bootram.RAM1.INIT_1C=256'hb60f0008_eac10020_ea61001c_e9e10000_e8760010_3060ffff_be52000c_16539001; +defparam bootram.RAM1.INIT_1D=256'hbe650048_bc430054_e8601930_bc260054_a4c30000_b0008000_e8603324_30210024; +defparam bootram.RAM1.INIT_1E=256'h80000000_80000000_80000000_80000000_10800000_bc660030_e8c01930_10660000; +defparam bootram.RAM1.INIT_1F=256'h16432800_30630001_bc32ffdc_16443000_30840001_80000000_80000000_80000000; +defparam bootram.RAM1.INIT_20=256'hf8801930_e483166c_10631800_a4630007_e8603324_80000000_b60f0008_bc32ffc8; +defparam bootram.RAM1.INIT_21=256'h3065ffc9_a46300ff_be520024_16459001_3240005a_3065ffa9_90a50060_b800ff9c; +defparam bootram.RAM1.INIT_22=256'h80000000_b60f0008_a46400ff_3085ffd0_be52000c_16459001_32400039_a46300ff; +defparam bootram.RAM1.INIT_23=256'hfae10024_fac10020_fa61001c_f9e10000_fb610034_13250000_fb21002c_3021ffc8; +defparam bootram.RAM1.INIT_24=256'h10650000_30a0ffff_be120034_aa43003a_13660000_e0790000_fb410030_fb010028; +defparam bootram.RAM1.INIT_25=256'heb610034_eb410030_eb21002c_eb010028_eae10024_eac10020_ea61001c_e9e10000; +defparam bootram.RAM1.INIT_26=256'hbe04001c_90840060_30650001_c085c800_30a00001_e8c01934_30210038_b60f0008; +defparam bootram.RAM1.INIT_27=256'hb9f4ff28_e0b90001_30a0fffe_b810ffac_bc23ffe4_a4630044_c0662000_a4a300ff; +defparam bootram.RAM1.INIT_28=256'h10791800_fa7b0004_10739800_12761800_66c30404_b9f4ff1c_e0b90002_80000000; +defparam bootram.RAM1.INIT_29=256'he0b90003_13530000_b9f4fef0_e0b90005_30a0fffd_be38ff74_93040060_e083000b; +defparam bootram.RAM1.INIT_2A=256'hb9f4fec8_64630408_e0b90006_66c3040c_b9f4fed8_e0b90004_66e30404_b9f4fee4; +defparam bootram.RAM1.INIT_2B=256'he0b90008_80000000_b9f4feb0_e0b90007_fafb0008_12f7b000_12d61800_12d61800; +defparam bootram.RAM1.INIT_2C=256'hea7b000c_13580000_10f30000_be130060_f07b0000_1063b000_66c30404_b9f4fea4; +defparam bootram.RAM1.INIT_2D=256'hb9f4fe68_e0b60001_12d9b000_b9f4fe74_c0b6c800_a6d600ff_32d60009_12d8c000; +defparam bootram.RAM1.INIT_2E=256'ha70400ff_c073c000_30980001_e8fb0004_ea7b000c_d0789800_1063b800_66e30404; +defparam bootram.RAM1.INIT_2F=256'h64760008_12e73800_e09b0000_eadb0008_a74300ff_be52ffb8_1647c003_107a1800; +defparam bootram.RAM1.INIT_30=256'he0b7000a_12d61800_b9f4fe10_107a1800_12c7b000_10632000_e0b70009_12f9b800; +defparam bootram.RAM1.INIT_31=256'hbe32fe60_1643b000_a46300ff_a6d600ff_1063c000_16d60000_67030404_b9f4fe04; +defparam bootram.RAM1.INIT_32=256'h80000000_b60f0008_bc23fff8_a4630100_e8603b10_10a00000_b810fe58_30a0fffb; +defparam bootram.RAM1.INIT_33=256'hbc23fff8_a4630100_e8603b10_a4a500ff_80884800_a1292000_a508007f_a5290600; +defparam bootram.RAM1.INIT_34=256'h10650000_be050018_f8803b10_a0840100_f8603b18_a46600ff_f8803b10_f8e03b00; +defparam bootram.RAM1.INIT_35=256'h10e60000_10c00000_80000000_b60f0008_e8603b00_bc23fff8_a4630100_e8603b10; +defparam bootram.RAM1.INIT_36=256'hb9f4ff84_f8603b14_30600001_31200400_31000008_10a00000_f9e10000_3021ffe4; +defparam bootram.RAM1.INIT_37=256'hfa61002c_12c50000_fac10030_3021ffc4_3021001c_b60f0008_e9e10000_80000000; +defparam bootram.RAM1.INIT_38=256'hf8003b18_30600400_12670000_b9f4ff3c_fae10034_13060000_f9e10000_fb010038; +defparam bootram.RAM1.INIT_39=256'h30800428_f8603b18_30600001_fac03b00_f8603b04_3060000b_66d60408_f8603b10; +defparam bootram.RAM1.INIT_3A=256'h12e00000_12d30000_be18009c_80000000_b9f4ff00_f8603b10_30600528_f8803b10; +defparam bootram.RAM1.INIT_3B=256'he8803b0c_80000000_b9f4fed8_f8803b10_30800500_f8603b10_30600400_3261001c; +defparam bootram.RAM1.INIT_3C=256'hf8610028_e8603b00_f8810024_e8803b04_f8610020_e8603b08_f881001c_14b7c000; +defparam bootram.RAM1.INIT_3D=256'h30840001_d0762000_c0732000_30a00010_10800000_beb20034_16459003_22400010; +defparam bootram.RAM1.INIT_3E=256'hbc25ffd8_b800ff8c_12d62800_beb20020_1658b803_12f72800_bc32fff0_16442800; +defparam bootram.RAM1.INIT_3F=256'heac10030_ea61002c_e9e10000_f8003b18_12d62800_be52ff7c_1658b803_12f72800; +defparam bootram.RAM2.INIT_00=256'h30a00001_3021ffe4_30e00000_b0009f00_3021003c_b60f0008_eb010038_eae10034; +defparam bootram.RAM2.INIT_01=256'ha463ffff_b00000ff_e9e10000_31200400_b9f4fe34_f9e10000_31000020_30c00001; +defparam bootram.RAM2.INIT_02=256'he9e10000_bc030010_f9e10000_3021ffe4_e860f828_b0000000_3021001c_b60f0008; +defparam bootram.RAM2.INIT_03=256'hbe120010_aa440020_a48400ff_64830008_80000000_b9f4ffa8_3021001c_b60f0008; +defparam bootram.RAM2.INIT_04=256'h16439001_32400018_bcb2fff0_16439001_32400015_80000000_b9f40170_a46300ff; +defparam bootram.RAM2.INIT_05=256'hf9e10000_3021ffe4_e860f824_b0000000_b800ffb0_f860f828_b0000000_bc52ffe4; +defparam bootram.RAM2.INIT_06=256'ha48400ff_64830008_80000000_b9f4ff40_3021001c_b60f0008_e9e10000_bc030010; +defparam bootram.RAM2.INIT_07=256'hbcb2fff0_16459001_32400015_80000000_b9f40108_a4a300ff_be120010_aa440020; +defparam bootram.RAM2.INIT_08=256'hf860f824_b0000000_f8a0f828_b0000000_e0651666_bc52ffe4_16459001_32400018; +defparam bootram.RAM2.INIT_09=256'hb9f40174_f9e10000_10b60000_10c50000_12c00000_fac1001c_3021ffe0_b800ffa4; +defparam bootram.RAM2.INIT_0A=256'h3021ffd4_30210020_b60f0008_eac1001c_e9e10000_80000000_99fcb000_30e00024; +defparam bootram.RAM2.INIT_0B=256'h30c01680_10b60000_30c00006_b9f4fd80_f9e10000_10f60000_32c1001c_fac10028; +defparam bootram.RAM2.INIT_0C=256'h6464001f_eac10028_e9e10000_a884ffff_80841800_14830000_30e00006_b9f400b0; +defparam bootram.RAM2.INIT_0D=256'hb9f4fd34_f9e10000_10f60000_32c1001c_fac10028_3021ffd4_3021002c_b60f0008; +defparam bootram.RAM2.INIT_0E=256'ha884ffff_80841800_14830000_30e00006_b9f40064_30c01688_10b60000_30c00006; +defparam bootram.RAM2.INIT_0F=256'hf9e10000_3021ffe4_30a01690_3021002c_b60f0008_6464001f_eac10028_e9e10000; +defparam bootram.RAM2.INIT_10=256'h80000000_b6910000_80000000_b6110000_30a0ffff_b9f4ee68_80000000_b9f4f580; +defparam bootram.RAM2.INIT_11=256'h80653000_beb2005c_16479003_22400003_80000000_b60f0008_80000000_b60f0008; +defparam bootram.RAM2.INIT_12=256'h30a50004_30e7fffc_bc320040_16432000_e8660000_e8850000_bc230050_a4630003; +defparam bootram.RAM2.INIT_13=256'he1050000_bc120028_aa47ffff_30e7ffff_30c60004_be52ffe0_16479003_22400003; +defparam bootram.RAM2.INIT_14=256'hbc32ffe0_aa47ffff_30e7ffff_30c60001_30a50001_be320020_16434000_e0660000; +defparam bootram.RAM2.INIT_15=256'h10850000_beb20018_16479003_2240000f_14634000_b60f0008_10600000_b60f0008; +defparam bootram.RAM2.INIT_16=256'he0660000_10e72000_11040000_bc070024_11050000_be030034_a4630003_80662800; +defparam bootram.RAM2.INIT_17=256'he8860000_10650000_b60f0008_30c60001_be32fff0_16474000_31080001_f0680000; +defparam bootram.RAM2.INIT_18=256'h30c60010_e866000c_f8880008_e8860008_f8680004_e8660004_f8880000_30e7fff0; +defparam bootram.RAM2.INIT_19=256'hbcb2002c_16479003_22400003_31080010_be52ffd0_16479003_2240000f_f868000c; +defparam bootram.RAM2.INIT_1A=256'h30840004_be52ffec_16479003_22400003_d8682000_30e7fffc_c8662000_10800000; +defparam bootram.RAM2.INIT_1B=256'hf9e10000_fa61001c_3021ffe0_e86013f0_10880000_b810ff68_11044000_10c43000; +defparam bootram.RAM2.INIT_1C=256'hbc32fff0_aa43ffff_e8730000_3273fffc_99fc1800_bc120018_aa43ffff_326013f0; +defparam bootram.RAM2.INIT_1D=256'h80000000_b9f4ed20_d9e00800_3021fff8_30210020_b60f0008_ea61001c_e9e10000; +defparam bootram.RAM2.INIT_1E=256'hb9f4ec98_d9e00800_3021fff8_30210008_b60f0008_c9e00800_80000000_b9f4ffb0; +defparam bootram.RAM2.INIT_1F=256'h00000000_ffffffff_00000000_ffffffff_30210008_b60f0008_c9e00800_80000000; +defparam bootram.RAM2.INIT_20=256'h65642120_7475726e_65207265_696d6167_61696e20_523a206d_4552524f_4f4b0000; +defparam bootram.RAM2.INIT_21=256'h55535250_4e4f4b00_64652e00_64206d6f_206c6f61_49484558_20696e20_4261636b; +defparam bootram.RAM2.INIT_22=256'h50322b20_20555352_74696e67_53746172_720a0000_6f616465_6f6f746c_322b2062; +defparam bootram.RAM2.INIT_23=256'h6e206672_65747572_523a2072_4552524f_2e000000_6d6f6465_61666520_696e2073; +defparam bootram.RAM2.INIT_24=256'h206e6576_6f756c64_73207368_20546869_72616d21_70726f67_61696e20_6f6d206d; +defparam bootram.RAM2.INIT_25=256'h69726d77_66652066_6f207361_523a206e_4552524f_6e210000_61707065_65722068; +defparam bootram.RAM2.INIT_26=256'h62726963_6d206120_20492061_626c652e_61696c61_65206176_696d6167_61726520; +defparam bootram.RAM2.INIT_27=256'h2052414d_5820746f_20494845_6c6f6164_20746f20_66726565_65656c20_6b2e2046; +defparam bootram.RAM2.INIT_28=256'h6374696f_726f6475_69642070_2076616c_20666f72_6b696e67_43686563_2e000000; +defparam bootram.RAM2.INIT_29=256'h74696f6e_6f647563_64207072_56616c69_2e2e2e00_6d616765_47412069_6e204650; +defparam bootram.RAM2.INIT_2A=256'h6720746f_7074696e_7474656d_642e2041_666f756e_61676520_4120696d_20465047; +defparam bootram.RAM2.INIT_2B=256'h46504741_696f6e20_64756374_2070726f_616c6964_4e6f2076_742e0000_20626f6f; +defparam bootram.RAM2.INIT_2C=256'h6c6f6164_20746f20_74696e67_74656d70_2e0a4174_6f756e64_67652066_20696d61; +defparam bootram.RAM2.INIT_2D=256'h64207072_56616c69_2e2e2e00_77617265_6669726d_696f6e20_64756374_2070726f; +defparam bootram.RAM2.INIT_2E=256'h64696e67_204c6f61_756e642e_6520666f_6d776172_20666972_74696f6e_6f647563; +defparam bootram.RAM2.INIT_2F=256'h70726f67_61696e20_6f6d206d_6e206672_65747572_523a2052_4552524f_2e2e2e00; +defparam bootram.RAM2.INIT_30=256'h6e210000_61707065_65722068_206e6576_6f756c64_73207368_20546869_72616d21; +defparam bootram.RAM2.INIT_31=256'h20666f75_77617265_6669726d_696f6e20_64756374_2070726f_616c6964_4e6f2076; +defparam bootram.RAM2.INIT_32=256'h05050400_2e2e2e00_77617265_6669726d_61666520_6e672073_54727969_6e642e20; +defparam bootram.RAM2.INIT_33=256'h10101200_06820594_09c407d0_13880d05_00002710_01b200d9_05160364_14580a2c; +defparam bootram.RAM2.INIT_34=256'h00202020_00000000_6f72740a_0a0a6162_aa990000_ffffffff_b8080000_b0000000; +defparam bootram.RAM2.INIT_35=256'h20881010_20202020_20202020_20202020_20202020_28282820_20202828_20202020; +defparam bootram.RAM2.INIT_36=256'h10104141_10101010_04040410_04040404_10040404_10101010_10101010_10101010; +defparam bootram.RAM2.INIT_37=256'h10104242_10101010_01010101_01010101_01010101_01010101_01010101_41414141; +defparam bootram.RAM2.INIT_38=256'h20000000_10101010_02020202_02020202_02020202_02020202_02020202_42424242; +defparam bootram.RAM2.INIT_39=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_3A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_3B=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_3C=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_3D=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_3E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_3F=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_00=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_01=256'h20202020_20202020_20202020_20202020_28282020_20282828_20202020_20202020; +defparam bootram.RAM3.INIT_02=256'h10101010_04041010_04040404_04040404_10101010_10101010_10101010_88101010; +defparam bootram.RAM3.INIT_03=256'h10101010_01010110_01010101_01010101_01010101_01010101_41414101_10414141; +defparam bootram.RAM3.INIT_04=256'h10101020_02020210_02020202_02020202_02020202_02020202_42424202_10424242; +defparam bootram.RAM3.INIT_05=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_06=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_07=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_08=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_09=256'h00000000_00000000_00001820_ffffffff_01010100_000013fc_00000000_00000000; +defparam bootram.RAM3.INIT_0A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; ram_harvard2 #(.AWIDTH(15),.RAM_SIZE(32768)) sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), -- cgit v1.2.3 From dfbc0653beabe4ee1b9e8816a1932734d12b89d2 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Thu, 7 Oct 2010 10:55:17 -0700 Subject: separate the bootloader image into another file --- usrp2/top/u2plus/bootloader.rmi | 204 +++++++++++++++++++++++++++++++++++++++ usrp2/top/u2plus/u2plus_core.v | 205 +--------------------------------------- 2 files changed, 205 insertions(+), 204 deletions(-) create mode 100644 usrp2/top/u2plus/bootloader.rmi diff --git a/usrp2/top/u2plus/bootloader.rmi b/usrp2/top/u2plus/bootloader.rmi new file mode 100644 index 000000000..02ec11060 --- /dev/null +++ b/usrp2/top/u2plus/bootloader.rmi @@ -0,0 +1,204 @@ +////bootloader 10/5/10 for 32/64Mbit FLASH +defparam bootram.RAM0.INIT_00=256'h00000000_00000000_00000000_b80801c0_00000000_b8081210_00000000_b8080050; +defparam bootram.RAM0.INIT_01=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_b8081218; +defparam bootram.RAM0.INIT_02=256'h3020ffe0_b0000000_30401920_31a01948_00000000_00000000_00000000_00000000; +defparam bootram.RAM0.INIT_03=256'h3021ffe4_e060f800_b0000000_b8000000_30a30000_b9f4047c_80000000_b9f400cc; +defparam bootram.RAM0.INIT_04=256'he8830000_e8601928_80000000_99fc2000_f8601928_b8000044_bc030014_f9e10000; +defparam bootram.RAM0.INIT_05=256'h80000000_99fc1800_30a0193c_bc030010_30600000_b0000000_30630004_be24ffec; +defparam bootram.RAM0.INIT_06=256'h30600000_b0000000_3021001c_b60f0008_e9e10000_f060f800_b0000000_30600001; +defparam bootram.RAM0.INIT_07=256'h80000000_99fc1800_bc03000c_30c0f804_b0000000_30a0193c_f9e10000_3021ffe4; +defparam bootram.RAM0.INIT_08=256'h80000000_99fc2000_bc04000c_30a01940_bc030014_30800000_b0000000_e8601940; +defparam bootram.RAM0.INIT_09=256'h06463800_20e01948_20c01948_f9e10000_2021ffec_3021001c_b60f0008_e9e10000; +defparam bootram.RAM0.INIT_0A=256'hb0000000_20c0f800_b0000000_bc92fff4_06463800_20c60004_f8060000_bc720014; +defparam bootram.RAM0.INIT_0B=256'hb9f410ac_bc92fff4_06463800_20c60004_f8060000_bc720014_06463800_20e0f82c; +defparam bootram.RAM0.INIT_0C=256'h32630000_20a00000_b9f4014c_20e00000_20c00000_80000000_b9f4122c_80000000; +defparam bootram.RAM0.INIT_0D=256'h20210014_b60f0008_30730000_c9e10000_80000000_b9f41078_80000000_b9f41234; +defparam bootram.RAM0.INIT_0E=256'he9e10000_f9610004_fa410010_95608001_fa21000c_f9610008_f9e10000_3021ffec; +defparam bootram.RAM0.INIT_0F=256'hbc050018_30210014_b62e0000_ea410010_ea21000c_e9610008_940bc001_e9610004; +defparam bootram.RAM0.INIT_10=256'h3021ff2c_80000000_b60f0008_bc32fff4_16432800_30630001_80000000_10600000; +defparam bootram.RAM0.INIT_11=256'hb9f40440_32c1001c_3261004c_f8610028_f9e10000_fac100d0_fa6100cc_3061002c; +defparam bootram.RAM0.INIT_12=256'h22407fff_e8610024_bc230038_30a01438_10b30000_b9f40a18_10d60000_10b30000; +defparam bootram.RAM0.INIT_13=256'h30a01438_bc120040_aa430001_30a01400_e061001c_10a30000_be520034_16439003; +defparam bootram.RAM0.INIT_14=256'he8e10020_e8c10028_b800ffa8_80000000_b9f404d4_b800ffb4_80000000_b9f404e0; +defparam bootram.RAM0.INIT_15=256'h80000000_b9f404a8_b800ff88_80000000_b9f404b4_30a01400_80000000_b9f41010; +defparam bootram.RAM0.INIT_16=256'hb800ff60_80000000_b9f4048c_30a01404_80000000_b9f40e5c_30a08000_b0000000; +defparam bootram.RAM0.INIT_17=256'h30a0a120_b0000007_9403c001_ac640002_94808001_fa61001c_f9e10000_3021ffe0; +defparam bootram.RAM0.INIT_18=256'hb9f40b9c_80000000_b9f406c0_f800200c_80000000_b9f4fef4_f860200c_306000ff; +defparam bootram.RAM0.INIT_19=256'h30a01504_bc04013c_a4842000_e8803334_80000000_b9f40438_30a0143c_80000000; +defparam bootram.RAM0.INIT_1A=256'h30a01568_bc23010c_80000000_b9f40e58_30a00000_b0000018_80000000_b9f40420; +defparam bootram.RAM0.INIT_1B=256'h30a015b8_bc030058_80000000_b9f40dec_30a00000_b0000030_80000000_b9f40400; +defparam bootram.RAM0.INIT_1C=256'h30c07c00_b9f40b58_30a00000_b0000030_30e08000_b0000000_80000000_b9f403e0; +defparam bootram.RAM0.INIT_1D=256'he9e10000_80000000_b9f403ac_30a015e4_80000000_b9f40d7c_30a08000_b0000000; +defparam bootram.RAM0.INIT_1E=256'hb000003f_80000000_b9f4038c_30a01620_30210020_b60f0008_30600001_ea61001c; +defparam bootram.RAM0.INIT_1F=256'h80000000_b9f40368_30a014ac_12630000_be230030_80000000_b9f40d78_30a00000; +defparam bootram.RAM0.INIT_20=256'hb0000000_30210020_b60f0008_ea61001c_e9e10000_10730000_80000000_b9f4fe1c; +defparam bootram.RAM0.INIT_21=256'hb9f40ce8_30a08000_b0000000_30c07c00_b9f40ac4_30a00000_b000003f_30e08000; +defparam bootram.RAM0.INIT_22=256'hb60f0008_30600001_ea61001c_e9e10000_80000000_b9f40318_30a01470_80000000; +defparam bootram.RAM0.INIT_23=256'h80000000_b9f402e8_30a01450_b800feec_80000000_b9f402f8_30a01530_30210020; +defparam bootram.RAM0.INIT_24=256'h80000000_b9f402c8_30a014ac_bc23001c_80000000_b9f40cd4_30a00000_b000003f; +defparam bootram.RAM0.INIT_25=256'hb9f40a34_30a00000_b000003f_30e08000_b0000000_b800fe94_80000000_b9f4fd7c; +defparam bootram.RAM0.INIT_26=256'h80000000_b9f40288_30a01470_80000000_b9f40c58_30a08000_b0000000_30c07c00; +defparam bootram.RAM0.INIT_27=256'h3021ffd0_80000000_b60f0008_80000000_b9f4fb84_f9e10000_3021ffe4_b800fe5c; +defparam bootram.RAM0.INIT_28=256'h13260000_12e70000_13050000_12660000_fb21002c_fb010028_fae10024_fa61001c; +defparam bootram.RAM0.INIT_29=256'hbcb2002c_16572001_bc120030_aa43ffff_12c00000_b810001c_f9e10000_fac10020; +defparam bootram.RAM0.INIT_2A=256'hbe32ffd4_aa43000a_f0730000_10960000_90630060_10b80000_b9f405ec_32730001; +defparam bootram.RAM0.INIT_2B=256'heae10024_eac10020_ea61001c_e9e10000_10640000_f0130000_14999800_32d60001; +defparam bootram.RAM0.INIT_2C=256'hfb010028_fae10024_fa61001c_3021ffd0_30210030_b60f0008_eb21002c_eb010028; +defparam bootram.RAM0.INIT_2D=256'hb8100014_f9e10000_fac10020_13260000_12e70000_13050000_12660000_fb21002c; +defparam bootram.RAM0.INIT_2E=256'h10960000_90630060_10b80000_b9f4051c_32730001_bcb2002c_16572001_12c00000; +defparam bootram.RAM0.INIT_2F=256'he9e10000_10640000_f0130000_14999800_32d60001_be32ffdc_aa43000a_f0730000; +defparam bootram.RAM0.INIT_30=256'h3021ffd8_30210030_b60f0008_eb21002c_eb010028_eae10024_eac10020_ea61001c; +defparam bootram.RAM0.INIT_31=256'hb9f404b0_12660000_f9e10000_12e60000_12c50000_fae10024_fac10020_fa61001c; +defparam bootram.RAM0.INIT_32=256'hf0130000_3273ffff_32730001_be32ffec_aa43000a_f0730000_90630060_10b60000; +defparam bootram.RAM0.INIT_33=256'h10c50000_30210028_b60f0008_eae10024_eac10020_ea61001c_e9e10000_10770000; +defparam bootram.RAM0.INIT_34=256'h3021ffe4_3021001c_b60f0008_e9e10000_10a00000_b9f4ff94_f9e10000_3021ffe4; +defparam bootram.RAM0.INIT_35=256'hf9e10000_3021ffe4_3021001c_b60f0008_e9e10000_80000000_b9f40448_f9e10000; +defparam bootram.RAM0.INIT_36=256'hfac10020_fa61001c_3021ffdc_3021001c_b60f0008_e9e10000_10a00000_b9f4ffdc; +defparam bootram.RAM0.INIT_37=256'hb9f40324_10b60000_12c50000_be060024_90c30060_12660000_e0660000_f9e10000; +defparam bootram.RAM0.INIT_38=256'heac10020_ea61001c_e9e10000_10b60000_be26fff0_90c30060_e0730000_32730001; +defparam bootram.RAM0.INIT_39=256'h12c50000_b9f4ff9c_f9e10000_fac1001c_3021ffe0_30210024_b60f0008_10600000; +defparam bootram.RAM0.INIT_3A=256'h30210020_b60f0008_10600000_eac1001c_e9e10000_30c0000a_b9f402dc_10b60000; +defparam bootram.RAM0.INIT_3B=256'h3021001c_b60f0008_e9e10000_10a00000_b9f4ffc0_f9e10000_3021ffe4_10c50000; +defparam bootram.RAM0.INIT_3C=256'h3021001c_b60f0008_e9e10000_10a00000_b9f4ff48_f9e10000_3021ffe4_10c50000; +defparam bootram.RAM0.INIT_3D=256'h3021ffe0_3021001c_b60f0008_e9e10000_30c0000a_b9f40278_f9e10000_3021ffe4; +defparam bootram.RAM0.INIT_3E=256'he9e10000_10760000_10d60000_b9f40250_f9e10000_10a00000_12c50000_fac1001c; +defparam bootram.RAM0.INIT_3F=256'h12c60000_b9f40228_f9e10000_fac1001c_3021ffe0_30210020_b60f0008_eac1001c; +defparam bootram.RAM1.INIT_00=256'hb9f401b8_f9e10000_3021ffe4_30210020_b60f0008_eac1001c_e9e10000_10760000; +defparam bootram.RAM1.INIT_01=256'hb0000000_9404c001_ac870002_94e08001_3021001c_b60f0008_e9e10000_80000000; +defparam bootram.RAM1.INIT_02=256'hf860f81c_b0000000_f860200c_80633000_84632000_84c62800_a866ffff_e880f81c; +defparam bootram.RAM1.INIT_03=256'h94608001_80000000_b60f0008_9404c001_80843800_ac840002_94808001_a4e70002; +defparam bootram.RAM1.INIT_04=256'hf8a0f81c_b0000000_f8a0200c_88a52000_e880f81c_b0000000_9406c001_acc30002; +defparam bootram.RAM1.INIT_05=256'h94e08001_80000000_b60f0008_9404c001_80841800_ac840002_94808001_a4630002; +defparam bootram.RAM1.INIT_06=256'h80633000_84632000_84c62800_a866ffff_e880f820_b0000000_9404c001_ac870002; +defparam bootram.RAM1.INIT_07=256'h9404c001_80843800_ac840002_94808001_a4e70002_f860f820_b0000000_f8602020; +defparam bootram.RAM1.INIT_08=256'hfac10020_f9e10000_fb010028_fae10024_fa61001c_3021ffd4_80000000_b60f0008; +defparam bootram.RAM1.INIT_09=256'h32600001_be670038_12660000_be060040_90c30060_13050000_12e60000_e0660000; +defparam bootram.RAM1.INIT_0A=256'hc0779800_10b80000_b9f400cc_10730000_be120028_16569800_32c70001_b8100014; +defparam bootram.RAM1.INIT_0B=256'heac10020_ea61001c_e9e10000_10730000_3273ffff_32730001_be26ffe4_90c30060; +defparam bootram.RAM1.INIT_0C=256'hb9f40084_f9e10000_10a00000_3021ffe4_3021002c_b60f0008_eb010028_eae10024; +defparam bootram.RAM1.INIT_0D=256'h10c63000_80000000_b60f0008_f0c5192c_3021001c_b60f0008_e9e10000_30c0000a; +defparam bootram.RAM1.INIT_0E=256'hf9e10000_fa61001c_3021ffe0_80000000_b60f0008_f8653700_64a50405_e4661660; +defparam bootram.RAM1.INIT_0F=256'h32730001_10b30000_e0d3165c_90c60060_b9f4ffc4_10b30000_e0d3192c_12600000; +defparam bootram.RAM1.INIT_10=256'h30210020_b60f0008_ea61001c_e9e10000_bc32ffd8_aa530003_90c60060_b9f4ffbc; +defparam bootram.RAM1.INIT_11=256'h12650000_be120030_aa46000a_12c60000_f9e10000_fac10020_fa61001c_3021ffdc; +defparam bootram.RAM1.INIT_12=256'heac10020_ea61001c_e9e10000_fac5000c_bc03fffc_e8650004_30a33700_64730405; +defparam bootram.RAM1.INIT_13=256'hb810ffc8_30c0000d_b9f4ffac_bc32ffd0_aa430001_e065192c_30210024_b60f0008; +defparam bootram.RAM1.INIT_14=256'hbe120030_aa46000a_12c60000_f9e10000_fac10020_fa61001c_3021ffdc_64730405; +defparam bootram.RAM1.INIT_15=256'hea61001c_e9e10000_fac3000c_bc040008_e8830004_30633700_64730405_12650000; +defparam bootram.RAM1.INIT_16=256'hb9f4ff44_30c0000d_be32ffd0_aa430001_e065192c_30210024_b60f0008_eac10020; +defparam bootram.RAM1.INIT_17=256'he8650010_bc03fffc_e8650008_30a53700_64a50405_64730405_b810ffc4_80000000; +defparam bootram.RAM1.INIT_18=256'he8850008_e8650010_bc030014_e8650008_30a53700_64a50405_80000000_b60f0008; +defparam bootram.RAM1.INIT_19=256'hf9e10000_fac10020_3021ffdc_64a50405_80000000_b60f0008_90630060_be24fff8; +defparam bootram.RAM1.INIT_1A=256'hbe120034_aa53012d_b8000010_32600001_be230040_e8760008_32c53700_fa61001c; +defparam bootram.RAM1.INIT_1B=256'h3240012b_3273ffff_32730001_be03ffe8_e8760008_30a00001_b9f40040_3060ffff; +defparam bootram.RAM1.INIT_1C=256'hb60f0008_eac10020_ea61001c_e9e10000_e8760010_3060ffff_be52000c_16539001; +defparam bootram.RAM1.INIT_1D=256'hbe650048_bc430054_e8601930_bc260054_a4c30000_b0008000_e8603324_30210024; +defparam bootram.RAM1.INIT_1E=256'h80000000_80000000_80000000_80000000_10800000_bc660030_e8c01930_10660000; +defparam bootram.RAM1.INIT_1F=256'h16432800_30630001_bc32ffdc_16443000_30840001_80000000_80000000_80000000; +defparam bootram.RAM1.INIT_20=256'hf8801930_e483166c_10631800_a4630007_e8603324_80000000_b60f0008_bc32ffc8; +defparam bootram.RAM1.INIT_21=256'h3065ffc9_a46300ff_be520024_16459001_3240005a_3065ffa9_90a50060_b800ff9c; +defparam bootram.RAM1.INIT_22=256'h80000000_b60f0008_a46400ff_3085ffd0_be52000c_16459001_32400039_a46300ff; +defparam bootram.RAM1.INIT_23=256'hfae10024_fac10020_fa61001c_f9e10000_fb610034_13250000_fb21002c_3021ffc8; +defparam bootram.RAM1.INIT_24=256'h10650000_30a0ffff_be120034_aa43003a_13660000_e0790000_fb410030_fb010028; +defparam bootram.RAM1.INIT_25=256'heb610034_eb410030_eb21002c_eb010028_eae10024_eac10020_ea61001c_e9e10000; +defparam bootram.RAM1.INIT_26=256'hbe04001c_90840060_30650001_c085c800_30a00001_e8c01934_30210038_b60f0008; +defparam bootram.RAM1.INIT_27=256'hb9f4ff28_e0b90001_30a0fffe_b810ffac_bc23ffe4_a4630044_c0662000_a4a300ff; +defparam bootram.RAM1.INIT_28=256'h10791800_fa7b0004_10739800_12761800_66c30404_b9f4ff1c_e0b90002_80000000; +defparam bootram.RAM1.INIT_29=256'he0b90003_13530000_b9f4fef0_e0b90005_30a0fffd_be38ff74_93040060_e083000b; +defparam bootram.RAM1.INIT_2A=256'hb9f4fec8_64630408_e0b90006_66c3040c_b9f4fed8_e0b90004_66e30404_b9f4fee4; +defparam bootram.RAM1.INIT_2B=256'he0b90008_80000000_b9f4feb0_e0b90007_fafb0008_12f7b000_12d61800_12d61800; +defparam bootram.RAM1.INIT_2C=256'hea7b000c_13580000_10f30000_be130060_f07b0000_1063b000_66c30404_b9f4fea4; +defparam bootram.RAM1.INIT_2D=256'hb9f4fe68_e0b60001_12d9b000_b9f4fe74_c0b6c800_a6d600ff_32d60009_12d8c000; +defparam bootram.RAM1.INIT_2E=256'ha70400ff_c073c000_30980001_e8fb0004_ea7b000c_d0789800_1063b800_66e30404; +defparam bootram.RAM1.INIT_2F=256'h64760008_12e73800_e09b0000_eadb0008_a74300ff_be52ffb8_1647c003_107a1800; +defparam bootram.RAM1.INIT_30=256'he0b7000a_12d61800_b9f4fe10_107a1800_12c7b000_10632000_e0b70009_12f9b800; +defparam bootram.RAM1.INIT_31=256'hbe32fe60_1643b000_a46300ff_a6d600ff_1063c000_16d60000_67030404_b9f4fe04; +defparam bootram.RAM1.INIT_32=256'h80000000_b60f0008_bc23fff8_a4630100_e8603b10_10a00000_b810fe58_30a0fffb; +defparam bootram.RAM1.INIT_33=256'hbc23fff8_a4630100_e8603b10_a4a500ff_80884800_a1292000_a508007f_a5290600; +defparam bootram.RAM1.INIT_34=256'h10650000_be050018_f8803b10_a0840100_f8603b18_a46600ff_f8803b10_f8e03b00; +defparam bootram.RAM1.INIT_35=256'h10e60000_10c00000_80000000_b60f0008_e8603b00_bc23fff8_a4630100_e8603b10; +defparam bootram.RAM1.INIT_36=256'hb9f4ff84_f8603b14_30600001_31200400_31000008_10a00000_f9e10000_3021ffe4; +defparam bootram.RAM1.INIT_37=256'hfa61002c_12c50000_fac10030_3021ffc4_3021001c_b60f0008_e9e10000_80000000; +defparam bootram.RAM1.INIT_38=256'hf8003b18_30600400_12670000_b9f4ff3c_fae10034_13060000_f9e10000_fb010038; +defparam bootram.RAM1.INIT_39=256'h30800428_f8603b18_30600001_fac03b00_f8603b04_3060000b_66d60408_f8603b10; +defparam bootram.RAM1.INIT_3A=256'h12e00000_12d30000_be18009c_80000000_b9f4ff00_f8603b10_30600528_f8803b10; +defparam bootram.RAM1.INIT_3B=256'he8803b0c_80000000_b9f4fed8_f8803b10_30800500_f8603b10_30600400_3261001c; +defparam bootram.RAM1.INIT_3C=256'hf8610028_e8603b00_f8810024_e8803b04_f8610020_e8603b08_f881001c_14b7c000; +defparam bootram.RAM1.INIT_3D=256'h30840001_d0762000_c0732000_30a00010_10800000_beb20034_16459003_22400010; +defparam bootram.RAM1.INIT_3E=256'hbc25ffd8_b800ff8c_12d62800_beb20020_1658b803_12f72800_bc32fff0_16442800; +defparam bootram.RAM1.INIT_3F=256'heac10030_ea61002c_e9e10000_f8003b18_12d62800_be52ff7c_1658b803_12f72800; +defparam bootram.RAM2.INIT_00=256'h30a00001_3021ffe4_30e00000_b0009f00_3021003c_b60f0008_eb010038_eae10034; +defparam bootram.RAM2.INIT_01=256'ha463ffff_b00000ff_e9e10000_31200400_b9f4fe34_f9e10000_31000020_30c00001; +defparam bootram.RAM2.INIT_02=256'he9e10000_bc030010_f9e10000_3021ffe4_e860f828_b0000000_3021001c_b60f0008; +defparam bootram.RAM2.INIT_03=256'hbe120010_aa440020_a48400ff_64830008_80000000_b9f4ffa8_3021001c_b60f0008; +defparam bootram.RAM2.INIT_04=256'h16439001_32400018_bcb2fff0_16439001_32400015_80000000_b9f40170_a46300ff; +defparam bootram.RAM2.INIT_05=256'hf9e10000_3021ffe4_e860f824_b0000000_b800ffb0_f860f828_b0000000_bc52ffe4; +defparam bootram.RAM2.INIT_06=256'ha48400ff_64830008_80000000_b9f4ff40_3021001c_b60f0008_e9e10000_bc030010; +defparam bootram.RAM2.INIT_07=256'hbcb2fff0_16459001_32400015_80000000_b9f40108_a4a300ff_be120010_aa440020; +defparam bootram.RAM2.INIT_08=256'hf860f824_b0000000_f8a0f828_b0000000_e0651666_bc52ffe4_16459001_32400018; +defparam bootram.RAM2.INIT_09=256'hb9f40174_f9e10000_10b60000_10c50000_12c00000_fac1001c_3021ffe0_b800ffa4; +defparam bootram.RAM2.INIT_0A=256'h3021ffd4_30210020_b60f0008_eac1001c_e9e10000_80000000_99fcb000_30e00024; +defparam bootram.RAM2.INIT_0B=256'h30c01680_10b60000_30c00006_b9f4fd80_f9e10000_10f60000_32c1001c_fac10028; +defparam bootram.RAM2.INIT_0C=256'h6464001f_eac10028_e9e10000_a884ffff_80841800_14830000_30e00006_b9f400b0; +defparam bootram.RAM2.INIT_0D=256'hb9f4fd34_f9e10000_10f60000_32c1001c_fac10028_3021ffd4_3021002c_b60f0008; +defparam bootram.RAM2.INIT_0E=256'ha884ffff_80841800_14830000_30e00006_b9f40064_30c01688_10b60000_30c00006; +defparam bootram.RAM2.INIT_0F=256'hf9e10000_3021ffe4_30a01690_3021002c_b60f0008_6464001f_eac10028_e9e10000; +defparam bootram.RAM2.INIT_10=256'h80000000_b6910000_80000000_b6110000_30a0ffff_b9f4ee68_80000000_b9f4f580; +defparam bootram.RAM2.INIT_11=256'h80653000_beb2005c_16479003_22400003_80000000_b60f0008_80000000_b60f0008; +defparam bootram.RAM2.INIT_12=256'h30a50004_30e7fffc_bc320040_16432000_e8660000_e8850000_bc230050_a4630003; +defparam bootram.RAM2.INIT_13=256'he1050000_bc120028_aa47ffff_30e7ffff_30c60004_be52ffe0_16479003_22400003; +defparam bootram.RAM2.INIT_14=256'hbc32ffe0_aa47ffff_30e7ffff_30c60001_30a50001_be320020_16434000_e0660000; +defparam bootram.RAM2.INIT_15=256'h10850000_beb20018_16479003_2240000f_14634000_b60f0008_10600000_b60f0008; +defparam bootram.RAM2.INIT_16=256'he0660000_10e72000_11040000_bc070024_11050000_be030034_a4630003_80662800; +defparam bootram.RAM2.INIT_17=256'he8860000_10650000_b60f0008_30c60001_be32fff0_16474000_31080001_f0680000; +defparam bootram.RAM2.INIT_18=256'h30c60010_e866000c_f8880008_e8860008_f8680004_e8660004_f8880000_30e7fff0; +defparam bootram.RAM2.INIT_19=256'hbcb2002c_16479003_22400003_31080010_be52ffd0_16479003_2240000f_f868000c; +defparam bootram.RAM2.INIT_1A=256'h30840004_be52ffec_16479003_22400003_d8682000_30e7fffc_c8662000_10800000; +defparam bootram.RAM2.INIT_1B=256'hf9e10000_fa61001c_3021ffe0_e86013f0_10880000_b810ff68_11044000_10c43000; +defparam bootram.RAM2.INIT_1C=256'hbc32fff0_aa43ffff_e8730000_3273fffc_99fc1800_bc120018_aa43ffff_326013f0; +defparam bootram.RAM2.INIT_1D=256'h80000000_b9f4ed20_d9e00800_3021fff8_30210020_b60f0008_ea61001c_e9e10000; +defparam bootram.RAM2.INIT_1E=256'hb9f4ec98_d9e00800_3021fff8_30210008_b60f0008_c9e00800_80000000_b9f4ffb0; +defparam bootram.RAM2.INIT_1F=256'h00000000_ffffffff_00000000_ffffffff_30210008_b60f0008_c9e00800_80000000; +defparam bootram.RAM2.INIT_20=256'h65642120_7475726e_65207265_696d6167_61696e20_523a206d_4552524f_4f4b0000; +defparam bootram.RAM2.INIT_21=256'h55535250_4e4f4b00_64652e00_64206d6f_206c6f61_49484558_20696e20_4261636b; +defparam bootram.RAM2.INIT_22=256'h50322b20_20555352_74696e67_53746172_720a0000_6f616465_6f6f746c_322b2062; +defparam bootram.RAM2.INIT_23=256'h6e206672_65747572_523a2072_4552524f_2e000000_6d6f6465_61666520_696e2073; +defparam bootram.RAM2.INIT_24=256'h206e6576_6f756c64_73207368_20546869_72616d21_70726f67_61696e20_6f6d206d; +defparam bootram.RAM2.INIT_25=256'h69726d77_66652066_6f207361_523a206e_4552524f_6e210000_61707065_65722068; +defparam bootram.RAM2.INIT_26=256'h62726963_6d206120_20492061_626c652e_61696c61_65206176_696d6167_61726520; +defparam bootram.RAM2.INIT_27=256'h2052414d_5820746f_20494845_6c6f6164_20746f20_66726565_65656c20_6b2e2046; +defparam bootram.RAM2.INIT_28=256'h6374696f_726f6475_69642070_2076616c_20666f72_6b696e67_43686563_2e000000; +defparam bootram.RAM2.INIT_29=256'h74696f6e_6f647563_64207072_56616c69_2e2e2e00_6d616765_47412069_6e204650; +defparam bootram.RAM2.INIT_2A=256'h6720746f_7074696e_7474656d_642e2041_666f756e_61676520_4120696d_20465047; +defparam bootram.RAM2.INIT_2B=256'h46504741_696f6e20_64756374_2070726f_616c6964_4e6f2076_742e0000_20626f6f; +defparam bootram.RAM2.INIT_2C=256'h6c6f6164_20746f20_74696e67_74656d70_2e0a4174_6f756e64_67652066_20696d61; +defparam bootram.RAM2.INIT_2D=256'h64207072_56616c69_2e2e2e00_77617265_6669726d_696f6e20_64756374_2070726f; +defparam bootram.RAM2.INIT_2E=256'h64696e67_204c6f61_756e642e_6520666f_6d776172_20666972_74696f6e_6f647563; +defparam bootram.RAM2.INIT_2F=256'h70726f67_61696e20_6f6d206d_6e206672_65747572_523a2052_4552524f_2e2e2e00; +defparam bootram.RAM2.INIT_30=256'h6e210000_61707065_65722068_206e6576_6f756c64_73207368_20546869_72616d21; +defparam bootram.RAM2.INIT_31=256'h20666f75_77617265_6669726d_696f6e20_64756374_2070726f_616c6964_4e6f2076; +defparam bootram.RAM2.INIT_32=256'h05050400_2e2e2e00_77617265_6669726d_61666520_6e672073_54727969_6e642e20; +defparam bootram.RAM2.INIT_33=256'h10101200_06820594_09c407d0_13880d05_00002710_01b200d9_05160364_14580a2c; +defparam bootram.RAM2.INIT_34=256'h00202020_00000000_6f72740a_0a0a6162_aa990000_ffffffff_b8080000_b0000000; +defparam bootram.RAM2.INIT_35=256'h20881010_20202020_20202020_20202020_20202020_28282820_20202828_20202020; +defparam bootram.RAM2.INIT_36=256'h10104141_10101010_04040410_04040404_10040404_10101010_10101010_10101010; +defparam bootram.RAM2.INIT_37=256'h10104242_10101010_01010101_01010101_01010101_01010101_01010101_41414141; +defparam bootram.RAM2.INIT_38=256'h20000000_10101010_02020202_02020202_02020202_02020202_02020202_42424242; +defparam bootram.RAM2.INIT_39=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_3A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_3B=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_3C=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_3D=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_3E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM2.INIT_3F=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_00=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_01=256'h20202020_20202020_20202020_20202020_28282020_20282828_20202020_20202020; +defparam bootram.RAM3.INIT_02=256'h10101010_04041010_04040404_04040404_10101010_10101010_10101010_88101010; +defparam bootram.RAM3.INIT_03=256'h10101010_01010110_01010101_01010101_01010101_01010101_41414101_10414141; +defparam bootram.RAM3.INIT_04=256'h10101020_02020210_02020202_02020202_02020202_02020202_42424202_10424242; +defparam bootram.RAM3.INIT_05=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_06=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_07=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_08=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_09=256'h00000000_00000000_00001820_ffffffff_01010100_000013fc_00000000_00000000; +defparam bootram.RAM3.INIT_0A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index 3a6bf0f64..237276fb6 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -286,210 +286,7 @@ module u2plus_core //defparam bootram.RAM0.INIT_00=256'hbc32fff0_aa43502b_b00000fe_30630001_80000000_10600000_a48500ff_10a00000; //defparam bootram.RAM0.INIT_01=256'ha48500ff_b810ffd0_f880200c_30a50001_10830000_308000ff_be23000c_a4640001; -////bootloader 10/5/10 for 32/64Mbit FLASH -defparam bootram.RAM0.INIT_00=256'h00000000_00000000_00000000_b80801c0_00000000_b8081210_00000000_b8080050; -defparam bootram.RAM0.INIT_01=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_b8081218; -defparam bootram.RAM0.INIT_02=256'h3020ffe0_b0000000_30401920_31a01948_00000000_00000000_00000000_00000000; -defparam bootram.RAM0.INIT_03=256'h3021ffe4_e060f800_b0000000_b8000000_30a30000_b9f4047c_80000000_b9f400cc; -defparam bootram.RAM0.INIT_04=256'he8830000_e8601928_80000000_99fc2000_f8601928_b8000044_bc030014_f9e10000; -defparam bootram.RAM0.INIT_05=256'h80000000_99fc1800_30a0193c_bc030010_30600000_b0000000_30630004_be24ffec; -defparam bootram.RAM0.INIT_06=256'h30600000_b0000000_3021001c_b60f0008_e9e10000_f060f800_b0000000_30600001; -defparam bootram.RAM0.INIT_07=256'h80000000_99fc1800_bc03000c_30c0f804_b0000000_30a0193c_f9e10000_3021ffe4; -defparam bootram.RAM0.INIT_08=256'h80000000_99fc2000_bc04000c_30a01940_bc030014_30800000_b0000000_e8601940; -defparam bootram.RAM0.INIT_09=256'h06463800_20e01948_20c01948_f9e10000_2021ffec_3021001c_b60f0008_e9e10000; -defparam bootram.RAM0.INIT_0A=256'hb0000000_20c0f800_b0000000_bc92fff4_06463800_20c60004_f8060000_bc720014; -defparam bootram.RAM0.INIT_0B=256'hb9f410ac_bc92fff4_06463800_20c60004_f8060000_bc720014_06463800_20e0f82c; -defparam bootram.RAM0.INIT_0C=256'h32630000_20a00000_b9f4014c_20e00000_20c00000_80000000_b9f4122c_80000000; -defparam bootram.RAM0.INIT_0D=256'h20210014_b60f0008_30730000_c9e10000_80000000_b9f41078_80000000_b9f41234; -defparam bootram.RAM0.INIT_0E=256'he9e10000_f9610004_fa410010_95608001_fa21000c_f9610008_f9e10000_3021ffec; -defparam bootram.RAM0.INIT_0F=256'hbc050018_30210014_b62e0000_ea410010_ea21000c_e9610008_940bc001_e9610004; -defparam bootram.RAM0.INIT_10=256'h3021ff2c_80000000_b60f0008_bc32fff4_16432800_30630001_80000000_10600000; -defparam bootram.RAM0.INIT_11=256'hb9f40440_32c1001c_3261004c_f8610028_f9e10000_fac100d0_fa6100cc_3061002c; -defparam bootram.RAM0.INIT_12=256'h22407fff_e8610024_bc230038_30a01438_10b30000_b9f40a18_10d60000_10b30000; -defparam bootram.RAM0.INIT_13=256'h30a01438_bc120040_aa430001_30a01400_e061001c_10a30000_be520034_16439003; -defparam bootram.RAM0.INIT_14=256'he8e10020_e8c10028_b800ffa8_80000000_b9f404d4_b800ffb4_80000000_b9f404e0; -defparam bootram.RAM0.INIT_15=256'h80000000_b9f404a8_b800ff88_80000000_b9f404b4_30a01400_80000000_b9f41010; -defparam bootram.RAM0.INIT_16=256'hb800ff60_80000000_b9f4048c_30a01404_80000000_b9f40e5c_30a08000_b0000000; -defparam bootram.RAM0.INIT_17=256'h30a0a120_b0000007_9403c001_ac640002_94808001_fa61001c_f9e10000_3021ffe0; -defparam bootram.RAM0.INIT_18=256'hb9f40b9c_80000000_b9f406c0_f800200c_80000000_b9f4fef4_f860200c_306000ff; -defparam bootram.RAM0.INIT_19=256'h30a01504_bc04013c_a4842000_e8803334_80000000_b9f40438_30a0143c_80000000; -defparam bootram.RAM0.INIT_1A=256'h30a01568_bc23010c_80000000_b9f40e58_30a00000_b0000018_80000000_b9f40420; -defparam bootram.RAM0.INIT_1B=256'h30a015b8_bc030058_80000000_b9f40dec_30a00000_b0000030_80000000_b9f40400; -defparam bootram.RAM0.INIT_1C=256'h30c07c00_b9f40b58_30a00000_b0000030_30e08000_b0000000_80000000_b9f403e0; -defparam bootram.RAM0.INIT_1D=256'he9e10000_80000000_b9f403ac_30a015e4_80000000_b9f40d7c_30a08000_b0000000; -defparam bootram.RAM0.INIT_1E=256'hb000003f_80000000_b9f4038c_30a01620_30210020_b60f0008_30600001_ea61001c; -defparam bootram.RAM0.INIT_1F=256'h80000000_b9f40368_30a014ac_12630000_be230030_80000000_b9f40d78_30a00000; -defparam bootram.RAM0.INIT_20=256'hb0000000_30210020_b60f0008_ea61001c_e9e10000_10730000_80000000_b9f4fe1c; -defparam bootram.RAM0.INIT_21=256'hb9f40ce8_30a08000_b0000000_30c07c00_b9f40ac4_30a00000_b000003f_30e08000; -defparam bootram.RAM0.INIT_22=256'hb60f0008_30600001_ea61001c_e9e10000_80000000_b9f40318_30a01470_80000000; -defparam bootram.RAM0.INIT_23=256'h80000000_b9f402e8_30a01450_b800feec_80000000_b9f402f8_30a01530_30210020; -defparam bootram.RAM0.INIT_24=256'h80000000_b9f402c8_30a014ac_bc23001c_80000000_b9f40cd4_30a00000_b000003f; -defparam bootram.RAM0.INIT_25=256'hb9f40a34_30a00000_b000003f_30e08000_b0000000_b800fe94_80000000_b9f4fd7c; -defparam bootram.RAM0.INIT_26=256'h80000000_b9f40288_30a01470_80000000_b9f40c58_30a08000_b0000000_30c07c00; -defparam bootram.RAM0.INIT_27=256'h3021ffd0_80000000_b60f0008_80000000_b9f4fb84_f9e10000_3021ffe4_b800fe5c; -defparam bootram.RAM0.INIT_28=256'h13260000_12e70000_13050000_12660000_fb21002c_fb010028_fae10024_fa61001c; -defparam bootram.RAM0.INIT_29=256'hbcb2002c_16572001_bc120030_aa43ffff_12c00000_b810001c_f9e10000_fac10020; -defparam bootram.RAM0.INIT_2A=256'hbe32ffd4_aa43000a_f0730000_10960000_90630060_10b80000_b9f405ec_32730001; -defparam bootram.RAM0.INIT_2B=256'heae10024_eac10020_ea61001c_e9e10000_10640000_f0130000_14999800_32d60001; -defparam bootram.RAM0.INIT_2C=256'hfb010028_fae10024_fa61001c_3021ffd0_30210030_b60f0008_eb21002c_eb010028; -defparam bootram.RAM0.INIT_2D=256'hb8100014_f9e10000_fac10020_13260000_12e70000_13050000_12660000_fb21002c; -defparam bootram.RAM0.INIT_2E=256'h10960000_90630060_10b80000_b9f4051c_32730001_bcb2002c_16572001_12c00000; -defparam bootram.RAM0.INIT_2F=256'he9e10000_10640000_f0130000_14999800_32d60001_be32ffdc_aa43000a_f0730000; -defparam bootram.RAM0.INIT_30=256'h3021ffd8_30210030_b60f0008_eb21002c_eb010028_eae10024_eac10020_ea61001c; -defparam bootram.RAM0.INIT_31=256'hb9f404b0_12660000_f9e10000_12e60000_12c50000_fae10024_fac10020_fa61001c; -defparam bootram.RAM0.INIT_32=256'hf0130000_3273ffff_32730001_be32ffec_aa43000a_f0730000_90630060_10b60000; -defparam bootram.RAM0.INIT_33=256'h10c50000_30210028_b60f0008_eae10024_eac10020_ea61001c_e9e10000_10770000; -defparam bootram.RAM0.INIT_34=256'h3021ffe4_3021001c_b60f0008_e9e10000_10a00000_b9f4ff94_f9e10000_3021ffe4; -defparam bootram.RAM0.INIT_35=256'hf9e10000_3021ffe4_3021001c_b60f0008_e9e10000_80000000_b9f40448_f9e10000; -defparam bootram.RAM0.INIT_36=256'hfac10020_fa61001c_3021ffdc_3021001c_b60f0008_e9e10000_10a00000_b9f4ffdc; -defparam bootram.RAM0.INIT_37=256'hb9f40324_10b60000_12c50000_be060024_90c30060_12660000_e0660000_f9e10000; -defparam bootram.RAM0.INIT_38=256'heac10020_ea61001c_e9e10000_10b60000_be26fff0_90c30060_e0730000_32730001; -defparam bootram.RAM0.INIT_39=256'h12c50000_b9f4ff9c_f9e10000_fac1001c_3021ffe0_30210024_b60f0008_10600000; -defparam bootram.RAM0.INIT_3A=256'h30210020_b60f0008_10600000_eac1001c_e9e10000_30c0000a_b9f402dc_10b60000; -defparam bootram.RAM0.INIT_3B=256'h3021001c_b60f0008_e9e10000_10a00000_b9f4ffc0_f9e10000_3021ffe4_10c50000; -defparam bootram.RAM0.INIT_3C=256'h3021001c_b60f0008_e9e10000_10a00000_b9f4ff48_f9e10000_3021ffe4_10c50000; -defparam bootram.RAM0.INIT_3D=256'h3021ffe0_3021001c_b60f0008_e9e10000_30c0000a_b9f40278_f9e10000_3021ffe4; -defparam bootram.RAM0.INIT_3E=256'he9e10000_10760000_10d60000_b9f40250_f9e10000_10a00000_12c50000_fac1001c; -defparam bootram.RAM0.INIT_3F=256'h12c60000_b9f40228_f9e10000_fac1001c_3021ffe0_30210020_b60f0008_eac1001c; -defparam bootram.RAM1.INIT_00=256'hb9f401b8_f9e10000_3021ffe4_30210020_b60f0008_eac1001c_e9e10000_10760000; -defparam bootram.RAM1.INIT_01=256'hb0000000_9404c001_ac870002_94e08001_3021001c_b60f0008_e9e10000_80000000; -defparam bootram.RAM1.INIT_02=256'hf860f81c_b0000000_f860200c_80633000_84632000_84c62800_a866ffff_e880f81c; -defparam bootram.RAM1.INIT_03=256'h94608001_80000000_b60f0008_9404c001_80843800_ac840002_94808001_a4e70002; -defparam bootram.RAM1.INIT_04=256'hf8a0f81c_b0000000_f8a0200c_88a52000_e880f81c_b0000000_9406c001_acc30002; -defparam bootram.RAM1.INIT_05=256'h94e08001_80000000_b60f0008_9404c001_80841800_ac840002_94808001_a4630002; -defparam bootram.RAM1.INIT_06=256'h80633000_84632000_84c62800_a866ffff_e880f820_b0000000_9404c001_ac870002; -defparam bootram.RAM1.INIT_07=256'h9404c001_80843800_ac840002_94808001_a4e70002_f860f820_b0000000_f8602020; -defparam bootram.RAM1.INIT_08=256'hfac10020_f9e10000_fb010028_fae10024_fa61001c_3021ffd4_80000000_b60f0008; -defparam bootram.RAM1.INIT_09=256'h32600001_be670038_12660000_be060040_90c30060_13050000_12e60000_e0660000; -defparam bootram.RAM1.INIT_0A=256'hc0779800_10b80000_b9f400cc_10730000_be120028_16569800_32c70001_b8100014; -defparam bootram.RAM1.INIT_0B=256'heac10020_ea61001c_e9e10000_10730000_3273ffff_32730001_be26ffe4_90c30060; -defparam bootram.RAM1.INIT_0C=256'hb9f40084_f9e10000_10a00000_3021ffe4_3021002c_b60f0008_eb010028_eae10024; -defparam bootram.RAM1.INIT_0D=256'h10c63000_80000000_b60f0008_f0c5192c_3021001c_b60f0008_e9e10000_30c0000a; -defparam bootram.RAM1.INIT_0E=256'hf9e10000_fa61001c_3021ffe0_80000000_b60f0008_f8653700_64a50405_e4661660; -defparam bootram.RAM1.INIT_0F=256'h32730001_10b30000_e0d3165c_90c60060_b9f4ffc4_10b30000_e0d3192c_12600000; -defparam bootram.RAM1.INIT_10=256'h30210020_b60f0008_ea61001c_e9e10000_bc32ffd8_aa530003_90c60060_b9f4ffbc; -defparam bootram.RAM1.INIT_11=256'h12650000_be120030_aa46000a_12c60000_f9e10000_fac10020_fa61001c_3021ffdc; -defparam bootram.RAM1.INIT_12=256'heac10020_ea61001c_e9e10000_fac5000c_bc03fffc_e8650004_30a33700_64730405; -defparam bootram.RAM1.INIT_13=256'hb810ffc8_30c0000d_b9f4ffac_bc32ffd0_aa430001_e065192c_30210024_b60f0008; -defparam bootram.RAM1.INIT_14=256'hbe120030_aa46000a_12c60000_f9e10000_fac10020_fa61001c_3021ffdc_64730405; -defparam bootram.RAM1.INIT_15=256'hea61001c_e9e10000_fac3000c_bc040008_e8830004_30633700_64730405_12650000; -defparam bootram.RAM1.INIT_16=256'hb9f4ff44_30c0000d_be32ffd0_aa430001_e065192c_30210024_b60f0008_eac10020; -defparam bootram.RAM1.INIT_17=256'he8650010_bc03fffc_e8650008_30a53700_64a50405_64730405_b810ffc4_80000000; -defparam bootram.RAM1.INIT_18=256'he8850008_e8650010_bc030014_e8650008_30a53700_64a50405_80000000_b60f0008; -defparam bootram.RAM1.INIT_19=256'hf9e10000_fac10020_3021ffdc_64a50405_80000000_b60f0008_90630060_be24fff8; -defparam bootram.RAM1.INIT_1A=256'hbe120034_aa53012d_b8000010_32600001_be230040_e8760008_32c53700_fa61001c; -defparam bootram.RAM1.INIT_1B=256'h3240012b_3273ffff_32730001_be03ffe8_e8760008_30a00001_b9f40040_3060ffff; -defparam bootram.RAM1.INIT_1C=256'hb60f0008_eac10020_ea61001c_e9e10000_e8760010_3060ffff_be52000c_16539001; -defparam bootram.RAM1.INIT_1D=256'hbe650048_bc430054_e8601930_bc260054_a4c30000_b0008000_e8603324_30210024; -defparam bootram.RAM1.INIT_1E=256'h80000000_80000000_80000000_80000000_10800000_bc660030_e8c01930_10660000; -defparam bootram.RAM1.INIT_1F=256'h16432800_30630001_bc32ffdc_16443000_30840001_80000000_80000000_80000000; -defparam bootram.RAM1.INIT_20=256'hf8801930_e483166c_10631800_a4630007_e8603324_80000000_b60f0008_bc32ffc8; -defparam bootram.RAM1.INIT_21=256'h3065ffc9_a46300ff_be520024_16459001_3240005a_3065ffa9_90a50060_b800ff9c; -defparam bootram.RAM1.INIT_22=256'h80000000_b60f0008_a46400ff_3085ffd0_be52000c_16459001_32400039_a46300ff; -defparam bootram.RAM1.INIT_23=256'hfae10024_fac10020_fa61001c_f9e10000_fb610034_13250000_fb21002c_3021ffc8; -defparam bootram.RAM1.INIT_24=256'h10650000_30a0ffff_be120034_aa43003a_13660000_e0790000_fb410030_fb010028; -defparam bootram.RAM1.INIT_25=256'heb610034_eb410030_eb21002c_eb010028_eae10024_eac10020_ea61001c_e9e10000; -defparam bootram.RAM1.INIT_26=256'hbe04001c_90840060_30650001_c085c800_30a00001_e8c01934_30210038_b60f0008; -defparam bootram.RAM1.INIT_27=256'hb9f4ff28_e0b90001_30a0fffe_b810ffac_bc23ffe4_a4630044_c0662000_a4a300ff; -defparam bootram.RAM1.INIT_28=256'h10791800_fa7b0004_10739800_12761800_66c30404_b9f4ff1c_e0b90002_80000000; -defparam bootram.RAM1.INIT_29=256'he0b90003_13530000_b9f4fef0_e0b90005_30a0fffd_be38ff74_93040060_e083000b; -defparam bootram.RAM1.INIT_2A=256'hb9f4fec8_64630408_e0b90006_66c3040c_b9f4fed8_e0b90004_66e30404_b9f4fee4; -defparam bootram.RAM1.INIT_2B=256'he0b90008_80000000_b9f4feb0_e0b90007_fafb0008_12f7b000_12d61800_12d61800; -defparam bootram.RAM1.INIT_2C=256'hea7b000c_13580000_10f30000_be130060_f07b0000_1063b000_66c30404_b9f4fea4; -defparam bootram.RAM1.INIT_2D=256'hb9f4fe68_e0b60001_12d9b000_b9f4fe74_c0b6c800_a6d600ff_32d60009_12d8c000; -defparam bootram.RAM1.INIT_2E=256'ha70400ff_c073c000_30980001_e8fb0004_ea7b000c_d0789800_1063b800_66e30404; -defparam bootram.RAM1.INIT_2F=256'h64760008_12e73800_e09b0000_eadb0008_a74300ff_be52ffb8_1647c003_107a1800; -defparam bootram.RAM1.INIT_30=256'he0b7000a_12d61800_b9f4fe10_107a1800_12c7b000_10632000_e0b70009_12f9b800; -defparam bootram.RAM1.INIT_31=256'hbe32fe60_1643b000_a46300ff_a6d600ff_1063c000_16d60000_67030404_b9f4fe04; -defparam bootram.RAM1.INIT_32=256'h80000000_b60f0008_bc23fff8_a4630100_e8603b10_10a00000_b810fe58_30a0fffb; -defparam bootram.RAM1.INIT_33=256'hbc23fff8_a4630100_e8603b10_a4a500ff_80884800_a1292000_a508007f_a5290600; -defparam bootram.RAM1.INIT_34=256'h10650000_be050018_f8803b10_a0840100_f8603b18_a46600ff_f8803b10_f8e03b00; -defparam bootram.RAM1.INIT_35=256'h10e60000_10c00000_80000000_b60f0008_e8603b00_bc23fff8_a4630100_e8603b10; -defparam bootram.RAM1.INIT_36=256'hb9f4ff84_f8603b14_30600001_31200400_31000008_10a00000_f9e10000_3021ffe4; -defparam bootram.RAM1.INIT_37=256'hfa61002c_12c50000_fac10030_3021ffc4_3021001c_b60f0008_e9e10000_80000000; -defparam bootram.RAM1.INIT_38=256'hf8003b18_30600400_12670000_b9f4ff3c_fae10034_13060000_f9e10000_fb010038; -defparam bootram.RAM1.INIT_39=256'h30800428_f8603b18_30600001_fac03b00_f8603b04_3060000b_66d60408_f8603b10; -defparam bootram.RAM1.INIT_3A=256'h12e00000_12d30000_be18009c_80000000_b9f4ff00_f8603b10_30600528_f8803b10; -defparam bootram.RAM1.INIT_3B=256'he8803b0c_80000000_b9f4fed8_f8803b10_30800500_f8603b10_30600400_3261001c; -defparam bootram.RAM1.INIT_3C=256'hf8610028_e8603b00_f8810024_e8803b04_f8610020_e8603b08_f881001c_14b7c000; -defparam bootram.RAM1.INIT_3D=256'h30840001_d0762000_c0732000_30a00010_10800000_beb20034_16459003_22400010; -defparam bootram.RAM1.INIT_3E=256'hbc25ffd8_b800ff8c_12d62800_beb20020_1658b803_12f72800_bc32fff0_16442800; -defparam bootram.RAM1.INIT_3F=256'heac10030_ea61002c_e9e10000_f8003b18_12d62800_be52ff7c_1658b803_12f72800; -defparam bootram.RAM2.INIT_00=256'h30a00001_3021ffe4_30e00000_b0009f00_3021003c_b60f0008_eb010038_eae10034; -defparam bootram.RAM2.INIT_01=256'ha463ffff_b00000ff_e9e10000_31200400_b9f4fe34_f9e10000_31000020_30c00001; -defparam bootram.RAM2.INIT_02=256'he9e10000_bc030010_f9e10000_3021ffe4_e860f828_b0000000_3021001c_b60f0008; -defparam bootram.RAM2.INIT_03=256'hbe120010_aa440020_a48400ff_64830008_80000000_b9f4ffa8_3021001c_b60f0008; -defparam bootram.RAM2.INIT_04=256'h16439001_32400018_bcb2fff0_16439001_32400015_80000000_b9f40170_a46300ff; -defparam bootram.RAM2.INIT_05=256'hf9e10000_3021ffe4_e860f824_b0000000_b800ffb0_f860f828_b0000000_bc52ffe4; -defparam bootram.RAM2.INIT_06=256'ha48400ff_64830008_80000000_b9f4ff40_3021001c_b60f0008_e9e10000_bc030010; -defparam bootram.RAM2.INIT_07=256'hbcb2fff0_16459001_32400015_80000000_b9f40108_a4a300ff_be120010_aa440020; -defparam bootram.RAM2.INIT_08=256'hf860f824_b0000000_f8a0f828_b0000000_e0651666_bc52ffe4_16459001_32400018; -defparam bootram.RAM2.INIT_09=256'hb9f40174_f9e10000_10b60000_10c50000_12c00000_fac1001c_3021ffe0_b800ffa4; -defparam bootram.RAM2.INIT_0A=256'h3021ffd4_30210020_b60f0008_eac1001c_e9e10000_80000000_99fcb000_30e00024; -defparam bootram.RAM2.INIT_0B=256'h30c01680_10b60000_30c00006_b9f4fd80_f9e10000_10f60000_32c1001c_fac10028; -defparam bootram.RAM2.INIT_0C=256'h6464001f_eac10028_e9e10000_a884ffff_80841800_14830000_30e00006_b9f400b0; -defparam bootram.RAM2.INIT_0D=256'hb9f4fd34_f9e10000_10f60000_32c1001c_fac10028_3021ffd4_3021002c_b60f0008; -defparam bootram.RAM2.INIT_0E=256'ha884ffff_80841800_14830000_30e00006_b9f40064_30c01688_10b60000_30c00006; -defparam bootram.RAM2.INIT_0F=256'hf9e10000_3021ffe4_30a01690_3021002c_b60f0008_6464001f_eac10028_e9e10000; -defparam bootram.RAM2.INIT_10=256'h80000000_b6910000_80000000_b6110000_30a0ffff_b9f4ee68_80000000_b9f4f580; -defparam bootram.RAM2.INIT_11=256'h80653000_beb2005c_16479003_22400003_80000000_b60f0008_80000000_b60f0008; -defparam bootram.RAM2.INIT_12=256'h30a50004_30e7fffc_bc320040_16432000_e8660000_e8850000_bc230050_a4630003; -defparam bootram.RAM2.INIT_13=256'he1050000_bc120028_aa47ffff_30e7ffff_30c60004_be52ffe0_16479003_22400003; -defparam bootram.RAM2.INIT_14=256'hbc32ffe0_aa47ffff_30e7ffff_30c60001_30a50001_be320020_16434000_e0660000; -defparam bootram.RAM2.INIT_15=256'h10850000_beb20018_16479003_2240000f_14634000_b60f0008_10600000_b60f0008; -defparam bootram.RAM2.INIT_16=256'he0660000_10e72000_11040000_bc070024_11050000_be030034_a4630003_80662800; -defparam bootram.RAM2.INIT_17=256'he8860000_10650000_b60f0008_30c60001_be32fff0_16474000_31080001_f0680000; -defparam bootram.RAM2.INIT_18=256'h30c60010_e866000c_f8880008_e8860008_f8680004_e8660004_f8880000_30e7fff0; -defparam bootram.RAM2.INIT_19=256'hbcb2002c_16479003_22400003_31080010_be52ffd0_16479003_2240000f_f868000c; -defparam bootram.RAM2.INIT_1A=256'h30840004_be52ffec_16479003_22400003_d8682000_30e7fffc_c8662000_10800000; -defparam bootram.RAM2.INIT_1B=256'hf9e10000_fa61001c_3021ffe0_e86013f0_10880000_b810ff68_11044000_10c43000; -defparam bootram.RAM2.INIT_1C=256'hbc32fff0_aa43ffff_e8730000_3273fffc_99fc1800_bc120018_aa43ffff_326013f0; -defparam bootram.RAM2.INIT_1D=256'h80000000_b9f4ed20_d9e00800_3021fff8_30210020_b60f0008_ea61001c_e9e10000; -defparam bootram.RAM2.INIT_1E=256'hb9f4ec98_d9e00800_3021fff8_30210008_b60f0008_c9e00800_80000000_b9f4ffb0; -defparam bootram.RAM2.INIT_1F=256'h00000000_ffffffff_00000000_ffffffff_30210008_b60f0008_c9e00800_80000000; -defparam bootram.RAM2.INIT_20=256'h65642120_7475726e_65207265_696d6167_61696e20_523a206d_4552524f_4f4b0000; -defparam bootram.RAM2.INIT_21=256'h55535250_4e4f4b00_64652e00_64206d6f_206c6f61_49484558_20696e20_4261636b; -defparam bootram.RAM2.INIT_22=256'h50322b20_20555352_74696e67_53746172_720a0000_6f616465_6f6f746c_322b2062; -defparam bootram.RAM2.INIT_23=256'h6e206672_65747572_523a2072_4552524f_2e000000_6d6f6465_61666520_696e2073; -defparam bootram.RAM2.INIT_24=256'h206e6576_6f756c64_73207368_20546869_72616d21_70726f67_61696e20_6f6d206d; -defparam bootram.RAM2.INIT_25=256'h69726d77_66652066_6f207361_523a206e_4552524f_6e210000_61707065_65722068; -defparam bootram.RAM2.INIT_26=256'h62726963_6d206120_20492061_626c652e_61696c61_65206176_696d6167_61726520; -defparam bootram.RAM2.INIT_27=256'h2052414d_5820746f_20494845_6c6f6164_20746f20_66726565_65656c20_6b2e2046; -defparam bootram.RAM2.INIT_28=256'h6374696f_726f6475_69642070_2076616c_20666f72_6b696e67_43686563_2e000000; -defparam bootram.RAM2.INIT_29=256'h74696f6e_6f647563_64207072_56616c69_2e2e2e00_6d616765_47412069_6e204650; -defparam bootram.RAM2.INIT_2A=256'h6720746f_7074696e_7474656d_642e2041_666f756e_61676520_4120696d_20465047; -defparam bootram.RAM2.INIT_2B=256'h46504741_696f6e20_64756374_2070726f_616c6964_4e6f2076_742e0000_20626f6f; -defparam bootram.RAM2.INIT_2C=256'h6c6f6164_20746f20_74696e67_74656d70_2e0a4174_6f756e64_67652066_20696d61; -defparam bootram.RAM2.INIT_2D=256'h64207072_56616c69_2e2e2e00_77617265_6669726d_696f6e20_64756374_2070726f; -defparam bootram.RAM2.INIT_2E=256'h64696e67_204c6f61_756e642e_6520666f_6d776172_20666972_74696f6e_6f647563; -defparam bootram.RAM2.INIT_2F=256'h70726f67_61696e20_6f6d206d_6e206672_65747572_523a2052_4552524f_2e2e2e00; -defparam bootram.RAM2.INIT_30=256'h6e210000_61707065_65722068_206e6576_6f756c64_73207368_20546869_72616d21; -defparam bootram.RAM2.INIT_31=256'h20666f75_77617265_6669726d_696f6e20_64756374_2070726f_616c6964_4e6f2076; -defparam bootram.RAM2.INIT_32=256'h05050400_2e2e2e00_77617265_6669726d_61666520_6e672073_54727969_6e642e20; -defparam bootram.RAM2.INIT_33=256'h10101200_06820594_09c407d0_13880d05_00002710_01b200d9_05160364_14580a2c; -defparam bootram.RAM2.INIT_34=256'h00202020_00000000_6f72740a_0a0a6162_aa990000_ffffffff_b8080000_b0000000; -defparam bootram.RAM2.INIT_35=256'h20881010_20202020_20202020_20202020_20202020_28282820_20202828_20202020; -defparam bootram.RAM2.INIT_36=256'h10104141_10101010_04040410_04040404_10040404_10101010_10101010_10101010; -defparam bootram.RAM2.INIT_37=256'h10104242_10101010_01010101_01010101_01010101_01010101_01010101_41414141; -defparam bootram.RAM2.INIT_38=256'h20000000_10101010_02020202_02020202_02020202_02020202_02020202_42424242; -defparam bootram.RAM2.INIT_39=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_3A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_3B=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_3C=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_3D=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_3E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_3F=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_00=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_01=256'h20202020_20202020_20202020_20202020_28282020_20282828_20202020_20202020; -defparam bootram.RAM3.INIT_02=256'h10101010_04041010_04040404_04040404_10101010_10101010_10101010_88101010; -defparam bootram.RAM3.INIT_03=256'h10101010_01010110_01010101_01010101_01010101_01010101_41414101_10414141; -defparam bootram.RAM3.INIT_04=256'h10101020_02020210_02020202_02020202_02020202_02020202_42424202_10424242; -defparam bootram.RAM3.INIT_05=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_06=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_07=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_08=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_09=256'h00000000_00000000_00001820_ffffffff_01010100_000013fc_00000000_00000000; -defparam bootram.RAM3.INIT_0A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +`include "bootloader.rmi" ram_harvard2 #(.AWIDTH(15),.RAM_SIZE(32768)) sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), -- cgit v1.2.3 From 1ec89790b085e7be3d69c785c036ce4e66201357 Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Thu, 7 Oct 2010 15:44:30 -0700 Subject: U2P: modified ICAP. turns out ICAP needs clock disabled while CE is not asserted. which is the point of a CE, but... it works. Also committed latest bootloader, might not be final version. --- usrp2/control_lib/s3a_icap_wb.v | 17 +- usrp2/top/u2plus/bootloader.rmi | 427 +++++++++++++++++++++------------------- 2 files changed, 238 insertions(+), 206 deletions(-) diff --git a/usrp2/control_lib/s3a_icap_wb.v b/usrp2/control_lib/s3a_icap_wb.v index 9a9db0f96..73ddac385 100644 --- a/usrp2/control_lib/s3a_icap_wb.v +++ b/usrp2/control_lib/s3a_icap_wb.v @@ -3,18 +3,19 @@ module s3a_icap_wb (input clk, input reset, input cyc_i, input stb_i, input we_i, output ack_o, - input [31:0] dat_i, output [31:0] dat_o); + input [31:0] dat_i, output [31:0] dat_o)//, output [31:0] debug_out); assign dat_o[31:8] = 24'd0; - wire BUSY, CE, WRITE; + wire BUSY, CE, WRITE, ICAPCLK; + //changed this to gray-ish code to prevent glitching reg [2:0] icap_state; localparam ICAP_IDLE = 0; localparam ICAP_WR0 = 1; - localparam ICAP_WR1 = 2; - localparam ICAP_RD0 = 3; - localparam ICAP_RD1 = 4; + localparam ICAP_WR1 = 5; + localparam ICAP_RD0 = 2; + localparam ICAP_RD1 = 3; always @(posedge clk) if(reset) @@ -40,15 +41,17 @@ module s3a_icap_wb endcase // case (icap_state) assign WRITE = (icap_state == ICAP_WR0) | (icap_state == ICAP_WR1); - assign CE = (icap_state == ICAP_WR1) | (icap_state == ICAP_RD0); + assign CE = (icap_state == ICAP_WR0) | (icap_state == ICAP_RD0); + assign ICAPCLK = CE & (~clk); assign ack_o = (icap_state == ICAP_WR1) | (icap_state == ICAP_RD1); + //assign debug_out = {17'd0, BUSY, dat_i[7:0], ~CE, ICAPCLK, ~WRITE, icap_state}; ICAP_SPARTAN3A ICAP_SPARTAN3A_inst (.BUSY(BUSY), // Busy output .O(dat_o[7:0]), // 32-bit data output .CE(~CE), // Clock enable input - .CLK(clk), // Clock input + .CLK(ICAPCLK), // Clock input .I(dat_i[7:0]), // 32-bit data input .WRITE(~WRITE) // Write input ); diff --git a/usrp2/top/u2plus/bootloader.rmi b/usrp2/top/u2plus/bootloader.rmi index 02ec11060..9e3f99331 100644 --- a/usrp2/top/u2plus/bootloader.rmi +++ b/usrp2/top/u2plus/bootloader.rmi @@ -1,204 +1,233 @@ -////bootloader 10/5/10 for 32/64Mbit FLASH -defparam bootram.RAM0.INIT_00=256'h00000000_00000000_00000000_b80801c0_00000000_b8081210_00000000_b8080050; -defparam bootram.RAM0.INIT_01=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_b8081218; -defparam bootram.RAM0.INIT_02=256'h3020ffe0_b0000000_30401920_31a01948_00000000_00000000_00000000_00000000; -defparam bootram.RAM0.INIT_03=256'h3021ffe4_e060f800_b0000000_b8000000_30a30000_b9f4047c_80000000_b9f400cc; -defparam bootram.RAM0.INIT_04=256'he8830000_e8601928_80000000_99fc2000_f8601928_b8000044_bc030014_f9e10000; -defparam bootram.RAM0.INIT_05=256'h80000000_99fc1800_30a0193c_bc030010_30600000_b0000000_30630004_be24ffec; +defparam bootram.RAM0.INIT_00=256'h00000000_00000000_00000000_b80801c0_00000000_b80815d8_00000000_b8080050; +defparam bootram.RAM0.INIT_01=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_b80815e0; +defparam bootram.RAM0.INIT_02=256'h3020ffe0_b0000000_30401ce0_31a01d08_00000000_00000000_00000000_00000000; +defparam bootram.RAM0.INIT_03=256'h3021ffe4_e060f800_b0000000_b8000000_30a30000_b9f4069c_80000000_b9f400cc; +defparam bootram.RAM0.INIT_04=256'he8830000_e8601ce8_80000000_99fc2000_f8601ce8_b8000044_bc030014_f9e10000; +defparam bootram.RAM0.INIT_05=256'h80000000_99fc1800_30a01cfc_bc030010_30600000_b0000000_30630004_be24ffec; defparam bootram.RAM0.INIT_06=256'h30600000_b0000000_3021001c_b60f0008_e9e10000_f060f800_b0000000_30600001; -defparam bootram.RAM0.INIT_07=256'h80000000_99fc1800_bc03000c_30c0f804_b0000000_30a0193c_f9e10000_3021ffe4; -defparam bootram.RAM0.INIT_08=256'h80000000_99fc2000_bc04000c_30a01940_bc030014_30800000_b0000000_e8601940; -defparam bootram.RAM0.INIT_09=256'h06463800_20e01948_20c01948_f9e10000_2021ffec_3021001c_b60f0008_e9e10000; +defparam bootram.RAM0.INIT_07=256'h80000000_99fc1800_bc03000c_30c0f804_b0000000_30a01cfc_f9e10000_3021ffe4; +defparam bootram.RAM0.INIT_08=256'h80000000_99fc2000_bc04000c_30a01d00_bc030014_30800000_b0000000_e8601d00; +defparam bootram.RAM0.INIT_09=256'h06463800_20e01d08_20c01d08_f9e10000_2021ffec_3021001c_b60f0008_e9e10000; defparam bootram.RAM0.INIT_0A=256'hb0000000_20c0f800_b0000000_bc92fff4_06463800_20c60004_f8060000_bc720014; -defparam bootram.RAM0.INIT_0B=256'hb9f410ac_bc92fff4_06463800_20c60004_f8060000_bc720014_06463800_20e0f82c; -defparam bootram.RAM0.INIT_0C=256'h32630000_20a00000_b9f4014c_20e00000_20c00000_80000000_b9f4122c_80000000; -defparam bootram.RAM0.INIT_0D=256'h20210014_b60f0008_30730000_c9e10000_80000000_b9f41078_80000000_b9f41234; +defparam bootram.RAM0.INIT_0B=256'hb9f41474_bc92fff4_06463800_20c60004_f8060000_bc720014_06463800_20e0f82c; +defparam bootram.RAM0.INIT_0C=256'h32630000_20a00000_b9f401a4_20e00000_20c00000_80000000_b9f415f4_80000000; +defparam bootram.RAM0.INIT_0D=256'h20210014_b60f0008_30730000_c9e10000_80000000_b9f41440_80000000_b9f415fc; defparam bootram.RAM0.INIT_0E=256'he9e10000_f9610004_fa410010_95608001_fa21000c_f9610008_f9e10000_3021ffec; defparam bootram.RAM0.INIT_0F=256'hbc050018_30210014_b62e0000_ea410010_ea21000c_e9610008_940bc001_e9610004; defparam bootram.RAM0.INIT_10=256'h3021ff2c_80000000_b60f0008_bc32fff4_16432800_30630001_80000000_10600000; -defparam bootram.RAM0.INIT_11=256'hb9f40440_32c1001c_3261004c_f8610028_f9e10000_fac100d0_fa6100cc_3061002c; -defparam bootram.RAM0.INIT_12=256'h22407fff_e8610024_bc230038_30a01438_10b30000_b9f40a18_10d60000_10b30000; -defparam bootram.RAM0.INIT_13=256'h30a01438_bc120040_aa430001_30a01400_e061001c_10a30000_be520034_16439003; -defparam bootram.RAM0.INIT_14=256'he8e10020_e8c10028_b800ffa8_80000000_b9f404d4_b800ffb4_80000000_b9f404e0; -defparam bootram.RAM0.INIT_15=256'h80000000_b9f404a8_b800ff88_80000000_b9f404b4_30a01400_80000000_b9f41010; -defparam bootram.RAM0.INIT_16=256'hb800ff60_80000000_b9f4048c_30a01404_80000000_b9f40e5c_30a08000_b0000000; -defparam bootram.RAM0.INIT_17=256'h30a0a120_b0000007_9403c001_ac640002_94808001_fa61001c_f9e10000_3021ffe0; -defparam bootram.RAM0.INIT_18=256'hb9f40b9c_80000000_b9f406c0_f800200c_80000000_b9f4fef4_f860200c_306000ff; -defparam bootram.RAM0.INIT_19=256'h30a01504_bc04013c_a4842000_e8803334_80000000_b9f40438_30a0143c_80000000; -defparam bootram.RAM0.INIT_1A=256'h30a01568_bc23010c_80000000_b9f40e58_30a00000_b0000018_80000000_b9f40420; -defparam bootram.RAM0.INIT_1B=256'h30a015b8_bc030058_80000000_b9f40dec_30a00000_b0000030_80000000_b9f40400; -defparam bootram.RAM0.INIT_1C=256'h30c07c00_b9f40b58_30a00000_b0000030_30e08000_b0000000_80000000_b9f403e0; -defparam bootram.RAM0.INIT_1D=256'he9e10000_80000000_b9f403ac_30a015e4_80000000_b9f40d7c_30a08000_b0000000; -defparam bootram.RAM0.INIT_1E=256'hb000003f_80000000_b9f4038c_30a01620_30210020_b60f0008_30600001_ea61001c; -defparam bootram.RAM0.INIT_1F=256'h80000000_b9f40368_30a014ac_12630000_be230030_80000000_b9f40d78_30a00000; -defparam bootram.RAM0.INIT_20=256'hb0000000_30210020_b60f0008_ea61001c_e9e10000_10730000_80000000_b9f4fe1c; -defparam bootram.RAM0.INIT_21=256'hb9f40ce8_30a08000_b0000000_30c07c00_b9f40ac4_30a00000_b000003f_30e08000; -defparam bootram.RAM0.INIT_22=256'hb60f0008_30600001_ea61001c_e9e10000_80000000_b9f40318_30a01470_80000000; -defparam bootram.RAM0.INIT_23=256'h80000000_b9f402e8_30a01450_b800feec_80000000_b9f402f8_30a01530_30210020; -defparam bootram.RAM0.INIT_24=256'h80000000_b9f402c8_30a014ac_bc23001c_80000000_b9f40cd4_30a00000_b000003f; -defparam bootram.RAM0.INIT_25=256'hb9f40a34_30a00000_b000003f_30e08000_b0000000_b800fe94_80000000_b9f4fd7c; -defparam bootram.RAM0.INIT_26=256'h80000000_b9f40288_30a01470_80000000_b9f40c58_30a08000_b0000000_30c07c00; -defparam bootram.RAM0.INIT_27=256'h3021ffd0_80000000_b60f0008_80000000_b9f4fb84_f9e10000_3021ffe4_b800fe5c; -defparam bootram.RAM0.INIT_28=256'h13260000_12e70000_13050000_12660000_fb21002c_fb010028_fae10024_fa61001c; -defparam bootram.RAM0.INIT_29=256'hbcb2002c_16572001_bc120030_aa43ffff_12c00000_b810001c_f9e10000_fac10020; -defparam bootram.RAM0.INIT_2A=256'hbe32ffd4_aa43000a_f0730000_10960000_90630060_10b80000_b9f405ec_32730001; -defparam bootram.RAM0.INIT_2B=256'heae10024_eac10020_ea61001c_e9e10000_10640000_f0130000_14999800_32d60001; -defparam bootram.RAM0.INIT_2C=256'hfb010028_fae10024_fa61001c_3021ffd0_30210030_b60f0008_eb21002c_eb010028; -defparam bootram.RAM0.INIT_2D=256'hb8100014_f9e10000_fac10020_13260000_12e70000_13050000_12660000_fb21002c; -defparam bootram.RAM0.INIT_2E=256'h10960000_90630060_10b80000_b9f4051c_32730001_bcb2002c_16572001_12c00000; -defparam bootram.RAM0.INIT_2F=256'he9e10000_10640000_f0130000_14999800_32d60001_be32ffdc_aa43000a_f0730000; -defparam bootram.RAM0.INIT_30=256'h3021ffd8_30210030_b60f0008_eb21002c_eb010028_eae10024_eac10020_ea61001c; -defparam bootram.RAM0.INIT_31=256'hb9f404b0_12660000_f9e10000_12e60000_12c50000_fae10024_fac10020_fa61001c; -defparam bootram.RAM0.INIT_32=256'hf0130000_3273ffff_32730001_be32ffec_aa43000a_f0730000_90630060_10b60000; -defparam bootram.RAM0.INIT_33=256'h10c50000_30210028_b60f0008_eae10024_eac10020_ea61001c_e9e10000_10770000; -defparam bootram.RAM0.INIT_34=256'h3021ffe4_3021001c_b60f0008_e9e10000_10a00000_b9f4ff94_f9e10000_3021ffe4; -defparam bootram.RAM0.INIT_35=256'hf9e10000_3021ffe4_3021001c_b60f0008_e9e10000_80000000_b9f40448_f9e10000; -defparam bootram.RAM0.INIT_36=256'hfac10020_fa61001c_3021ffdc_3021001c_b60f0008_e9e10000_10a00000_b9f4ffdc; -defparam bootram.RAM0.INIT_37=256'hb9f40324_10b60000_12c50000_be060024_90c30060_12660000_e0660000_f9e10000; -defparam bootram.RAM0.INIT_38=256'heac10020_ea61001c_e9e10000_10b60000_be26fff0_90c30060_e0730000_32730001; -defparam bootram.RAM0.INIT_39=256'h12c50000_b9f4ff9c_f9e10000_fac1001c_3021ffe0_30210024_b60f0008_10600000; -defparam bootram.RAM0.INIT_3A=256'h30210020_b60f0008_10600000_eac1001c_e9e10000_30c0000a_b9f402dc_10b60000; -defparam bootram.RAM0.INIT_3B=256'h3021001c_b60f0008_e9e10000_10a00000_b9f4ffc0_f9e10000_3021ffe4_10c50000; -defparam bootram.RAM0.INIT_3C=256'h3021001c_b60f0008_e9e10000_10a00000_b9f4ff48_f9e10000_3021ffe4_10c50000; -defparam bootram.RAM0.INIT_3D=256'h3021ffe0_3021001c_b60f0008_e9e10000_30c0000a_b9f40278_f9e10000_3021ffe4; -defparam bootram.RAM0.INIT_3E=256'he9e10000_10760000_10d60000_b9f40250_f9e10000_10a00000_12c50000_fac1001c; -defparam bootram.RAM0.INIT_3F=256'h12c60000_b9f40228_f9e10000_fac1001c_3021ffe0_30210020_b60f0008_eac1001c; -defparam bootram.RAM1.INIT_00=256'hb9f401b8_f9e10000_3021ffe4_30210020_b60f0008_eac1001c_e9e10000_10760000; -defparam bootram.RAM1.INIT_01=256'hb0000000_9404c001_ac870002_94e08001_3021001c_b60f0008_e9e10000_80000000; -defparam bootram.RAM1.INIT_02=256'hf860f81c_b0000000_f860200c_80633000_84632000_84c62800_a866ffff_e880f81c; -defparam bootram.RAM1.INIT_03=256'h94608001_80000000_b60f0008_9404c001_80843800_ac840002_94808001_a4e70002; -defparam bootram.RAM1.INIT_04=256'hf8a0f81c_b0000000_f8a0200c_88a52000_e880f81c_b0000000_9406c001_acc30002; -defparam bootram.RAM1.INIT_05=256'h94e08001_80000000_b60f0008_9404c001_80841800_ac840002_94808001_a4630002; -defparam bootram.RAM1.INIT_06=256'h80633000_84632000_84c62800_a866ffff_e880f820_b0000000_9404c001_ac870002; -defparam bootram.RAM1.INIT_07=256'h9404c001_80843800_ac840002_94808001_a4e70002_f860f820_b0000000_f8602020; -defparam bootram.RAM1.INIT_08=256'hfac10020_f9e10000_fb010028_fae10024_fa61001c_3021ffd4_80000000_b60f0008; -defparam bootram.RAM1.INIT_09=256'h32600001_be670038_12660000_be060040_90c30060_13050000_12e60000_e0660000; -defparam bootram.RAM1.INIT_0A=256'hc0779800_10b80000_b9f400cc_10730000_be120028_16569800_32c70001_b8100014; -defparam bootram.RAM1.INIT_0B=256'heac10020_ea61001c_e9e10000_10730000_3273ffff_32730001_be26ffe4_90c30060; -defparam bootram.RAM1.INIT_0C=256'hb9f40084_f9e10000_10a00000_3021ffe4_3021002c_b60f0008_eb010028_eae10024; -defparam bootram.RAM1.INIT_0D=256'h10c63000_80000000_b60f0008_f0c5192c_3021001c_b60f0008_e9e10000_30c0000a; -defparam bootram.RAM1.INIT_0E=256'hf9e10000_fa61001c_3021ffe0_80000000_b60f0008_f8653700_64a50405_e4661660; -defparam bootram.RAM1.INIT_0F=256'h32730001_10b30000_e0d3165c_90c60060_b9f4ffc4_10b30000_e0d3192c_12600000; -defparam bootram.RAM1.INIT_10=256'h30210020_b60f0008_ea61001c_e9e10000_bc32ffd8_aa530003_90c60060_b9f4ffbc; -defparam bootram.RAM1.INIT_11=256'h12650000_be120030_aa46000a_12c60000_f9e10000_fac10020_fa61001c_3021ffdc; -defparam bootram.RAM1.INIT_12=256'heac10020_ea61001c_e9e10000_fac5000c_bc03fffc_e8650004_30a33700_64730405; -defparam bootram.RAM1.INIT_13=256'hb810ffc8_30c0000d_b9f4ffac_bc32ffd0_aa430001_e065192c_30210024_b60f0008; -defparam bootram.RAM1.INIT_14=256'hbe120030_aa46000a_12c60000_f9e10000_fac10020_fa61001c_3021ffdc_64730405; -defparam bootram.RAM1.INIT_15=256'hea61001c_e9e10000_fac3000c_bc040008_e8830004_30633700_64730405_12650000; -defparam bootram.RAM1.INIT_16=256'hb9f4ff44_30c0000d_be32ffd0_aa430001_e065192c_30210024_b60f0008_eac10020; -defparam bootram.RAM1.INIT_17=256'he8650010_bc03fffc_e8650008_30a53700_64a50405_64730405_b810ffc4_80000000; -defparam bootram.RAM1.INIT_18=256'he8850008_e8650010_bc030014_e8650008_30a53700_64a50405_80000000_b60f0008; -defparam bootram.RAM1.INIT_19=256'hf9e10000_fac10020_3021ffdc_64a50405_80000000_b60f0008_90630060_be24fff8; -defparam bootram.RAM1.INIT_1A=256'hbe120034_aa53012d_b8000010_32600001_be230040_e8760008_32c53700_fa61001c; -defparam bootram.RAM1.INIT_1B=256'h3240012b_3273ffff_32730001_be03ffe8_e8760008_30a00001_b9f40040_3060ffff; -defparam bootram.RAM1.INIT_1C=256'hb60f0008_eac10020_ea61001c_e9e10000_e8760010_3060ffff_be52000c_16539001; -defparam bootram.RAM1.INIT_1D=256'hbe650048_bc430054_e8601930_bc260054_a4c30000_b0008000_e8603324_30210024; -defparam bootram.RAM1.INIT_1E=256'h80000000_80000000_80000000_80000000_10800000_bc660030_e8c01930_10660000; -defparam bootram.RAM1.INIT_1F=256'h16432800_30630001_bc32ffdc_16443000_30840001_80000000_80000000_80000000; -defparam bootram.RAM1.INIT_20=256'hf8801930_e483166c_10631800_a4630007_e8603324_80000000_b60f0008_bc32ffc8; -defparam bootram.RAM1.INIT_21=256'h3065ffc9_a46300ff_be520024_16459001_3240005a_3065ffa9_90a50060_b800ff9c; -defparam bootram.RAM1.INIT_22=256'h80000000_b60f0008_a46400ff_3085ffd0_be52000c_16459001_32400039_a46300ff; -defparam bootram.RAM1.INIT_23=256'hfae10024_fac10020_fa61001c_f9e10000_fb610034_13250000_fb21002c_3021ffc8; -defparam bootram.RAM1.INIT_24=256'h10650000_30a0ffff_be120034_aa43003a_13660000_e0790000_fb410030_fb010028; -defparam bootram.RAM1.INIT_25=256'heb610034_eb410030_eb21002c_eb010028_eae10024_eac10020_ea61001c_e9e10000; -defparam bootram.RAM1.INIT_26=256'hbe04001c_90840060_30650001_c085c800_30a00001_e8c01934_30210038_b60f0008; -defparam bootram.RAM1.INIT_27=256'hb9f4ff28_e0b90001_30a0fffe_b810ffac_bc23ffe4_a4630044_c0662000_a4a300ff; -defparam bootram.RAM1.INIT_28=256'h10791800_fa7b0004_10739800_12761800_66c30404_b9f4ff1c_e0b90002_80000000; -defparam bootram.RAM1.INIT_29=256'he0b90003_13530000_b9f4fef0_e0b90005_30a0fffd_be38ff74_93040060_e083000b; -defparam bootram.RAM1.INIT_2A=256'hb9f4fec8_64630408_e0b90006_66c3040c_b9f4fed8_e0b90004_66e30404_b9f4fee4; -defparam bootram.RAM1.INIT_2B=256'he0b90008_80000000_b9f4feb0_e0b90007_fafb0008_12f7b000_12d61800_12d61800; -defparam bootram.RAM1.INIT_2C=256'hea7b000c_13580000_10f30000_be130060_f07b0000_1063b000_66c30404_b9f4fea4; -defparam bootram.RAM1.INIT_2D=256'hb9f4fe68_e0b60001_12d9b000_b9f4fe74_c0b6c800_a6d600ff_32d60009_12d8c000; -defparam bootram.RAM1.INIT_2E=256'ha70400ff_c073c000_30980001_e8fb0004_ea7b000c_d0789800_1063b800_66e30404; -defparam bootram.RAM1.INIT_2F=256'h64760008_12e73800_e09b0000_eadb0008_a74300ff_be52ffb8_1647c003_107a1800; -defparam bootram.RAM1.INIT_30=256'he0b7000a_12d61800_b9f4fe10_107a1800_12c7b000_10632000_e0b70009_12f9b800; -defparam bootram.RAM1.INIT_31=256'hbe32fe60_1643b000_a46300ff_a6d600ff_1063c000_16d60000_67030404_b9f4fe04; -defparam bootram.RAM1.INIT_32=256'h80000000_b60f0008_bc23fff8_a4630100_e8603b10_10a00000_b810fe58_30a0fffb; -defparam bootram.RAM1.INIT_33=256'hbc23fff8_a4630100_e8603b10_a4a500ff_80884800_a1292000_a508007f_a5290600; -defparam bootram.RAM1.INIT_34=256'h10650000_be050018_f8803b10_a0840100_f8603b18_a46600ff_f8803b10_f8e03b00; -defparam bootram.RAM1.INIT_35=256'h10e60000_10c00000_80000000_b60f0008_e8603b00_bc23fff8_a4630100_e8603b10; -defparam bootram.RAM1.INIT_36=256'hb9f4ff84_f8603b14_30600001_31200400_31000008_10a00000_f9e10000_3021ffe4; -defparam bootram.RAM1.INIT_37=256'hfa61002c_12c50000_fac10030_3021ffc4_3021001c_b60f0008_e9e10000_80000000; -defparam bootram.RAM1.INIT_38=256'hf8003b18_30600400_12670000_b9f4ff3c_fae10034_13060000_f9e10000_fb010038; -defparam bootram.RAM1.INIT_39=256'h30800428_f8603b18_30600001_fac03b00_f8603b04_3060000b_66d60408_f8603b10; -defparam bootram.RAM1.INIT_3A=256'h12e00000_12d30000_be18009c_80000000_b9f4ff00_f8603b10_30600528_f8803b10; -defparam bootram.RAM1.INIT_3B=256'he8803b0c_80000000_b9f4fed8_f8803b10_30800500_f8603b10_30600400_3261001c; -defparam bootram.RAM1.INIT_3C=256'hf8610028_e8603b00_f8810024_e8803b04_f8610020_e8603b08_f881001c_14b7c000; -defparam bootram.RAM1.INIT_3D=256'h30840001_d0762000_c0732000_30a00010_10800000_beb20034_16459003_22400010; -defparam bootram.RAM1.INIT_3E=256'hbc25ffd8_b800ff8c_12d62800_beb20020_1658b803_12f72800_bc32fff0_16442800; -defparam bootram.RAM1.INIT_3F=256'heac10030_ea61002c_e9e10000_f8003b18_12d62800_be52ff7c_1658b803_12f72800; -defparam bootram.RAM2.INIT_00=256'h30a00001_3021ffe4_30e00000_b0009f00_3021003c_b60f0008_eb010038_eae10034; -defparam bootram.RAM2.INIT_01=256'ha463ffff_b00000ff_e9e10000_31200400_b9f4fe34_f9e10000_31000020_30c00001; -defparam bootram.RAM2.INIT_02=256'he9e10000_bc030010_f9e10000_3021ffe4_e860f828_b0000000_3021001c_b60f0008; -defparam bootram.RAM2.INIT_03=256'hbe120010_aa440020_a48400ff_64830008_80000000_b9f4ffa8_3021001c_b60f0008; -defparam bootram.RAM2.INIT_04=256'h16439001_32400018_bcb2fff0_16439001_32400015_80000000_b9f40170_a46300ff; -defparam bootram.RAM2.INIT_05=256'hf9e10000_3021ffe4_e860f824_b0000000_b800ffb0_f860f828_b0000000_bc52ffe4; -defparam bootram.RAM2.INIT_06=256'ha48400ff_64830008_80000000_b9f4ff40_3021001c_b60f0008_e9e10000_bc030010; -defparam bootram.RAM2.INIT_07=256'hbcb2fff0_16459001_32400015_80000000_b9f40108_a4a300ff_be120010_aa440020; -defparam bootram.RAM2.INIT_08=256'hf860f824_b0000000_f8a0f828_b0000000_e0651666_bc52ffe4_16459001_32400018; -defparam bootram.RAM2.INIT_09=256'hb9f40174_f9e10000_10b60000_10c50000_12c00000_fac1001c_3021ffe0_b800ffa4; -defparam bootram.RAM2.INIT_0A=256'h3021ffd4_30210020_b60f0008_eac1001c_e9e10000_80000000_99fcb000_30e00024; -defparam bootram.RAM2.INIT_0B=256'h30c01680_10b60000_30c00006_b9f4fd80_f9e10000_10f60000_32c1001c_fac10028; -defparam bootram.RAM2.INIT_0C=256'h6464001f_eac10028_e9e10000_a884ffff_80841800_14830000_30e00006_b9f400b0; -defparam bootram.RAM2.INIT_0D=256'hb9f4fd34_f9e10000_10f60000_32c1001c_fac10028_3021ffd4_3021002c_b60f0008; -defparam bootram.RAM2.INIT_0E=256'ha884ffff_80841800_14830000_30e00006_b9f40064_30c01688_10b60000_30c00006; -defparam bootram.RAM2.INIT_0F=256'hf9e10000_3021ffe4_30a01690_3021002c_b60f0008_6464001f_eac10028_e9e10000; -defparam bootram.RAM2.INIT_10=256'h80000000_b6910000_80000000_b6110000_30a0ffff_b9f4ee68_80000000_b9f4f580; -defparam bootram.RAM2.INIT_11=256'h80653000_beb2005c_16479003_22400003_80000000_b60f0008_80000000_b60f0008; -defparam bootram.RAM2.INIT_12=256'h30a50004_30e7fffc_bc320040_16432000_e8660000_e8850000_bc230050_a4630003; -defparam bootram.RAM2.INIT_13=256'he1050000_bc120028_aa47ffff_30e7ffff_30c60004_be52ffe0_16479003_22400003; -defparam bootram.RAM2.INIT_14=256'hbc32ffe0_aa47ffff_30e7ffff_30c60001_30a50001_be320020_16434000_e0660000; -defparam bootram.RAM2.INIT_15=256'h10850000_beb20018_16479003_2240000f_14634000_b60f0008_10600000_b60f0008; -defparam bootram.RAM2.INIT_16=256'he0660000_10e72000_11040000_bc070024_11050000_be030034_a4630003_80662800; -defparam bootram.RAM2.INIT_17=256'he8860000_10650000_b60f0008_30c60001_be32fff0_16474000_31080001_f0680000; -defparam bootram.RAM2.INIT_18=256'h30c60010_e866000c_f8880008_e8860008_f8680004_e8660004_f8880000_30e7fff0; -defparam bootram.RAM2.INIT_19=256'hbcb2002c_16479003_22400003_31080010_be52ffd0_16479003_2240000f_f868000c; -defparam bootram.RAM2.INIT_1A=256'h30840004_be52ffec_16479003_22400003_d8682000_30e7fffc_c8662000_10800000; -defparam bootram.RAM2.INIT_1B=256'hf9e10000_fa61001c_3021ffe0_e86013f0_10880000_b810ff68_11044000_10c43000; -defparam bootram.RAM2.INIT_1C=256'hbc32fff0_aa43ffff_e8730000_3273fffc_99fc1800_bc120018_aa43ffff_326013f0; -defparam bootram.RAM2.INIT_1D=256'h80000000_b9f4ed20_d9e00800_3021fff8_30210020_b60f0008_ea61001c_e9e10000; -defparam bootram.RAM2.INIT_1E=256'hb9f4ec98_d9e00800_3021fff8_30210008_b60f0008_c9e00800_80000000_b9f4ffb0; -defparam bootram.RAM2.INIT_1F=256'h00000000_ffffffff_00000000_ffffffff_30210008_b60f0008_c9e00800_80000000; -defparam bootram.RAM2.INIT_20=256'h65642120_7475726e_65207265_696d6167_61696e20_523a206d_4552524f_4f4b0000; -defparam bootram.RAM2.INIT_21=256'h55535250_4e4f4b00_64652e00_64206d6f_206c6f61_49484558_20696e20_4261636b; -defparam bootram.RAM2.INIT_22=256'h50322b20_20555352_74696e67_53746172_720a0000_6f616465_6f6f746c_322b2062; -defparam bootram.RAM2.INIT_23=256'h6e206672_65747572_523a2072_4552524f_2e000000_6d6f6465_61666520_696e2073; -defparam bootram.RAM2.INIT_24=256'h206e6576_6f756c64_73207368_20546869_72616d21_70726f67_61696e20_6f6d206d; -defparam bootram.RAM2.INIT_25=256'h69726d77_66652066_6f207361_523a206e_4552524f_6e210000_61707065_65722068; -defparam bootram.RAM2.INIT_26=256'h62726963_6d206120_20492061_626c652e_61696c61_65206176_696d6167_61726520; -defparam bootram.RAM2.INIT_27=256'h2052414d_5820746f_20494845_6c6f6164_20746f20_66726565_65656c20_6b2e2046; -defparam bootram.RAM2.INIT_28=256'h6374696f_726f6475_69642070_2076616c_20666f72_6b696e67_43686563_2e000000; -defparam bootram.RAM2.INIT_29=256'h74696f6e_6f647563_64207072_56616c69_2e2e2e00_6d616765_47412069_6e204650; -defparam bootram.RAM2.INIT_2A=256'h6720746f_7074696e_7474656d_642e2041_666f756e_61676520_4120696d_20465047; -defparam bootram.RAM2.INIT_2B=256'h46504741_696f6e20_64756374_2070726f_616c6964_4e6f2076_742e0000_20626f6f; -defparam bootram.RAM2.INIT_2C=256'h6c6f6164_20746f20_74696e67_74656d70_2e0a4174_6f756e64_67652066_20696d61; -defparam bootram.RAM2.INIT_2D=256'h64207072_56616c69_2e2e2e00_77617265_6669726d_696f6e20_64756374_2070726f; -defparam bootram.RAM2.INIT_2E=256'h64696e67_204c6f61_756e642e_6520666f_6d776172_20666972_74696f6e_6f647563; -defparam bootram.RAM2.INIT_2F=256'h70726f67_61696e20_6f6d206d_6e206672_65747572_523a2052_4552524f_2e2e2e00; -defparam bootram.RAM2.INIT_30=256'h6e210000_61707065_65722068_206e6576_6f756c64_73207368_20546869_72616d21; -defparam bootram.RAM2.INIT_31=256'h20666f75_77617265_6669726d_696f6e20_64756374_2070726f_616c6964_4e6f2076; -defparam bootram.RAM2.INIT_32=256'h05050400_2e2e2e00_77617265_6669726d_61666520_6e672073_54727969_6e642e20; -defparam bootram.RAM2.INIT_33=256'h10101200_06820594_09c407d0_13880d05_00002710_01b200d9_05160364_14580a2c; -defparam bootram.RAM2.INIT_34=256'h00202020_00000000_6f72740a_0a0a6162_aa990000_ffffffff_b8080000_b0000000; -defparam bootram.RAM2.INIT_35=256'h20881010_20202020_20202020_20202020_20202020_28282820_20202828_20202020; -defparam bootram.RAM2.INIT_36=256'h10104141_10101010_04040410_04040404_10040404_10101010_10101010_10101010; -defparam bootram.RAM2.INIT_37=256'h10104242_10101010_01010101_01010101_01010101_01010101_01010101_41414141; -defparam bootram.RAM2.INIT_38=256'h20000000_10101010_02020202_02020202_02020202_02020202_02020202_42424242; -defparam bootram.RAM2.INIT_39=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_3A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_3B=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_3C=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_3D=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_3E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM2.INIT_3F=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_00=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_01=256'h20202020_20202020_20202020_20202020_28282020_20282828_20202020_20202020; -defparam bootram.RAM3.INIT_02=256'h10101010_04041010_04040404_04040404_10101010_10101010_10101010_88101010; -defparam bootram.RAM3.INIT_03=256'h10101010_01010110_01010101_01010101_01010101_01010101_41414101_10414141; -defparam bootram.RAM3.INIT_04=256'h10101020_02020210_02020202_02020202_02020202_02020202_42424202_10424242; -defparam bootram.RAM3.INIT_05=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_06=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_07=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_08=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_09=256'h00000000_00000000_00001820_ffffffff_01010100_000013fc_00000000_00000000; -defparam bootram.RAM3.INIT_0A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM0.INIT_11=256'hb9f40660_32c1001c_3261004c_f8610028_f9e10000_fac100d0_fa6100cc_3061002c; +defparam bootram.RAM0.INIT_12=256'h22407fff_e8610024_bc230038_30a01800_10b30000_b9f40c38_10d60000_10b30000; +defparam bootram.RAM0.INIT_13=256'h30a01800_bc120040_aa430001_30a017c8_e061001c_10a30000_be520034_16439003; +defparam bootram.RAM0.INIT_14=256'he8e10020_e8c10028_b800ffa8_80000000_b9f406f4_b800ffb4_80000000_b9f40700; +defparam bootram.RAM0.INIT_15=256'h80000000_b9f406c8_b800ff88_80000000_b9f406d4_30a017c8_80000000_b9f413d8; +defparam bootram.RAM0.INIT_16=256'hb800ff60_80000000_b9f406ac_30a017cc_80000000_b9f410dc_30a08000_b0000000; +defparam bootram.RAM0.INIT_17=256'he9e10000_30e00001_b9f4035c_f9e10000_30a0fff7_30c1001c_f0a1001c_3021ffe0; +defparam bootram.RAM0.INIT_18=256'h30e00001_b9f40294_f9e10000_30c1001c_30a0fff7_3021ffe0_30210020_b60f0008; +defparam bootram.RAM0.INIT_19=256'hf9e10000_3021ffdc_30210020_b60f0008_6463001f_14630000_e9e10000_e061001c; +defparam bootram.RAM0.INIT_1A=256'h306000ff_30a0a120_b0000007_9403c001_ac640002_94808001_fac10020_fa61001c; +defparam bootram.RAM0.INIT_1B=256'h80000000_b9f40d60_80000000_b9f40884_f800200c_80000000_b9f4fe98_f860200c; +defparam bootram.RAM0.INIT_1C=256'hbe23017c_80000000_b9f4ff74_80000000_b9f405f4_30a01804_80000000_b9f4020c; +defparam bootram.RAM0.INIT_1D=256'hb9f41020_30a00000_b0000030_bc160100_bc130134_a6632000_e8603334_12c30000; +defparam bootram.RAM0.INIT_1E=256'h30e08000_b0000000_80000000_b9f405b0_30a01980_12c30000_be030068_80000000; +defparam bootram.RAM0.INIT_1F=256'h80000000_b9f40fac_30a08000_b0000000_30c07c00_b9f40d28_30a00000_b0000030; +defparam bootram.RAM0.INIT_20=256'hea61001c_e9e10000_30600001_10a00000_b9f410e4_80000000_b9f4057c_30a019ac; +defparam bootram.RAM0.INIT_21=256'h30a00000_b000003f_80000000_b9f40550_30a019e8_30210024_b60f0008_eac10020; +defparam bootram.RAM0.INIT_22=256'hb9f4fdc0_80000000_b9f4052c_30a01874_12630000_be230024_80000000_b9f40f9c; +defparam bootram.RAM0.INIT_23=256'hb9f40c94_30a00000_b000003f_30e08000_b0000000_10730000_b810ffb4_80000000; +defparam bootram.RAM0.INIT_24=256'h80000000_b9f404e8_30a01838_80000000_b9f40f18_30a08000_b0000000_30c07c00; +defparam bootram.RAM0.INIT_25=256'hb0000018_80000000_b9f404cc_30a018cc_30600001_b810ff70_10b60000_b9f41050; +defparam bootram.RAM0.INIT_26=256'hb800fed8_80000000_b9f404ac_30a01930_bc230098_80000000_b9f40e80_30a00000; +defparam bootram.RAM0.INIT_27=256'hbc230028_80000000_b9f40ee8_30a00000_b000003f_80000000_b9f4049c_30a01818; +defparam bootram.RAM0.INIT_28=256'h10a00000_b9f4fdc8_b800fe9c_80000000_b9f4fd10_80000000_b9f4047c_30a01874; +defparam bootram.RAM0.INIT_29=256'hb0000000_30c07c00_b9f40bdc_30a00000_b000003f_30e08000_b0000000_b800fe84; +defparam bootram.RAM0.INIT_2A=256'h10b30000_b9f40f98_80000000_b9f40430_30a01838_80000000_b9f40e60_30a08000; +defparam bootram.RAM0.INIT_2B=256'h30a00000_b0000018_30a00001_b9f4fd70_80000000_b9f40418_30a018f8_b800fe50; +defparam bootram.RAM0.INIT_2C=256'h30600080_f8003104_f8603100_30600012_f8003108_b800ff48_80000000_b9f40f70; +defparam bootram.RAM0.INIT_2D=256'hbe23fff8_a4630040_e8603110_a4a500ff_be070088_80000000_b60f0008_f8603108; +defparam bootram.RAM0.INIT_2E=256'hbc23fff8_a4630002_e8603110_f8803110_30800090_f860310c_a0630001_10652800; +defparam bootram.RAM0.INIT_2F=256'hf8603110_30600020_be120038_aa470001_10800000_be230058_a4630080_e8603110; +defparam bootram.RAM0.INIT_30=256'h30c60001_be07001c_f0660000_30e7ffff_e860310c_bc23fff8_a4630002_e8603110; +defparam bootram.RAM0.INIT_31=256'h10640000_b60f0008_30800001_30600068_b810ffd0_30600020_be32ffd8_aa470001; +defparam bootram.RAM0.INIT_32=256'hbe23fff8_a4630040_e8603110_a4a500ff_10640000_b60f0008_f8603110_30600040; +defparam bootram.RAM0.INIT_33=256'ha4630002_e8603110_f8603110_306000d0_30600090_be27000c_f860310c_10652800; +defparam bootram.RAM0.INIT_34=256'he0660000_30800001_be070068_10800000_be23005c_a4630080_e8603110_bc23fff8; +defparam bootram.RAM0.INIT_35=256'hbc23fff8_a4630002_e8603110_f8803110_bc120030_aa470001_f860310c_30800010; +defparam bootram.RAM0.INIT_36=256'hb810ffd4_b800ffc4_30c60001_be070028_30e7ffff_be23001c_a4630080_e8603110; +defparam bootram.RAM0.INIT_37=256'hb60f0008_30800001_10640000_b60f0008_f8603110_30600040_10800000_30800050; +defparam bootram.RAM0.INIT_38=256'h3021ffd0_80000000_b60f0008_80000000_b9f4f964_f9e10000_3021ffe4_10640000; +defparam bootram.RAM0.INIT_39=256'h13260000_12e70000_13050000_12660000_fb21002c_fb010028_fae10024_fa61001c; +defparam bootram.RAM0.INIT_3A=256'hbcb2002c_16572001_bc120030_aa43ffff_12c00000_b810001c_f9e10000_fac10020; +defparam bootram.RAM0.INIT_3B=256'hbe32ffd4_aa43000a_f0730000_10960000_90630060_10b80000_b9f405ec_32730001; +defparam bootram.RAM0.INIT_3C=256'heae10024_eac10020_ea61001c_e9e10000_10640000_f0130000_14999800_32d60001; +defparam bootram.RAM0.INIT_3D=256'hfb010028_fae10024_fa61001c_3021ffd0_30210030_b60f0008_eb21002c_eb010028; +defparam bootram.RAM0.INIT_3E=256'hb8100014_f9e10000_fac10020_13260000_12e70000_13050000_12660000_fb21002c; +defparam bootram.RAM0.INIT_3F=256'h10960000_90630060_10b80000_b9f4051c_32730001_bcb2002c_16572001_12c00000; +defparam bootram.RAM1.INIT_00=256'he9e10000_10640000_f0130000_14999800_32d60001_be32ffdc_aa43000a_f0730000; +defparam bootram.RAM1.INIT_01=256'h3021ffd8_30210030_b60f0008_eb21002c_eb010028_eae10024_eac10020_ea61001c; +defparam bootram.RAM1.INIT_02=256'hb9f404b0_12660000_f9e10000_12e60000_12c50000_fae10024_fac10020_fa61001c; +defparam bootram.RAM1.INIT_03=256'hf0130000_3273ffff_32730001_be32ffec_aa43000a_f0730000_90630060_10b60000; +defparam bootram.RAM1.INIT_04=256'h10c50000_30210028_b60f0008_eae10024_eac10020_ea61001c_e9e10000_10770000; +defparam bootram.RAM1.INIT_05=256'h3021ffe4_3021001c_b60f0008_e9e10000_10a00000_b9f4ff94_f9e10000_3021ffe4; +defparam bootram.RAM1.INIT_06=256'hf9e10000_3021ffe4_3021001c_b60f0008_e9e10000_80000000_b9f40448_f9e10000; +defparam bootram.RAM1.INIT_07=256'hfac10020_fa61001c_3021ffdc_3021001c_b60f0008_e9e10000_10a00000_b9f4ffdc; +defparam bootram.RAM1.INIT_08=256'hb9f40324_10b60000_12c50000_be060024_90c30060_12660000_e0660000_f9e10000; +defparam bootram.RAM1.INIT_09=256'heac10020_ea61001c_e9e10000_10b60000_be26fff0_90c30060_e0730000_32730001; +defparam bootram.RAM1.INIT_0A=256'h12c50000_b9f4ff9c_f9e10000_fac1001c_3021ffe0_30210024_b60f0008_10600000; +defparam bootram.RAM1.INIT_0B=256'h30210020_b60f0008_10600000_eac1001c_e9e10000_30c0000a_b9f402dc_10b60000; +defparam bootram.RAM1.INIT_0C=256'h3021001c_b60f0008_e9e10000_10a00000_b9f4ffc0_f9e10000_3021ffe4_10c50000; +defparam bootram.RAM1.INIT_0D=256'h3021001c_b60f0008_e9e10000_10a00000_b9f4ff48_f9e10000_3021ffe4_10c50000; +defparam bootram.RAM1.INIT_0E=256'h3021ffe0_3021001c_b60f0008_e9e10000_30c0000a_b9f40278_f9e10000_3021ffe4; +defparam bootram.RAM1.INIT_0F=256'he9e10000_10760000_10d60000_b9f40250_f9e10000_10a00000_12c50000_fac1001c; +defparam bootram.RAM1.INIT_10=256'h12c60000_b9f40228_f9e10000_fac1001c_3021ffe0_30210020_b60f0008_eac1001c; +defparam bootram.RAM1.INIT_11=256'hb9f401b8_f9e10000_3021ffe4_30210020_b60f0008_eac1001c_e9e10000_10760000; +defparam bootram.RAM1.INIT_12=256'hb0000000_9404c001_ac870002_94e08001_3021001c_b60f0008_e9e10000_80000000; +defparam bootram.RAM1.INIT_13=256'hf860f81c_b0000000_f860200c_80633000_84632000_84c62800_a866ffff_e880f81c; +defparam bootram.RAM1.INIT_14=256'h94608001_80000000_b60f0008_9404c001_80843800_ac840002_94808001_a4e70002; +defparam bootram.RAM1.INIT_15=256'hf8a0f81c_b0000000_f8a0200c_88a52000_e880f81c_b0000000_9406c001_acc30002; +defparam bootram.RAM1.INIT_16=256'h94e08001_80000000_b60f0008_9404c001_80841800_ac840002_94808001_a4630002; +defparam bootram.RAM1.INIT_17=256'h80633000_84632000_84c62800_a866ffff_e880f820_b0000000_9404c001_ac870002; +defparam bootram.RAM1.INIT_18=256'h9404c001_80843800_ac840002_94808001_a4e70002_f860f820_b0000000_f8602020; +defparam bootram.RAM1.INIT_19=256'hfac10020_f9e10000_fb010028_fae10024_fa61001c_3021ffd4_80000000_b60f0008; +defparam bootram.RAM1.INIT_1A=256'h32600001_be670038_12660000_be060040_90c30060_13050000_12e60000_e0660000; +defparam bootram.RAM1.INIT_1B=256'hc0779800_10b80000_b9f400cc_10730000_be120028_16569800_32c70001_b8100014; +defparam bootram.RAM1.INIT_1C=256'heac10020_ea61001c_e9e10000_10730000_3273ffff_32730001_be26ffe4_90c30060; +defparam bootram.RAM1.INIT_1D=256'hb9f40084_f9e10000_10a00000_3021ffe4_3021002c_b60f0008_eb010028_eae10024; +defparam bootram.RAM1.INIT_1E=256'h10c63000_80000000_b60f0008_f0c51cec_3021001c_b60f0008_e9e10000_30c0000a; +defparam bootram.RAM1.INIT_1F=256'hf9e10000_fa61001c_3021ffe0_80000000_b60f0008_f8653700_64a50405_e4661a28; +defparam bootram.RAM1.INIT_20=256'h32730001_10b30000_e0d31a24_90c60060_b9f4ffc4_10b30000_e0d31cec_12600000; +defparam bootram.RAM1.INIT_21=256'h30210020_b60f0008_ea61001c_e9e10000_bc32ffd8_aa530003_90c60060_b9f4ffbc; +defparam bootram.RAM1.INIT_22=256'h12650000_be120030_aa46000a_12c60000_f9e10000_fac10020_fa61001c_3021ffdc; +defparam bootram.RAM1.INIT_23=256'heac10020_ea61001c_e9e10000_fac5000c_bc03fffc_e8650004_30a33700_64730405; +defparam bootram.RAM1.INIT_24=256'hb810ffc8_30c0000d_b9f4ffac_bc32ffd0_aa430001_e0651cec_30210024_b60f0008; +defparam bootram.RAM1.INIT_25=256'hbe120030_aa46000a_12c60000_f9e10000_fac10020_fa61001c_3021ffdc_64730405; +defparam bootram.RAM1.INIT_26=256'hea61001c_e9e10000_fac3000c_bc040008_e8830004_30633700_64730405_12650000; +defparam bootram.RAM1.INIT_27=256'hb9f4ff44_30c0000d_be32ffd0_aa430001_e0651cec_30210024_b60f0008_eac10020; +defparam bootram.RAM1.INIT_28=256'he8650010_bc03fffc_e8650008_30a53700_64a50405_64730405_b810ffc4_80000000; +defparam bootram.RAM1.INIT_29=256'he8850008_e8650010_bc030014_e8650008_30a53700_64a50405_80000000_b60f0008; +defparam bootram.RAM1.INIT_2A=256'hf9e10000_fac10020_3021ffdc_64a50405_80000000_b60f0008_90630060_be24fff8; +defparam bootram.RAM1.INIT_2B=256'hbe120034_aa53012d_b8000010_32600001_be230040_e8760008_32c53700_fa61001c; +defparam bootram.RAM1.INIT_2C=256'h3240012b_3273ffff_32730001_be03ffe8_e8760008_30a00001_b9f40040_3060ffff; +defparam bootram.RAM1.INIT_2D=256'hb60f0008_eac10020_ea61001c_e9e10000_e8760010_3060ffff_be52000c_16539001; +defparam bootram.RAM1.INIT_2E=256'hbe650048_bc430054_e8601cf0_bc260054_a4c30000_b0008000_e8603324_30210024; +defparam bootram.RAM1.INIT_2F=256'h80000000_80000000_80000000_80000000_10800000_bc660030_e8c01cf0_10660000; +defparam bootram.RAM1.INIT_30=256'h16432800_30630001_bc32ffdc_16443000_30840001_80000000_80000000_80000000; +defparam bootram.RAM1.INIT_31=256'hf8801cf0_e4831a34_10631800_a4630007_e8603324_80000000_b60f0008_bc32ffc8; +defparam bootram.RAM1.INIT_32=256'h3065ffc9_a46300ff_be520024_16459001_3240005a_3065ffa9_90a50060_b800ff9c; +defparam bootram.RAM1.INIT_33=256'h80000000_b60f0008_a46400ff_3085ffd0_be52000c_16459001_32400039_a46300ff; +defparam bootram.RAM1.INIT_34=256'hfae10024_fac10020_fa61001c_f9e10000_fb610034_13250000_fb21002c_3021ffc8; +defparam bootram.RAM1.INIT_35=256'h10650000_30a0ffff_be120034_aa43003a_13660000_e0790000_fb410030_fb010028; +defparam bootram.RAM1.INIT_36=256'heb610034_eb410030_eb21002c_eb010028_eae10024_eac10020_ea61001c_e9e10000; +defparam bootram.RAM1.INIT_37=256'hbe04001c_90840060_30650001_c085c800_30a00001_e8c01cf4_30210038_b60f0008; +defparam bootram.RAM1.INIT_38=256'hb9f4ff28_e0b90001_30a0fffe_b810ffac_bc23ffe4_a4630044_c0662000_a4a300ff; +defparam bootram.RAM1.INIT_39=256'h10791800_fa7b0004_10739800_12761800_66c30404_b9f4ff1c_e0b90002_80000000; +defparam bootram.RAM1.INIT_3A=256'he0b90003_13530000_b9f4fef0_e0b90005_30a0fffd_be38ff74_93040060_e083000b; +defparam bootram.RAM1.INIT_3B=256'hb9f4fec8_64630408_e0b90006_66c3040c_b9f4fed8_e0b90004_66e30404_b9f4fee4; +defparam bootram.RAM1.INIT_3C=256'he0b90008_80000000_b9f4feb0_e0b90007_fafb0008_12f7b000_12d61800_12d61800; +defparam bootram.RAM1.INIT_3D=256'hea7b000c_13580000_10f30000_be130060_f07b0000_1063b000_66c30404_b9f4fea4; +defparam bootram.RAM1.INIT_3E=256'hb9f4fe68_e0b60001_12d9b000_b9f4fe74_c0b6c800_a6d600ff_32d60009_12d8c000; +defparam bootram.RAM1.INIT_3F=256'ha70400ff_c073c000_30980001_e8fb0004_ea7b000c_d0789800_1063b800_66e30404; +defparam bootram.RAM2.INIT_00=256'h64760008_12e73800_e09b0000_eadb0008_a74300ff_be52ffb8_1647c003_107a1800; +defparam bootram.RAM2.INIT_01=256'he0b7000a_12d61800_b9f4fe10_107a1800_12c7b000_10632000_e0b70009_12f9b800; +defparam bootram.RAM2.INIT_02=256'hbe32fe60_1643b000_a46300ff_a6d600ff_1063c000_16d60000_67030404_b9f4fe04; +defparam bootram.RAM2.INIT_03=256'h80000000_b60f0008_bc23fff8_a4630100_e8603b10_10a00000_b810fe58_30a0fffb; +defparam bootram.RAM2.INIT_04=256'hbc23fff8_a4630100_e8603b10_a4a500ff_80884800_a1292000_a508007f_a5290600; +defparam bootram.RAM2.INIT_05=256'h10650000_be050018_f8803b10_a0840100_f8603b18_a46600ff_f8803b10_f8e03b00; +defparam bootram.RAM2.INIT_06=256'h10e60000_10c00000_80000000_b60f0008_e8603b00_bc23fff8_a4630100_e8603b10; +defparam bootram.RAM2.INIT_07=256'hb9f4ff84_f8603b14_30600001_31200400_31000008_10a00000_f9e10000_3021ffe4; +defparam bootram.RAM2.INIT_08=256'hfa61002c_12c50000_fac10030_3021ffc4_3021001c_b60f0008_e9e10000_80000000; +defparam bootram.RAM2.INIT_09=256'hf8003b18_30600400_12670000_b9f4ff3c_fae10034_13060000_f9e10000_fb010038; +defparam bootram.RAM2.INIT_0A=256'h30800428_f8603b18_30600001_fac03b00_f8603b04_3060000b_66d60408_f8603b10; +defparam bootram.RAM2.INIT_0B=256'h12e00000_12d30000_be18009c_80000000_b9f4ff00_f8603b10_30600528_f8803b10; +defparam bootram.RAM2.INIT_0C=256'he8803b0c_80000000_b9f4fed8_f8803b10_30800500_f8603b10_30600400_3261001c; +defparam bootram.RAM2.INIT_0D=256'hf8610028_e8603b00_f8810024_e8803b04_f8610020_e8603b08_f881001c_14b7c000; +defparam bootram.RAM2.INIT_0E=256'h30840001_d0762000_c0732000_30a00010_10800000_beb20034_16459003_22400010; +defparam bootram.RAM2.INIT_0F=256'hbc25ffd8_b800ff8c_12d62800_beb20020_1658b803_12f72800_bc32fff0_16442800; +defparam bootram.RAM2.INIT_10=256'heac10030_ea61002c_e9e10000_f8003b18_12d62800_be52ff7c_1658b803_12f72800; +defparam bootram.RAM2.INIT_11=256'h30a00001_3021ffe4_30e00000_b0009f00_3021003c_b60f0008_eb010038_eae10034; +defparam bootram.RAM2.INIT_12=256'ha463ffff_b00000ff_e9e10000_31200400_b9f4fe34_f9e10000_31000020_30c00001; +defparam bootram.RAM2.INIT_13=256'he9e10000_bc030010_f9e10000_3021ffe4_e860f828_b0000000_3021001c_b60f0008; +defparam bootram.RAM2.INIT_14=256'hbe120010_aa440020_a48400ff_64830008_80000000_b9f4ffa8_3021001c_b60f0008; +defparam bootram.RAM2.INIT_15=256'h16439001_32400018_bcb2fff0_16439001_32400015_80000000_b9f40318_a46300ff; +defparam bootram.RAM2.INIT_16=256'hf9e10000_3021ffe4_e860f824_b0000000_b800ffb0_f860f828_b0000000_bc52ffe4; +defparam bootram.RAM2.INIT_17=256'ha48400ff_64830008_80000000_b9f4ff40_3021001c_b60f0008_e9e10000_bc030010; +defparam bootram.RAM2.INIT_18=256'hbcb2fff0_16459001_32400015_80000000_b9f402b0_a4a300ff_be120010_aa440020; +defparam bootram.RAM2.INIT_19=256'hf860f824_b0000000_f8a0f828_b0000000_e0651a2e_bc52ffe4_16459001_32400018; +defparam bootram.RAM2.INIT_1A=256'hbe520040_16459001_3240003e_30a50001_10a00000_b810001c_3021ffbc_b800ffa4; +defparam bootram.RAM2.INIT_1B=256'h30a50001_bc32ffd8_aa4300aa_bc12ffe0_aa4300ff_e0630004_10612800_10600000; +defparam bootram.RAM2.INIT_1C=256'hb60f0008_30210044_b60f0008_30600001_be32ffc8_aa440099_e0830004_10612800; +defparam bootram.RAM2.INIT_1D=256'hb9f402bc_f9e10000_10b60000_10c50000_12c00000_fac1001c_3021ffe0_30210044; +defparam bootram.RAM2.INIT_1E=256'h3021ffd4_30210020_b60f0008_eac1001c_e9e10000_80000000_99fcb000_30e00024; +defparam bootram.RAM2.INIT_1F=256'h30c01a48_10b60000_30c00006_b9f4fd20_f9e10000_10f60000_32c1001c_fac10028; +defparam bootram.RAM2.INIT_20=256'h6464001f_eac10028_e9e10000_a884ffff_80841800_14830000_30e00006_b9f401f8; +defparam bootram.RAM2.INIT_21=256'h65240405_65040403_64e40003_64a40007_64c40005_e0803a03_3021002c_b60f0008; +defparam bootram.RAM2.INIT_22=256'h10842000_a4a50008_80e73000_90a40041_a4e70004_80c62800_a4c60002_64640407; +defparam bootram.RAM2.INIT_23=256'h80634800_81294000_a5290040_81082000_a5080020_80842800_a4840010_80a53800; +defparam bootram.RAM2.INIT_24=256'h65050405_64e50403_64c50003_64650007_64850005_a4a500ff_a46300ff_b60f0008; +defparam bootram.RAM2.INIT_25=256'h10a52800_a4630008_80c62000_90650041_a4c60004_80841800_a4840002_65250407; +defparam bootram.RAM2.INIT_26=256'h81294000_81083800_a5080040_80e72800_a4e70020_80a51800_a4a50010_80633000; +defparam bootram.RAM2.INIT_27=256'ha6c5ffff_b00000ff_fac1001c_3021ffe0_80000000_b60f0008_f9203a00_a52900ff; +defparam bootram.RAM2.INIT_28=256'hb9f4ff6c_30a0ffaa_b9f4ff74_30a0ffff_b9f4ff7c_30a0ffff_b9f4ff84_f9e10000; +defparam bootram.RAM2.INIT_29=256'hb9f4ff4c_30a00061_b9f4ff54_30a00032_b9f4ff5c_a2d60000_b0000b00_30a0ff99; +defparam bootram.RAM2.INIT_2A=256'hb9f4ff2c_30a0ff81_b9f4ff34_30a00032_b9f4ff3c_10b60000_b9f4ff44_64b60008; +defparam bootram.RAM2.INIT_2B=256'hb9f4ff0c_30a0ffa1_b9f4ff14_30a00030_b9f4ff1c_64b60010_b9f4ff24_30a0000b; +defparam bootram.RAM2.INIT_2C=256'hb9f4feec_10a00000_b9f4fef4_30a00020_b9f4fefc_30a0000e_b9f4ff04_10a00000; +defparam bootram.RAM2.INIT_2D=256'h30a01a50_30210020_b60f0008_eac1001c_e9e10000_10a00000_b9f4fee4_30a00020; +defparam bootram.RAM2.INIT_2E=256'h80000000_b6110000_30a0ffff_b9f4eaa0_80000000_b9f4f3d8_f9e10000_3021ffe4; +defparam bootram.RAM2.INIT_2F=256'h16479003_22400003_80000000_b60f0008_80000000_b60f0008_80000000_b6910000; +defparam bootram.RAM2.INIT_30=256'hbc320040_16432000_e8660000_e8850000_bc230050_a4630003_80653000_beb2005c; +defparam bootram.RAM2.INIT_31=256'haa47ffff_30e7ffff_30c60004_be52ffe0_16479003_22400003_30a50004_30e7fffc; +defparam bootram.RAM2.INIT_32=256'h30e7ffff_30c60001_30a50001_be320020_16434000_e0660000_e1050000_bc120028; +defparam bootram.RAM2.INIT_33=256'h16479003_2240000f_14634000_b60f0008_10600000_b60f0008_bc32ffe0_aa47ffff; +defparam bootram.RAM2.INIT_34=256'h11040000_bc070024_11050000_be030034_a4630003_80662800_10850000_beb20018; +defparam bootram.RAM2.INIT_35=256'hb60f0008_30c60001_be32fff0_16474000_31080001_f0680000_e0660000_10e72000; +defparam bootram.RAM2.INIT_36=256'hf8880008_e8860008_f8680004_e8660004_f8880000_30e7fff0_e8860000_10650000; +defparam bootram.RAM2.INIT_37=256'h22400003_31080010_be52ffd0_16479003_2240000f_f868000c_30c60010_e866000c; +defparam bootram.RAM2.INIT_38=256'h16479003_22400003_d8682000_30e7fffc_c8662000_10800000_bcb2002c_16479003; +defparam bootram.RAM2.INIT_39=256'h3021ffe0_e86017b8_10880000_b810ff68_11044000_10c43000_30840004_be52ffec; +defparam bootram.RAM2.INIT_3A=256'he8730000_3273fffc_99fc1800_bc120018_aa43ffff_326017b8_f9e10000_fa61001c; +defparam bootram.RAM2.INIT_3B=256'hd9e00800_3021fff8_30210020_b60f0008_ea61001c_e9e10000_bc32fff0_aa43ffff; +defparam bootram.RAM2.INIT_3C=256'h3021fff8_30210008_b60f0008_c9e00800_80000000_b9f4ffb0_80000000_b9f4e958; +defparam bootram.RAM2.INIT_3D=256'h00000000_ffffffff_30210008_b60f0008_c9e00800_80000000_b9f4e8d0_d9e00800; +defparam bootram.RAM2.INIT_3E=256'h65207265_696d6167_61696e20_523a206d_4552524f_4f4b0000_00000000_ffffffff; +defparam bootram.RAM2.INIT_3F=256'h64652e00_64206d6f_206c6f61_49484558_20696e20_4261636b_65642120_7475726e; +defparam bootram.RAM3.INIT_00=256'h74696e67_53746172_720a0000_6f616465_6f6f746c_322b2062_55535250_4e4f4b00; +defparam bootram.RAM3.INIT_01=256'h523a2072_4552524f_2e000000_6d6f6465_61666520_696e2073_50322b20_20555352; +defparam bootram.RAM3.INIT_02=256'h73207368_20546869_72616d21_70726f67_61696e20_6f6d206d_6e206672_65747572; +defparam bootram.RAM3.INIT_03=256'h6f207361_523a206e_4552524f_6e210000_61707065_65722068_206e6576_6f756c64; +defparam bootram.RAM3.INIT_04=256'h20492061_626c652e_61696c61_65206176_696d6167_61726520_69726d77_66652066; +defparam bootram.RAM3.INIT_05=256'h20494845_6c6f6164_20746f20_66726565_65656c20_6b2e2046_62726963_6d206120; +defparam bootram.RAM3.INIT_06=256'h69642070_2076616c_20666f72_6b696e67_43686563_2e000000_2052414d_5820746f; +defparam bootram.RAM3.INIT_07=256'h64207072_56616c69_2e2e2e00_6d616765_47412069_6e204650_6374696f_726f6475; +defparam bootram.RAM3.INIT_08=256'h7474656d_642e2041_666f756e_61676520_4120696d_20465047_74696f6e_6f647563; +defparam bootram.RAM3.INIT_09=256'h64756374_2070726f_616c6964_4e6f2076_742e0000_20626f6f_6720746f_7074696e; +defparam bootram.RAM3.INIT_0A=256'h74696e67_74656d70_2e0a4174_6f756e64_67652066_20696d61_46504741_696f6e20; +defparam bootram.RAM3.INIT_0B=256'h2e2e2e00_77617265_6669726d_696f6e20_64756374_2070726f_6c6f6164_20746f20; +defparam bootram.RAM3.INIT_0C=256'h756e642e_6520666f_6d776172_20666972_74696f6e_6f647563_64207072_56616c69; +defparam bootram.RAM3.INIT_0D=256'h6f6d206d_6e206672_65747572_523a2052_4552524f_2e2e2e00_64696e67_204c6f61; +defparam bootram.RAM3.INIT_0E=256'h65722068_206e6576_6f756c64_73207368_20546869_72616d21_70726f67_61696e20; +defparam bootram.RAM3.INIT_0F=256'h6669726d_696f6e20_64756374_2070726f_616c6964_4e6f2076_6e210000_61707065; +defparam bootram.RAM3.INIT_10=256'h77617265_6669726d_61666520_6e672073_54727969_6e642e20_20666f75_77617265; +defparam bootram.RAM3.INIT_11=256'h09c407d0_13880d05_00002710_01b200d9_05160364_14580a2c_05050400_2e2e2e00; +defparam bootram.RAM3.INIT_12=256'h00202020_00000000_6f72740a_0a0a6162_b8080000_b0000000_10101200_06820594; +defparam bootram.RAM3.INIT_13=256'h20881010_20202020_20202020_20202020_20202020_28282820_20202828_20202020; +defparam bootram.RAM3.INIT_14=256'h10104141_10101010_04040410_04040404_10040404_10101010_10101010_10101010; +defparam bootram.RAM3.INIT_15=256'h10104242_10101010_01010101_01010101_01010101_01010101_01010101_41414141; +defparam bootram.RAM3.INIT_16=256'h20000000_10101010_02020202_02020202_02020202_02020202_02020202_42424242; +defparam bootram.RAM3.INIT_17=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_18=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_19=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_1A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_1B=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_1C=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_1D=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_1E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_1F=256'h20202020_20202020_20202020_20202020_28282020_20282828_20202020_20202020; +defparam bootram.RAM3.INIT_20=256'h10101010_04041010_04040404_04040404_10101010_10101010_10101010_88101010; +defparam bootram.RAM3.INIT_21=256'h10101010_01010110_01010101_01010101_01010101_01010101_41414101_10414141; +defparam bootram.RAM3.INIT_22=256'h10101020_02020210_02020202_02020202_02020202_02020202_42424202_10424242; +defparam bootram.RAM3.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_24=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_25=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_26=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_27=256'h00000000_00000000_00001be0_ffffffff_01010100_000017c4_00000000_00000000; +defparam bootram.RAM3.INIT_28=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -- cgit v1.2.3 From d8563de88b6630014bcd38f8229f3be1f2c795a5 Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Thu, 7 Oct 2010 15:48:10 -0700 Subject: U2P: remember your semicolons. --- usrp2/control_lib/s3a_icap_wb.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usrp2/control_lib/s3a_icap_wb.v b/usrp2/control_lib/s3a_icap_wb.v index 73ddac385..83d9f775e 100644 --- a/usrp2/control_lib/s3a_icap_wb.v +++ b/usrp2/control_lib/s3a_icap_wb.v @@ -3,7 +3,7 @@ module s3a_icap_wb (input clk, input reset, input cyc_i, input stb_i, input we_i, output ack_o, - input [31:0] dat_i, output [31:0] dat_o)//, output [31:0] debug_out); + input [31:0] dat_i, output [31:0] dat_o);//, output [31:0] debug_out); assign dat_o[31:8] = 24'd0; -- cgit v1.2.3 From 0edd06b736fb55cc740c5cf1cbe1ba718b8f3ef0 Mon Sep 17 00:00:00 2001 From: Nick Foster Date: Fri, 8 Oct 2010 12:50:48 -0700 Subject: U2P: Working ICAP bootloader. Should be ready for release. --- usrp2/top/u2plus/bootloader.rmi | 460 +++++++++++++++++++++------------------- 1 file changed, 236 insertions(+), 224 deletions(-) diff --git a/usrp2/top/u2plus/bootloader.rmi b/usrp2/top/u2plus/bootloader.rmi index 9e3f99331..7c15699db 100644 --- a/usrp2/top/u2plus/bootloader.rmi +++ b/usrp2/top/u2plus/bootloader.rmi @@ -1,233 +1,245 @@ -defparam bootram.RAM0.INIT_00=256'h00000000_00000000_00000000_b80801c0_00000000_b80815d8_00000000_b8080050; -defparam bootram.RAM0.INIT_01=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_b80815e0; -defparam bootram.RAM0.INIT_02=256'h3020ffe0_b0000000_30401ce0_31a01d08_00000000_00000000_00000000_00000000; -defparam bootram.RAM0.INIT_03=256'h3021ffe4_e060f800_b0000000_b8000000_30a30000_b9f4069c_80000000_b9f400cc; -defparam bootram.RAM0.INIT_04=256'he8830000_e8601ce8_80000000_99fc2000_f8601ce8_b8000044_bc030014_f9e10000; -defparam bootram.RAM0.INIT_05=256'h80000000_99fc1800_30a01cfc_bc030010_30600000_b0000000_30630004_be24ffec; +defparam bootram.RAM0.INIT_00=256'h00000000_00000000_00000000_b80801c0_00000000_b808175c_00000000_b8080050; +defparam bootram.RAM0.INIT_01=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_b8081764; +defparam bootram.RAM0.INIT_02=256'h3020ffe0_b0000000_30401e70_31a01e98_00000000_00000000_00000000_00000000; +defparam bootram.RAM0.INIT_03=256'h3021ffe4_e060f800_b0000000_b8000000_30a30000_b9f40668_80000000_b9f400cc; +defparam bootram.RAM0.INIT_04=256'he8830000_e8601e78_80000000_99fc2000_f8601e78_b8000044_bc030014_f9e10000; +defparam bootram.RAM0.INIT_05=256'h80000000_99fc1800_30a01e8c_bc030010_30600000_b0000000_30630004_be24ffec; defparam bootram.RAM0.INIT_06=256'h30600000_b0000000_3021001c_b60f0008_e9e10000_f060f800_b0000000_30600001; -defparam bootram.RAM0.INIT_07=256'h80000000_99fc1800_bc03000c_30c0f804_b0000000_30a01cfc_f9e10000_3021ffe4; -defparam bootram.RAM0.INIT_08=256'h80000000_99fc2000_bc04000c_30a01d00_bc030014_30800000_b0000000_e8601d00; -defparam bootram.RAM0.INIT_09=256'h06463800_20e01d08_20c01d08_f9e10000_2021ffec_3021001c_b60f0008_e9e10000; +defparam bootram.RAM0.INIT_07=256'h80000000_99fc1800_bc03000c_30c0f804_b0000000_30a01e8c_f9e10000_3021ffe4; +defparam bootram.RAM0.INIT_08=256'h80000000_99fc2000_bc04000c_30a01e90_bc030014_30800000_b0000000_e8601e90; +defparam bootram.RAM0.INIT_09=256'h06463800_20e01e98_20c01e98_f9e10000_2021ffec_3021001c_b60f0008_e9e10000; defparam bootram.RAM0.INIT_0A=256'hb0000000_20c0f800_b0000000_bc92fff4_06463800_20c60004_f8060000_bc720014; -defparam bootram.RAM0.INIT_0B=256'hb9f41474_bc92fff4_06463800_20c60004_f8060000_bc720014_06463800_20e0f82c; -defparam bootram.RAM0.INIT_0C=256'h32630000_20a00000_b9f401a4_20e00000_20c00000_80000000_b9f415f4_80000000; -defparam bootram.RAM0.INIT_0D=256'h20210014_b60f0008_30730000_c9e10000_80000000_b9f41440_80000000_b9f415fc; +defparam bootram.RAM0.INIT_0B=256'hb9f415f8_bc92fff4_06463800_20c60004_f8060000_bc720014_06463800_20e0f82c; +defparam bootram.RAM0.INIT_0C=256'h32630000_20a00000_b9f401c8_20e00000_20c00000_80000000_b9f41778_80000000; +defparam bootram.RAM0.INIT_0D=256'h20210014_b60f0008_30730000_c9e10000_80000000_b9f415c4_80000000_b9f41780; defparam bootram.RAM0.INIT_0E=256'he9e10000_f9610004_fa410010_95608001_fa21000c_f9610008_f9e10000_3021ffec; defparam bootram.RAM0.INIT_0F=256'hbc050018_30210014_b62e0000_ea410010_ea21000c_e9610008_940bc001_e9610004; defparam bootram.RAM0.INIT_10=256'h3021ff2c_80000000_b60f0008_bc32fff4_16432800_30630001_80000000_10600000; -defparam bootram.RAM0.INIT_11=256'hb9f40660_32c1001c_3261004c_f8610028_f9e10000_fac100d0_fa6100cc_3061002c; -defparam bootram.RAM0.INIT_12=256'h22407fff_e8610024_bc230038_30a01800_10b30000_b9f40c38_10d60000_10b30000; -defparam bootram.RAM0.INIT_13=256'h30a01800_bc120040_aa430001_30a017c8_e061001c_10a30000_be520034_16439003; -defparam bootram.RAM0.INIT_14=256'he8e10020_e8c10028_b800ffa8_80000000_b9f406f4_b800ffb4_80000000_b9f40700; -defparam bootram.RAM0.INIT_15=256'h80000000_b9f406c8_b800ff88_80000000_b9f406d4_30a017c8_80000000_b9f413d8; -defparam bootram.RAM0.INIT_16=256'hb800ff60_80000000_b9f406ac_30a017cc_80000000_b9f410dc_30a08000_b0000000; -defparam bootram.RAM0.INIT_17=256'he9e10000_30e00001_b9f4035c_f9e10000_30a0fff7_30c1001c_f0a1001c_3021ffe0; -defparam bootram.RAM0.INIT_18=256'h30e00001_b9f40294_f9e10000_30c1001c_30a0fff7_3021ffe0_30210020_b60f0008; -defparam bootram.RAM0.INIT_19=256'hf9e10000_3021ffdc_30210020_b60f0008_6463001f_14630000_e9e10000_e061001c; -defparam bootram.RAM0.INIT_1A=256'h306000ff_30a0a120_b0000007_9403c001_ac640002_94808001_fac10020_fa61001c; -defparam bootram.RAM0.INIT_1B=256'h80000000_b9f40d60_80000000_b9f40884_f800200c_80000000_b9f4fe98_f860200c; -defparam bootram.RAM0.INIT_1C=256'hbe23017c_80000000_b9f4ff74_80000000_b9f405f4_30a01804_80000000_b9f4020c; -defparam bootram.RAM0.INIT_1D=256'hb9f41020_30a00000_b0000030_bc160100_bc130134_a6632000_e8603334_12c30000; -defparam bootram.RAM0.INIT_1E=256'h30e08000_b0000000_80000000_b9f405b0_30a01980_12c30000_be030068_80000000; -defparam bootram.RAM0.INIT_1F=256'h80000000_b9f40fac_30a08000_b0000000_30c07c00_b9f40d28_30a00000_b0000030; -defparam bootram.RAM0.INIT_20=256'hea61001c_e9e10000_30600001_10a00000_b9f410e4_80000000_b9f4057c_30a019ac; -defparam bootram.RAM0.INIT_21=256'h30a00000_b000003f_80000000_b9f40550_30a019e8_30210024_b60f0008_eac10020; -defparam bootram.RAM0.INIT_22=256'hb9f4fdc0_80000000_b9f4052c_30a01874_12630000_be230024_80000000_b9f40f9c; -defparam bootram.RAM0.INIT_23=256'hb9f40c94_30a00000_b000003f_30e08000_b0000000_10730000_b810ffb4_80000000; -defparam bootram.RAM0.INIT_24=256'h80000000_b9f404e8_30a01838_80000000_b9f40f18_30a08000_b0000000_30c07c00; -defparam bootram.RAM0.INIT_25=256'hb0000018_80000000_b9f404cc_30a018cc_30600001_b810ff70_10b60000_b9f41050; -defparam bootram.RAM0.INIT_26=256'hb800fed8_80000000_b9f404ac_30a01930_bc230098_80000000_b9f40e80_30a00000; -defparam bootram.RAM0.INIT_27=256'hbc230028_80000000_b9f40ee8_30a00000_b000003f_80000000_b9f4049c_30a01818; -defparam bootram.RAM0.INIT_28=256'h10a00000_b9f4fdc8_b800fe9c_80000000_b9f4fd10_80000000_b9f4047c_30a01874; -defparam bootram.RAM0.INIT_29=256'hb0000000_30c07c00_b9f40bdc_30a00000_b000003f_30e08000_b0000000_b800fe84; -defparam bootram.RAM0.INIT_2A=256'h10b30000_b9f40f98_80000000_b9f40430_30a01838_80000000_b9f40e60_30a08000; -defparam bootram.RAM0.INIT_2B=256'h30a00000_b0000018_30a00001_b9f4fd70_80000000_b9f40418_30a018f8_b800fe50; -defparam bootram.RAM0.INIT_2C=256'h30600080_f8003104_f8603100_30600012_f8003108_b800ff48_80000000_b9f40f70; -defparam bootram.RAM0.INIT_2D=256'hbe23fff8_a4630040_e8603110_a4a500ff_be070088_80000000_b60f0008_f8603108; -defparam bootram.RAM0.INIT_2E=256'hbc23fff8_a4630002_e8603110_f8803110_30800090_f860310c_a0630001_10652800; -defparam bootram.RAM0.INIT_2F=256'hf8603110_30600020_be120038_aa470001_10800000_be230058_a4630080_e8603110; -defparam bootram.RAM0.INIT_30=256'h30c60001_be07001c_f0660000_30e7ffff_e860310c_bc23fff8_a4630002_e8603110; -defparam bootram.RAM0.INIT_31=256'h10640000_b60f0008_30800001_30600068_b810ffd0_30600020_be32ffd8_aa470001; -defparam bootram.RAM0.INIT_32=256'hbe23fff8_a4630040_e8603110_a4a500ff_10640000_b60f0008_f8603110_30600040; -defparam bootram.RAM0.INIT_33=256'ha4630002_e8603110_f8603110_306000d0_30600090_be27000c_f860310c_10652800; -defparam bootram.RAM0.INIT_34=256'he0660000_30800001_be070068_10800000_be23005c_a4630080_e8603110_bc23fff8; -defparam bootram.RAM0.INIT_35=256'hbc23fff8_a4630002_e8603110_f8803110_bc120030_aa470001_f860310c_30800010; -defparam bootram.RAM0.INIT_36=256'hb810ffd4_b800ffc4_30c60001_be070028_30e7ffff_be23001c_a4630080_e8603110; -defparam bootram.RAM0.INIT_37=256'hb60f0008_30800001_10640000_b60f0008_f8603110_30600040_10800000_30800050; -defparam bootram.RAM0.INIT_38=256'h3021ffd0_80000000_b60f0008_80000000_b9f4f964_f9e10000_3021ffe4_10640000; -defparam bootram.RAM0.INIT_39=256'h13260000_12e70000_13050000_12660000_fb21002c_fb010028_fae10024_fa61001c; -defparam bootram.RAM0.INIT_3A=256'hbcb2002c_16572001_bc120030_aa43ffff_12c00000_b810001c_f9e10000_fac10020; -defparam bootram.RAM0.INIT_3B=256'hbe32ffd4_aa43000a_f0730000_10960000_90630060_10b80000_b9f405ec_32730001; -defparam bootram.RAM0.INIT_3C=256'heae10024_eac10020_ea61001c_e9e10000_10640000_f0130000_14999800_32d60001; -defparam bootram.RAM0.INIT_3D=256'hfb010028_fae10024_fa61001c_3021ffd0_30210030_b60f0008_eb21002c_eb010028; -defparam bootram.RAM0.INIT_3E=256'hb8100014_f9e10000_fac10020_13260000_12e70000_13050000_12660000_fb21002c; -defparam bootram.RAM0.INIT_3F=256'h10960000_90630060_10b80000_b9f4051c_32730001_bcb2002c_16572001_12c00000; -defparam bootram.RAM1.INIT_00=256'he9e10000_10640000_f0130000_14999800_32d60001_be32ffdc_aa43000a_f0730000; -defparam bootram.RAM1.INIT_01=256'h3021ffd8_30210030_b60f0008_eb21002c_eb010028_eae10024_eac10020_ea61001c; -defparam bootram.RAM1.INIT_02=256'hb9f404b0_12660000_f9e10000_12e60000_12c50000_fae10024_fac10020_fa61001c; -defparam bootram.RAM1.INIT_03=256'hf0130000_3273ffff_32730001_be32ffec_aa43000a_f0730000_90630060_10b60000; -defparam bootram.RAM1.INIT_04=256'h10c50000_30210028_b60f0008_eae10024_eac10020_ea61001c_e9e10000_10770000; -defparam bootram.RAM1.INIT_05=256'h3021ffe4_3021001c_b60f0008_e9e10000_10a00000_b9f4ff94_f9e10000_3021ffe4; -defparam bootram.RAM1.INIT_06=256'hf9e10000_3021ffe4_3021001c_b60f0008_e9e10000_80000000_b9f40448_f9e10000; -defparam bootram.RAM1.INIT_07=256'hfac10020_fa61001c_3021ffdc_3021001c_b60f0008_e9e10000_10a00000_b9f4ffdc; -defparam bootram.RAM1.INIT_08=256'hb9f40324_10b60000_12c50000_be060024_90c30060_12660000_e0660000_f9e10000; -defparam bootram.RAM1.INIT_09=256'heac10020_ea61001c_e9e10000_10b60000_be26fff0_90c30060_e0730000_32730001; -defparam bootram.RAM1.INIT_0A=256'h12c50000_b9f4ff9c_f9e10000_fac1001c_3021ffe0_30210024_b60f0008_10600000; -defparam bootram.RAM1.INIT_0B=256'h30210020_b60f0008_10600000_eac1001c_e9e10000_30c0000a_b9f402dc_10b60000; -defparam bootram.RAM1.INIT_0C=256'h3021001c_b60f0008_e9e10000_10a00000_b9f4ffc0_f9e10000_3021ffe4_10c50000; -defparam bootram.RAM1.INIT_0D=256'h3021001c_b60f0008_e9e10000_10a00000_b9f4ff48_f9e10000_3021ffe4_10c50000; -defparam bootram.RAM1.INIT_0E=256'h3021ffe0_3021001c_b60f0008_e9e10000_30c0000a_b9f40278_f9e10000_3021ffe4; -defparam bootram.RAM1.INIT_0F=256'he9e10000_10760000_10d60000_b9f40250_f9e10000_10a00000_12c50000_fac1001c; -defparam bootram.RAM1.INIT_10=256'h12c60000_b9f40228_f9e10000_fac1001c_3021ffe0_30210020_b60f0008_eac1001c; -defparam bootram.RAM1.INIT_11=256'hb9f401b8_f9e10000_3021ffe4_30210020_b60f0008_eac1001c_e9e10000_10760000; -defparam bootram.RAM1.INIT_12=256'hb0000000_9404c001_ac870002_94e08001_3021001c_b60f0008_e9e10000_80000000; -defparam bootram.RAM1.INIT_13=256'hf860f81c_b0000000_f860200c_80633000_84632000_84c62800_a866ffff_e880f81c; -defparam bootram.RAM1.INIT_14=256'h94608001_80000000_b60f0008_9404c001_80843800_ac840002_94808001_a4e70002; -defparam bootram.RAM1.INIT_15=256'hf8a0f81c_b0000000_f8a0200c_88a52000_e880f81c_b0000000_9406c001_acc30002; -defparam bootram.RAM1.INIT_16=256'h94e08001_80000000_b60f0008_9404c001_80841800_ac840002_94808001_a4630002; -defparam bootram.RAM1.INIT_17=256'h80633000_84632000_84c62800_a866ffff_e880f820_b0000000_9404c001_ac870002; -defparam bootram.RAM1.INIT_18=256'h9404c001_80843800_ac840002_94808001_a4e70002_f860f820_b0000000_f8602020; -defparam bootram.RAM1.INIT_19=256'hfac10020_f9e10000_fb010028_fae10024_fa61001c_3021ffd4_80000000_b60f0008; -defparam bootram.RAM1.INIT_1A=256'h32600001_be670038_12660000_be060040_90c30060_13050000_12e60000_e0660000; -defparam bootram.RAM1.INIT_1B=256'hc0779800_10b80000_b9f400cc_10730000_be120028_16569800_32c70001_b8100014; -defparam bootram.RAM1.INIT_1C=256'heac10020_ea61001c_e9e10000_10730000_3273ffff_32730001_be26ffe4_90c30060; -defparam bootram.RAM1.INIT_1D=256'hb9f40084_f9e10000_10a00000_3021ffe4_3021002c_b60f0008_eb010028_eae10024; -defparam bootram.RAM1.INIT_1E=256'h10c63000_80000000_b60f0008_f0c51cec_3021001c_b60f0008_e9e10000_30c0000a; -defparam bootram.RAM1.INIT_1F=256'hf9e10000_fa61001c_3021ffe0_80000000_b60f0008_f8653700_64a50405_e4661a28; -defparam bootram.RAM1.INIT_20=256'h32730001_10b30000_e0d31a24_90c60060_b9f4ffc4_10b30000_e0d31cec_12600000; -defparam bootram.RAM1.INIT_21=256'h30210020_b60f0008_ea61001c_e9e10000_bc32ffd8_aa530003_90c60060_b9f4ffbc; -defparam bootram.RAM1.INIT_22=256'h12650000_be120030_aa46000a_12c60000_f9e10000_fac10020_fa61001c_3021ffdc; -defparam bootram.RAM1.INIT_23=256'heac10020_ea61001c_e9e10000_fac5000c_bc03fffc_e8650004_30a33700_64730405; -defparam bootram.RAM1.INIT_24=256'hb810ffc8_30c0000d_b9f4ffac_bc32ffd0_aa430001_e0651cec_30210024_b60f0008; -defparam bootram.RAM1.INIT_25=256'hbe120030_aa46000a_12c60000_f9e10000_fac10020_fa61001c_3021ffdc_64730405; -defparam bootram.RAM1.INIT_26=256'hea61001c_e9e10000_fac3000c_bc040008_e8830004_30633700_64730405_12650000; -defparam bootram.RAM1.INIT_27=256'hb9f4ff44_30c0000d_be32ffd0_aa430001_e0651cec_30210024_b60f0008_eac10020; -defparam bootram.RAM1.INIT_28=256'he8650010_bc03fffc_e8650008_30a53700_64a50405_64730405_b810ffc4_80000000; -defparam bootram.RAM1.INIT_29=256'he8850008_e8650010_bc030014_e8650008_30a53700_64a50405_80000000_b60f0008; -defparam bootram.RAM1.INIT_2A=256'hf9e10000_fac10020_3021ffdc_64a50405_80000000_b60f0008_90630060_be24fff8; -defparam bootram.RAM1.INIT_2B=256'hbe120034_aa53012d_b8000010_32600001_be230040_e8760008_32c53700_fa61001c; -defparam bootram.RAM1.INIT_2C=256'h3240012b_3273ffff_32730001_be03ffe8_e8760008_30a00001_b9f40040_3060ffff; -defparam bootram.RAM1.INIT_2D=256'hb60f0008_eac10020_ea61001c_e9e10000_e8760010_3060ffff_be52000c_16539001; -defparam bootram.RAM1.INIT_2E=256'hbe650048_bc430054_e8601cf0_bc260054_a4c30000_b0008000_e8603324_30210024; -defparam bootram.RAM1.INIT_2F=256'h80000000_80000000_80000000_80000000_10800000_bc660030_e8c01cf0_10660000; -defparam bootram.RAM1.INIT_30=256'h16432800_30630001_bc32ffdc_16443000_30840001_80000000_80000000_80000000; -defparam bootram.RAM1.INIT_31=256'hf8801cf0_e4831a34_10631800_a4630007_e8603324_80000000_b60f0008_bc32ffc8; -defparam bootram.RAM1.INIT_32=256'h3065ffc9_a46300ff_be520024_16459001_3240005a_3065ffa9_90a50060_b800ff9c; -defparam bootram.RAM1.INIT_33=256'h80000000_b60f0008_a46400ff_3085ffd0_be52000c_16459001_32400039_a46300ff; -defparam bootram.RAM1.INIT_34=256'hfae10024_fac10020_fa61001c_f9e10000_fb610034_13250000_fb21002c_3021ffc8; -defparam bootram.RAM1.INIT_35=256'h10650000_30a0ffff_be120034_aa43003a_13660000_e0790000_fb410030_fb010028; -defparam bootram.RAM1.INIT_36=256'heb610034_eb410030_eb21002c_eb010028_eae10024_eac10020_ea61001c_e9e10000; -defparam bootram.RAM1.INIT_37=256'hbe04001c_90840060_30650001_c085c800_30a00001_e8c01cf4_30210038_b60f0008; -defparam bootram.RAM1.INIT_38=256'hb9f4ff28_e0b90001_30a0fffe_b810ffac_bc23ffe4_a4630044_c0662000_a4a300ff; -defparam bootram.RAM1.INIT_39=256'h10791800_fa7b0004_10739800_12761800_66c30404_b9f4ff1c_e0b90002_80000000; -defparam bootram.RAM1.INIT_3A=256'he0b90003_13530000_b9f4fef0_e0b90005_30a0fffd_be38ff74_93040060_e083000b; -defparam bootram.RAM1.INIT_3B=256'hb9f4fec8_64630408_e0b90006_66c3040c_b9f4fed8_e0b90004_66e30404_b9f4fee4; -defparam bootram.RAM1.INIT_3C=256'he0b90008_80000000_b9f4feb0_e0b90007_fafb0008_12f7b000_12d61800_12d61800; -defparam bootram.RAM1.INIT_3D=256'hea7b000c_13580000_10f30000_be130060_f07b0000_1063b000_66c30404_b9f4fea4; -defparam bootram.RAM1.INIT_3E=256'hb9f4fe68_e0b60001_12d9b000_b9f4fe74_c0b6c800_a6d600ff_32d60009_12d8c000; -defparam bootram.RAM1.INIT_3F=256'ha70400ff_c073c000_30980001_e8fb0004_ea7b000c_d0789800_1063b800_66e30404; -defparam bootram.RAM2.INIT_00=256'h64760008_12e73800_e09b0000_eadb0008_a74300ff_be52ffb8_1647c003_107a1800; -defparam bootram.RAM2.INIT_01=256'he0b7000a_12d61800_b9f4fe10_107a1800_12c7b000_10632000_e0b70009_12f9b800; -defparam bootram.RAM2.INIT_02=256'hbe32fe60_1643b000_a46300ff_a6d600ff_1063c000_16d60000_67030404_b9f4fe04; -defparam bootram.RAM2.INIT_03=256'h80000000_b60f0008_bc23fff8_a4630100_e8603b10_10a00000_b810fe58_30a0fffb; -defparam bootram.RAM2.INIT_04=256'hbc23fff8_a4630100_e8603b10_a4a500ff_80884800_a1292000_a508007f_a5290600; -defparam bootram.RAM2.INIT_05=256'h10650000_be050018_f8803b10_a0840100_f8603b18_a46600ff_f8803b10_f8e03b00; -defparam bootram.RAM2.INIT_06=256'h10e60000_10c00000_80000000_b60f0008_e8603b00_bc23fff8_a4630100_e8603b10; -defparam bootram.RAM2.INIT_07=256'hb9f4ff84_f8603b14_30600001_31200400_31000008_10a00000_f9e10000_3021ffe4; -defparam bootram.RAM2.INIT_08=256'hfa61002c_12c50000_fac10030_3021ffc4_3021001c_b60f0008_e9e10000_80000000; -defparam bootram.RAM2.INIT_09=256'hf8003b18_30600400_12670000_b9f4ff3c_fae10034_13060000_f9e10000_fb010038; -defparam bootram.RAM2.INIT_0A=256'h30800428_f8603b18_30600001_fac03b00_f8603b04_3060000b_66d60408_f8603b10; -defparam bootram.RAM2.INIT_0B=256'h12e00000_12d30000_be18009c_80000000_b9f4ff00_f8603b10_30600528_f8803b10; -defparam bootram.RAM2.INIT_0C=256'he8803b0c_80000000_b9f4fed8_f8803b10_30800500_f8603b10_30600400_3261001c; -defparam bootram.RAM2.INIT_0D=256'hf8610028_e8603b00_f8810024_e8803b04_f8610020_e8603b08_f881001c_14b7c000; -defparam bootram.RAM2.INIT_0E=256'h30840001_d0762000_c0732000_30a00010_10800000_beb20034_16459003_22400010; -defparam bootram.RAM2.INIT_0F=256'hbc25ffd8_b800ff8c_12d62800_beb20020_1658b803_12f72800_bc32fff0_16442800; -defparam bootram.RAM2.INIT_10=256'heac10030_ea61002c_e9e10000_f8003b18_12d62800_be52ff7c_1658b803_12f72800; -defparam bootram.RAM2.INIT_11=256'h30a00001_3021ffe4_30e00000_b0009f00_3021003c_b60f0008_eb010038_eae10034; -defparam bootram.RAM2.INIT_12=256'ha463ffff_b00000ff_e9e10000_31200400_b9f4fe34_f9e10000_31000020_30c00001; -defparam bootram.RAM2.INIT_13=256'he9e10000_bc030010_f9e10000_3021ffe4_e860f828_b0000000_3021001c_b60f0008; -defparam bootram.RAM2.INIT_14=256'hbe120010_aa440020_a48400ff_64830008_80000000_b9f4ffa8_3021001c_b60f0008; -defparam bootram.RAM2.INIT_15=256'h16439001_32400018_bcb2fff0_16439001_32400015_80000000_b9f40318_a46300ff; -defparam bootram.RAM2.INIT_16=256'hf9e10000_3021ffe4_e860f824_b0000000_b800ffb0_f860f828_b0000000_bc52ffe4; -defparam bootram.RAM2.INIT_17=256'ha48400ff_64830008_80000000_b9f4ff40_3021001c_b60f0008_e9e10000_bc030010; -defparam bootram.RAM2.INIT_18=256'hbcb2fff0_16459001_32400015_80000000_b9f402b0_a4a300ff_be120010_aa440020; -defparam bootram.RAM2.INIT_19=256'hf860f824_b0000000_f8a0f828_b0000000_e0651a2e_bc52ffe4_16459001_32400018; -defparam bootram.RAM2.INIT_1A=256'hbe520040_16459001_3240003e_30a50001_10a00000_b810001c_3021ffbc_b800ffa4; -defparam bootram.RAM2.INIT_1B=256'h30a50001_bc32ffd8_aa4300aa_bc12ffe0_aa4300ff_e0630004_10612800_10600000; -defparam bootram.RAM2.INIT_1C=256'hb60f0008_30210044_b60f0008_30600001_be32ffc8_aa440099_e0830004_10612800; -defparam bootram.RAM2.INIT_1D=256'hb9f402bc_f9e10000_10b60000_10c50000_12c00000_fac1001c_3021ffe0_30210044; -defparam bootram.RAM2.INIT_1E=256'h3021ffd4_30210020_b60f0008_eac1001c_e9e10000_80000000_99fcb000_30e00024; -defparam bootram.RAM2.INIT_1F=256'h30c01a48_10b60000_30c00006_b9f4fd20_f9e10000_10f60000_32c1001c_fac10028; -defparam bootram.RAM2.INIT_20=256'h6464001f_eac10028_e9e10000_a884ffff_80841800_14830000_30e00006_b9f401f8; -defparam bootram.RAM2.INIT_21=256'h65240405_65040403_64e40003_64a40007_64c40005_e0803a03_3021002c_b60f0008; -defparam bootram.RAM2.INIT_22=256'h10842000_a4a50008_80e73000_90a40041_a4e70004_80c62800_a4c60002_64640407; -defparam bootram.RAM2.INIT_23=256'h80634800_81294000_a5290040_81082000_a5080020_80842800_a4840010_80a53800; -defparam bootram.RAM2.INIT_24=256'h65050405_64e50403_64c50003_64650007_64850005_a4a500ff_a46300ff_b60f0008; -defparam bootram.RAM2.INIT_25=256'h10a52800_a4630008_80c62000_90650041_a4c60004_80841800_a4840002_65250407; -defparam bootram.RAM2.INIT_26=256'h81294000_81083800_a5080040_80e72800_a4e70020_80a51800_a4a50010_80633000; -defparam bootram.RAM2.INIT_27=256'ha6c5ffff_b00000ff_fac1001c_3021ffe0_80000000_b60f0008_f9203a00_a52900ff; -defparam bootram.RAM2.INIT_28=256'hb9f4ff6c_30a0ffaa_b9f4ff74_30a0ffff_b9f4ff7c_30a0ffff_b9f4ff84_f9e10000; -defparam bootram.RAM2.INIT_29=256'hb9f4ff4c_30a00061_b9f4ff54_30a00032_b9f4ff5c_a2d60000_b0000b00_30a0ff99; -defparam bootram.RAM2.INIT_2A=256'hb9f4ff2c_30a0ff81_b9f4ff34_30a00032_b9f4ff3c_10b60000_b9f4ff44_64b60008; -defparam bootram.RAM2.INIT_2B=256'hb9f4ff0c_30a0ffa1_b9f4ff14_30a00030_b9f4ff1c_64b60010_b9f4ff24_30a0000b; -defparam bootram.RAM2.INIT_2C=256'hb9f4feec_10a00000_b9f4fef4_30a00020_b9f4fefc_30a0000e_b9f4ff04_10a00000; -defparam bootram.RAM2.INIT_2D=256'h30a01a50_30210020_b60f0008_eac1001c_e9e10000_10a00000_b9f4fee4_30a00020; -defparam bootram.RAM2.INIT_2E=256'h80000000_b6110000_30a0ffff_b9f4eaa0_80000000_b9f4f3d8_f9e10000_3021ffe4; -defparam bootram.RAM2.INIT_2F=256'h16479003_22400003_80000000_b60f0008_80000000_b60f0008_80000000_b6910000; -defparam bootram.RAM2.INIT_30=256'hbc320040_16432000_e8660000_e8850000_bc230050_a4630003_80653000_beb2005c; -defparam bootram.RAM2.INIT_31=256'haa47ffff_30e7ffff_30c60004_be52ffe0_16479003_22400003_30a50004_30e7fffc; -defparam bootram.RAM2.INIT_32=256'h30e7ffff_30c60001_30a50001_be320020_16434000_e0660000_e1050000_bc120028; -defparam bootram.RAM2.INIT_33=256'h16479003_2240000f_14634000_b60f0008_10600000_b60f0008_bc32ffe0_aa47ffff; -defparam bootram.RAM2.INIT_34=256'h11040000_bc070024_11050000_be030034_a4630003_80662800_10850000_beb20018; -defparam bootram.RAM2.INIT_35=256'hb60f0008_30c60001_be32fff0_16474000_31080001_f0680000_e0660000_10e72000; -defparam bootram.RAM2.INIT_36=256'hf8880008_e8860008_f8680004_e8660004_f8880000_30e7fff0_e8860000_10650000; -defparam bootram.RAM2.INIT_37=256'h22400003_31080010_be52ffd0_16479003_2240000f_f868000c_30c60010_e866000c; -defparam bootram.RAM2.INIT_38=256'h16479003_22400003_d8682000_30e7fffc_c8662000_10800000_bcb2002c_16479003; -defparam bootram.RAM2.INIT_39=256'h3021ffe0_e86017b8_10880000_b810ff68_11044000_10c43000_30840004_be52ffec; -defparam bootram.RAM2.INIT_3A=256'he8730000_3273fffc_99fc1800_bc120018_aa43ffff_326017b8_f9e10000_fa61001c; -defparam bootram.RAM2.INIT_3B=256'hd9e00800_3021fff8_30210020_b60f0008_ea61001c_e9e10000_bc32fff0_aa43ffff; -defparam bootram.RAM2.INIT_3C=256'h3021fff8_30210008_b60f0008_c9e00800_80000000_b9f4ffb0_80000000_b9f4e958; -defparam bootram.RAM2.INIT_3D=256'h00000000_ffffffff_30210008_b60f0008_c9e00800_80000000_b9f4e8d0_d9e00800; -defparam bootram.RAM2.INIT_3E=256'h65207265_696d6167_61696e20_523a206d_4552524f_4f4b0000_00000000_ffffffff; -defparam bootram.RAM2.INIT_3F=256'h64652e00_64206d6f_206c6f61_49484558_20696e20_4261636b_65642120_7475726e; -defparam bootram.RAM3.INIT_00=256'h74696e67_53746172_720a0000_6f616465_6f6f746c_322b2062_55535250_4e4f4b00; -defparam bootram.RAM3.INIT_01=256'h523a2072_4552524f_2e000000_6d6f6465_61666520_696e2073_50322b20_20555352; -defparam bootram.RAM3.INIT_02=256'h73207368_20546869_72616d21_70726f67_61696e20_6f6d206d_6e206672_65747572; -defparam bootram.RAM3.INIT_03=256'h6f207361_523a206e_4552524f_6e210000_61707065_65722068_206e6576_6f756c64; -defparam bootram.RAM3.INIT_04=256'h20492061_626c652e_61696c61_65206176_696d6167_61726520_69726d77_66652066; -defparam bootram.RAM3.INIT_05=256'h20494845_6c6f6164_20746f20_66726565_65656c20_6b2e2046_62726963_6d206120; -defparam bootram.RAM3.INIT_06=256'h69642070_2076616c_20666f72_6b696e67_43686563_2e000000_2052414d_5820746f; -defparam bootram.RAM3.INIT_07=256'h64207072_56616c69_2e2e2e00_6d616765_47412069_6e204650_6374696f_726f6475; -defparam bootram.RAM3.INIT_08=256'h7474656d_642e2041_666f756e_61676520_4120696d_20465047_74696f6e_6f647563; -defparam bootram.RAM3.INIT_09=256'h64756374_2070726f_616c6964_4e6f2076_742e0000_20626f6f_6720746f_7074696e; -defparam bootram.RAM3.INIT_0A=256'h74696e67_74656d70_2e0a4174_6f756e64_67652066_20696d61_46504741_696f6e20; -defparam bootram.RAM3.INIT_0B=256'h2e2e2e00_77617265_6669726d_696f6e20_64756374_2070726f_6c6f6164_20746f20; -defparam bootram.RAM3.INIT_0C=256'h756e642e_6520666f_6d776172_20666972_74696f6e_6f647563_64207072_56616c69; -defparam bootram.RAM3.INIT_0D=256'h6f6d206d_6e206672_65747572_523a2052_4552524f_2e2e2e00_64696e67_204c6f61; -defparam bootram.RAM3.INIT_0E=256'h65722068_206e6576_6f756c64_73207368_20546869_72616d21_70726f67_61696e20; -defparam bootram.RAM3.INIT_0F=256'h6669726d_696f6e20_64756374_2070726f_616c6964_4e6f2076_6e210000_61707065; -defparam bootram.RAM3.INIT_10=256'h77617265_6669726d_61666520_6e672073_54727969_6e642e20_20666f75_77617265; -defparam bootram.RAM3.INIT_11=256'h09c407d0_13880d05_00002710_01b200d9_05160364_14580a2c_05050400_2e2e2e00; -defparam bootram.RAM3.INIT_12=256'h00202020_00000000_6f72740a_0a0a6162_b8080000_b0000000_10101200_06820594; -defparam bootram.RAM3.INIT_13=256'h20881010_20202020_20202020_20202020_20202020_28282820_20202828_20202020; -defparam bootram.RAM3.INIT_14=256'h10104141_10101010_04040410_04040404_10040404_10101010_10101010_10101010; -defparam bootram.RAM3.INIT_15=256'h10104242_10101010_01010101_01010101_01010101_01010101_01010101_41414141; -defparam bootram.RAM3.INIT_16=256'h20000000_10101010_02020202_02020202_02020202_02020202_02020202_42424242; -defparam bootram.RAM3.INIT_17=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_18=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_19=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_1A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_1B=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_1C=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_1D=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_1E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_1F=256'h20202020_20202020_20202020_20202020_28282020_20282828_20202020_20202020; -defparam bootram.RAM3.INIT_20=256'h10101010_04041010_04040404_04040404_10101010_10101010_10101010_88101010; -defparam bootram.RAM3.INIT_21=256'h10101010_01010110_01010101_01010101_01010101_01010101_41414101_10414141; -defparam bootram.RAM3.INIT_22=256'h10101020_02020210_02020202_02020202_02020202_02020202_42424202_10424242; -defparam bootram.RAM3.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM0.INIT_11=256'hb9f4062c_32c1001c_3261004c_f8610028_f9e10000_fac100d0_fa6100cc_3061002c; +defparam bootram.RAM0.INIT_12=256'h22407fff_e8610024_bc230038_30a01984_10b30000_b9f40da4_10d60000_10b30000; +defparam bootram.RAM0.INIT_13=256'h30a01984_bc120040_aa430001_30a0194c_e061001c_10a30000_be520034_16439003; +defparam bootram.RAM0.INIT_14=256'he8e10020_e8c10028_b800ffa8_80000000_b9f406c0_b800ffb4_80000000_b9f406cc; +defparam bootram.RAM0.INIT_15=256'h80000000_b9f40694_b800ff88_80000000_b9f406a0_30a0194c_80000000_b9f4155c; +defparam bootram.RAM0.INIT_16=256'hb800ff60_80000000_b9f40678_30a01950_80000000_b9f411e8_30a08000_b0000000; +defparam bootram.RAM0.INIT_17=256'hbe030020_30a00050_31000001_30e1001c_30c000f7_f9e10000_a46500ff_3021ffe0; +defparam bootram.RAM0.INIT_18=256'hb810ffe8_30210020_b60f0008_e9e10000_80000000_b9f40330_f081001c_3080005e; +defparam bootram.RAM0.INIT_19=256'h31000001_b9f40280_f9e10000_30e1001c_30c000f7_30a00050_3021ffe0_308000dc; +defparam bootram.RAM0.INIT_1A=256'h3021ffdc_30210020_b60f0008_6463001f_3063ffff_a863005e_e9e10000_e061001c; +defparam bootram.RAM0.INIT_1B=256'h30a0a120_b0000007_9403c001_ac640002_94808001_fac10020_fa61001c_f9e10000; +defparam bootram.RAM0.INIT_1C=256'hb9f40ea8_80000000_b9f4082c_f800200c_80000000_b9f4fe74_f860200c_306000ff; +defparam bootram.RAM0.INIT_1D=256'h80000000_b9f4ff6c_80000000_b9f4059c_30a01988_80000000_b9f409ec_80000000; +defparam bootram.RAM0.INIT_1E=256'h30a00000_b0000030_bc160100_bc130134_a6632000_e8603334_12c30000_be23017c; +defparam bootram.RAM0.INIT_1F=256'hb0000000_80000000_b9f40558_30a01b04_12c30000_be030068_80000000_b9f41180; +defparam bootram.RAM0.INIT_20=256'hb9f41094_30a08000_b0000000_30c07c00_b9f40e70_30a00000_b0000030_30e08000; +defparam bootram.RAM0.INIT_21=256'he9e10000_30600001_10a00000_b9f41244_80000000_b9f40524_30a01b30_80000000; +defparam bootram.RAM0.INIT_22=256'hb000003f_80000000_b9f404f8_30a01b6c_30210024_b60f0008_eac10020_ea61001c; +defparam bootram.RAM0.INIT_23=256'h80000000_b9f404d4_30a019f8_12630000_be230024_80000000_b9f410fc_30a00000; +defparam bootram.RAM0.INIT_24=256'h30a00000_b000003f_30e08000_b0000000_10730000_b810ffb4_80000000_b9f4fd9c; +defparam bootram.RAM0.INIT_25=256'hb9f40490_30a019bc_80000000_b9f41000_30a08000_b0000000_30c07c00_b9f40ddc; +defparam bootram.RAM0.INIT_26=256'h80000000_b9f40474_30a01a50_30600001_b810ff70_10b60000_b9f411b0_80000000; +defparam bootram.RAM0.INIT_27=256'h80000000_b9f40454_30a01ab4_bc230098_80000000_b9f41000_30a00000_b0000018; +defparam bootram.RAM0.INIT_28=256'h80000000_b9f41048_30a00000_b000003f_80000000_b9f40444_30a0199c_b800fed8; +defparam bootram.RAM0.INIT_29=256'hb9f4fda4_b800fe9c_80000000_b9f4fcec_80000000_b9f40424_30a019f8_bc230028; +defparam bootram.RAM0.INIT_2A=256'h30c07c00_b9f40d24_30a00000_b000003f_30e08000_b0000000_b800fe84_10a00000; +defparam bootram.RAM0.INIT_2B=256'hb9f410f8_80000000_b9f403d8_30a019bc_80000000_b9f40f48_30a08000_b0000000; +defparam bootram.RAM0.INIT_2C=256'hb9f4fc60_30a00001_b9f4fd4c_80000000_b9f403c0_30a01a7c_b800fe50_10b30000; +defparam bootram.RAM0.INIT_2D=256'hfa610020_3021ffd4_b800ff40_80000000_b9f410c8_30a00000_b0000018_30a07530; +defparam bootram.RAM0.INIT_2E=256'hfac10024_30e00001_30c1001c_12e70000_f0c1001c_fae10028_10b30000_a66500ff; +defparam bootram.RAM0.INIT_2F=256'h10b30000_10f60000_10d70000_10830000_be030030_12c80000_b9f40898_f9e10000; +defparam bootram.RAM0.INIT_30=256'h10640000_a8830001_6463001f_3063ffff_80000000_b9f407d0_30800001_be76001c; +defparam bootram.RAM0.INIT_31=256'hfac10024_3021ffcc_3021002c_b60f0008_eae10028_eac10024_ea610020_e9e10000; +defparam bootram.RAM0.INIT_32=256'hf9e10000_12c80000_12e70000_13250000_13060000_fb210030_fb01002c_fae10028; +defparam bootram.RAM0.INIT_33=256'h32d6ffff_e0770000_f301001c_30e00002_be76005c_30c1001c_10b90000_fa610020; +defparam bootram.RAM0.INIT_34=256'hbe33ffcc_32f70001_b9f4089c_30a0000a_12630000_33180001_b9f407f8_f061001d; +defparam bootram.RAM0.INIT_35=256'heb210030_eb01002c_eae10028_eac10024_ea610020_e9e10000_10730000_10b90000; +defparam bootram.RAM0.INIT_36=256'h80000000_b9f4f998_f9e10000_3021ffe4_30600001_b810ffe0_30210034_b60f0008; +defparam bootram.RAM0.INIT_37=256'h12660000_fb21002c_fb010028_fae10024_fa61001c_3021ffd0_80000000_b60f0008; +defparam bootram.RAM0.INIT_38=256'haa43ffff_12c00000_b810001c_f9e10000_fac10020_13260000_12e70000_13050000; +defparam bootram.RAM0.INIT_39=256'h10960000_90630060_10b80000_b9f405ec_32730001_bcb2002c_16572001_bc120030; +defparam bootram.RAM0.INIT_3A=256'he9e10000_10640000_f0130000_14999800_32d60001_be32ffd4_aa43000a_f0730000; +defparam bootram.RAM0.INIT_3B=256'h3021ffd0_30210030_b60f0008_eb21002c_eb010028_eae10024_eac10020_ea61001c; +defparam bootram.RAM0.INIT_3C=256'h13260000_12e70000_13050000_12660000_fb21002c_fb010028_fae10024_fa61001c; +defparam bootram.RAM0.INIT_3D=256'hb9f4051c_32730001_bcb2002c_16572001_12c00000_b8100014_f9e10000_fac10020; +defparam bootram.RAM0.INIT_3E=256'h14999800_32d60001_be32ffdc_aa43000a_f0730000_10960000_90630060_10b80000; +defparam bootram.RAM0.INIT_3F=256'heb21002c_eb010028_eae10024_eac10020_ea61001c_e9e10000_10640000_f0130000; +defparam bootram.RAM1.INIT_00=256'h12e60000_12c50000_fae10024_fac10020_fa61001c_3021ffd8_30210030_b60f0008; +defparam bootram.RAM1.INIT_01=256'hbe32ffec_aa43000a_f0730000_90630060_10b60000_b9f404b0_12660000_f9e10000; +defparam bootram.RAM1.INIT_02=256'heae10024_eac10020_ea61001c_e9e10000_10770000_f0130000_3273ffff_32730001; +defparam bootram.RAM1.INIT_03=256'he9e10000_10a00000_b9f4ff94_f9e10000_3021ffe4_10c50000_30210028_b60f0008; +defparam bootram.RAM1.INIT_04=256'hb60f0008_e9e10000_80000000_b9f40448_f9e10000_3021ffe4_3021001c_b60f0008; +defparam bootram.RAM1.INIT_05=256'h3021001c_b60f0008_e9e10000_10a00000_b9f4ffdc_f9e10000_3021ffe4_3021001c; +defparam bootram.RAM1.INIT_06=256'hbe060024_90c30060_12660000_e0660000_f9e10000_fac10020_fa61001c_3021ffdc; +defparam bootram.RAM1.INIT_07=256'h10b60000_be26fff0_90c30060_e0730000_32730001_b9f40324_10b60000_12c50000; +defparam bootram.RAM1.INIT_08=256'hfac1001c_3021ffe0_30210024_b60f0008_10600000_eac10020_ea61001c_e9e10000; +defparam bootram.RAM1.INIT_09=256'heac1001c_e9e10000_30c0000a_b9f402dc_10b60000_12c50000_b9f4ff9c_f9e10000; +defparam bootram.RAM1.INIT_0A=256'h10a00000_b9f4ffc0_f9e10000_3021ffe4_10c50000_30210020_b60f0008_10600000; +defparam bootram.RAM1.INIT_0B=256'h10a00000_b9f4ff48_f9e10000_3021ffe4_10c50000_3021001c_b60f0008_e9e10000; +defparam bootram.RAM1.INIT_0C=256'he9e10000_30c0000a_b9f40278_f9e10000_3021ffe4_3021001c_b60f0008_e9e10000; +defparam bootram.RAM1.INIT_0D=256'hb9f40250_f9e10000_10a00000_12c50000_fac1001c_3021ffe0_3021001c_b60f0008; +defparam bootram.RAM1.INIT_0E=256'hfac1001c_3021ffe0_30210020_b60f0008_eac1001c_e9e10000_10760000_10d60000; +defparam bootram.RAM1.INIT_0F=256'h30210020_b60f0008_eac1001c_e9e10000_10760000_12c60000_b9f40228_f9e10000; +defparam bootram.RAM1.INIT_10=256'h94e08001_3021001c_b60f0008_e9e10000_80000000_b9f401b8_f9e10000_3021ffe4; +defparam bootram.RAM1.INIT_11=256'h80633000_84632000_84c62800_a866ffff_e880f81c_b0000000_9404c001_ac870002; +defparam bootram.RAM1.INIT_12=256'h9404c001_80843800_ac840002_94808001_a4e70002_f860f81c_b0000000_f860200c; +defparam bootram.RAM1.INIT_13=256'h88a52000_e880f81c_b0000000_9406c001_acc30002_94608001_80000000_b60f0008; +defparam bootram.RAM1.INIT_14=256'h9404c001_80841800_ac840002_94808001_a4630002_f8a0f81c_b0000000_f8a0200c; +defparam bootram.RAM1.INIT_15=256'ha866ffff_e880f820_b0000000_9404c001_ac870002_94e08001_80000000_b60f0008; +defparam bootram.RAM1.INIT_16=256'h94808001_a4e70002_f860f820_b0000000_f8602020_80633000_84632000_84c62800; +defparam bootram.RAM1.INIT_17=256'hfae10024_fa61001c_3021ffd4_80000000_b60f0008_9404c001_80843800_ac840002; +defparam bootram.RAM1.INIT_18=256'hbe060040_90c30060_13050000_12e60000_e0660000_fac10020_f9e10000_fb010028; +defparam bootram.RAM1.INIT_19=256'h10730000_be120028_16569800_32c70001_b8100014_32600001_be670038_12660000; +defparam bootram.RAM1.INIT_1A=256'h10730000_3273ffff_32730001_be26ffe4_90c30060_c0779800_10b80000_b9f400cc; +defparam bootram.RAM1.INIT_1B=256'h3021ffe4_3021002c_b60f0008_eb010028_eae10024_eac10020_ea61001c_e9e10000; +defparam bootram.RAM1.INIT_1C=256'hf0c51e7c_3021001c_b60f0008_e9e10000_30c0000a_b9f40084_f9e10000_10a00000; +defparam bootram.RAM1.INIT_1D=256'h80000000_b60f0008_f8653700_64a50405_e4661bac_10c63000_80000000_b60f0008; +defparam bootram.RAM1.INIT_1E=256'h90c60060_b9f4ffc4_10b30000_e0d31e7c_12600000_f9e10000_fa61001c_3021ffe0; +defparam bootram.RAM1.INIT_1F=256'he9e10000_bc32ffd8_aa530003_90c60060_b9f4ffbc_32730001_10b30000_e0d31ba8; +defparam bootram.RAM1.INIT_20=256'h12c60000_f9e10000_fac10020_fa61001c_3021ffdc_30210020_b60f0008_ea61001c; +defparam bootram.RAM1.INIT_21=256'hfac5000c_bc03fffc_e8650004_30a33700_64730405_12650000_be120030_aa46000a; +defparam bootram.RAM1.INIT_22=256'hbc32ffd0_aa430001_e0651e7c_30210024_b60f0008_eac10020_ea61001c_e9e10000; +defparam bootram.RAM1.INIT_23=256'hf9e10000_fac10020_fa61001c_3021ffdc_64730405_b810ffc8_30c0000d_b9f4ffac; +defparam bootram.RAM1.INIT_24=256'hbc040008_e8830004_30633700_64730405_12650000_be120030_aa46000a_12c60000; +defparam bootram.RAM1.INIT_25=256'haa430001_e0651e7c_30210024_b60f0008_eac10020_ea61001c_e9e10000_fac3000c; +defparam bootram.RAM1.INIT_26=256'h30a53700_64a50405_64730405_b810ffc4_80000000_b9f4ff44_30c0000d_be32ffd0; +defparam bootram.RAM1.INIT_27=256'he8650008_30a53700_64a50405_80000000_b60f0008_e8650010_bc03fffc_e8650008; +defparam bootram.RAM1.INIT_28=256'h64a50405_80000000_b60f0008_90630060_be24fff8_e8850008_e8650010_bc030014; +defparam bootram.RAM1.INIT_29=256'h32600001_be230040_e8760008_32c53700_fa61001c_f9e10000_fac10020_3021ffdc; +defparam bootram.RAM1.INIT_2A=256'hbe03ffe8_e8760008_30a00001_b9f401e0_3060ffff_be120034_aa53012d_b8000010; +defparam bootram.RAM1.INIT_2B=256'he9e10000_e8760010_3060ffff_be52000c_16539001_3240012b_3273ffff_32730001; +defparam bootram.RAM1.INIT_2C=256'h32400004_a463000f_e8603324_f8003108_30210024_b60f0008_eac10020_ea61001c; +defparam bootram.RAM1.INIT_2D=256'ha46300ff_64a30008_e4641bb8_10831800_30600004_10831800_beb20010_16439001; +defparam bootram.RAM1.INIT_2E=256'ha4a500ff_be070088_80000000_b60f0008_f8603108_30600080_f8a03104_f8603100; +defparam bootram.RAM1.INIT_2F=256'hf8803110_30800090_f860310c_a0630001_10652800_be23fff8_a4630040_e8603110; +defparam bootram.RAM1.INIT_30=256'haa470001_10800000_be230058_a4630080_e8603110_bc23fff8_a4630002_e8603110; +defparam bootram.RAM1.INIT_31=256'h30e7ffff_e860310c_bc23fff8_a4630002_e8603110_f8603110_30600020_be120038; +defparam bootram.RAM1.INIT_32=256'h30600068_b810ffd0_30600020_be32ffd8_aa470001_30c60001_be07001c_f0660000; +defparam bootram.RAM1.INIT_33=256'ha4a500ff_10640000_b60f0008_f8603110_30600040_10640000_b60f0008_30800001; +defparam bootram.RAM1.INIT_34=256'h306000d0_30600090_be27000c_f860310c_10652800_be23fff8_a4630040_e8603110; +defparam bootram.RAM1.INIT_35=256'h10800000_be23005c_a4630080_e8603110_bc23fff8_a4630002_e8603110_f8603110; +defparam bootram.RAM1.INIT_36=256'hf8803110_bc120030_aa470001_f860310c_30800010_e0660000_30800001_be070068; +defparam bootram.RAM1.INIT_37=256'hbe070028_30e7ffff_be23001c_a4630080_e8603110_bc23fff8_a4630002_e8603110; +defparam bootram.RAM1.INIT_38=256'hb60f0008_f8603110_30600040_10800000_30800050_b810ffd4_b800ffc4_30c60001; +defparam bootram.RAM1.INIT_39=256'hbc260054_a4c30000_b0008000_e8603324_10640000_b60f0008_30800001_10640000; +defparam bootram.RAM1.INIT_3A=256'h80000000_10800000_bc660030_e8c01e80_10660000_be650048_bc430054_e8601e80; +defparam bootram.RAM1.INIT_3B=256'h16443000_30840001_80000000_80000000_80000000_80000000_80000000_80000000; +defparam bootram.RAM1.INIT_3C=256'ha4630007_e8603324_80000000_b60f0008_bc32ffc8_16432800_30630001_bc32ffdc; +defparam bootram.RAM1.INIT_3D=256'h16459001_3240005a_3065ffa9_90a50060_b800ff9c_f8801e80_e4831bc4_10631800; +defparam bootram.RAM1.INIT_3E=256'h3085ffd0_be52000c_16459001_32400039_a46300ff_3065ffc9_a46300ff_be520024; +defparam bootram.RAM1.INIT_3F=256'hf9e10000_fb610034_13250000_fb21002c_3021ffc8_80000000_b60f0008_a46400ff; +defparam bootram.RAM2.INIT_00=256'haa43003a_13660000_e0790000_fb410030_fb010028_fae10024_fac10020_fa61001c; +defparam bootram.RAM2.INIT_01=256'heb010028_eae10024_eac10020_ea61001c_e9e10000_10650000_30a0ffff_be120034; +defparam bootram.RAM2.INIT_02=256'hc085c800_30a00001_e8c01e84_30210038_b60f0008_eb610034_eb410030_eb21002c; +defparam bootram.RAM2.INIT_03=256'hb810ffac_bc23ffe4_a4630044_c0662000_a4a300ff_be04001c_90840060_30650001; +defparam bootram.RAM2.INIT_04=256'h12761800_66c30404_b9f4ff1c_e0b90002_80000000_b9f4ff28_e0b90001_30a0fffe; +defparam bootram.RAM2.INIT_05=256'he0b90005_30a0fffd_be38ff74_93040060_e083000b_10791800_fa7b0004_10739800; +defparam bootram.RAM2.INIT_06=256'h66c3040c_b9f4fed8_e0b90004_66e30404_b9f4fee4_e0b90003_13530000_b9f4fef0; +defparam bootram.RAM2.INIT_07=256'he0b90007_fafb0008_12f7b000_12d61800_12d61800_b9f4fec8_64630408_e0b90006; +defparam bootram.RAM2.INIT_08=256'hbe130060_f07b0000_1063b000_66c30404_b9f4fea4_e0b90008_80000000_b9f4feb0; +defparam bootram.RAM2.INIT_09=256'hb9f4fe74_c0b6c800_a6d600ff_32d60009_12d8c000_ea7b000c_13580000_10f30000; +defparam bootram.RAM2.INIT_0A=256'he8fb0004_ea7b000c_d0789800_1063b800_66e30404_b9f4fe68_e0b60001_12d9b000; +defparam bootram.RAM2.INIT_0B=256'headb0008_a74300ff_be52ffb8_1647c003_107a1800_a70400ff_c073c000_30980001; +defparam bootram.RAM2.INIT_0C=256'h107a1800_12c7b000_10632000_e0b70009_12f9b800_64760008_12e73800_e09b0000; +defparam bootram.RAM2.INIT_0D=256'ha6d600ff_1063c000_16d60000_67030404_b9f4fe04_e0b7000a_12d61800_b9f4fe10; +defparam bootram.RAM2.INIT_0E=256'ha4630100_e8603b10_10a00000_b810fe58_30a0fffb_be32fe60_1643b000_a46300ff; +defparam bootram.RAM2.INIT_0F=256'ha4a500ff_80884800_a1292000_a508007f_a5290600_80000000_b60f0008_bc23fff8; +defparam bootram.RAM2.INIT_10=256'ha0840100_f8603b18_a46600ff_f8803b10_f8e03b00_bc23fff8_a4630100_e8603b10; +defparam bootram.RAM2.INIT_11=256'hb60f0008_e8603b00_bc23fff8_a4630100_e8603b10_10650000_be050018_f8803b10; +defparam bootram.RAM2.INIT_12=256'h31200400_31000008_10a00000_f9e10000_3021ffe4_10e60000_10c00000_80000000; +defparam bootram.RAM2.INIT_13=256'h3021ffc4_3021001c_b60f0008_e9e10000_80000000_b9f4ff84_f8603b14_30600001; +defparam bootram.RAM2.INIT_14=256'hb9f4ff3c_fae10034_13060000_f9e10000_fb010038_fa61002c_12c50000_fac10030; +defparam bootram.RAM2.INIT_15=256'hfac03b00_f8603b04_3060000b_66d60408_f8603b10_f8003b18_30600400_12670000; +defparam bootram.RAM2.INIT_16=256'h80000000_b9f4ff00_f8603b10_30600528_f8803b10_30800428_f8603b18_30600001; +defparam bootram.RAM2.INIT_17=256'hf8803b10_30800500_f8603b10_30600400_3261001c_12e00000_12d30000_be18009c; +defparam bootram.RAM2.INIT_18=256'he8803b04_f8610020_e8603b08_f881001c_14b7c000_e8803b0c_80000000_b9f4fed8; +defparam bootram.RAM2.INIT_19=256'h30a00010_10800000_beb20034_16459003_22400010_f8610028_e8603b00_f8810024; +defparam bootram.RAM2.INIT_1A=256'hbeb20020_1658b803_12f72800_bc32fff0_16442800_30840001_d0762000_c0732000; +defparam bootram.RAM2.INIT_1B=256'hf8003b18_12d62800_be52ff7c_1658b803_12f72800_bc25ffd8_b800ff8c_12d62800; +defparam bootram.RAM2.INIT_1C=256'hb0009f00_3021003c_b60f0008_eb010038_eae10034_eac10030_ea61002c_e9e10000; +defparam bootram.RAM2.INIT_1D=256'h31200400_b9f4fe34_f9e10000_31000020_30c00001_30a00001_3021ffe4_30e00000; +defparam bootram.RAM2.INIT_1E=256'h3021ffe4_e860f828_b0000000_3021001c_b60f0008_a463ffff_b00000ff_e9e10000; +defparam bootram.RAM2.INIT_1F=256'h64830008_80000000_b9f4ffa8_3021001c_b60f0008_e9e10000_bc030010_f9e10000; +defparam bootram.RAM2.INIT_20=256'h16439001_32400015_80000000_b9f40330_a46300ff_be120010_aa440020_a48400ff; +defparam bootram.RAM2.INIT_21=256'hb0000000_b800ffb0_f860f828_b0000000_bc52ffe4_16439001_32400018_bcb2fff0; +defparam bootram.RAM2.INIT_22=256'hb9f4ff40_3021001c_b60f0008_e9e10000_bc030010_f9e10000_3021ffe4_e860f824; +defparam bootram.RAM2.INIT_23=256'h80000000_b9f402c8_a4a300ff_be120010_aa440020_a48400ff_64830008_80000000; +defparam bootram.RAM2.INIT_24=256'hb0000000_e0651bbe_bc52ffe4_16459001_32400018_bcb2fff0_16459001_32400015; +defparam bootram.RAM2.INIT_25=256'h10c50000_12c00000_fac1001c_3021ffe0_b800ffa4_f860f824_b0000000_f8a0f828; +defparam bootram.RAM2.INIT_26=256'heac1001c_e9e10000_80000000_99fcb000_30e00024_b9f40334_f9e10000_10b60000; +defparam bootram.RAM2.INIT_27=256'hb810001c_30e1001c_b9f4fd88_f9e10000_30c00040_3021ffa4_30210020_b60f0008; +defparam bootram.RAM2.INIT_28=256'he063001c_10612800_10600000_be520044_16459001_3240003e_30a50001_10a00000; +defparam bootram.RAM2.INIT_29=256'haa440099_e083001c_10612800_30a50001_bc32ffd8_aa4300aa_bc12ffe0_aa4300ff; +defparam bootram.RAM2.INIT_2A=256'h3021005c_b60f0008_e9e10000_3021005c_b60f0008_e9e10000_30600001_be32ffc8; +defparam bootram.RAM2.INIT_2B=256'h10b60000_30c00006_b9f4fd08_f9e10000_10f60000_32c1001c_fac10028_3021ffd4; +defparam bootram.RAM2.INIT_2C=256'heac10028_e9e10000_a884ffff_80841800_14830000_30e00006_b9f401f8_30c01bd8; +defparam bootram.RAM2.INIT_2D=256'h65040403_64e40003_64a40007_64c40005_e0803a03_3021002c_b60f0008_6464001f; +defparam bootram.RAM2.INIT_2E=256'ha4a50008_80e73000_90a40041_a4e70004_80c62800_a4c60002_64640407_65240405; +defparam bootram.RAM2.INIT_2F=256'h81294000_a5290040_81082000_a5080020_80842800_a4840010_80a53800_10842000; +defparam bootram.RAM2.INIT_30=256'h64e50403_64c50003_64650007_64850005_a4a500ff_a46300ff_b60f0008_80634800; +defparam bootram.RAM2.INIT_31=256'ha4630008_80c62000_90650041_a4c60004_80841800_a4840002_65250407_65050405; +defparam bootram.RAM2.INIT_32=256'h81083800_a5080040_80e72800_a4e70020_80a51800_a4a50010_80633000_10a52800; +defparam bootram.RAM2.INIT_33=256'hb00000ff_fac1001c_3021ffe0_80000000_b60f0008_f9203a00_a52900ff_81294000; +defparam bootram.RAM2.INIT_34=256'h30a0ffaa_b9f4ff74_30a0ffff_b9f4ff7c_30a0ffff_b9f4ff84_f9e10000_a6c5ffff; +defparam bootram.RAM2.INIT_35=256'h30a00061_b9f4ff54_30a00032_b9f4ff5c_a2d60000_b0000b00_30a0ff99_b9f4ff6c; +defparam bootram.RAM2.INIT_36=256'h30a0ff81_b9f4ff34_30a00032_b9f4ff3c_10b60000_b9f4ff44_64b60008_b9f4ff4c; +defparam bootram.RAM2.INIT_37=256'h30a0ffa1_b9f4ff14_30a00030_b9f4ff1c_64b60010_b9f4ff24_30a0000b_b9f4ff2c; +defparam bootram.RAM2.INIT_38=256'h10a00000_b9f4fef4_30a00020_b9f4fefc_30a0000e_b9f4ff04_10a00000_b9f4ff0c; +defparam bootram.RAM2.INIT_39=256'h30210020_b60f0008_eac1001c_e9e10000_10a00000_b9f4fee4_30a00020_b9f4feec; +defparam bootram.RAM2.INIT_3A=256'hb6110000_30a0ffff_b9f4e91c_80000000_b9f4f220_f9e10000_3021ffe4_30a01be0; +defparam bootram.RAM2.INIT_3B=256'h22400003_80000000_b60f0008_80000000_b60f0008_80000000_b6910000_80000000; +defparam bootram.RAM2.INIT_3C=256'h16432000_e8660000_e8850000_bc230050_a4630003_80653000_beb2005c_16479003; +defparam bootram.RAM2.INIT_3D=256'h30e7ffff_30c60004_be52ffe0_16479003_22400003_30a50004_30e7fffc_bc320040; +defparam bootram.RAM2.INIT_3E=256'h30c60001_30a50001_be320020_16434000_e0660000_e1050000_bc120028_aa47ffff; +defparam bootram.RAM2.INIT_3F=256'h2240000f_14634000_b60f0008_10600000_b60f0008_bc32ffe0_aa47ffff_30e7ffff; +defparam bootram.RAM3.INIT_00=256'hbc070024_11050000_be030034_a4630003_80662800_10850000_beb20018_16479003; +defparam bootram.RAM3.INIT_01=256'h30c60001_be32fff0_16474000_31080001_f0680000_e0660000_10e72000_11040000; +defparam bootram.RAM3.INIT_02=256'he8860008_f8680004_e8660004_f8880000_30e7fff0_e8860000_10650000_b60f0008; +defparam bootram.RAM3.INIT_03=256'h31080010_be52ffd0_16479003_2240000f_f868000c_30c60010_e866000c_f8880008; +defparam bootram.RAM3.INIT_04=256'h22400003_d8682000_30e7fffc_c8662000_10800000_bcb2002c_16479003_22400003; +defparam bootram.RAM3.INIT_05=256'he860193c_10880000_b810ff68_11044000_10c43000_30840004_be52ffec_16479003; +defparam bootram.RAM3.INIT_06=256'h3273fffc_99fc1800_bc120018_aa43ffff_3260193c_f9e10000_fa61001c_3021ffe0; +defparam bootram.RAM3.INIT_07=256'h3021fff8_30210020_b60f0008_ea61001c_e9e10000_bc32fff0_aa43ffff_e8730000; +defparam bootram.RAM3.INIT_08=256'h30210008_b60f0008_c9e00800_80000000_b9f4ffb0_80000000_b9f4e7d4_d9e00800; +defparam bootram.RAM3.INIT_09=256'hffffffff_30210008_b60f0008_c9e00800_80000000_b9f4e74c_d9e00800_3021fff8; +defparam bootram.RAM3.INIT_0A=256'h696d6167_61696e20_523a206d_4552524f_4f4b0000_00000000_ffffffff_00000000; +defparam bootram.RAM3.INIT_0B=256'h64206d6f_206c6f61_49484558_20696e20_4261636b_65642120_7475726e_65207265; +defparam bootram.RAM3.INIT_0C=256'h53746172_720a0000_6f616465_6f6f746c_322b2062_55535250_4e4f4b00_64652e00; +defparam bootram.RAM3.INIT_0D=256'h4552524f_2e000000_6d6f6465_61666520_696e2073_50322b20_20555352_74696e67; +defparam bootram.RAM3.INIT_0E=256'h20546869_72616d21_70726f67_61696e20_6f6d206d_6e206672_65747572_523a2072; +defparam bootram.RAM3.INIT_0F=256'h523a206e_4552524f_6e210000_61707065_65722068_206e6576_6f756c64_73207368; +defparam bootram.RAM3.INIT_10=256'h626c652e_61696c61_65206176_696d6167_61726520_69726d77_66652066_6f207361; +defparam bootram.RAM3.INIT_11=256'h6c6f6164_20746f20_66726565_65656c20_6b2e2046_62726963_6d206120_20492061; +defparam bootram.RAM3.INIT_12=256'h2076616c_20666f72_6b696e67_43686563_2e000000_2052414d_5820746f_20494845; +defparam bootram.RAM3.INIT_13=256'h56616c69_2e2e2e00_6d616765_47412069_6e204650_6374696f_726f6475_69642070; +defparam bootram.RAM3.INIT_14=256'h642e2041_666f756e_61676520_4120696d_20465047_74696f6e_6f647563_64207072; +defparam bootram.RAM3.INIT_15=256'h2070726f_616c6964_4e6f2076_742e0000_20626f6f_6720746f_7074696e_7474656d; +defparam bootram.RAM3.INIT_16=256'h74656d70_2e0a4174_6f756e64_67652066_20696d61_46504741_696f6e20_64756374; +defparam bootram.RAM3.INIT_17=256'h77617265_6669726d_696f6e20_64756374_2070726f_6c6f6164_20746f20_74696e67; +defparam bootram.RAM3.INIT_18=256'h6520666f_6d776172_20666972_74696f6e_6f647563_64207072_56616c69_2e2e2e00; +defparam bootram.RAM3.INIT_19=256'h6e206672_65747572_523a2052_4552524f_2e2e2e00_64696e67_204c6f61_756e642e; +defparam bootram.RAM3.INIT_1A=256'h206e6576_6f756c64_73207368_20546869_72616d21_70726f67_61696e20_6f6d206d; +defparam bootram.RAM3.INIT_1B=256'h696f6e20_64756374_2070726f_616c6964_4e6f2076_6e210000_61707065_65722068; +defparam bootram.RAM3.INIT_1C=256'h6669726d_61666520_6e672073_54727969_6e642e20_20666f75_77617265_6669726d; +defparam bootram.RAM3.INIT_1D=256'h0018000f_ffff0031_01b200d9_05160364_14580a2c_05050400_2e2e2e00_77617265; +defparam bootram.RAM3.INIT_1E=256'hb8080000_b0000000_10101200_06820594_09c407d0_13880d05_00002710_000b0000; +defparam bootram.RAM3.INIT_1F=256'h20202020_28282820_20202828_20202020_00202020_00000000_6f72740a_0a0a6162; +defparam bootram.RAM3.INIT_20=256'h10040404_10101010_10101010_10101010_20881010_20202020_20202020_20202020; +defparam bootram.RAM3.INIT_21=256'h01010101_01010101_01010101_41414141_10104141_10101010_04040410_04040404; +defparam bootram.RAM3.INIT_22=256'h02020202_02020202_02020202_42424242_10104242_10101010_01010101_01010101; +defparam bootram.RAM3.INIT_23=256'h00000000_00000000_00000000_00000000_20000000_10101010_02020202_02020202; defparam bootram.RAM3.INIT_24=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM3.INIT_25=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM3.INIT_26=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; -defparam bootram.RAM3.INIT_27=256'h00000000_00000000_00001be0_ffffffff_01010100_000017c4_00000000_00000000; +defparam bootram.RAM3.INIT_27=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM3.INIT_28=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_29=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_2A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_2B=256'h28282020_20282828_20202020_20202020_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_2C=256'h10101010_10101010_10101010_88101010_20202020_20202020_20202020_20202020; +defparam bootram.RAM3.INIT_2D=256'h01010101_01010101_41414101_10414141_10101010_04041010_04040404_04040404; +defparam bootram.RAM3.INIT_2E=256'h02020202_02020202_42424202_10424242_10101010_01010110_01010101_01010101; +defparam bootram.RAM3.INIT_2F=256'h00000000_00000000_00000000_00000000_10101020_02020210_02020202_02020202; +defparam bootram.RAM3.INIT_30=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_31=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_32=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_33=256'h01010100_00001948_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_34=256'h00000000_00000000_00000000_00000000_00000000_00000000_00001d70_ffffffff; -- cgit v1.2.3 From 57fcaa242088516813a178713f9316e8ef7657a1 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Thu, 4 Nov 2010 14:26:16 -0700 Subject: duh --- usrp2/top/u1e/u1e_core.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usrp2/top/u1e/u1e_core.v b/usrp2/top/u1e/u1e_core.v index 619e44b8a..256146a99 100644 --- a/usrp2/top/u1e/u1e_core.v +++ b/usrp2/top/u1e/u1e_core.v @@ -36,7 +36,7 @@ module u1e_core localparam SR_TX_CTRL = 24; // 2 regs localparam SR_TIME64 = 28; // 4 regs - wire COMPAT_NUM = 8'd2; + wire [7:0] COMPAT_NUM = 8'd2; wire wb_clk = clk_fpga; wire wb_rst = rst_fpga; -- cgit v1.2.3 From 9cd8652b42b5afcba67ef0475e5681b951fe0bdc Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Tue, 9 Nov 2010 18:26:02 -0800 Subject: invert led signals because they are active low --- usrp2/top/u1e/u1e_core.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usrp2/top/u1e/u1e_core.v b/usrp2/top/u1e/u1e_core.v index 256146a99..e7e798b34 100644 --- a/usrp2/top/u1e/u1e_core.v +++ b/usrp2/top/u1e/u1e_core.v @@ -344,7 +344,7 @@ module u1e_core assign rx_enable = xfer_rate[14]; assign rate = xfer_rate[7:0]; - assign { debug_led[3:0] } = {run_rx,run_tx,reg_leds[1:0]}; + assign { debug_led[3:0] } = ~{run_rx,run_tx,reg_leds[1:0]}; assign { cgen_sync_b, cgen_ref_sel } = reg_cgen_ctrl; assign s0_dat_miso = (s0_adr[6:0] == REG_LEDS) ? reg_leds : -- cgit v1.2.3 From 76d2697276c067285135f444112d987ee53cb843 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Fri, 1 Oct 2010 15:18:26 -0700 Subject: fix timing problem on DAC output bus --- usrp2/top/u2_rev3/u2_rev3.v | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usrp2/top/u2_rev3/u2_rev3.v b/usrp2/top/u2_rev3/u2_rev3.v index 4daa66212..bab5a7706 100644 --- a/usrp2/top/u2_rev3/u2_rev3.v +++ b/usrp2/top/u2_rev3/u2_rev3.v @@ -330,8 +330,8 @@ module u2_rev3 wire [15:0] dac_a_int, dac_b_int; // DAC A and B are swapped in schematic to facilitate clean layout // DAC A is also inverted in schematic to facilitate clean layout - always @(negedge dsp_clk) dac_a <= ~dac_b_int; - always @(negedge dsp_clk) dac_b <= dac_a_int; + always @(posedge dsp_clk) dac_a <= ~dac_b_int; + always @(posedge dsp_clk) dac_b <= dac_a_int; /* OFDDRRSE OFDDRRSE_serdes_inst -- cgit v1.2.3 From 98a4130707cf7cad9597b65504211343138391ad Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Tue, 9 Nov 2010 19:08:13 -0800 Subject: remove old commented out code --- usrp2/top/u2_rev3/u2_core_udp.v | 180 ---------------------------------------- usrp2/top/u2plus/u2plus_core.v | 6 +- 2 files changed, 2 insertions(+), 184 deletions(-) diff --git a/usrp2/top/u2_rev3/u2_core_udp.v b/usrp2/top/u2_rev3/u2_core_udp.v index c9502898b..3b565ba90 100644 --- a/usrp2/top/u2_rev3/u2_core_udp.v +++ b/usrp2/top/u2_rev3/u2_core_udp.v @@ -552,14 +552,6 @@ module u2_core // Master Timer, Slave #9 // No longer used, replaced with simple_timer below - /* - wire [31:0] master_time; - timer timer - (.wb_clk_i(wb_clk),.rst_i(wb_rst), - .cyc_i(s9_cyc),.stb_i(s9_stb),.adr_i(s9_adr[4:2]), - .we_i(s9_we),.dat_i(s9_dat_o),.dat_o(s9_dat_i),.ack_o(s9_ack), - .sys_clk_i(dsp_clk),.master_time_i(master_time),.int_o(timer_int) ); - */ assign s9_ack = 0; // ///////////////////////////////////////////////////////////////////////// @@ -686,41 +678,6 @@ module u2_core .rx_occupied(ser_rx_occ),.rx_full(ser_rx_full),.rx_empty(ser_rx_empty), .serdes_link_up(serdes_link_up),.debug0(debug_serdes0), .debug1(debug_serdes1) ); - // /////////////////////////////////////////////////////////////////////////////////// - // External RAM Interface - - /* - localparam PAGE_SIZE = 10; // PAGE SIZE is in bytes, 10 = 1024 bytes - - wire [15:0] bus2ram, ram2bus; - wire [15:0] bridge_adr; - wire [1:0] bridge_sel; - wire bridge_stb, bridge_cyc, bridge_we, bridge_ack; - - wire [19:0] page; - wire [19:0] wb_ram_adr = {page[19:PAGE_SIZE],bridge_adr[PAGE_SIZE-1:0]}; - setting_reg #(.my_addr(6),.width(20)) sr_page (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), - .in(set_data),.out(page),.changed()); - - wb_bridge_16_32 bridge - (.wb_clk(wb_clk),.wb_rst(wb_rst), - .A_cyc_i(se_cyc),.A_stb_i(se_stb),.A_we_i(se_we),.A_sel_i(se_sel), - .A_adr_i(se_adr),.A_dat_i(se_dat_o),.A_dat_o(se_dat_i),.A_ack_o(se_ack), - .B_cyc_o(bridge_cyc),.B_stb_o(bridge_stb),.B_we_o(bridge_we),.B_sel_o(bridge_sel), - .B_adr_o(bridge_adr),.B_dat_o(bus2ram),.B_dat_i(ram2bus),.B_ack_i(bridge_ack)); - - wb_zbt16_b wb_zbt16_b - (.clk(wb_clk),.rst(wb_rst), - .wb_adr_i(wb_ram_adr),.wb_dat_i(bus2ram),.wb_dat_o(ram2bus),.wb_sel_i(bridge_sel), - .wb_cyc_i(bridge_cyc),.wb_stb_i(bridge_stb),.wb_ack_o(bridge_ack),.wb_we_i(bridge_we), - .sram_clk(RAM_CLK),.sram_a(RAM_A),.sram_d(RAM_D[15:0]),.sram_we(RAM_WEn), - .sram_bw(),.sram_adv(RAM_LDn),.sram_ce(RAM_CENn),.sram_oe(RAM_OEn), - .sram_mode(),.sram_zz() ); - - assign RAM_CE1n = 0; - assign RAM_D[17:16] = 2'bzz; - */ - // ///////////////////////////////////////////////////////////////////////// // VITA Timing @@ -737,140 +694,3 @@ module u2_core assign debug_gpio_1 = 32'd0; endmodule // u2_core - -/* - // FIFO Level Debugging - reg [31:0] host_to_dsp_fifo,dsp_to_host_fifo,eth_mac_debug,serdes_to_dsp_fifo,dsp_to_serdes_fifo; - - always @(posedge dsp_clk) - serdes_to_dsp_fifo <= { {ser_rx_full,ser_rx_empty,ser_rx_occ[13:0]}, - {dsp_tx_full,dsp_tx_empty,dsp_tx_occ[13:0]} }; - - always @(posedge dsp_clk) - dsp_to_serdes_fifo <= { {ser_tx_full,ser_tx_empty,ser_tx_occ[13:0]}, - {dsp_rx_full,dsp_rx_empty,dsp_rx_occ[13:0]} }; - - always @(posedge dsp_clk) - host_to_dsp_fifo <= { {eth_rx_full,eth_rx_empty,eth_rx_occ[13:0]}, - {dsp_tx_full,dsp_tx_empty,dsp_tx_occ[13:0]} }; - - always @(posedge dsp_clk) - dsp_to_host_fifo <= { {eth_tx_full,eth_tx_empty,eth_tx_occ[13:0]}, - {dsp_rx_full,dsp_rx_empty,dsp_rx_occ[13:0]} }; - - always @(posedge dsp_clk) - eth_mac_debug <= { { 6'd0, GMII_TX_EN, GMII_RX_DV, debug_mac0[7:0]}, - {eth_rx_full2, eth_rx_empty2, eth_rx_occ2[13:0]} }; - - assign debug_clk[0] = GMII_RX_CLK; // wb_clk; - assign debug_clk[1] = dsp_clk; -*/ -/* - - wire mdio_cpy = MDIO; - assign debug = { { 1'b0, s6_stb, s6_ack, s6_we, s6_sel[3:0] }, - { s6_adr[15:8] }, - { s6_adr[7:0] }, - { 6'd0, mdio_cpy, MDC } }; - - assign debug = { { GMII_TXD }, - { 5'd0, GMII_TX_EN, GMII_TX_ER, GMII_GTX_CLK }, - { wr2_flags, rd2_flags }, - { 4'd0, wr2_ready_i, wr2_ready_o, rd2_ready_i, rd2_ready_o } }; - assign debug = { { GMII_RXD }, - { 5'd0, GMII_RX_DV, GMII_RX_ER, GMII_RX_CLK }, - { wr2_flags, rd2_flags }, - { GMII_TX_EN,3'd0, wr2_ready_i, wr2_ready_o, rd2_ready_i, rd2_ready_o } }; - -// assign debug = debug_udp; - // assign debug = vrc_debug; -/* - assign debug_gpio_0 = { {pps_in, pps_int, 2'd0, vita_state}, - {2'd0, rx_dst_rdy, rx_src_rdy, rx_data[99:96]}, - {run_rx_d1, run_rx, strobe_rx, overrun, wr1_flags[3:0]} , - {wr1_ready_i, wr1_ready_o, rx1_src_rdy, rx1_dst_rdy, rx1_data[35:32]}}; -*/ -// assign debug_gpio_1 = {vita_time[63:32] }; -/* - assign debug_gpio_1 = { { tx_f19_data[15:8] }, - { tx_f19_data[7:0] }, - { 3'd0, tx_f19_src_rdy, tx_f19_dst_rdy, tx_f19_data[18:16] }, - { 2'b0, rd2_ready_i, rd2_ready_o, rd2_flags } }; - */ - -// wire debug_mux; -// setting_reg #(.my_addr(5)) sr_debug (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), -// .in(set_data),.out(debug_mux),.changed()); - -//assign debug = debug_mux ? host_to_dsp_fifo : dsp_to_host_fifo; -//assign debug = debug_mux ? serdes_to_dsp_fifo : dsp_to_serdes_fifo; - -//assign debug = {{strobe_rx,/*adc_ovf_a*/ 1'b0,adc_a}, -// {run_rx,/*adc_ovf_b*/ 1'b0,adc_b}}; - -//assign debug = debug_tx_dsp; -//assign debug = debug_serdes0; - -//assign debug_gpio_0 = 0; //debug_serdes0; -//assign debug_gpio_1 = 0; //debug_serdes1; - -// assign debug={{3'b0, wb_clk, wb_rst, dsp_rst, por, config_success}, -// {8'b0}, -// {3'b0,ram_loader_ack, ram_loader_stb, ram_loader_we,ram_loader_rst,ram_loader_done }, -// {cpld_start,cpld_mode,cpld_done,cpld_din,cpld_clk,cpld_detached,cpld_misc,cpld_init_b} }; - -//assign debug = {dac_a,dac_b}; - -/* - assign debug = {{ram_loader_done, takeover, 6'd0}, - {1'b0, cpld_start_int, cpld_mode_int, cpld_done_int, sd_clk, sd_csn, sd_miso, sd_mosi}, - {8'd0}, - {cpld_start, cpld_mode, cpld_done, cpld_din, cpld_misc, cpld_detached, cpld_clk, cpld_init_b}}; */ - -/*assign debug = host_to_dsp_fifo; - assign debug_gpio_0 = eth_mac_debug; - assign debug_gpio_1 = 0; - */ -// Assign various commonly used debug buses. -/* - wire [31:0] debug_rx_1 = {uart_tx_o,GMII_TX_EN,strobe_rx,overrun,proc_int,buffer_int,timer_int,GMII_RX_DV, - irq[7:0], - GMII_RXD, - GMII_TXD}; - - wire [31:0] debug_rx_2 = { 5'd0, s8_we, s8_stb, s8_ack, debug_rx[23:0] }; - - wire [31:0] debug_time = {uart_tx_o, 7'b0, - irq[7:0], - 6'b0, GMII_RX_DV, GMII_TX_EN, - 4'b0, exp_pps_in, exp_pps_out, pps_in, pps_int}; - - wire [31:0] debug_irq = {uart_tx_o, iwb_adr, iwb_ack, - irq[7:0], - proc_int, 7'b0 }; - - wire [31:0] debug_eth = - {{uart_tx_o,proc_int,underrun,buffer_int,wr2_ready,wr2_error,wr2_done,wr2_write}, - {8'd0}, - {8'd0}, - {GMII_TX_EN,GMII_RX_DV,Rx_mac_empty,Rx_mac_rd,Rx_mac_err,Rx_mac_sop,Rx_mac_eop,wr2_full} }; - - assign debug_serdes0 = { { rd0_dat[7:0] }, - { ser_tx_clk, ser_tkmsb, ser_tklsb, rd0_sop, rd0_eop, rd0_read, rd0_error, rd0_done }, - { ser_t[15:8] }, - { ser_t[7:0] } }; - - assign debug_serdes1 = { {1'b0,proc_int,underrun,buffer_int,wr0_ready,wr0_error,wr0_done,wr0_write}, - { 1'b0, ser_rx_clk, ser_rkmsb, ser_rklsb, ser_enable, ser_prbsen, ser_loopen, ser_rx_en }, - { ser_r[15:8] }, - { ser_r[7:0] } }; - - assign debug_gpio_1 = {uart_tx_o,7'd0, - 3'd0,rd1_sop,rd1_eop,rd1_read,rd1_done,rd1_error, - debug_txc[15:0]}; - assign debug_gpio_1 = debug_rx; - assign debug_gpio_1 = debug_serdes1; - assign debug_gpio_1 = debug_eth; - - */ - diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index 237276fb6..4378436a6 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -648,10 +648,8 @@ module u2plus_core // ///////////////////////////////////////////////////////////////////////////////////////// // Debug Pins - assign debug_clk = {dsp_clk, wb_clk}; -// assign debug = debug_vt; - assign debug = {wb_clk, wb_rst, sd_cyc, sd_stb, sd_we, sd_ack, sd_dat_o[7:0], sd_dat_i[7:0], 10'd0}; - + assign debug_clk = 2'b00; + assign debug = 32'd0; assign debug_gpio_0 = 32'd0; assign debug_gpio_1 = 32'd0; -- cgit v1.2.3 From ba36bdd2795b9ae4c11c8f65de92022a1d96bb0f Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Wed, 10 Nov 2010 11:32:00 -0800 Subject: occ needs to be 2 bits wide on a 36 bit fifo interface. --- usrp2/fifo/fifo19_to_fifo36.v | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/usrp2/fifo/fifo19_to_fifo36.v b/usrp2/fifo/fifo19_to_fifo36.v index 0e6bcea68..2f530109f 100644 --- a/usrp2/fifo/fifo19_to_fifo36.v +++ b/usrp2/fifo/fifo19_to_fifo36.v @@ -16,7 +16,8 @@ module fifo19_to_fifo36 output [31:0] debug ); - reg f36_sof, f36_eof, f36_occ; + reg f36_sof, f36_eof; + reg [1:0] f36_occ; reg [1:0] state; reg [15:0] dat0, dat1; -- cgit v1.2.3 From a0dfafffbf64ba007fc8695e105c72c93c654319 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Wed, 10 Nov 2010 11:50:42 -0800 Subject: need to enable both 16 and 32 bit spi interfaces -- 16 used in u1e, 32 in u2 and u2p --- usrp2/opencores/Makefile.srcs | 1 + 1 file changed, 1 insertion(+) diff --git a/usrp2/opencores/Makefile.srcs b/usrp2/opencores/Makefile.srcs index 1ccecf337..284578b39 100644 --- a/usrp2/opencores/Makefile.srcs +++ b/usrp2/opencores/Makefile.srcs @@ -23,5 +23,6 @@ i2c/rtl/verilog/timescale.v \ spi/rtl/verilog/spi_clgen.v \ spi/rtl/verilog/spi_defines.v \ spi/rtl/verilog/spi_shift.v \ +spi/rtl/verilog/spi_top.v \ spi/rtl/verilog/spi_top16.v \ )) -- cgit v1.2.3 From 7e20fa3db8e4990b47b346200f3c38bd8fa76f27 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Wed, 10 Nov 2010 16:28:50 -0800 Subject: u2p needs the bigger regs for some reason --- usrp2/opencores/spi/rtl/verilog/spi_defines.v | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/usrp2/opencores/spi/rtl/verilog/spi_defines.v b/usrp2/opencores/spi/rtl/verilog/spi_defines.v index 79509888b..86c301886 100644 --- a/usrp2/opencores/spi/rtl/verilog/spi_defines.v +++ b/usrp2/opencores/spi/rtl/verilog/spi_defines.v @@ -43,8 +43,8 @@ // low frequency of system clock this can be reduced. // Use SPI_DIVIDER_LEN for fine tuning theexact number. // -`define SPI_DIVIDER_LEN_8 -//`define SPI_DIVIDER_LEN_16 +//`define SPI_DIVIDER_LEN_8 +`define SPI_DIVIDER_LEN_16 //`define SPI_DIVIDER_LEN_24 //`define SPI_DIVIDER_LEN_32 @@ -66,9 +66,9 @@ // Use SPI_MAX_CHAR for fine tuning the exact number, when using // SPI_MAX_CHAR_32, SPI_MAX_CHAR_24, SPI_MAX_CHAR_16, SPI_MAX_CHAR_8. // -//`define SPI_MAX_CHAR_128 +`define SPI_MAX_CHAR_128 //`define SPI_MAX_CHAR_64 -`define SPI_MAX_CHAR_32 +//`define SPI_MAX_CHAR_32 //`define SPI_MAX_CHAR_24 //`define SPI_MAX_CHAR_16 //`define SPI_MAX_CHAR_8 -- cgit v1.2.3 From f64f1b5c86c605b7c769bbedd565e356d08e925d Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Wed, 10 Nov 2010 17:24:29 -0800 Subject: reverting part of the reversion of the spi settings. --- usrp2/opencores/spi/rtl/verilog/spi_defines.v | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usrp2/opencores/spi/rtl/verilog/spi_defines.v b/usrp2/opencores/spi/rtl/verilog/spi_defines.v index 86c301886..3e4dd0e3c 100644 --- a/usrp2/opencores/spi/rtl/verilog/spi_defines.v +++ b/usrp2/opencores/spi/rtl/verilog/spi_defines.v @@ -43,8 +43,8 @@ // low frequency of system clock this can be reduced. // Use SPI_DIVIDER_LEN for fine tuning theexact number. // -//`define SPI_DIVIDER_LEN_8 -`define SPI_DIVIDER_LEN_16 +`define SPI_DIVIDER_LEN_8 +//`define SPI_DIVIDER_LEN_16 //`define SPI_DIVIDER_LEN_24 //`define SPI_DIVIDER_LEN_32 -- cgit v1.2.3 From f9db9f4eed98a7538d73b5463e762441198526c1 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Wed, 14 Jul 2010 16:46:01 -0700 Subject: moved forward from the old branch --- usrp2/extramfifo/fifo_extram.v | 188 +++++++++++++ usrp2/extramfifo/fifo_extram36.v | 47 ++++ usrp2/extramfifo/fifo_extram36_tb.build | 1 + usrp2/extramfifo/fifo_extram36_tb.v | 475 ++++++++++++++++++++++++++++++++ usrp2/extramfifo/fifo_extram_tb.build | 1 + usrp2/extramfifo/fifo_extram_tb.v | 134 +++++++++ usrp2/fifo/fifo18_to_fifo36.v | 20 ++ usrp2/fifo/fifo_2clock_cascade.v | 14 +- 8 files changed, 876 insertions(+), 4 deletions(-) create mode 100644 usrp2/extramfifo/fifo_extram.v create mode 100644 usrp2/extramfifo/fifo_extram36.v create mode 100644 usrp2/extramfifo/fifo_extram36_tb.build create mode 100644 usrp2/extramfifo/fifo_extram36_tb.v create mode 100644 usrp2/extramfifo/fifo_extram_tb.build create mode 100644 usrp2/extramfifo/fifo_extram_tb.v create mode 100644 usrp2/fifo/fifo18_to_fifo36.v diff --git a/usrp2/extramfifo/fifo_extram.v b/usrp2/extramfifo/fifo_extram.v new file mode 100644 index 000000000..4e1f40371 --- /dev/null +++ b/usrp2/extramfifo/fifo_extram.v @@ -0,0 +1,188 @@ + +// Everything on sram_clk + +module fifo_extram + (input reset, input clear, + input [17:0] datain, input src_rdy_i, output dst_rdy_o, output [15:0] space, input [15:0] occ_in, + output [17:0] dataout, output src_rdy_o, input dst_rdy_i, output [15:0] occupied, input [15:0] space_in, + input sram_clk, output [18:0] sram_a, inout [17:0] sram_d, output sram_we, + output [1:0] sram_bw, output sram_adv, output sram_ce, output sram_oe, + output sram_mode, output sram_zz); + + localparam AWIDTH = 19; // 1 MB in x18 + localparam RAMSIZE = ((1< 1); + else + can_store <= (occ_in > 2); + + reg can_retrieve; + always @* + if(empty | ~dst_rdy_i) + can_retrieve <= 0; + else if(do_retr_del == 0) + can_retrieve <= 1; + else if((do_retr_del == 1) || (do_retr_del == 2)) + can_retrieve <= (space_in > 1); + else + can_retrieve <= (space_in > 2); + + reg [1:0] state; + localparam IDLE_STORE_NEXT = 0; + localparam STORE = 1; + localparam IDLE_RETR_NEXT = 2; + localparam RETRIEVE = 3; + + reg [7:0] countdown; + wire countdown_done = (countdown == 0); + + localparam CYCLE_SIZE = 6; + + assign do_store = can_store & (state == STORE); + assign do_retrieve = can_retrieve & (state == RETRIEVE); + always @(posedge sram_clk) + if(reset) + do_store_del <= 0; + else + do_store_del <= {do_store_del[0],do_store}; + + always @(posedge sram_clk) + if(reset) + do_retr_del <= 0; + else + do_retr_del <= {do_retr_del[0],do_retrieve}; + + always @(posedge sram_clk) + if(reset | clear) + begin + state <= IDLE_STORE_NEXT; + countdown <= 0; + end + else + case(state) + IDLE_STORE_NEXT : + if(can_store) + begin + state <= STORE; + countdown <= CYCLE_SIZE; + end + else if(can_retrieve) + begin + state <= RETRIEVE; + countdown <= CYCLE_SIZE; + end + STORE : + if(~can_store | (can_retrieve & countdown_done)) + state <= IDLE_RETR_NEXT; + else if(~countdown_done) + countdown <= countdown - 1; + IDLE_RETR_NEXT : + if(can_retrieve) + begin + state <= RETRIEVE; + countdown <= CYCLE_SIZE; + end + else if(can_store) + begin + state <= STORE; + countdown <= CYCLE_SIZE; + end + RETRIEVE : + if(~can_retrieve | (can_store & countdown_done)) + state <= IDLE_STORE_NEXT; + else if(~countdown_done) + countdown <= countdown - 1; + endcase // case (state) + + // RAM wires + assign sram_bw = 0; + assign sram_adv = 0; + assign sram_mode = 0; + assign sram_zz = 0; + assign sram_ce = 0; + + assign sram_a = (state==STORE) ? addr_store : addr_retrieve; + assign sram_we = ~do_store; + assign sram_oe = ~do_retr_del[1]; + assign my_oe = do_store_del[1] & sram_oe; + assign sram_d = my_oe ? datain : 18'bz; + + // FIFO wires + assign dataout = sram_d; + assign src_rdy_o = do_retr_del[1]; + assign dst_rdy_o = do_store_del[1]; + +endmodule // fifo_extram + + + //wire have_1 = (fullness == 1); + //wire have_2 = (fullness == 2); + //wire have_atleast_1 = ~empty; + //wire have_atleast_2 = ~(empty | have_1); + //wire have_atleast_3 = ~(empty | have_1 | have_2); + //wire full_minus_1 = (fullness == (RAMSIZE-1)); // 19'h7FE); + //wire full_minus_2 = (fullness == (RAMSIZE-2)); // 19'h7FD); + //wire spacefor_atleast_1 = ~full; + //wire spacefor_atleast_2 = ~(full | full_minus_1); + //wire spacefor_atleast_3 = ~(full | full_minus_1 | full_minus_2); diff --git a/usrp2/extramfifo/fifo_extram36.v b/usrp2/extramfifo/fifo_extram36.v new file mode 100644 index 000000000..29342fdc4 --- /dev/null +++ b/usrp2/extramfifo/fifo_extram36.v @@ -0,0 +1,47 @@ + +// 18 bit interface means we either can't handle errors or can't handle odd lengths +// unless we go to heroic measures + +module fifo_extram36 + (input clk, input reset, input clear, + input [35:0] datain, input src_rdy_i, output dst_rdy_o, output [15:0] space, + output [35:0] dataout, output src_rdy_o, input dst_rdy_i, output [15:0] occupied, + input sram_clk, output [18:0] sram_a, inout [17:0] sram_d, output sram_we, + output [1:0] sram_bw, output sram_adv, output sram_ce, output sram_oe, output sram_mode, + output sram_zz); + + wire [17:0] f18_data_1, f18_data_2, f18_data_3, f18_data_4; + wire f18_src_rdy_1, f18_dst_rdy_1, f18_src_rdy_2, f18_dst_rdy_2; + wire f18_src_rdy_3, f18_dst_rdy_3, f18_src_rdy_4, f18_dst_rdy_4; + + fifo36_to_fifo18 f36_to_f18 + (.clk(clk), .reset(reset), .clear(clear), + .f36_datain(datain), .f36_src_rdy_i(src_rdy_i), .f36_dst_rdy_o(dst_rdy_o), + .f18_dataout(f18_data_1), .f18_src_rdy_o(f18_src_rdy_1), .f18_dst_rdy_i(f18_dst_rdy_1) ); + + wire [15:0] f1_occ, f2_space; + + fifo_2clock_cascade #(.WIDTH(18), .SIZE(4)) fifo_2clock_in + (.wclk(clk), .datain(f18_data_1), .src_rdy_i(f18_src_rdy_1), .dst_rdy_o(f18_dst_rdy_1), .space(), + .rclk(sram_clk), .dataout(f18_data_2), .src_rdy_o(f18_src_rdy_2), .dst_rdy_i(f18_dst_rdy_2), .short_occupied(f1_occ), + .arst(reset) ); + + fifo_extram fifo_extram + (.reset(reset), .clear(clear), + .datain(f18_data_2), .src_rdy_i(f18_src_rdy_2), .dst_rdy_o(f18_dst_rdy_2), .space(), .occ_in(f1_occ), + .dataout(f18_data_3), .src_rdy_o(f18_src_rdy_3), .dst_rdy_i(f18_dst_rdy_3), .occupied(), .space_in(f2_space), + .sram_clk(sram_clk), .sram_a(sram_a), .sram_d(sram_d), .sram_we(sram_we), + .sram_bw(sram_bw), .sram_adv(sram_adv), .sram_ce(sram_ce), .sram_oe(sram_oe), + .sram_mode(sram_mode), .sram_zz(sram_zz)); + + fifo_2clock_cascade #(.WIDTH(18), .SIZE(4)) fifo_2clock_out + (.wclk(sram_clk), .datain(f18_data_3), .src_rdy_i(f18_src_rdy_3), .dst_rdy_o(f18_dst_rdy_3), .short_space(f2_space), + .rclk(clk), .dataout(f18_data_4), .src_rdy_o(f18_src_rdy_4), .dst_rdy_i(f18_dst_rdy_4), .occupied(), + .arst(reset) ); + + fifo18_to_fifo36 f18_to_f36 + (.clk(clk), .reset(reset), .clear(clear), + .f18_datain(f18_data_4), .f18_src_rdy_i(f18_src_rdy_4), .f18_dst_rdy_o(f18_dst_rdy_4), + .f36_dataout(dataout), .f36_src_rdy_o(src_rdy_o), .f36_dst_rdy_i(dst_rdy_i) ); + +endmodule // fifo_extram36 diff --git a/usrp2/extramfifo/fifo_extram36_tb.build b/usrp2/extramfifo/fifo_extram36_tb.build new file mode 100644 index 000000000..699591889 --- /dev/null +++ b/usrp2/extramfifo/fifo_extram36_tb.build @@ -0,0 +1 @@ +iverilog -y ../../models -y ../../models/CY7C1356C -y . -y ../../control_lib/ -y ../../coregen -y /opt/Xilinx/10.1/ISE/verilog/src/XilinxCoreLib -y /opt/Xilinx/10.1/ISE/verilog/src/unisims/ -o fifo_extram36_tb fifo_extram36_tb.v diff --git a/usrp2/extramfifo/fifo_extram36_tb.v b/usrp2/extramfifo/fifo_extram36_tb.v new file mode 100644 index 000000000..f28c35e4f --- /dev/null +++ b/usrp2/extramfifo/fifo_extram36_tb.v @@ -0,0 +1,475 @@ +`timescale 1ns/1ns + +module fifo_extram36_tb(); + + reg clk = 0; + reg sram_clk = 0; + reg rst = 1; + reg clear = 0; + + reg Verbose = 0; // + integer ErrorCount = 0; + + initial #1000 rst = 0; +// always #125 clk = ~clk; + task task_CLK; + reg [7:0] ran; + begin + while (1) begin + ran = $random; + if (ran[1]) + #62 clk = ~clk; + else + #63 clk = !clk; + end + end + endtask // task_CLK + initial task_CLK; + +// always #100 sram_clk = ~sram_clk; + task task_SSRAM_clk; + reg [7:0] ran; + begin + while (1) begin + ran = $random; + if (ran[0]) + #49 sram_clk = ~sram_clk; + else + #51 sram_clk = ~sram_clk; + end + end + endtask // task_SSRAM_clk + initial task_SSRAM_clk; + + reg [31:0] f36_data = 32'hX; + reg [1:0] f36_occ = 0; + reg f36_sof = 0, f36_eof = 0; + + wire [35:0] f36_in = {1'b0,f36_occ,f36_eof,f36_sof,f36_data}; + reg src_rdy_f36i = 0; + wire dst_rdy_f36i; + + wire [35:0] f36_out; + wire src_rdy_f36o; + reg dst_rdy_f36o = 0; + + wire [17:0] sram_d; + wire [18:0] sram_a; + wire [1:0] sram_bw; + wire sram_we, sram_adv, sram_ce, sram_oe, sram_mode, sram_zz; + + reg [31:0] ScoreBoard [524288:0]; + reg [18:0] put_index = 0; + reg [18:0] get_index = 0; + +// integer put_index = 0; +// integer get_index = 0; + + wire [15:0] DUT_space, DUT_occupied; + + fifo_extram36 fifo_extram36 + (.clk(clk), .reset(rst), .clear(clear), + .datain(f36_in), .src_rdy_i(src_rdy_f36i), .dst_rdy_o(dst_rdy_f36i), .space(DUT_space), + .dataout(f36_out), .src_rdy_o(src_rdy_f36o), .dst_rdy_i(dst_rdy_f36o), .occupied(DUT_occupied), + .sram_clk(sram_clk), .sram_a(sram_a), .sram_d(sram_d), .sram_we(sram_we), + .sram_bw(sram_bw), .sram_adv(sram_adv), .sram_ce(sram_ce), .sram_oe(sram_oe), + .sram_mode(sram_mode), .sram_zz(sram_zz)); + +`define idt 1 +`ifdef idt + wire [15:0] dummy16; + wire [1:0] dummy2; + + idt71v65603s150 + ram_model(.A(sram_a[17:0]), + .adv_ld_(sram_adv), // advance (high) / load (low) + .bw1_(0), .bw2_(0), .bw3_(0), .bw4_(0), // byte write enables (low) + .ce1_(0), .ce2(1), .ce2_(0), // chip enables + .cen_(sram_ce), // clock enable (low) + .clk(sram_clk), // clock + .IO({dummy16,sram_d[15:0]}), + .IOP({dummy2,sram_d[17:16]}), // data bus + .lbo_(sram_mode), // linear burst order (low) + .oe_(sram_oe), // output enable (low) + .r_w_(sram_we)); // read (high) / write (low) +`else + cy1356 ram_model(.d(sram_d),.clk(~sram_clk),.a(sram_a), + .bws(2'b00),.we_b(sram_we),.adv_lb(sram_adv), + .ce1b(0),.ce2(1),.ce3b(0), + .oeb(sram_oe),.cenb(sram_ce),.mode(sram_mode) ); +`endif + + task task_SSRAMMonitor; + reg last_mode; + reg last_clock; + reg last_load; + reg [18:0] sram_addr; + + begin + last_mode = 1'bX; + last_clock = 1'bX; + last_load = 1'bX; + + @ (posedge Verbose); + $dumpvars(0,fifo_extram36_tb); + + $display("%t:%m\t*** Task Started",$time); + while (1) @ (posedge sram_clk) begin + if (sram_mode !== last_mode) begin + $display("%t:%m\tSSRAM mode: %b",$time,sram_mode); + last_mode = sram_mode; + end + if (sram_adv !== last_load) begin + $display("%t:%m\tSSRAM adv/load: %b",$time,sram_adv); + last_load = sram_adv; + end + if (sram_ce !== last_clock) begin + $display("%t:%m\tSSRAM clock enable: %b",$time,sram_ce); + last_clock = sram_ce; + end + if (sram_ce == 1'b0) begin + if (sram_adv == 1'b0) begin +// $display("%t:%m\tSSRAM Address Load A=%h",$time,sram_a); + sram_addr = sram_a; + end else begin + sram_addr = sram_addr + 1; + end + if (sram_oe == 1'b0) begin + $display("%t:%m\tSSRAM Read Cycle A=%h(%h), D=%o",$time,sram_addr-2,sram_a,sram_d); + end + if (sram_we == 1'b0) begin + $display("%t:%m\tSSRAM Write Cycle A=%h(%h), D=%o",$time,sram_addr-2,sram_a,sram_d); + end + if ((sram_we == 1'b0) && (sram_oe == 1'b0)) begin + $display("%t:%m\t*** ERROR: _oe and _we both active",$time); + end + + end // if (sram_ce == 1'b0) + + end // always @ (posedge sram_clk) + end + endtask // task_SSRAMMonitor + + task ReadFromFIFO36; + begin + $display("%t: Read from FIFO36",$time); + #1 dst_rdy_f36o <= 1; + while(1) + begin + while(~src_rdy_f36o) + @(posedge clk); + $display("%t: Read: %h>",$time,f36_out); + @(posedge clk); + end + end + endtask // ReadFromFIFO36 + + initial dst_rdy_f36o = 0; + + task task_ReadFIFO36; + reg [7:0] ran; + begin + $display("%t:%m\t*** Task Started",$time); + while (1) begin + // Read on one of four clocks + #5 dst_rdy_f36o <= 1; + @(posedge clk); + if (src_rdy_f36o) begin + if (f36_out[31:0] != ScoreBoard[get_index]) begin + $display("%t:%m\tFIFO Get Error: R:%h, E:%h (%h)",$time,f36_out[31:0],ScoreBoard[get_index],get_index); + ErrorCount = ErrorCount + 1; + end else begin + if (Verbose) + $display("%t:%m\t(%5h) %o>",$time,get_index,f36_out); + end + get_index = get_index+1; + end else begin + if (ErrorCount >= 192) + $finish; + end // else: !if(src_rdy_f36o) + + #10; + ran = $random; + if (ran[2:0] != 3'b000) begin + dst_rdy_f36o <= 0; + if (ran[2] != 1'b0) begin + @(posedge clk); + @(posedge clk); + @(posedge clk); + end + if (ran[1] != 1'b0) begin + @(posedge clk); + @(posedge clk); + end + if (ran[0] != 1'b0) begin + @(posedge clk); + end + end + end // while (1) + end + + endtask // task_ReadFIFO36 + + + reg [15:0] count; + + task PutPacketInFIFO36; + input [31:0] data_start; + input [31:0] data_len; + + begin + count = 4; + src_rdy_f36i = 1; + f36_data = data_start; + f36_sof = 1; + f36_eof = 0; + f36_occ = 0; + + $display("%t: Put Packet in FIFO36",$time); + while(~dst_rdy_f36i) + #1; //@(posedge clk); + @(posedge clk); + + $display("%t: <%h PPI_FIFO36: Entered First Line",$time,f36_data); + f36_sof <= 0; + while(count+4 < data_len) + begin + f36_data = f36_data + 32'h01010101; + count = count + 4; + while(~dst_rdy_f36i) + #1; //@(posedge clk); + @(posedge clk); + $display("%t: <%h PPI_FIFO36: Entered New Line",$time,f36_data); + end + f36_data <= f36_data + 32'h01010101; + f36_eof <= 1; + if(count + 4 == data_len) + f36_occ <= 0; + else if(count + 3 == data_len) + f36_occ <= 3; + else if(count + 2 == data_len) + f36_occ <= 2; + else + f36_occ <= 1; + while(~dst_rdy_f36i) + @(posedge clk); + @(posedge clk); + f36_occ <= 0; + f36_eof <= 0; + f36_data <= 0; + src_rdy_f36i <= 0; + $display("%t: <%h PPI_FIFO36: Entered Last Line",$time,f36_data); + end + endtask // PutPacketInFIFO36 + + task task_WriteFIFO36; + integer i; + reg [7:0] ran; + + begin + f36_data = 32'bX; + if (rst != 1'b0) + @ (negedge rst); + $display("%t:%m\t*** Task Started",$time); + #10; + src_rdy_f36i = 1; + f36_data = $random; + for (i=0; i<64; i=i+0 ) begin + @ (posedge clk) ; + if (dst_rdy_f36i) begin + if (Verbose) + $display("%t:%m\t(%5h) %o<",$time,put_index,f36_in); + ScoreBoard[put_index] = f36_in[31:0]; + put_index = put_index + 1; + #5; + f36_data = $random; + i = i + 1; + end + ran = $random; + if (ran[1:0] != 2'b00) begin + @ (negedge clk); + src_rdy_f36i = 0; + #5; + @ (negedge clk) ; + src_rdy_f36i = 1; + end + end + src_rdy_f36i = 0; + f36_data = 32'bX; +//* if (put_index > 19'h3ff00) +//* Verbose = 1'b1; + + end + endtask // task_WriteFIFO36 + + initial $dumpfile("fifo_extram36_tb.vcd"); +// initial $dumpvars(0,fifo_extram36_tb); + initial $timeformat(-9, 0, " ns", 10); + initial task_SSRAMMonitor; + + initial + begin + @(negedge rst); + #40000; + @(posedge clk); + @(posedge clk); + @(posedge clk); + @(posedge clk); +// ReadFromFIFO36; + task_ReadFIFO36; + + end + + integer i; + + initial + begin + @(negedge rst); + @(posedge clk); + @(posedge clk); + @(posedge clk); + task_WriteFIFO36; + @(posedge clk); + @(posedge clk); + @(posedge clk); +// PutPacketInFIFO36(32'hA0B0C0D0,12); + @(posedge clk); + @(posedge clk); + #10000; + @(posedge clk); +// PutPacketInFIFO36(32'hE0F0A0B0,36); + @(posedge clk); + @(posedge clk); + task_WriteFIFO36; + @(posedge clk); + @(posedge clk); + #10000; + @(posedge clk); + @(posedge clk); + task_WriteFIFO36; +// @(posedge clk); +// #30000; +// @(posedge clk); +// @(posedge clk); + task_WriteFIFO36; +// @(posedge clk); +// #30000; +// @(posedge clk); +// @(posedge clk); + task_WriteFIFO36; +// @(posedge clk); +// #30000; +// @(posedge clk); +// @(posedge clk); + task_WriteFIFO36; + @(posedge clk); + #10000; + @(posedge clk); + @(posedge clk); + task_WriteFIFO36; + for (i=0; i<8192; i = i+1) begin + @(posedge clk); + #10000; + @(posedge clk); + @(posedge clk); + task_WriteFIFO36; + @(posedge clk); + end + +// $dumpvars(0,fifo_extram36_tb); + @(posedge clk); + task_WriteFIFO36; + @(posedge clk); + + #100000000; + $finish; + + end + */ + + initial + begin + @(negedge rst); + f36_occ <= 0; + repeat (100) + @(posedge clk); + src_rdy_f36i <= 1; + f36_data <= 32'h10203040; + f36_sof <= 1; + f36_eof <= 0; + @(posedge clk); + @(posedge clk); + src_rdy_f36i <= 1; + f36_data <= f36_data + 32'h01010101; + f36_sof <= 0; + f36_eof <= 0; + @(posedge clk); + @(posedge clk); + src_rdy_f36i <= 1; + f36_data <= f36_data + 32'h01010101; + f36_sof <= 0; + f36_eof <= 0; + @(posedge clk); + @(posedge clk); + src_rdy_f36i <= 1; + f36_data <= f36_data + 32'h01010101; + f36_sof <= 0; + f36_eof <= 0; + @(posedge clk); + @(posedge clk); + src_rdy_f36i <= 1; + f36_data <= f36_data + 32'h01010101; + f36_sof <= 0; + f36_eof <= 0; + @(posedge clk); + @(posedge clk); + src_rdy_f36i <= 1; + f36_data <= f36_data + 32'h01010101; + f36_sof <= 0; + f36_eof <= 0; + @(posedge clk); + @(posedge clk); + src_rdy_f36i <= 1; + f36_data <= f36_data + 32'h01010101; + f36_sof <= 0; + f36_eof <= 0; + @(posedge clk); + @(posedge clk); + src_rdy_f36i <= 1; + f36_data <= f36_data + 32'h01010101; + f36_sof <= 0; + f36_eof <= 0; + @(posedge clk); + @(posedge clk); + src_rdy_f36i <= 1; + f36_data <= f36_data + 32'h01010101; + f36_sof <= 0; + f36_eof <= 0; + @(posedge clk); + @(posedge clk); + src_rdy_f36i <= 1; + f36_data <= f36_data + 32'h01010101; + f36_sof <= 0; + f36_eof <= 0; + @(posedge clk); + @(posedge clk); + src_rdy_f36i <= 1; + f36_data <= f36_data + 32'h01010101; + f36_sof <= 0; + f36_eof <= 0; + @(posedge clk); + @(posedge clk); + src_rdy_f36i <= 1; + f36_data <= 32'h1F2F3F4F; + f36_sof <= 0; + f36_eof <= 1; + @(posedge clk); + @(posedge clk); + src_rdy_f36i <= 0; + + + + end + +// initial #500000 $finish; +endmodule // fifo_extram_tb diff --git a/usrp2/extramfifo/fifo_extram_tb.build b/usrp2/extramfifo/fifo_extram_tb.build new file mode 100644 index 000000000..e87217e5c --- /dev/null +++ b/usrp2/extramfifo/fifo_extram_tb.build @@ -0,0 +1 @@ +iverilog -y ../../models -y ../../models/CY7C1356C -y . -y ../../control_lib/ -y ../../coregen -y /opt/Xilinx/10.1/ISE/verilog/src/XilinxCoreLib -y /opt/Xilinx/10.1/ISE/verilog/src/unisims/ -o fifo_extram_tb fifo_extram_tb.v diff --git a/usrp2/extramfifo/fifo_extram_tb.v b/usrp2/extramfifo/fifo_extram_tb.v new file mode 100644 index 000000000..73550d9ca --- /dev/null +++ b/usrp2/extramfifo/fifo_extram_tb.v @@ -0,0 +1,134 @@ +module fifo_extram_tb(); + + reg clk = 0; + reg sram_clk = 0; + reg reset = 1; + reg clear = 0; + + initial #1000 reset = 0; + always #125 clk = ~clk; + always #100 sram_clk = ~sram_clk; + + reg [15:0] f18_data = 0; + reg f18_sof = 0, f18_eof = 0; + + wire [17:0] f18_in = {f18_eof,f18_sof,f18_data}; + reg src_rdy_f18i = 0; + wire dst_rdy_f18i; + + wire [17:0] f18_out; + wire src_rdy_f18o; + reg dst_rdy_f18o = 0; + + wire [17:0] f18_int; + wire src_rdy_f18int, dst_rdy_f18int; + + wire [17:0] sram_d; + wire [18:0] sram_a; + wire [1:0] sram_bw; + wire sram_we, sram_adv, sram_ce, sram_oe, sram_mode, sram_zz; + wire [15:0] f1_occ; + + fifo_short #(.WIDTH(18)) fifo_short + (.clk(sram_clk), .reset(reset), .clear(clear), + .datain(f18_in), .src_rdy_i(src_rdy_f18i), .dst_rdy_o(dst_rdy_f18i), .space(), + .dataout(f18_int), .src_rdy_o(src_rdy_f18int), .dst_rdy_i(dst_rdy_f18int), .occupied(f1_occ[4:0]) ); + + assign f1_occ[15:5] = 0; + + fifo_extram fifo_extram + (.reset(reset), .clear(clear), + .datain(f18_int), .src_rdy_i(src_rdy_f18int), .dst_rdy_o(dst_rdy_f18int), .space(), .occ_in(f1_occ), + .dataout(f18_out), .src_rdy_o(src_rdy_f18o), .dst_rdy_i(dst_rdy_f18o), .occupied(), .space_in(7), + .sram_clk(sram_clk), .sram_a(sram_a), .sram_d(sram_d), .sram_we(sram_we), + .sram_bw(sram_bw), .sram_adv(sram_adv), .sram_ce(sram_ce), .sram_oe(sram_oe), + .sram_mode(sram_mode), .sram_zz(sram_zz)); + +`define idt 1 +`ifdef idt + wire [15:0] dummy16; + wire [1:0] dummy2; + + idt71v65603s150 + ram_model(.A(sram_a[17:0]), + .adv_ld_(sram_adv), // advance (high) / load (low) + .bw1_(0), .bw2_(0), .bw3_(0), .bw4_(0), // byte write enables (low) + .ce1_(0), .ce2(1), .ce2_(0), // chip enables + .cen_(sram_ce), // clock enable (low) + .clk(sram_clk), // clock + .IO({dummy16,sram_d[15:0]}), + .IOP({dummy2,sram_d[17:16]}), // data bus + .lbo_(sram_mode), // linear burst order (low) + .oe_(sram_oe), // output enable (low) + .r_w_(sram_we)); // read (high) / write (low) +`else + cy1356 ram_model(.d(sram_d),.clk(sram_clk),.a(sram_a), + .bws(2'b00),.we_b(sram_we),.adv_lb(sram_adv), + .ce1b(0),.ce2(1),.ce3b(0), + .oeb(sram_oe),.cenb(sram_ce),.mode(sram_mode) ); +`endif // !`ifdef idt + + always @(posedge sram_clk) + if(dst_rdy_f18o & src_rdy_f18o) + $display("Read: %h",f18_out); + + always @(posedge sram_clk) + if(dst_rdy_f18int & src_rdy_f18int) + $display("Write: %h",f18_int); + + initial $dumpfile("fifo_extram_tb.vcd"); + initial $dumpvars(0,fifo_extram_tb); + + task SendPkt; + input [15:0] data_start; + input [31:0] data_len; + begin + @(posedge sram_clk); + f18_data = data_start; + f18_sof = 1; + f18_eof = 0; + src_rdy_f18i = 1; + while(~dst_rdy_f18i) + #1; + @(posedge sram_clk); + repeat(data_len - 2) + begin + f18_data = f18_data + 16'h0101; + f18_sof = 0; + while(~dst_rdy_f18i) + @(posedge sram_clk); + + @(posedge sram_clk); + end + f18_data = f18_data + 16'h0101; + f18_eof = 1; + while(~dst_rdy_f18i) + #1; + @(posedge sram_clk); + src_rdy_f18i = 0; + f18_data = 0; + f18_eof = 0; + end + endtask // SendPkt + + initial + begin + @(negedge reset); + @(posedge sram_clk); + @(posedge sram_clk); + #10000; + @(posedge sram_clk); + SendPkt(16'hA0B0, 100); + #10000; + //SendPkt(16'hC0D0, 220); + end + + initial + begin + #20000; + dst_rdy_f18o = 1; + end + + initial #200000 $finish; +endmodule // fifo_extram_tb + diff --git a/usrp2/fifo/fifo18_to_fifo36.v b/usrp2/fifo/fifo18_to_fifo36.v new file mode 100644 index 000000000..25bb215a1 --- /dev/null +++ b/usrp2/fifo/fifo18_to_fifo36.v @@ -0,0 +1,20 @@ + +// For now just assume FIFO18 is same as FIFO19 without occupancy bit + +module fifo18_to_fifo36 + (input clk, input reset, input clear, + input [17:0] f18_datain, + input f18_src_rdy_i, + output f18_dst_rdy_o, + + output [35:0] f36_dataout, + output f36_src_rdy_o, + input f36_dst_rdy_i + ); + + fifo19_to_fifo36 fifo19_to_fifo36 + (.clk(clk), .reset(reset), .clear(clear), + .f19_datain({1'b0,f18_datain}), .f19_src_rdy_i(f18_src_rdy_i), .f19_dst_rdy_o(f18_dst_rdy_o), + .f36_dataout(f36_dataout), .f36_src_rdy_o(f36_src_rdy_o), .f36_dst_rdy_i(f36_dst_rdy_i) ); + +endmodule // fifo18_to_fifo36 diff --git a/usrp2/fifo/fifo_2clock_cascade.v b/usrp2/fifo/fifo_2clock_cascade.v index 5ce726977..4e8c244c2 100644 --- a/usrp2/fifo/fifo_2clock_cascade.v +++ b/usrp2/fifo/fifo_2clock_cascade.v @@ -1,8 +1,10 @@ module fifo_2clock_cascade #(parameter WIDTH=32, SIZE=9) - (input wclk, input [WIDTH-1:0] datain, input src_rdy_i, output dst_rdy_o, output [15:0] space, - input rclk, output [WIDTH-1:0] dataout, output src_rdy_o, input dst_rdy_i, output [15:0] occupied, + (input wclk, input [WIDTH-1:0] datain, input src_rdy_i, output dst_rdy_o, + output [15:0] space, output [15:0] short_space, + input rclk, output [WIDTH-1:0] dataout, output src_rdy_o, input dst_rdy_i, + output [15:0] occupied, output [15:0] short_occupied, input arst); wire [WIDTH-1:0] data_int1, data_int2; @@ -29,7 +31,11 @@ module fifo_2clock_cascade .space(s2_space), .occupied(s2_occupied)); // Be conservative -- Only advertise space from input side of fifo, occupied from output side - assign space = {11'b0,s1_space} + l_space; - assign occupied = {11'b0,s2_occupied} + l_occupied; + assign space = {11'b0,s1_space} + l_space; + assign occupied = {11'b0,s2_occupied} + l_occupied; + + // For the fifo_extram, we only want to know the immediately adjacent space + assign short_space = {11'b0,s1_space}; + assign short_occupied = {11'b0,s2_occupied}; endmodule // fifo_2clock_cascade -- cgit v1.2.3 From d0742cf2a5285ed08d49e16948d8227414247f6a Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Wed, 14 Jul 2010 17:01:25 -0700 Subject: get it to build --- usrp2/extramfifo/.gitignore | 3 + usrp2/extramfifo/fifo_extram36_tb.build | 2 +- usrp2/extramfifo/fifo_extram36_tb.v | 6 +- usrp2/extramfifo/fifo_extram_tb.build | 2 +- usrp2/models/idt71v65603s150.v | 301 ++++++++++++++++++++++++++++++++ 5 files changed, 309 insertions(+), 5 deletions(-) create mode 100644 usrp2/extramfifo/.gitignore mode change 100644 => 100755 usrp2/extramfifo/fifo_extram36_tb.build mode change 100644 => 100755 usrp2/extramfifo/fifo_extram_tb.build create mode 100755 usrp2/models/idt71v65603s150.v diff --git a/usrp2/extramfifo/.gitignore b/usrp2/extramfifo/.gitignore new file mode 100644 index 000000000..94bbf6dcc --- /dev/null +++ b/usrp2/extramfifo/.gitignore @@ -0,0 +1,3 @@ +fifo_extram36_tb +fifo_extram_tb +*.vcd diff --git a/usrp2/extramfifo/fifo_extram36_tb.build b/usrp2/extramfifo/fifo_extram36_tb.build old mode 100644 new mode 100755 index 699591889..ac9369758 --- a/usrp2/extramfifo/fifo_extram36_tb.build +++ b/usrp2/extramfifo/fifo_extram36_tb.build @@ -1 +1 @@ -iverilog -y ../../models -y ../../models/CY7C1356C -y . -y ../../control_lib/ -y ../../coregen -y /opt/Xilinx/10.1/ISE/verilog/src/XilinxCoreLib -y /opt/Xilinx/10.1/ISE/verilog/src/unisims/ -o fifo_extram36_tb fifo_extram36_tb.v +iverilog -y ../models -y . -y ../control_lib/ -y ../coregen -y ../fifo -y /opt/Xilinx/10.1/ISE/verilog/src/XilinxCoreLib -y /opt/Xilinx/10.1/ISE/verilog/src/unisims/ -o fifo_extram36_tb fifo_extram36_tb.v diff --git a/usrp2/extramfifo/fifo_extram36_tb.v b/usrp2/extramfifo/fifo_extram36_tb.v index f28c35e4f..e5f8cef4c 100644 --- a/usrp2/extramfifo/fifo_extram36_tb.v +++ b/usrp2/extramfifo/fifo_extram36_tb.v @@ -296,8 +296,8 @@ module fifo_extram36_tb(); end src_rdy_f36i = 0; f36_data = 32'bX; -//* if (put_index > 19'h3ff00) -//* Verbose = 1'b1; +// if (put_index > 19'h3ff00) +// Verbose = 1'b1; end endtask // task_WriteFIFO36 @@ -385,7 +385,7 @@ module fifo_extram36_tb(); $finish; end - */ + initial begin diff --git a/usrp2/extramfifo/fifo_extram_tb.build b/usrp2/extramfifo/fifo_extram_tb.build old mode 100644 new mode 100755 index e87217e5c..5607c8691 --- a/usrp2/extramfifo/fifo_extram_tb.build +++ b/usrp2/extramfifo/fifo_extram_tb.build @@ -1 +1 @@ -iverilog -y ../../models -y ../../models/CY7C1356C -y . -y ../../control_lib/ -y ../../coregen -y /opt/Xilinx/10.1/ISE/verilog/src/XilinxCoreLib -y /opt/Xilinx/10.1/ISE/verilog/src/unisims/ -o fifo_extram_tb fifo_extram_tb.v +iverilog -y ../models -y . -y ../control_lib/ -y ../coregen -y ../fifo -y /opt/Xilinx/10.1/ISE/verilog/src/XilinxCoreLib -y /opt/Xilinx/10.1/ISE/verilog/src/unisims/ -o fifo_extram_tb fifo_extram_tb.v diff --git a/usrp2/models/idt71v65603s150.v b/usrp2/models/idt71v65603s150.v new file mode 100755 index 000000000..457dfa6dd --- /dev/null +++ b/usrp2/models/idt71v65603s150.v @@ -0,0 +1,301 @@ +/******************************************************************************* + * + * File Name : idt71v65603s150.v + * Product : IDT71V65603 + * Function : 256K x 36 pipeline ZBT Static RAM + * Simulation Tool/Version : Verilog-XL 2.5 + * Date : 07/19/00 + * + * Copyright 1999 Integrated Device Technology, Inc. + * + * Revision Notes: 07/19/00 Rev00 + * + ******************************************************************************/ +/******************************************************************************* + * Module Name: idt71v65603s150 + * + * Notes : This model is believed to be functionally + * accurate. Please direct any inquiries to + * IDT SRAM Applications at: sramhelp@idt.com + * + *******************************************************************************/ + + /*************************************************************** + * + * Integrated Device Technology, Inc. ("IDT") hereby grants the + * user of this Verilog/VCS model a non-exclusive, nontransferable + * license to use this Verilog/VCS model under the following terms. + * The user is granted this license only to use the Verilog/VCS + * model and is not granted rights to sell, copy (except as needed + * to run the IBIS model), rent, lease or sub-license the Verilog/VCS + * model in whole or in part, or in modified form to anyone. The User + * may modify the Verilog/VCS model to suit its specific applications, + * but rights to derivative works and such modifications shall belong + * to IDT. + * + * This Verilog/VCS model is provided on an "AS IS" basis and + * IDT makes absolutely no warranty with respect to the information + * contained herein. IDT DISCLAIMS AND CUSTOMER WAIVES ALL + * WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE + * ENTIRE RISK AS TO QUALITY AND PERFORMANCE IS WITH THE + * USER ACCORDINGLY, IN NO EVENT SHALL IDT BE LIABLE + * FOR ANY DIRECT OR INDIRECT DAMAGES, WHETHER IN CONTRACT OR + * TORT, INCLUDING ANY LOST PROFITS OR OTHER INCIDENTAL, + * CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES ARISING OUT OF + * THE USE OR APPLICATION OF THE VERILOG/VCS model. Further, + * IDT reserves the right to make changes without notice to any + * product herein to improve reliability, function, or design. + * IDT does not convey any license under patent rights or + * any other intellectual property rights, including those of + * third parties. IDT is not obligated to provide maintenance + * or support for the licensed Verilog/VCS model. + * + ***************************************************************/ + + `timescale 1ns/100ps + +module idt71v65603s150 (A, + adv_ld_, // advance (high) / load (low) + bw1_, bw2_, bw3_, bw4_, // byte write enables (low) + ce1_, ce2, ce2_, // chip enables + cen_, // clock enable (low) + clk, // clock + IO, IOP, // data bus + lbo_, // linear burst order (low) + oe_, // output enable (low) + r_w_); // read (high) / write (low) + +initial +begin + $write("\n********************************************************\n"); + $write(" idt71v65603s150, 256K x 36 Pipelined burst ZBT SRAM \n"); + $write(" Rev: 00 July 2000 \n"); + $write(" copyright 1997,1998,1999,2000 by IDT, Inc. \n"); + $write("********************************************************\n\n"); +end + +input [17:0] A; +inout [31:0] IO; +inout [4:1] IOP; +input adv_ld_, bw1_, bw2_, bw3_, bw4_, ce1_, ce2, ce2_, + cen_, clk, lbo_, oe_, r_w_; + + +//internal registers for data, address, etc +reg [8:0] mem1[0:262143]; //memory array +reg [8:0] mem2[0:262143]; //memory array +reg [8:0] mem3[0:262143]; //memory array +reg [8:0] mem4[0:262143]; //memory array + +reg [35:0] dout; +reg [17:0] addr_a, + addr_b; +reg wren_a, wren_b; +reg cs_a, cs_b; +reg bw_a1, bw_b1; +reg bw_a2, bw_b2; +reg bw_a3, bw_b3; +reg bw_a4, bw_b4; +reg [1:0] brst_cnt; + +wire[35:0] data_out; +wire doe; +wire cs = (~ce1_ & ce2 & ~ce2_); +wire baddr0, baddr1; + + +parameter regdelay = 0.2; +parameter outdly = 0.2; + +specify +specparam +//Clock Parameters + tCYC = 6.7, //clock cycle time + tCH = 2.0, //clock high time + tCL = 2.0, //clock low time + +//Output Parameters + tCD = 3.8, //clk to data valid + tCLZ = 1.5, //clk to output Low-Z + tCHZ = 3.0, //clk to data Hi-Z + tOE = 3.8, //OE to output valid + tOLZ = 0.0, //OE to output Hi-Z + tOHZ = 3.8, //OE to output Hi-Z + +//Set up times + tSE = 1.5, //clock enable set-up + tSA = 1.5, //address set-up + tSD = 1.5, //data set-up + tSW = 1.5, //Read/Write set-up + tSADV = 1.5, //Advance/Load set-up + tSC = 1.5, //Chip enable set-up + tSB = 1.5, //Byte write enable set-up + +//Hold times + tHE = 0.5, //clock enable hold + tHA = 0.5, //address hold + tHD = 0.5, //data hold + tHW = 0.5, //Read/Write hold + tHADV = 0.5, //Advance/Load hold + tHC = 0.5, //Chip enable hold + tHB = 0.5; //Byte write enable hold + + + (oe_ *> IO) = (tOE,tOE,tOHZ,tOLZ,tOHZ,tOLZ); //(01,10,0z,z1,1z,z0) + (clk *> IO) = (tCD,tCD,tCHZ,tCLZ,tCHZ,tCLZ); //(01,10,0z,z1,1z,z0) + + (oe_ *> IOP) = (tOE,tOE,tOHZ,tOLZ,tOHZ,tOLZ); //(01,10,0z,z1,1z,z0) + (clk *> IOP) = (tCD,tCD,tCHZ,tCLZ,tCHZ,tCLZ); //(01,10,0z,z1,1z,z0) + +//timing checks + + $period(posedge clk, tCYC ); + $width (posedge clk, tCH ); + $width (negedge clk, tCL ); + + + $setuphold(posedge clk, A, tSA, tHA); + $setuphold(posedge clk, IO, tSD, tHD); + $setuphold(posedge clk, IOP, tSD, tHD); + $setuphold(posedge clk, adv_ld_, tSADV, tHADV); + $setuphold(posedge clk, bw1_, tSB, tHB); + $setuphold(posedge clk, bw2_, tSB, tHB); + $setuphold(posedge clk, bw3_, tSB, tHB); + $setuphold(posedge clk, bw4_, tSB, tHB); + $setuphold(posedge clk, ce1_, tSC, tHC); + $setuphold(posedge clk, ce2, tSC, tHC); + $setuphold(posedge clk, ce2_, tSC, tHC); + $setuphold(posedge clk, cen_, tSE, tHE); + $setuphold(posedge clk, r_w_, tSW, tHW); + +endspecify + +initial begin + cs_a = 0; + cs_b = 0; +end + + +///////////////////////////////////////////////////////////////////////// +//input registers +//-------------------- +always @(posedge clk) +begin + if ( ~cen_ & ~adv_ld_ ) cs_a <= #regdelay cs; + if ( ~cen_ ) cs_b <= #regdelay cs_a; + + if ( ~cen_ & ~adv_ld_ ) wren_a <= #regdelay (cs & ~r_w_); + if ( ~cen_ ) wren_b <= #regdelay wren_a; + + if ( ~cen_ ) bw_a1 <= #regdelay ~bw1_; + if ( ~cen_ ) bw_a2 <= #regdelay ~bw2_; + if ( ~cen_ ) bw_a3 <= #regdelay ~bw3_; + if ( ~cen_ ) bw_a4 <= #regdelay ~bw4_; + + if ( ~cen_ ) bw_b1 <= #regdelay bw_a1; + if ( ~cen_ ) bw_b2 <= #regdelay bw_a2; + if ( ~cen_ ) bw_b3 <= #regdelay bw_a3; + if ( ~cen_ ) bw_b4 <= #regdelay bw_a4; + + if ( ~cen_ & ~adv_ld_ ) addr_a[17:0] <= #regdelay A[17:0]; + if ( ~cen_ ) addr_b[17:0] <= #regdelay {addr_a[17:2], baddr1, baddr0}; +end + + +///////////////////////////////////////////////////////////////////////// +//burst counter +//-------------------- +always @(posedge clk) +begin + if ( lbo_ & ~cen_ & ~adv_ld_) brst_cnt <= #regdelay 0; + else if (~lbo_ & ~cen_ & ~adv_ld_) brst_cnt <= #regdelay A[1:0]; + else if ( ~cen_ & adv_ld_) brst_cnt <= #regdelay brst_cnt + 1; +end + + +///////////////////////////////////////////////////////////////////////// +//address logic +//-------------------- +assign baddr1 = lbo_ ? (brst_cnt[1] ^ addr_a[1]) : brst_cnt[1]; +assign baddr0 = lbo_ ? (brst_cnt[0] ^ addr_a[0]) : brst_cnt[0]; + + +///////////////////////////////////////////////////////////////////////// +//data output register +//-------------------- +always @(posedge clk) +begin + #regdelay; + #regdelay; + dout[8:0] = mem1[addr_b]; + dout[17:9] = mem2[addr_b]; + dout[26:18] = mem3[addr_b]; + dout[35:27] = mem4[addr_b]; +end + +assign data_out = dout; + + +///////////////////////////////////////////////////////////////////////// +//Output buffers: using a bufif1 has the same effect as... +// +// assign D = doe ? data_out : 36'hz; +// +//It was coded this way to support SPECIFY delays in the specparam section. +//-------------------- +bufif1 #outdly (IO[0],data_out[0],doe); +bufif1 #outdly (IO[1],data_out[1],doe); +bufif1 #outdly (IO[2],data_out[2],doe); +bufif1 #outdly (IO[3],data_out[3],doe); +bufif1 #outdly (IO[4],data_out[4],doe); +bufif1 #outdly (IO[5],data_out[5],doe); +bufif1 #outdly (IO[6],data_out[6],doe); +bufif1 #outdly (IO[7],data_out[7],doe); +bufif1 #outdly (IOP[1],data_out[8],doe); + +bufif1 #outdly (IO[8],data_out[9],doe); +bufif1 #outdly (IO[9],data_out[10],doe); +bufif1 #outdly (IO[10],data_out[11],doe); +bufif1 #outdly (IO[11],data_out[12],doe); +bufif1 #outdly (IO[12],data_out[13],doe); +bufif1 #outdly (IO[13],data_out[14],doe); +bufif1 #outdly (IO[14],data_out[15],doe); +bufif1 #outdly (IO[15],data_out[16],doe); +bufif1 #outdly (IOP[2],data_out[17],doe); + +bufif1 #outdly (IO[16],data_out[18],doe); +bufif1 #outdly (IO[17],data_out[19],doe); +bufif1 #outdly (IO[18],data_out[20],doe); +bufif1 #outdly (IO[19],data_out[21],doe); +bufif1 #outdly (IO[20],data_out[22],doe); +bufif1 #outdly (IO[21],data_out[23],doe); +bufif1 #outdly (IO[22],data_out[24],doe); +bufif1 #outdly (IO[23],data_out[25],doe); +bufif1 #outdly (IOP[3],data_out[26],doe); + +bufif1 #outdly (IO[24],data_out[27],doe); +bufif1 #outdly (IO[25],data_out[28],doe); +bufif1 #outdly (IO[26],data_out[29],doe); +bufif1 #outdly (IO[27],data_out[30],doe); +bufif1 #outdly (IO[28],data_out[31],doe); +bufif1 #outdly (IO[29],data_out[32],doe); +bufif1 #outdly (IO[30],data_out[33],doe); +bufif1 #outdly (IO[31],data_out[34],doe); +bufif1 #outdly (IOP[4],data_out[35],doe); + +assign doe = cs_b & ~wren_b & ~oe_ ; + + +///////////////////////////////////////////////////////////////////////// +// write to ram +//------------- +always @(posedge clk) +begin + if (wren_b & bw_b1 & ~cen_) mem1[addr_b] = {IOP[1], IO[7:0]}; + if (wren_b & bw_b2 & ~cen_) mem2[addr_b] = {IOP[2], IO[15:8]}; + if (wren_b & bw_b3 & ~cen_) mem3[addr_b] = {IOP[3], IO[23:16]}; + if (wren_b & bw_b4 & ~cen_) mem4[addr_b] = {IOP[4], IO[31:24]}; +end + +endmodule -- cgit v1.2.3 From fb73ea172526319803756b985dd3c104881304b1 Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Thu, 29 Jul 2010 21:25:26 -0700 Subject: Checkpoint checkin. Loopback is running via the external ZBT SRAM...HOWEVER, its not running well, its stable but the data is corrupted sometimes. Not clear if its a logic or AC timing/SI issue yet. --- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v | 165 ++++++++++++++ usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco | 82 +++++++ usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v | 165 ++++++++++++++ usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco | 82 +++++++ usrp2/extramfifo/Makefile.srcs | 16 ++ usrp2/extramfifo/ext_fifo.v | 120 +++++++++++ usrp2/extramfifo/ext_fifo_tb.cmd | 11 + usrp2/extramfifo/ext_fifo_tb.prj | 9 + usrp2/extramfifo/ext_fifo_tb.sh | 1 + usrp2/extramfifo/ext_fifo_tb.v | 285 +++++++++++++++++++++++++ usrp2/extramfifo/nobl_fifo.v | 264 +++++++++++++++++++++++ usrp2/extramfifo/nobl_if.v | 136 ++++++++++++ usrp2/extramfifo/test_sram_if.v | 171 +++++++++++++++ 13 files changed, 1507 insertions(+) create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco create mode 100644 usrp2/extramfifo/Makefile.srcs create mode 100644 usrp2/extramfifo/ext_fifo.v create mode 100644 usrp2/extramfifo/ext_fifo_tb.cmd create mode 100644 usrp2/extramfifo/ext_fifo_tb.prj create mode 100644 usrp2/extramfifo/ext_fifo_tb.sh create mode 100644 usrp2/extramfifo/ext_fifo_tb.v create mode 100644 usrp2/extramfifo/nobl_fifo.v create mode 100644 usrp2/extramfifo/nobl_if.v create mode 100644 usrp2/extramfifo/test_sram_if.v diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v new file mode 100644 index 000000000..1d7a5ca2a --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v @@ -0,0 +1,165 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2007 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The synthesis directives "translate_off/translate_on" specified below are +// supported by Xilinx, Mentor Graphics and Synplicity synthesis +// tools. Ensure they are correct for your synthesis tool(s). + +// You must compile the wrapper file fifo_xlnx_512x36_2clk_18to36.v when simulating +// the core, fifo_xlnx_512x36_2clk_18to36. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + +`timescale 1ns/1ps + +module fifo_xlnx_512x36_2clk_18to36( + din, + rd_clk, + rd_en, + rst, + wr_clk, + wr_en, + dout, + empty, + full); + + +input [17 : 0] din; +input rd_clk; +input rd_en; +input rst; +input wr_clk; +input wr_en; +output [35 : 0] dout; +output empty; +output full; + +// synthesis translate_off + + FIFO_GENERATOR_V4_4 #( + .C_COMMON_CLOCK(0), + .C_COUNT_TYPE(0), + .C_DATA_COUNT_WIDTH(10), + .C_DEFAULT_VALUE("BlankString"), + .C_DIN_WIDTH(18), + .C_DOUT_RST_VAL("0"), + .C_DOUT_WIDTH(36), + .C_ENABLE_RLOCS(0), + .C_FAMILY("spartan3"), + .C_FULL_FLAGS_RST_VAL(0), + .C_HAS_ALMOST_EMPTY(0), + .C_HAS_ALMOST_FULL(0), + .C_HAS_BACKUP(0), + .C_HAS_DATA_COUNT(0), + .C_HAS_INT_CLK(0), + .C_HAS_MEMINIT_FILE(0), + .C_HAS_OVERFLOW(0), + .C_HAS_RD_DATA_COUNT(0), + .C_HAS_RD_RST(0), + .C_HAS_RST(1), + .C_HAS_SRST(0), + .C_HAS_UNDERFLOW(0), + .C_HAS_VALID(0), + .C_HAS_WR_ACK(0), + .C_HAS_WR_DATA_COUNT(0), + .C_HAS_WR_RST(0), + .C_IMPLEMENTATION_TYPE(2), + .C_INIT_WR_PNTR_VAL(0), + .C_MEMORY_TYPE(1), + .C_MIF_FILE_NAME("BlankString"), + .C_MSGON_VAL(1), + .C_OPTIMIZATION_MODE(0), + .C_OVERFLOW_LOW(0), + .C_PRELOAD_LATENCY(0), + .C_PRELOAD_REGS(1), + .C_PRIM_FIFO_TYPE("1kx18"), + .C_PROG_EMPTY_THRESH_ASSERT_VAL(4), + .C_PROG_EMPTY_THRESH_NEGATE_VAL(5), + .C_PROG_EMPTY_TYPE(0), + .C_PROG_FULL_THRESH_ASSERT_VAL(1023), + .C_PROG_FULL_THRESH_NEGATE_VAL(1022), + .C_PROG_FULL_TYPE(0), + .C_RD_DATA_COUNT_WIDTH(9), + .C_RD_DEPTH(512), + .C_RD_FREQ(1), + .C_RD_PNTR_WIDTH(9), + .C_UNDERFLOW_LOW(0), + .C_USE_DOUT_RST(1), + .C_USE_ECC(0), + .C_USE_EMBEDDED_REG(0), + .C_USE_FIFO16_FLAGS(0), + .C_USE_FWFT_DATA_COUNT(0), + .C_VALID_LOW(0), + .C_WR_ACK_LOW(0), + .C_WR_DATA_COUNT_WIDTH(10), + .C_WR_DEPTH(1024), + .C_WR_FREQ(1), + .C_WR_PNTR_WIDTH(10), + .C_WR_RESPONSE_LATENCY(1)) + inst ( + .DIN(din), + .RD_CLK(rd_clk), + .RD_EN(rd_en), + .RST(rst), + .WR_CLK(wr_clk), + .WR_EN(wr_en), + .DOUT(dout), + .EMPTY(empty), + .FULL(full), + .CLK(), + .INT_CLK(), + .BACKUP(), + .BACKUP_MARKER(), + .PROG_EMPTY_THRESH(), + .PROG_EMPTY_THRESH_ASSERT(), + .PROG_EMPTY_THRESH_NEGATE(), + .PROG_FULL_THRESH(), + .PROG_FULL_THRESH_ASSERT(), + .PROG_FULL_THRESH_NEGATE(), + .RD_RST(), + .SRST(), + .WR_RST(), + .ALMOST_EMPTY(), + .ALMOST_FULL(), + .DATA_COUNT(), + .OVERFLOW(), + .PROG_EMPTY(), + .PROG_FULL(), + .VALID(), + .RD_DATA_COUNT(), + .UNDERFLOW(), + .WR_ACK(), + .WR_DATA_COUNT(), + .SBITERR(), + .DBITERR()); + + +// synthesis translate_on + +endmodule + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco new file mode 100644 index 000000000..df97fd0e0 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco @@ -0,0 +1,82 @@ +############################################################## +# +# Xilinx Core Generator version K.39 +# Date: Thu Jul 29 23:02:41 2010 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = false +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc3s2000 +SET devicefamily = spartan3 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = fg456 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -5 +SET verilogsim = true +SET vhdlsim = false +# END Project Options +# BEGIN Select +SELECT Fifo_Generator family Xilinx,_Inc. 4.4 +# END Select +# BEGIN Parameters +CSET almost_empty_flag=false +CSET almost_full_flag=false +CSET component_name=fifo_xlnx_512x36_2clk_18to36 +CSET data_count=false +CSET data_count_width=10 +CSET disable_timing_violations=false +CSET dout_reset_value=0 +CSET empty_threshold_assert_value=4 +CSET empty_threshold_negate_value=5 +CSET enable_ecc=false +CSET enable_int_clk=false +CSET fifo_implementation=Independent_Clocks_Block_RAM +CSET full_flags_reset_value=0 +CSET full_threshold_assert_value=1023 +CSET full_threshold_negate_value=1022 +CSET input_data_width=18 +CSET input_depth=1024 +CSET output_data_width=36 +CSET output_depth=512 +CSET overflow_flag=false +CSET overflow_sense=Active_High +CSET performance_options=First_Word_Fall_Through +CSET programmable_empty_type=No_Programmable_Empty_Threshold +CSET programmable_full_type=No_Programmable_Full_Threshold +CSET read_clock_frequency=1 +CSET read_data_count=false +CSET read_data_count_width=9 +CSET reset_pin=true +CSET reset_type=Asynchronous_Reset +CSET underflow_flag=false +CSET underflow_sense=Active_High +CSET use_dout_reset=true +CSET use_embedded_registers=false +CSET use_extra_logic=false +CSET valid_flag=false +CSET valid_sense=Active_High +CSET write_acknowledge_flag=false +CSET write_acknowledge_sense=Active_High +CSET write_clock_frequency=1 +CSET write_data_count=false +CSET write_data_count_width=10 +# END Parameters +GENERATE +# CRC: 117ae77f + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v new file mode 100644 index 000000000..f7f6e7e9f --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v @@ -0,0 +1,165 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2007 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The synthesis directives "translate_off/translate_on" specified below are +// supported by Xilinx, Mentor Graphics and Synplicity synthesis +// tools. Ensure they are correct for your synthesis tool(s). + +// You must compile the wrapper file fifo_xlnx_512x36_2clk_36to18.v when simulating +// the core, fifo_xlnx_512x36_2clk_36to18. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + +`timescale 1ns/1ps + +module fifo_xlnx_512x36_2clk_36to18( + din, + rd_clk, + rd_en, + rst, + wr_clk, + wr_en, + dout, + empty, + full); + + +input [35 : 0] din; +input rd_clk; +input rd_en; +input rst; +input wr_clk; +input wr_en; +output [17 : 0] dout; +output empty; +output full; + +// synthesis translate_off + + FIFO_GENERATOR_V4_4 #( + .C_COMMON_CLOCK(0), + .C_COUNT_TYPE(0), + .C_DATA_COUNT_WIDTH(9), + .C_DEFAULT_VALUE("BlankString"), + .C_DIN_WIDTH(36), + .C_DOUT_RST_VAL("0"), + .C_DOUT_WIDTH(18), + .C_ENABLE_RLOCS(0), + .C_FAMILY("spartan3"), + .C_FULL_FLAGS_RST_VAL(0), + .C_HAS_ALMOST_EMPTY(0), + .C_HAS_ALMOST_FULL(0), + .C_HAS_BACKUP(0), + .C_HAS_DATA_COUNT(0), + .C_HAS_INT_CLK(0), + .C_HAS_MEMINIT_FILE(0), + .C_HAS_OVERFLOW(0), + .C_HAS_RD_DATA_COUNT(0), + .C_HAS_RD_RST(0), + .C_HAS_RST(1), + .C_HAS_SRST(0), + .C_HAS_UNDERFLOW(0), + .C_HAS_VALID(0), + .C_HAS_WR_ACK(0), + .C_HAS_WR_DATA_COUNT(0), + .C_HAS_WR_RST(0), + .C_IMPLEMENTATION_TYPE(2), + .C_INIT_WR_PNTR_VAL(0), + .C_MEMORY_TYPE(1), + .C_MIF_FILE_NAME("BlankString"), + .C_MSGON_VAL(1), + .C_OPTIMIZATION_MODE(0), + .C_OVERFLOW_LOW(0), + .C_PRELOAD_LATENCY(0), + .C_PRELOAD_REGS(1), + .C_PRIM_FIFO_TYPE("512x36"), + .C_PROG_EMPTY_THRESH_ASSERT_VAL(4), + .C_PROG_EMPTY_THRESH_NEGATE_VAL(5), + .C_PROG_EMPTY_TYPE(0), + .C_PROG_FULL_THRESH_ASSERT_VAL(509), + .C_PROG_FULL_THRESH_NEGATE_VAL(508), + .C_PROG_FULL_TYPE(0), + .C_RD_DATA_COUNT_WIDTH(10), + .C_RD_DEPTH(1024), + .C_RD_FREQ(1), + .C_RD_PNTR_WIDTH(10), + .C_UNDERFLOW_LOW(0), + .C_USE_DOUT_RST(1), + .C_USE_ECC(0), + .C_USE_EMBEDDED_REG(0), + .C_USE_FIFO16_FLAGS(0), + .C_USE_FWFT_DATA_COUNT(0), + .C_VALID_LOW(0), + .C_WR_ACK_LOW(0), + .C_WR_DATA_COUNT_WIDTH(9), + .C_WR_DEPTH(512), + .C_WR_FREQ(1), + .C_WR_PNTR_WIDTH(9), + .C_WR_RESPONSE_LATENCY(1)) + inst ( + .DIN(din), + .RD_CLK(rd_clk), + .RD_EN(rd_en), + .RST(rst), + .WR_CLK(wr_clk), + .WR_EN(wr_en), + .DOUT(dout), + .EMPTY(empty), + .FULL(full), + .CLK(), + .INT_CLK(), + .BACKUP(), + .BACKUP_MARKER(), + .PROG_EMPTY_THRESH(), + .PROG_EMPTY_THRESH_ASSERT(), + .PROG_EMPTY_THRESH_NEGATE(), + .PROG_FULL_THRESH(), + .PROG_FULL_THRESH_ASSERT(), + .PROG_FULL_THRESH_NEGATE(), + .RD_RST(), + .SRST(), + .WR_RST(), + .ALMOST_EMPTY(), + .ALMOST_FULL(), + .DATA_COUNT(), + .OVERFLOW(), + .PROG_EMPTY(), + .PROG_FULL(), + .VALID(), + .RD_DATA_COUNT(), + .UNDERFLOW(), + .WR_ACK(), + .WR_DATA_COUNT(), + .SBITERR(), + .DBITERR()); + + +// synthesis translate_on + +endmodule + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco new file mode 100644 index 000000000..a1c75dc39 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco @@ -0,0 +1,82 @@ +############################################################## +# +# Xilinx Core Generator version K.39 +# Date: Thu Jul 29 18:10:59 2010 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = false +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc3s2000 +SET devicefamily = spartan3 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = fg456 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -5 +SET verilogsim = true +SET vhdlsim = false +# END Project Options +# BEGIN Select +SELECT Fifo_Generator family Xilinx,_Inc. 4.4 +# END Select +# BEGIN Parameters +CSET almost_empty_flag=false +CSET almost_full_flag=false +CSET component_name=fifo_xlnx_512x36_2clk_36to18 +CSET data_count=false +CSET data_count_width=9 +CSET disable_timing_violations=false +CSET dout_reset_value=0 +CSET empty_threshold_assert_value=4 +CSET empty_threshold_negate_value=5 +CSET enable_ecc=false +CSET enable_int_clk=false +CSET fifo_implementation=Independent_Clocks_Block_RAM +CSET full_flags_reset_value=0 +CSET full_threshold_assert_value=509 +CSET full_threshold_negate_value=508 +CSET input_data_width=36 +CSET input_depth=512 +CSET output_data_width=18 +CSET output_depth=1024 +CSET overflow_flag=false +CSET overflow_sense=Active_High +CSET performance_options=First_Word_Fall_Through +CSET programmable_empty_type=No_Programmable_Empty_Threshold +CSET programmable_full_type=No_Programmable_Full_Threshold +CSET read_clock_frequency=1 +CSET read_data_count=false +CSET read_data_count_width=10 +CSET reset_pin=true +CSET reset_type=Asynchronous_Reset +CSET underflow_flag=false +CSET underflow_sense=Active_High +CSET use_dout_reset=true +CSET use_embedded_registers=false +CSET use_extra_logic=false +CSET valid_flag=false +CSET valid_sense=Active_High +CSET write_acknowledge_flag=false +CSET write_acknowledge_sense=Active_High +CSET write_clock_frequency=1 +CSET write_data_count=false +CSET write_data_count_width=9 +# END Parameters +GENERATE +# CRC: 392ad537 + diff --git a/usrp2/extramfifo/Makefile.srcs b/usrp2/extramfifo/Makefile.srcs new file mode 100644 index 000000000..7cd49f4f6 --- /dev/null +++ b/usrp2/extramfifo/Makefile.srcs @@ -0,0 +1,16 @@ +# +# Copyright 2010 Ettus Research LLC +# + +################################################## +# Extram Sources +################################################## +EXTRAM_SRCS = $(abspath $(addprefix $(BASE_DIR)/../extramfifo/, \ +ext_fifo.v \ +nobl_if.v \ +nobl_fifo.v \ +icon.v \ +icon.xco \ +ila.v \ +ila.xco \ +)) diff --git a/usrp2/extramfifo/ext_fifo.v b/usrp2/extramfifo/ext_fifo.v new file mode 100644 index 000000000..55935146a --- /dev/null +++ b/usrp2/extramfifo/ext_fifo.v @@ -0,0 +1,120 @@ +module ext_fifo + #(parameter INT_WIDTH=36,EXT_WIDTH=18,DEPTH=19) + ( + input int_clk, + input ext_clk, + input rst, + input [EXT_WIDTH-1:0] RAM_D_pi, + output [EXT_WIDTH-1:0] RAM_D_po, + output RAM_D_poe, + output [DEPTH-1:0] RAM_A, + output RAM_WEn, + output RAM_CENn, + output RAM_LDn, + output RAM_OEn, + output RAM_CE1n, + input [INT_WIDTH-1:0] datain, + input src_rdy_i, // WRITE + output dst_rdy_o, // not FULL + output [INT_WIDTH-1:0] dataout, + output src_rdy_o, // not EMPTY + input dst_rdy_i // READ + ); + + wire [EXT_WIDTH-1:0] write_data; + wire [EXT_WIDTH-1:0] read_data; + wire full1, empty1; + wire full2, empty2; + + + // FIFO buffers data from UDP engine into external FIFO clock domain. + fifo_xlnx_512x36_2clk_36to18 fifo_xlnx_512x36_2clk_36to18_i1 ( + .rst(rst), + .wr_clk(int_clk), + .rd_clk(ext_clk), + .din(datain), // Bus [35 : 0] + .wr_en(src_rdy_i), + .rd_en(space_avail&~empty1), + // .rd_en(~full2&~empty1), + .dout(write_data), // Bus [17 : 0] + .full(full1), + .empty(empty1)); + assign dst_rdy_o = ~full1; + + + + // External FIFO running at ext clock rate and 18 bit width. + nobl_fifo #(.WIDTH(EXT_WIDTH),.DEPTH(DEPTH)) + nobl_fifo_i1 + ( + .clk(ext_clk), + .rst(rst), + .RAM_D_pi(RAM_D_pi), + .RAM_D_po(RAM_D_po), + .RAM_D_poe(RAM_D_poe), + .RAM_A(RAM_A), + .RAM_WEn(RAM_WEn), + .RAM_CENn(RAM_CENn), + .RAM_LDn(RAM_LDn), + .RAM_OEn(RAM_OEn), + .RAM_CE1n(RAM_CE1n), + .write_data(write_data), + .write_strobe(space_avail & ~empty1 ), + .space_avail(space_avail), + .read_data(read_data), + .read_strobe(data_avail & ~full2), + .data_avail(data_avail) + ); + + + + // FIFO buffers data read from external FIFO into DSP clk domain and to TX DSP. + fifo_xlnx_512x36_2clk_18to36 fifo_xlnx_512x36_2clk_18to36_i1 ( + .rst(rst), + .wr_clk(ext_clk), + .rd_clk(int_clk), + .din(read_data), // Bus [17 : 0] + // .din(write_data), // Bus [17 : 0] + .wr_en(data_avail & ~full2 ), + // .wr_en(~full2&~empty1), + .rd_en(dst_rdy_i), + .dout(dataout), // Bus [35 : 0] + .full(full2), + .empty(empty2)); + assign src_rdy_o = ~empty2; + + + + wire [35:0] CONTROL0; + reg [7:0] datain_reg,write_data_reg,read_data_reg ; + reg space_avail_reg,data_avail_reg,empty1_reg,full2_reg ; + + always @(posedge ext_clk) + begin + //datain_reg <= datain[7:0]; + write_data_reg <= write_data[7:0]; + read_data_reg <= read_data[7:0]; + space_avail_reg <= space_avail; + data_avail_reg <= data_avail; + empty1_reg <= empty1; + full2_reg <= full2; + end + + + icon icon_i1 + ( + .CONTROL0(CONTROL0) + ); + + ila ila_i1 + ( + .CLK(ext_clk), + .CONTROL(CONTROL0), + // .TRIG0(address_reg), + .TRIG0(write_data_reg[7:0]), + .TRIG1(read_data_reg[7:0]), + .TRIG2(0), + .TRIG3({space_avail_reg,data_avail_reg,empty1_reg,full2_reg}) + ); + +endmodule // ext_fifo diff --git a/usrp2/extramfifo/ext_fifo_tb.cmd b/usrp2/extramfifo/ext_fifo_tb.cmd new file mode 100644 index 000000000..b0ab830dc --- /dev/null +++ b/usrp2/extramfifo/ext_fifo_tb.cmd @@ -0,0 +1,11 @@ +/opt/Xilinx/12.1/ISE_DS/ISE/verilog/src/glbl.v +-y . +-y ../coregen/ +-y ../models +-y /home/ianb/usrp-fpga/usrp2/sdr_lib +-y /home/ianb/usrp-fpga/usrp2/control_lib +-y /home/ianb/usrp-fpga/usrp2/models +-y /opt/Xilinx/12.1/ISE_DS/ISE/verilog/src/unisims +-y /opt/Xilinx/12.1/ISE_DS/ISE/verilog/src +-y /opt/Xilinx/12.1/ISE_DS/ISE/verilog/src/XilinxCoreLib + diff --git a/usrp2/extramfifo/ext_fifo_tb.prj b/usrp2/extramfifo/ext_fifo_tb.prj new file mode 100644 index 000000000..a11a15b2f --- /dev/null +++ b/usrp2/extramfifo/ext_fifo_tb.prj @@ -0,0 +1,9 @@ +verilog work "./ext_fifo_tb.v" +verilog work "./ext_fifo.v" +verilog work "./nobl_fifo.v" +verilog work "./nobl_if.v" +verilog work "../coregen/fifo_xlnx_512x36_2clk_36to18.v" +verilog work "../coregen/fifo_xlnx_512x36_2clk_18to36.v" +verilog work "../models/CY7C1356C/cy1356.v" +verilog work "../models/idt71v65603s150.v" +verilog work "$XILINX/verilog/src/glbl.v" diff --git a/usrp2/extramfifo/ext_fifo_tb.sh b/usrp2/extramfifo/ext_fifo_tb.sh new file mode 100644 index 000000000..a56574102 --- /dev/null +++ b/usrp2/extramfifo/ext_fifo_tb.sh @@ -0,0 +1 @@ +fuse -prj ext_fifo_tb.prj -t work.glbl -t work.ext_fifo_tb -L unisims_ver -L xilinxcorelib_ver -o ext_fifo_tb diff --git a/usrp2/extramfifo/ext_fifo_tb.v b/usrp2/extramfifo/ext_fifo_tb.v new file mode 100644 index 000000000..aa1fd6e3c --- /dev/null +++ b/usrp2/extramfifo/ext_fifo_tb.v @@ -0,0 +1,285 @@ +`timescale 1ns / 1ps +`define INT_WIDTH 36 +`define EXT_WIDTH 18 +`define DEPTH 19 +`define DUMP_VCD_FULL + +module ext_fifo_tb(); + + + reg int_clk; + reg ext_clk; + reg rst; + + + + wire [`EXT_WIDTH-1:0] RAM_D_pi; + wire [`EXT_WIDTH-1:0] RAM_D_po; + wire [`EXT_WIDTH-1:0] RAM_D; + wire RAM_D_poe; + wire [`DEPTH-1:0] RAM_A; + wire RAM_WEn; + wire RAM_CENn; + wire RAM_LDn; + wire RAM_OEn; + wire RAM_CE1n; + reg [`INT_WIDTH-1:0] datain; + reg src_rdy_i; // WRITE + wire dst_rdy_o; // not FULL + wire [`INT_WIDTH-1:0] dataout; + reg [`INT_WIDTH-1:0] ref_dataout; + wire src_rdy_o; // not EMPTY + reg dst_rdy_i; + + + // Clocks + // Int clock is 100MHz + // Ext clock is 125MHz + initial + begin + int_clk <= 0; + ext_clk <= 0; + datain <= 0; + ref_dataout <= 1; + src_rdy_i <= 0; + dst_rdy_i <= 0; + end + + always + #5 int_clk <= ~int_clk; + + always + #4 ext_clk <= ~ext_clk; + + + initial + begin + rst <= 1; + repeat (5) @(negedge int_clk); + rst <= 0; + @(negedge int_clk); + repeat (1000) + begin + @(negedge int_clk); + datain <= datain + 1; + src_rdy_i <= 1; + @(negedge int_clk); + src_rdy_i <= 0; +// @(negedge int_clk); +// dst_rdy_i <= src_rdy_o; +// @(negedge int_clk); +// dst_rdy_i <= 0; + repeat (2) @(negedge int_clk); + end // repeat (1000) + // Fall through fifo, first output already valid + if (dataout !== ref_dataout) + $display("Error: Expected %x, got %x",ref_dataout, dataout); + repeat (1000) + begin + @(negedge int_clk); + datain <= datain + 1; + src_rdy_i <= 1; + @(negedge int_clk); + src_rdy_i <= 0; + @(negedge int_clk); + ref_dataout <= ref_dataout + 1; + dst_rdy_i <= src_rdy_o; + @(negedge int_clk); + if (dataout !== ref_dataout) + $display("Error: Expected %x, got %x",ref_dataout, dataout); + dst_rdy_i <= 0; +// repeat (2) @(negedge int_clk); + end // repeat (1000) + repeat (1000) + begin +// @(negedge int_clk); +// datain <= datain + 1; +// src_rdy_i <= 1; +// @(negedge int_clk); +// src_rdy_i <= 0; + @(negedge int_clk); + ref_dataout <= ref_dataout + 1; + dst_rdy_i <= src_rdy_o; + @(negedge int_clk); + if (dataout !== ref_dataout) + $display("Error: Expected %x, got %x",ref_dataout, dataout); + dst_rdy_i <= 0; +// repeat (2) @(negedge int_clk); + end // repeat (1000) + + $finish; + + end // initial begin + + + /////////////////////////////////////////////////////////////////////////////////// + // Simulation control // + /////////////////////////////////////////////////////////////////////////////////// + `ifdef DUMP_LX2_TOP + // Set up output files + initial begin + $dumpfile("ext_fifo_tb.lx2"); + $dumpvars(1,ext_fifo_tb); + end + `endif + + `ifdef DUMP_LX2_FULL + // Set up output files + initial begin + $dumpfile("ext_fifo_tb.lx2"); + $dumpvars(0,ext_fifo_tb); + end + `endif + + `ifdef DUMP_VCD_TOP + // Set up output files + initial begin + $dumpfile("ext_fifo_tb.vcd"); + $dumpvars(1,ext_fifo_tb); + end + `endif + + `ifdef DUMP_VCD_TOP_PLUS_NEXT + // Set up output files + initial begin + $dumpfile("ext_fifo_tb.vcd"); + $dumpvars(2,ext_fifo_tb); + end + `endif + + + `ifdef DUMP_VCD_FULL + // Set up output files + initial begin + $dumpfile("ext_fifo_tb.vcd"); + $dumpvars(0,ext_fifo_tb); + end + `endif + + // Update display every 10 us + always #10000 $monitor("Time in uS ",$time/1000); + + wire [`EXT_WIDTH-1:0] RAM_D_pi_ext; + wire [`EXT_WIDTH-1:0] RAM_D_po_ext; + wire [`EXT_WIDTH-1:0] RAM_D_ext; + wire RAM_D_poe_ext; + + genvar i; + + // + // Instantiate IO for Bidirectional bus to SRAM + // + + generate + for (i=0;i<18;i=i+1) + begin : gen_RAM_D_IO + + IOBUF #( + .DRIVE(12), + .IOSTANDARD("LVCMOS25"), + .SLEW("FAST") + ) + RAM_D_i ( + .O(RAM_D_pi_ext[i]), + .I(RAM_D_po_ext[i]), + .IO(RAM_D[i]), + .T(RAM_D_poe_ext) + ); + end // block: gen_RAM_D_IO + + endgenerate + + wire [`DEPTH-1:0] RAM_A_ext; + wire RAM_WEn_ext,RAM_LDn_ext,RAM_CE1n_ext,RAM_OEn_ext,RAM_CENn_ext; + + assign #1 RAM_D_pi = RAM_D_pi_ext; + + assign #1 RAM_D_po_ext = RAM_D_po; + + assign #1 RAM_D_poe_ext = RAM_D_poe; + + assign #2 RAM_WEn_ext = RAM_WEn; + + assign #2 RAM_LDn_ext = RAM_LDn; + + assign #2 RAM_CE1n_ext = RAM_CE1n; + + assign #2 RAM_OEn_ext = RAM_OEn; + + assign #2 RAM_CENn_ext = RAM_CENn; + + assign #2 RAM_A_ext = RAM_A; + +/* -----\/----- EXCLUDED -----\/----- + wire [13:0] temp1; + assign temp1 = 14'h0; + wire [3:0] temp2; + assign temp2 = 4'h0; + -----/\----- EXCLUDED -----/\----- */ + + + idt71v65603s150 idt71v65603s150_i1 + ( + .A(RAM_A_ext[17:0]), + .adv_ld_(RAM_LDn_ext), // advance (high) / load (low) + .bw1_(1'b0), + .bw2_(1'b0), + .bw3_(1'b1), + .bw4_(1'b1), // byte write enables (low) + .ce1_(RAM_CE1n_ext), + .ce2(1'b1), + .ce2_(1'b0), // chip enables + .cen_(RAM_CENn_ext), // clock enable (low) + .clk(ext_clk), // clock + .IO({RAM_D[16:9],RAM_D[7:0]}), + .IOP({RAM_D[17],RAM_D[8]}), // data bus + .lbo_(1'b0), // linear burst order (low) + .oe_(RAM_OEn_ext), // output enable (low) + .r_w_(RAM_WEn_ext) + ); // read (high) / write (low) + +/* -----\/----- EXCLUDED -----\/----- + + + cy1356 cy1356_i1 + ( .d(RAM_D), + .clk(ext_clk), + .a(RAM_A_ext), + .bws(2'b00), + .we_b(RAM_WEn_ext), + .adv_lb(RAM_LDn_ext), + .ce1b(RAM_CE1n_ext), + .ce2(1'b1), + .ce3b(1'b0), + .oeb(RAM_OEn_ext), + .cenb(RAM_CENn_ext), + .mode(1'b0) + ); + -----/\----- EXCLUDED -----/\----- */ + + + ext_fifo + #(.INT_WIDTH(`INT_WIDTH),.EXT_WIDTH(`EXT_WIDTH),.DEPTH(`DEPTH)) + ext_fifo_i1 + ( + .int_clk(int_clk), + .ext_clk(ext_clk), + .rst(rst), + .RAM_D_pi(RAM_D_pi), + .RAM_D_po(RAM_D_po), + .RAM_D_poe(RAM_D_poe), + .RAM_A(RAM_A), + .RAM_WEn(RAM_WEn), + .RAM_CENn(RAM_CENn), + .RAM_LDn(RAM_LDn), + .RAM_OEn(RAM_OEn), + .RAM_CE1n(RAM_CE1n), + .datain(datain), + .src_rdy_i(src_rdy_i), // WRITE + .dst_rdy_o(dst_rdy_o), // not FULL + .dataout(dataout), + .src_rdy_o(src_rdy_o), // not EMPTY + .dst_rdy_i(dst_rdy_i) + ); + +endmodule // ext_fifo_tb diff --git a/usrp2/extramfifo/nobl_fifo.v b/usrp2/extramfifo/nobl_fifo.v new file mode 100644 index 000000000..1bd7439ad --- /dev/null +++ b/usrp2/extramfifo/nobl_fifo.v @@ -0,0 +1,264 @@ +module nobl_fifo + #(parameter WIDTH=18,DEPTH=19) + ( + input clk, + input rst, + input [WIDTH-1:0] RAM_D_pi, + output [WIDTH-1:0] RAM_D_po, + output RAM_D_poe, + output [DEPTH-1:0] RAM_A, + output RAM_WEn, + output RAM_CENn, + output RAM_LDn, + output RAM_OEn, + output RAM_CE1n, + input [WIDTH-1:0] write_data, + input write_strobe, + output reg space_avail, + output reg [WIDTH-1:0] read_data, + input read_strobe, + output reg data_avail + ); + + reg [DEPTH-1:0] capacity; + reg [DEPTH-1:0] wr_pointer; + reg [DEPTH-1:0] rd_pointer; + wire [DEPTH-1:0] address; + + reg supress; + reg data_avail_int; // Data available with high latency from ext FIFO flag + wire [WIDTH-1:0] data_in; + wire data_in_valid; + reg [WIDTH-1:0] read_data_pending; + reg pending_avail; + wire read_strobe_int; + + + + assign read = read_strobe_int && data_avail_int; + assign write = write_strobe && space_avail; + + // When a read and write collision occur, supress availability flags next cycle + // and complete write followed by read over 2 cycles. This forces balanced arbitration + // and makes for a simple logic design. + + always @(posedge clk) + if (rst) + begin + capacity <= 1 << (DEPTH-1); + wr_pointer <= 0; + rd_pointer <= 0; + space_avail <= 0; + data_avail_int <= 0; + supress <= 0; + end + else + begin + space_avail <= ~((capacity == 0) || (read&&write) || (capacity == 1 && write) ); + // Capacity has 1 cycle delay so look ahead here for corner case of read of last item in FIFO. + data_avail_int <= ~((capacity == (1 << (DEPTH-1))) || (read&&write) || (capacity == ((1 << (DEPTH-1))-1) && read) ); + supress <= read && write; + wr_pointer <= wr_pointer + write; + rd_pointer <= rd_pointer + ((~write && read) || supress); + capacity <= capacity - write + ((~write && read) || supress); // REVISIT + end // else: !if(rst) + + assign address = write ? wr_pointer : rd_pointer; + assign enable = write || read || supress; + + // + // Need to have first item in external FIFO moved into local registers for single cycle latency and throughput on read. + // 2 local registers are provided so that a read every other clock cycle can be sustained. + // No fowarding logic is provided to bypass the external FIFO as latency is of no concern. + // + always @(posedge clk) + if (rst) + begin + read_data <= 0; + data_avail <= 0; + read_data_pending <= 0; + pending_avail <= 0; + end + else + begin + case({read_strobe,data_in_valid}) + // No read externally, no new data arriving from external FIFO + 2'b00: begin + case({data_avail,pending_avail}) + // Start Data empty, Pending empty. + // + // End Data full, Pending empty + 2'b00: begin + read_data <= read_data; + data_avail <= data_avail; + read_data_pending <= read_data_pending ; + pending_avail <= pending_avail; + end + // Start Data empty, Pending full. + // Data <= Pending, + // End Data full, Penidng empty. + 2'b01: begin + read_data <= read_data_pending; + data_avail <= 1'b1; + read_data_pending <= read_data_pending ; + pending_avail <= 1'b0; + end + // Start Data full, Pending empty. + // + // End Data full, Pending empty + 2'b10: begin + read_data <= read_data; + data_avail <= data_avail; + read_data_pending <= read_data_pending ; + pending_avail <= pending_avail; + end + // Start Data full, Pending full. + // + // End Data full, Pending full. + 2'b11: begin + read_data <= read_data; + data_avail <= data_avail; + read_data_pending <= read_data_pending ; + pending_avail <= pending_avail; + end + endcase + end + // No read externally, new data arriving from external FIFO + 2'b01: begin + case({data_avail,pending_avail}) + // Start Data empty, Pending empty. + // Data <= FIFO + // End Data full, Pending empty + 2'b00: begin + read_data <= data_in; + data_avail <= 1'b1; + read_data_pending <= read_data_pending ; + pending_avail <= 1'b0; + end + // Start Data empty, Pending full. + // Data <= Pending, Pending <= FIFO + // End Data full, Penidng full. + 2'b01: begin + read_data <= read_data_pending; + data_avail <= 1'b1; + read_data_pending <= data_in ; + pending_avail <= 1'b1; + end + // Start Data full, Pending empty. + // Pending <= FIFO + // End Data full, Pending full + 2'b10: begin + read_data <= read_data; + data_avail <= 1'b1; + read_data_pending <= data_in ; + pending_avail <= 1'b1; + end + // Data full, Pending full. + // *ILLEGAL STATE* + 2'b11: begin + + end + endcase + end + // Read externally, no new data arriving from external FIFO + 2'b10: begin + case({data_avail,pending_avail}) + // Start Data empty, Pending empty. + // *ILLEGAL STATE* + 2'b00: begin + + end + // Start Data empty, Pending full. + // *ILLEGAL STATE* + 2'b01: begin + + end + // Start Data full, Pending empty. + // Out <= Data + // End Data empty, Pending empty. + 2'b10: begin + read_data <= read_data; + data_avail <= 1'b0; + read_data_pending <= read_data_pending ; + pending_avail <= 1'b0; + end + // Start Data full, Pending full. + // Out <= Data, + // End Data full, Pending empty + 2'b11: begin + read_data <= read_data_pending; + data_avail <= 1'b1; + read_data_pending <= read_data_pending ; + pending_avail <= 1'b0; + end + endcase + end + // Read externally, new data arriving from external FIFO + 2'b11: begin + case({data_avail,pending_avail}) + // Start Data empty, Pending empty. + // *ILLEGAL STATE* + 2'b00: begin + + end + // Start Data empty, Pending full. + // *ILLEGAL STATE* + 2'b01: begin + + end + // Start Data full, Pending empty. + // Out <= Data, Data <= FIFO + // End Data full, Pending empty. + 2'b10: begin + read_data <= data_in; + data_avail <= 1'b1; + read_data_pending <= read_data_pending ; + pending_avail <= 1'b0; + end + // Start Data full, Pending full. + // Out <= Data, Data <= Pending, Pending <= FIFO + // End Data full, Pending full + 2'b11: begin + read_data <= read_data_pending; + data_avail <= 1'b1; + read_data_pending <= data_in ; + pending_avail <= 1'b1; + end + endcase + end + endcase + end + + // Start an external FIFO read as soon as a read of the buffer reg is strobed to minimise refill latency. + // If the buffer reg or the pending buffer reg is already empty also pre-emptively start a read. + // However there must be something in ext FIFO to read. + // This means that there can be 2 outstanding reads to the ext FIFO active at any time helping to hide latency. + assign read_strobe_int = (read_strobe & data_avail & ~pending_avail) || (~data_avail && ~pending_avail); + + + // + // Simple NoBL SRAM interface, 4 cycle read latency. + // Read/Write arbitration via temprary application of empty/full flags. + // + nobl_if nobl_if_i1 + ( + .clk(clk), + .rst(rst), + .RAM_D_pi(RAM_D_pi), + .RAM_D_po(RAM_D_po), + .RAM_D_poe(RAM_D_poe), + .RAM_A(RAM_A), + .RAM_WEn(RAM_WEn), + .RAM_CENn(RAM_CENn), + .RAM_LDn(RAM_LDn), + .RAM_OEn(RAM_OEn), + .RAM_CE1n(RAM_CE1n), + .address(address), + .data_out(write_data), + .data_in(data_in), + .data_in_valid(data_in_valid), + .write(write), + .enable(enable) + ); + +endmodule // nobl_fifo diff --git a/usrp2/extramfifo/nobl_if.v b/usrp2/extramfifo/nobl_if.v new file mode 100644 index 000000000..3143ce5ba --- /dev/null +++ b/usrp2/extramfifo/nobl_if.v @@ -0,0 +1,136 @@ +module nobl_if + #(parameter WIDTH=18,DEPTH=19) + ( + input clk, + input rst, + input [WIDTH-1:0] RAM_D_pi, + output [WIDTH-1:0] RAM_D_po, + output reg RAM_D_poe, + output [DEPTH-1:0] RAM_A, + output RAM_WEn, + output RAM_CENn, + output RAM_LDn, + output RAM_OEn, + output RAM_CE1n, + input [DEPTH-1:0] address, + input [WIDTH-1:0] data_out, + output reg [WIDTH-1:0] data_in, + output reg data_in_valid, + input write, + input enable + ); + + + reg enable_pipe1; + reg [DEPTH-1:0] address_pipe1; + reg write_pipe1; + reg [WIDTH-1:0] data_out_pipe1; + + reg enable_pipe2; + reg write_pipe2; + reg [WIDTH-1:0] data_out_pipe2; + + reg enable_pipe3; + reg write_pipe3; + reg [WIDTH-1:0] data_out_pipe3; + + assign RAM_LDn = 0; + assign RAM_OEn = 0; + + + // + // Pipeline stage 1 + // + always @(posedge clk) + if (rst) + begin + enable_pipe1 <= 0; + address_pipe1 <= 0; + write_pipe1 <= 0; + data_out_pipe1 <= 0; + end + else + begin + enable_pipe1 <= enable; + + if (enable) + begin + address_pipe1 <= address; + write_pipe1 <= write; + + if (write) + data_out_pipe1 <= data_out; + end + end // always @ (posedge clk) + + // Pipeline 1 drives address, write_enable, chip_select on NoBL SRAM + assign RAM_A = address_pipe1; + assign RAM_CENn = 1'b0; + assign RAM_WEn = ~write_pipe1; + assign RAM_CE1n = ~enable_pipe1; + + // + // Pipeline stage2 + // + always @(posedge clk) + if (rst) + begin + enable_pipe2 <= 0; + data_out_pipe2 <= 0; + write_pipe2 <= 0; + end + else + begin + data_out_pipe2 <= data_out_pipe1; + write_pipe2 <= write_pipe1; + enable_pipe2 <= enable_pipe1; + end + + // + // Pipeline stage3 + // + always @(posedge clk) + if (rst) + begin + enable_pipe3 <= 0; + data_out_pipe3 <= 0; + write_pipe3 <= 0; + RAM_D_poe <= 0; + end + else + begin + data_out_pipe3 <= data_out_pipe2; + write_pipe3 <= write_pipe2; + enable_pipe3 <= enable_pipe2; + RAM_D_poe <= ~(write_pipe2 & enable_pipe2); // Active low driver enable in Xilinx. + end + + // Pipeline 3 drives write data on NoBL SRAM + assign RAM_D_po = data_out_pipe3; + + + // + // Pipeline stage4 + // + always @(posedge clk) + if (rst) + begin + data_in_valid <= 0; + data_in <= 0; + end + else + begin + data_in <= RAM_D_pi; + if (enable_pipe3 & ~write_pipe3) + begin + // Read data now available to be registered. + data_in_valid <= 1'b1; + end + else + data_in_valid <= 1'b0; + end // always @ (posedge clk) + + + + +endmodule // nobl_if diff --git a/usrp2/extramfifo/test_sram_if.v b/usrp2/extramfifo/test_sram_if.v new file mode 100644 index 000000000..9f36b409c --- /dev/null +++ b/usrp2/extramfifo/test_sram_if.v @@ -0,0 +1,171 @@ +`define WIDTH 18 +`define DEPTH 19 + +module test_sram_if + ( + input clk, + input rst, + input [`WIDTH-1:0] RAM_D_pi, + output [`WIDTH-1:0] RAM_D_po, + output RAM_D_poe, + output [`DEPTH-1:0] RAM_A, + output RAM_WEn, + output RAM_CENn, + output RAM_LDn, + output RAM_OEn, + output RAM_CE1n, + output reg correct + ); + + reg [`DEPTH-1:0] write_count; + reg [`DEPTH-1:0] read_count; + reg enable; + reg write; + reg write_cycle; + reg read_cycle; + reg enable_reads; + reg [18:0] address; + reg [17:0] data_out; + wire [17:0] data_in; + wire data_in_valid; + + reg [17:0] check_data; + reg [17:0] check_data_old; + reg [17:0] check_data_old2; + + // + // Create counter that generates both external modulo 2^19 address and modulo 2^18 data to test RAM. + // + + always @(posedge clk) + if (rst) + begin + write_count <= 19'h0; + read_count <= 19'h0; + end + else if (write_cycle) // Write cycle + if (write_count == 19'h7FFFF) + begin + write_count <= 19'h0; + end + else + begin + write_count <= write_count + 1'b1; + end + else if (read_cycle) // Read cycle + if (read_count == 19'h7FFFF) + begin + read_count <= 19'h0; + end + else + begin + read_count <= read_count + 1'b1; + end + + always @(posedge clk) + if (rst) + begin + enable_reads <= 0; + read_cycle <= 0; + write_cycle <= 0; + end + else + begin + write_cycle <= ~write_cycle; + if (enable_reads) + read_cycle <= write_cycle; + if (write_count == 15) // Enable reads 15 writes after reset terminates. + enable_reads <= 1; + end // else: !if(rst) + + always @(posedge clk) + if (rst) + begin + enable <= 0; + end + else if (write_cycle) + begin + address <= write_count; + data_out <= write_count[17:0]; + enable <= 1; + write <= 1; + end + else if (read_cycle) + begin + address <= read_count; + check_data <= read_count[17:0]; + check_data_old <= check_data; + check_data_old2 <= check_data_old; + enable <= 1; + write <= 0; + end + else + enable <= 0; + + always @(posedge clk) + if (data_in_valid) + begin + correct <= (data_in == check_data_old2); + end + + + nobl_if nobl_if_i1 + ( + .clk(clk), + .rst(rst), + .RAM_D_pi(RAM_D_pi), + .RAM_D_po(RAM_D_po), + .RAM_D_poe(RAM_D_poe), + .RAM_A(RAM_A), + .RAM_WEn(RAM_WEn), + .RAM_CENn(RAM_CENn), + .RAM_LDn(RAM_LDn), + .RAM_OEn(RAM_OEn), + .RAM_CE1n(RAM_CE1n), + .address(address), + .data_out(data_out), + .data_in(data_in), + .data_in_valid(data_in_valid), + .write(write), + .enable(enable) + ); + + + wire [35:0] CONTROL0; + reg [7:0] data_in_reg, data_out_reg, address_reg; + reg data_in_valid_reg,write_reg,enable_reg,correct_reg; + + always @(posedge clk) + begin + data_in_reg <= data_in[7:0]; + data_out_reg <= data_out[7:0]; + data_in_valid_reg <= data_in_valid; + write_reg <= write; + enable_reg <= enable; + correct_reg <= correct; + address_reg <= address; + + end + + + icon icon_i1 + ( + .CONTROL0(CONTROL0) + ); + + ila ila_i1 + ( + .CLK(clk), + .CONTROL(CONTROL0), + // .TRIG0(address_reg), + .TRIG0(data_in_reg[7:0]), + .TRIG1(data_out_reg[7:0]), + .TRIG2(address_reg[7:0]), + .TRIG3({data_in_valid_reg,write_reg,enable_reg,correct_reg}) + ); + + + +endmodule // test_sram_if + + \ No newline at end of file -- cgit v1.2.3 From b48b0f171b9e24c161efc6d2b1d2b1a1dbb0324d Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Sat, 31 Jul 2010 00:15:16 -0700 Subject: External FIFO tested in simulation and on USRP2 from decimation 64->8 with current head UHD code. Apparently operation is "flawless" but more regression and corner case regression could and should be done. Tristate drivers have been added at the top level of the hierarchy for the SRAM databus as is considered good practice for both Xilinx and ASIC design flows and so both top level and core fils have been touched. --- usrp2/coregen/Makefile.srcs | 4 + usrp2/coregen/coregen.cgp | 22 +- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v | 6 +- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco | 6 +- usrp2/extramfifo/ext_fifo.v | 76 +- usrp2/extramfifo/ext_fifo_tb.v | 36 +- usrp2/extramfifo/icon.v | 1286 ++++++ usrp2/extramfifo/icon.xco | 47 + usrp2/extramfifo/ila.v | 5544 ++++++++++++++++++++++++ usrp2/extramfifo/ila.xco | 130 + usrp2/extramfifo/nobl_fifo.v | 20 +- usrp2/extramfifo/nobl_if.v | 9 +- usrp2/extramfifo/test_sram_if.v | 4 + usrp2/top/Makefile.common | 1 + usrp2/top/u2_rev3/Makefile.udp | 2 + usrp2/top/u2_rev3/u2_core_udp.v | 33 +- usrp2/top/u2_rev3/u2_rev3.ucf | 86 +- usrp2/top/u2_rev3/u2_rev3.v | 221 +- 18 files changed, 7297 insertions(+), 236 deletions(-) create mode 100644 usrp2/extramfifo/icon.v create mode 100644 usrp2/extramfifo/icon.xco create mode 100644 usrp2/extramfifo/ila.v create mode 100644 usrp2/extramfifo/ila.xco diff --git a/usrp2/coregen/Makefile.srcs b/usrp2/coregen/Makefile.srcs index 7b29225ca..a59696d15 100644 --- a/usrp2/coregen/Makefile.srcs +++ b/usrp2/coregen/Makefile.srcs @@ -16,4 +16,8 @@ fifo_xlnx_16x19_2clk.v \ fifo_xlnx_16x19_2clk.xco \ fifo_xlnx_16x40_2clk.v \ fifo_xlnx_16x40_2clk.xco \ +fifo_xlnx_512x36_2clk_36to18.v \ +fifo_xlnx_512x36_2clk_36to18.xco \ +fifo_xlnx_512x36_2clk_18to36.v \ +fifo_xlnx_512x36_2clk_18to36.xco \ )) diff --git a/usrp2/coregen/coregen.cgp b/usrp2/coregen/coregen.cgp index 810d64dac..4c9201aff 100644 --- a/usrp2/coregen/coregen.cgp +++ b/usrp2/coregen/coregen.cgp @@ -1,20 +1,22 @@ -# Date: Thu Sep 3 17:40:48 2009 -SET addpads = False -SET asysymbol = False +# Date: Mon Jul 26 21:55:33 2010 + +SET addpads = false +SET asysymbol = false SET busformat = BusFormatAngleBracketNotRipped -SET createndf = False +SET createndf = false SET designentry = Verilog SET device = xc3s2000 SET devicefamily = spartan3 SET flowvendor = Other -SET formalverification = False -SET foundationsym = False +SET formalverification = false +SET foundationsym = false SET implementationfiletype = Ngc SET package = fg456 -SET removerpms = False +SET removerpms = false SET simulationfiles = Behavioral SET speedgrade = -5 -SET verilogsim = True -SET vhdlsim = False -SET workingdirectory = /home/matt/coregen/tmp +SET verilogsim = true +SET vhdlsim = false +SET workingdirectory = /tmp/ +# CRC: 394da717 diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v index 1d7a5ca2a..32de19e8a 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v @@ -44,6 +44,7 @@ module fifo_xlnx_512x36_2clk_18to36( rst, wr_clk, wr_en, + almost_full, dout, empty, full); @@ -55,6 +56,7 @@ input rd_en; input rst; input wr_clk; input wr_en; +output almost_full; output [35 : 0] dout; output empty; output full; @@ -73,7 +75,7 @@ output full; .C_FAMILY("spartan3"), .C_FULL_FLAGS_RST_VAL(0), .C_HAS_ALMOST_EMPTY(0), - .C_HAS_ALMOST_FULL(0), + .C_HAS_ALMOST_FULL(1), .C_HAS_BACKUP(0), .C_HAS_DATA_COUNT(0), .C_HAS_INT_CLK(0), @@ -128,6 +130,7 @@ output full; .RST(rst), .WR_CLK(wr_clk), .WR_EN(wr_en), + .ALMOST_FULL(almost_full), .DOUT(dout), .EMPTY(empty), .FULL(full), @@ -145,7 +148,6 @@ output full; .SRST(), .WR_RST(), .ALMOST_EMPTY(), - .ALMOST_FULL(), .DATA_COUNT(), .OVERFLOW(), .PROG_EMPTY(), diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco index df97fd0e0..05ceffbe9 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco @@ -1,7 +1,7 @@ ############################################################## # # Xilinx Core Generator version K.39 -# Date: Thu Jul 29 23:02:41 2010 +# Date: Fri Jul 30 20:43:00 2010 # ############################################################## # @@ -36,7 +36,7 @@ SELECT Fifo_Generator family Xilinx,_Inc. 4.4 # END Select # BEGIN Parameters CSET almost_empty_flag=false -CSET almost_full_flag=false +CSET almost_full_flag=true CSET component_name=fifo_xlnx_512x36_2clk_18to36 CSET data_count=false CSET data_count_width=10 @@ -78,5 +78,5 @@ CSET write_data_count=false CSET write_data_count_width=10 # END Parameters GENERATE -# CRC: 117ae77f +# CRC: 9b689ee4 diff --git a/usrp2/extramfifo/ext_fifo.v b/usrp2/extramfifo/ext_fifo.v index 55935146a..a506d71e2 100644 --- a/usrp2/extramfifo/ext_fifo.v +++ b/usrp2/extramfifo/ext_fifo.v @@ -1,3 +1,20 @@ +// +// FIFO backed by an off chip ZBT/NoBL SRAM. +// +// This module and its sub-hierarchy implment a FIFO capable of sustaining +// a data throughput rate of at least int_clk/2 * 36bits and bursts of int_clk * 36bits. +// +// This has been designed and tested for an int_clk of 100MHz and an ext_clk of 125MHz, +// your milage may vary with other clock ratio's especially those where int_clk < ext_clk. +// Testing has also exclusively used a rst signal synchronized to int_clk. +// +// Interface operation mimics a Xilinx FIFO configured as "First Word Fall Through", +// though signal naming differs. +// +// For FPGA use registers interfacing directly with signals prefixed "RAM_*" should be +// packed into the IO ring. +// + module ext_fifo #(parameter INT_WIDTH=36,EXT_WIDTH=18,DEPTH=19) ( @@ -24,25 +41,24 @@ module ext_fifo wire [EXT_WIDTH-1:0] write_data; wire [EXT_WIDTH-1:0] read_data; wire full1, empty1; - wire full2, empty2; - + wire almost_full2, full2, empty2; + wire [INT_WIDTH-1:0] data_to_fifo; + wire [INT_WIDTH-1:0] data_from_fifo; + // FIFO buffers data from UDP engine into external FIFO clock domain. fifo_xlnx_512x36_2clk_36to18 fifo_xlnx_512x36_2clk_36to18_i1 ( .rst(rst), .wr_clk(int_clk), .rd_clk(ext_clk), - .din(datain), // Bus [35 : 0] - .wr_en(src_rdy_i), - .rd_en(space_avail&~empty1), - // .rd_en(~full2&~empty1), + .din(datain), // Bus [35 : 0] + .wr_en(src_rdy_i), + .rd_en(space_avail&~empty1), .dout(write_data), // Bus [17 : 0] .full(full1), .empty(empty1)); assign dst_rdy_o = ~full1; - - // External FIFO running at ext clock rate and 18 bit width. nobl_fifo #(.WIDTH(EXT_WIDTH),.DEPTH(DEPTH)) nobl_fifo_i1 @@ -63,10 +79,10 @@ module ext_fifo .space_avail(space_avail), .read_data(read_data), .read_strobe(data_avail & ~full2), - .data_avail(data_avail) + .data_avail(data_avail), + .upstream_full(almost_full2) ); - - + // FIFO buffers data read from external FIFO into DSP clk domain and to TX DSP. fifo_xlnx_512x36_2clk_18to36 fifo_xlnx_512x36_2clk_18to36_i1 ( @@ -74,47 +90,13 @@ module ext_fifo .wr_clk(ext_clk), .rd_clk(int_clk), .din(read_data), // Bus [17 : 0] - // .din(write_data), // Bus [17 : 0] .wr_en(data_avail & ~full2 ), - // .wr_en(~full2&~empty1), .rd_en(dst_rdy_i), - .dout(dataout), // Bus [35 : 0] + .dout(dataout), // Bus [35 : 0] .full(full2), + .almost_full(almost_full2), .empty(empty2)); assign src_rdy_o = ~empty2; - - wire [35:0] CONTROL0; - reg [7:0] datain_reg,write_data_reg,read_data_reg ; - reg space_avail_reg,data_avail_reg,empty1_reg,full2_reg ; - - always @(posedge ext_clk) - begin - //datain_reg <= datain[7:0]; - write_data_reg <= write_data[7:0]; - read_data_reg <= read_data[7:0]; - space_avail_reg <= space_avail; - data_avail_reg <= data_avail; - empty1_reg <= empty1; - full2_reg <= full2; - end - - - icon icon_i1 - ( - .CONTROL0(CONTROL0) - ); - - ila ila_i1 - ( - .CLK(ext_clk), - .CONTROL(CONTROL0), - // .TRIG0(address_reg), - .TRIG0(write_data_reg[7:0]), - .TRIG1(read_data_reg[7:0]), - .TRIG2(0), - .TRIG3({space_avail_reg,data_avail_reg,empty1_reg,full2_reg}) - ); - endmodule // ext_fifo diff --git a/usrp2/extramfifo/ext_fifo_tb.v b/usrp2/extramfifo/ext_fifo_tb.v index aa1fd6e3c..38df4a285 100644 --- a/usrp2/extramfifo/ext_fifo_tb.v +++ b/usrp2/extramfifo/ext_fifo_tb.v @@ -58,18 +58,18 @@ module ext_fifo_tb(); repeat (5) @(negedge int_clk); rst <= 0; @(negedge int_clk); - repeat (1000) + repeat (4000) begin @(negedge int_clk); - datain <= datain + 1; - src_rdy_i <= 1; - @(negedge int_clk); - src_rdy_i <= 0; + datain <= datain + dst_rdy_o; + src_rdy_i <= dst_rdy_o; +// @(negedge int_clk); +// src_rdy_i <= 0; // @(negedge int_clk); // dst_rdy_i <= src_rdy_o; // @(negedge int_clk); // dst_rdy_i <= 0; - repeat (2) @(negedge int_clk); +// repeat (2) @(negedge int_clk); end // repeat (1000) // Fall through fifo, first output already valid if (dataout !== ref_dataout) @@ -77,16 +77,16 @@ module ext_fifo_tb(); repeat (1000) begin @(negedge int_clk); - datain <= datain + 1; - src_rdy_i <= 1; + datain <= datain + dst_rdy_o ; + src_rdy_i <= dst_rdy_o; @(negedge int_clk); src_rdy_i <= 0; @(negedge int_clk); - ref_dataout <= ref_dataout + 1; + ref_dataout <= ref_dataout + src_rdy_o ; dst_rdy_i <= src_rdy_o; - @(negedge int_clk); - if (dataout !== ref_dataout) + if ((dataout !== ref_dataout) && src_rdy_o) $display("Error: Expected %x, got %x",ref_dataout, dataout); + @(negedge int_clk); dst_rdy_i <= 0; // repeat (2) @(negedge int_clk); end // repeat (1000) @@ -98,11 +98,11 @@ module ext_fifo_tb(); // @(negedge int_clk); // src_rdy_i <= 0; @(negedge int_clk); - ref_dataout <= ref_dataout + 1; + ref_dataout <= ref_dataout + src_rdy_o; dst_rdy_i <= src_rdy_o; - @(negedge int_clk); - if (dataout !== ref_dataout) + if ((dataout !== ref_dataout) && src_rdy_o) $display("Error: Expected %x, got %x",ref_dataout, dataout); + @(negedge int_clk); dst_rdy_i <= 0; // repeat (2) @(negedge int_clk); end // repeat (1000) @@ -210,13 +210,7 @@ module ext_fifo_tb(); assign #2 RAM_A_ext = RAM_A; -/* -----\/----- EXCLUDED -----\/----- - wire [13:0] temp1; - assign temp1 = 14'h0; - wire [3:0] temp2; - assign temp2 = 4'h0; - -----/\----- EXCLUDED -----/\----- */ - + idt71v65603s150 idt71v65603s150_i1 ( diff --git a/usrp2/extramfifo/icon.v b/usrp2/extramfifo/icon.v new file mode 100644 index 000000000..6537e9340 --- /dev/null +++ b/usrp2/extramfifo/icon.v @@ -0,0 +1,1286 @@ +//////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. +//////////////////////////////////////////////////////////////////////////////// +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: M.53d +// \ \ Application: netgen +// / / Filename: icon.v +// /___/ /\ Timestamp: Tue Jul 20 20:31:15 2010 +// \ \ / \ +// \___\/\___\ +// +// Command : -w -sim -ofmt verilog /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/icon.ngc /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/icon.v +// Device : xc3s2000-fg456-5 +// Input file : /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/icon.ngc +// Output file : /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/icon.v +// # of Modules : 1 +// Design Name : icon +// Xilinx : /opt/Xilinx/12.1/ISE_DS/ISE +// +// Purpose: +// This verilog netlist is a verification model and uses simulation +// primitives which may not represent the true implementation of the +// device, however the netlist is functionally correct and should not +// be modified. This file cannot be synthesized and should only be used +// with supported simulation tools. +// +// Reference: +// Command Line Tools User Guide, Chapter 23 and Synthesis and Simulation Design Guide, Chapter 6 +// +//////////////////////////////////////////////////////////////////////////////// + +`timescale 1 ns/1 ps + +module icon ( +CONTROL0 +)/* synthesis syn_black_box syn_noprune=1 */; + inout [35 : 0] CONTROL0; + + // synthesis translate_off + + wire N1; + wire \U0/U_ICON/I_YES_BSCAN.U_BS/DRCK1 ; + wire \U0/U_ICON/U_CMD/iSEL_n ; + wire \U0/U_ICON/U_CMD/iTARGET_CE ; + wire \U0/U_ICON/U_CTRL_OUT/iDATA_VALID ; + wire \U0/U_ICON/U_STAT/iCMD_GRP0_SEL ; + wire \U0/U_ICON/U_STAT/iDATA_VALID ; + wire \U0/U_ICON/U_STAT/iSTATCMD_CE ; + wire \U0/U_ICON/U_STAT/iSTATCMD_CE_n ; + wire \U0/U_ICON/U_STAT/iSTAT_HIGH ; + wire \U0/U_ICON/U_STAT/iSTAT_LOW ; + wire \U0/U_ICON/U_STAT/iTDO_next ; + wire \U0/U_ICON/U_SYNC/iDATA_CMD_n ; + wire \U0/U_ICON/U_SYNC/iGOT_SYNC ; + wire \U0/U_ICON/U_SYNC/iGOT_SYNC_HIGH ; + wire \U0/U_ICON/U_SYNC/iGOT_SYNC_LOW ; + wire \U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_3_91 ; + wire \U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_4_92 ; + wire \U0/U_ICON/iCORE_ID_SEL[0] ; + wire \U0/U_ICON/iCORE_ID_SEL[15] ; + wire \U0/U_ICON/iDATA_CMD ; + wire \U0/U_ICON/iDATA_CMD_n ; + wire \U0/U_ICON/iSEL ; + wire \U0/U_ICON/iSEL_n ; + wire \U0/U_ICON/iSYNC ; + wire \U0/U_ICON/iTDI ; + wire \U0/U_ICON/iTDO ; + wire \U0/U_ICON/iTDO_next ; + wire \U0/iSHIFT_OUT ; + wire \U0/iUPDATE_OUT ; + wire \NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_DRCK2_UNCONNECTED ; + wire \NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_RESET_UNCONNECTED ; + wire \NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_CAPTURE_UNCONNECTED ; + wire \NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_SEL2_UNCONNECTED ; + wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[1].U_LUT_O_UNCONNECTED ; + wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[2].U_LUT_O_UNCONNECTED ; + wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[3].U_LUT_O_UNCONNECTED ; + wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[4].U_LUT_O_UNCONNECTED ; + wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[5].U_LUT_O_UNCONNECTED ; + wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[6].U_LUT_O_UNCONNECTED ; + wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[7].U_LUT_O_UNCONNECTED ; + wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[8].U_LUT_O_UNCONNECTED ; + wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[9].U_LUT_O_UNCONNECTED ; + wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[10].U_LUT_O_UNCONNECTED ; + wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[11].U_LUT_O_UNCONNECTED ; + wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[12].U_LUT_O_UNCONNECTED ; + wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[13].U_LUT_O_UNCONNECTED ; + wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[14].U_LUT_O_UNCONNECTED ; + wire [11 : 8] \U0/U_ICON/U_CMD/iTARGET ; + wire [1 : 0] \U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL ; + wire [5 : 1] \U0/U_ICON/U_STAT/U_STAT_CNT/CI ; + wire [5 : 0] \U0/U_ICON/U_STAT/U_STAT_CNT/D ; + wire [5 : 0] \U0/U_ICON/U_STAT/U_STAT_CNT/S ; + wire [3 : 0] \U0/U_ICON/U_STAT/iSTAT ; + wire [5 : 0] \U0/U_ICON/U_STAT/iSTAT_CNT ; + wire [6 : 0] \U0/U_ICON/U_SYNC/iSYNC_WORD ; + wire [1 : 0] \U0/U_ICON/iCOMMAND_GRP ; + wire [15 : 0] \U0/U_ICON/iCOMMAND_SEL ; + wire [3 : 0] \U0/U_ICON/iCORE_ID ; + wire [15 : 15] \U0/U_ICON/iTDO_VEC ; + GND XST_GND ( + .G(CONTROL0[2]) + ); + VCC XST_VCC ( + .P(N1) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_TDI_reg ( + .C(CONTROL0[0]), + .CE(N1), + .D(\U0/U_ICON/iTDI ), + .Q(CONTROL0[1]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_TDO_reg ( + .C(CONTROL0[0]), + .CE(N1), + .D(\U0/U_ICON/iTDO_next ), + .Q(\U0/U_ICON/iTDO ) + ); + FDC #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_iDATA_CMD ( + .C(\U0/iUPDATE_OUT ), + .CLR(\U0/U_ICON/iSEL_n ), + .D(\U0/U_ICON/iDATA_CMD_n ), + .Q(\U0/U_ICON/iDATA_CMD ) + ); + MUXF5 \U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_2_f5 ( + .I0(\U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_4_92 ), + .I1(\U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_3_91 ), + .S(\U0/U_ICON/iCORE_ID [3]), + .O(\U0/U_ICON/iTDO_next ) + ); + LUT4 #( + .INIT ( 16'h0002 )) + \U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_4 ( + .I0(CONTROL0[3]), + .I1(\U0/U_ICON/iCORE_ID [0]), + .I2(\U0/U_ICON/iCORE_ID [1]), + .I3(\U0/U_ICON/iCORE_ID [2]), + .O(\U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_4_92 ) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_3 ( + .I0(\U0/U_ICON/iTDO_VEC [15]), + .I1(\U0/U_ICON/iCORE_ID [0]), + .I2(\U0/U_ICON/iCORE_ID [1]), + .I3(\U0/U_ICON/iCORE_ID [2]), + .O(\U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_3_91 ) + ); + INV \U0/U_ICON/U_iSEL_n ( + .I(\U0/U_ICON/iSEL ), + .O(\U0/U_ICON/iSEL_n ) + ); + INV \U0/U_ICON/U_iDATA_CMD_n ( + .I(\U0/U_ICON/iDATA_CMD ), + .O(\U0/U_ICON/iDATA_CMD_n ) + ); + BSCAN_SPARTAN3 \U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS ( + .TDI(\U0/U_ICON/iTDI ), + .SHIFT(\U0/iSHIFT_OUT ), + .DRCK1(\U0/U_ICON/I_YES_BSCAN.U_BS/DRCK1 ), + .DRCK2(\NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_DRCK2_UNCONNECTED ), + .RESET(\NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_RESET_UNCONNECTED ), + .UPDATE(\U0/iUPDATE_OUT ), + .TDO1(\U0/U_ICON/iTDO ), + .TDO2(CONTROL0[2]), + .CAPTURE(\NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_CAPTURE_UNCONNECTED ), + .SEL1(\U0/U_ICON/iSEL ), + .SEL2(\NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_SEL2_UNCONNECTED ) + ); + icon_bscan_bufg \U0/U_ICON/I_YES_BSCAN.U_BS/I_USE_SOFTBSCAN_EQ0.I_USE_XST_TCK_WORKAROUND_EQ1.U_ICON_BSCAN_BUFG ( + .DRCK_LOCAL_I(\U0/U_ICON/I_YES_BSCAN.U_BS/DRCK1 ), + .DRCK_LOCAL_O(CONTROL0[0]) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/U_ICON/U_SYNC/U_GOT_SYNC ( + .I0(\U0/U_ICON/U_SYNC/iGOT_SYNC_LOW ), + .I1(\U0/U_ICON/U_SYNC/iGOT_SYNC_HIGH ), + .O(\U0/U_ICON/U_SYNC/iGOT_SYNC ) + ); + LUT4 #( + .INIT ( 16'h0200 )) + \U0/U_ICON/U_SYNC/U_GOT_SYNC_L ( + .I0(\U0/U_ICON/U_SYNC/iSYNC_WORD [0]), + .I1(\U0/U_ICON/U_SYNC/iSYNC_WORD [1]), + .I2(\U0/U_ICON/U_SYNC/iSYNC_WORD [2]), + .I3(\U0/U_ICON/U_SYNC/iSYNC_WORD [3]), + .O(\U0/U_ICON/U_SYNC/iGOT_SYNC_LOW ) + ); + LUT4 #( + .INIT ( 16'h0400 )) + \U0/U_ICON/U_SYNC/U_GOT_SYNC_H ( + .I0(\U0/U_ICON/U_SYNC/iSYNC_WORD [4]), + .I1(\U0/U_ICON/U_SYNC/iSYNC_WORD [5]), + .I2(\U0/U_ICON/U_SYNC/iSYNC_WORD [6]), + .I3(CONTROL0[1]), + .O(\U0/U_ICON/U_SYNC/iGOT_SYNC_HIGH ) + ); + INV \U0/U_ICON/U_SYNC/U_iDATA_CMD_n ( + .I(\U0/U_ICON/iDATA_CMD ), + .O(\U0/U_ICON/U_SYNC/iDATA_CMD_n ) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_SYNC/U_SYNC ( + .C(CONTROL0[0]), + .CE(\U0/U_ICON/U_SYNC/iGOT_SYNC ), + .D(N1), + .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), + .Q(\U0/U_ICON/iSYNC ) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_SYNC/G_SYNC_WORD[0].I_NE0.U_FDR ( + .C(CONTROL0[0]), + .D(\U0/U_ICON/U_SYNC/iSYNC_WORD [1]), + .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), + .Q(\U0/U_ICON/U_SYNC/iSYNC_WORD [0]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_SYNC/G_SYNC_WORD[1].I_NE0.U_FDR ( + .C(CONTROL0[0]), + .D(\U0/U_ICON/U_SYNC/iSYNC_WORD [2]), + .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), + .Q(\U0/U_ICON/U_SYNC/iSYNC_WORD [1]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_SYNC/G_SYNC_WORD[2].I_NE0.U_FDR ( + .C(CONTROL0[0]), + .D(\U0/U_ICON/U_SYNC/iSYNC_WORD [3]), + .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), + .Q(\U0/U_ICON/U_SYNC/iSYNC_WORD [2]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_SYNC/G_SYNC_WORD[3].I_NE0.U_FDR ( + .C(CONTROL0[0]), + .D(\U0/U_ICON/U_SYNC/iSYNC_WORD [4]), + .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), + .Q(\U0/U_ICON/U_SYNC/iSYNC_WORD [3]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_SYNC/G_SYNC_WORD[4].I_NE0.U_FDR ( + .C(CONTROL0[0]), + .D(\U0/U_ICON/U_SYNC/iSYNC_WORD [5]), + .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), + .Q(\U0/U_ICON/U_SYNC/iSYNC_WORD [4]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_SYNC/G_SYNC_WORD[5].I_NE0.U_FDR ( + .C(CONTROL0[0]), + .D(\U0/U_ICON/U_SYNC/iSYNC_WORD [6]), + .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), + .Q(\U0/U_ICON/U_SYNC/iSYNC_WORD [5]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_SYNC/G_SYNC_WORD[6].I_EQ0.U_FDR ( + .C(CONTROL0[0]), + .D(CONTROL0[1]), + .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), + .Q(\U0/U_ICON/U_SYNC/iSYNC_WORD [6]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[0].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [0]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[20]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[0].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [0]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[4]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[1].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [1]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[21]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[1].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [1]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[5]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[2].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [2]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[22]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[2].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [2]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[6]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[3].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [3]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[23]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[3].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [3]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[7]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[4].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [4]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[24]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[4].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [4]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[8]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[5].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [5]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[25]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[5].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [5]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[9]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[6].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [6]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[26]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[6].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [6]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[10]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[7].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [7]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[27]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[7].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [7]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[11]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[8].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [8]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[28]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[8].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [8]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[12]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[9].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [9]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[29]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[9].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [9]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[13]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[10].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [10]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[30]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[10].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [10]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[14]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[11].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [11]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[31]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[11].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [11]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[15]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[12].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [12]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[32]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[12].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [12]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[16]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[13].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [13]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[33]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[13].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [13]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[17]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[14].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [14]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[34]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[14].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [14]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[18]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[15].U_HCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [15]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), + .O(CONTROL0[35]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[15].U_LCE ( + .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [15]), + .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), + .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), + .O(CONTROL0[19]) + ); + LUT2 #( + .INIT ( 4'h2 )) + \U0/U_ICON/U_CTRL_OUT/U_CMDGRP1 ( + .I0(\U0/U_ICON/iCOMMAND_GRP [0]), + .I1(\U0/U_ICON/iCOMMAND_GRP [1]), + .O(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]) + ); + LUT2 #( + .INIT ( 4'h1 )) + \U0/U_ICON/U_CTRL_OUT/U_CMDGRP0 ( + .I0(\U0/U_ICON/iCOMMAND_GRP [0]), + .I1(\U0/U_ICON/iCOMMAND_GRP [1]), + .O(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/U_ICON/U_CTRL_OUT/U_DATA_VALID ( + .I0(\U0/U_ICON/iSYNC ), + .I1(\U0/iSHIFT_OUT ), + .O(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ) + ); + LUT4 #( + .INIT ( 16'h0001 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[0].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\U0/U_ICON/iCORE_ID_SEL[0] ) + ); + LUT4 #( + .INIT ( 16'h0002 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[1].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[1].U_LUT_O_UNCONNECTED ) + ); + LUT4 #( + .INIT ( 16'h0004 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[2].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[2].U_LUT_O_UNCONNECTED ) + ); + LUT4 #( + .INIT ( 16'h0008 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[3].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[3].U_LUT_O_UNCONNECTED ) + ); + LUT4 #( + .INIT ( 16'h0010 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[4].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[4].U_LUT_O_UNCONNECTED ) + ); + LUT4 #( + .INIT ( 16'h0020 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[5].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[5].U_LUT_O_UNCONNECTED ) + ); + LUT4 #( + .INIT ( 16'h0040 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[6].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[6].U_LUT_O_UNCONNECTED ) + ); + LUT4 #( + .INIT ( 16'h0080 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[7].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[7].U_LUT_O_UNCONNECTED ) + ); + LUT4 #( + .INIT ( 16'h0100 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[8].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[8].U_LUT_O_UNCONNECTED ) + ); + LUT4 #( + .INIT ( 16'h0200 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[9].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[9].U_LUT_O_UNCONNECTED ) + ); + LUT4 #( + .INIT ( 16'h0400 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[10].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[10].U_LUT_O_UNCONNECTED ) + ); + LUT4 #( + .INIT ( 16'h0800 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[11].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[11].U_LUT_O_UNCONNECTED ) + ); + LUT4 #( + .INIT ( 16'h1000 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[12].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[12].U_LUT_O_UNCONNECTED ) + ); + LUT4 #( + .INIT ( 16'h2000 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[13].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[13].U_LUT_O_UNCONNECTED ) + ); + LUT4 #( + .INIT ( 16'h4000 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[14].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[14].U_LUT_O_UNCONNECTED ) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[15].U_LUT ( + .I0(\U0/U_ICON/iCORE_ID [0]), + .I1(\U0/U_ICON/iCORE_ID [1]), + .I2(\U0/U_ICON/iCORE_ID [2]), + .I3(\U0/U_ICON/iCORE_ID [3]), + .O(\U0/U_ICON/iCORE_ID_SEL[15] ) + ); + LUT4 #( + .INIT ( 16'h0001 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[0].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [0]) + ); + LUT4 #( + .INIT ( 16'h0002 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[1].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [1]) + ); + LUT4 #( + .INIT ( 16'h0004 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[2].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [2]) + ); + LUT4 #( + .INIT ( 16'h0008 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[3].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [3]) + ); + LUT4 #( + .INIT ( 16'h0010 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[4].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [4]) + ); + LUT4 #( + .INIT ( 16'h0020 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[5].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [5]) + ); + LUT4 #( + .INIT ( 16'h0040 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[6].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [6]) + ); + LUT4 #( + .INIT ( 16'h0080 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[7].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [7]) + ); + LUT4 #( + .INIT ( 16'h0100 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[8].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [8]) + ); + LUT4 #( + .INIT ( 16'h0200 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[9].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [9]) + ); + LUT4 #( + .INIT ( 16'h0400 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[10].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [10]) + ); + LUT4 #( + .INIT ( 16'h0800 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[11].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [11]) + ); + LUT4 #( + .INIT ( 16'h1000 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[12].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [12]) + ); + LUT4 #( + .INIT ( 16'h2000 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[13].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [13]) + ); + LUT4 #( + .INIT ( 16'h4000 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[14].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [14]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[15].U_LUT ( + .I0(\U0/U_ICON/U_CMD/iTARGET [8]), + .I1(\U0/U_ICON/U_CMD/iTARGET [9]), + .I2(\U0/U_ICON/U_CMD/iTARGET [10]), + .I3(\U0/U_ICON/U_CMD/iTARGET [11]), + .O(\U0/U_ICON/iCOMMAND_SEL [15]) + ); + LUT2 #( + .INIT ( 4'h4 )) + \U0/U_ICON/U_CMD/U_TARGET_CE ( + .I0(\U0/U_ICON/iDATA_CMD ), + .I1(\U0/iSHIFT_OUT ), + .O(\U0/U_ICON/U_CMD/iTARGET_CE ) + ); + INV \U0/U_ICON/U_CMD/U_SEL_n ( + .I(\U0/U_ICON/iSEL ), + .O(\U0/U_ICON/U_CMD/iSEL_n ) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_CMD/G_TARGET[6].I_NE0.U_TARGET ( + .C(CONTROL0[0]), + .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), + .CLR(\U0/U_ICON/U_CMD/iSEL_n ), + .D(\U0/U_ICON/iCOMMAND_GRP [1]), + .Q(\U0/U_ICON/iCOMMAND_GRP [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_CMD/G_TARGET[7].I_NE0.U_TARGET ( + .C(CONTROL0[0]), + .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), + .CLR(\U0/U_ICON/U_CMD/iSEL_n ), + .D(\U0/U_ICON/U_CMD/iTARGET [8]), + .Q(\U0/U_ICON/iCOMMAND_GRP [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_CMD/G_TARGET[8].I_NE0.U_TARGET ( + .C(CONTROL0[0]), + .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), + .CLR(\U0/U_ICON/U_CMD/iSEL_n ), + .D(\U0/U_ICON/U_CMD/iTARGET [9]), + .Q(\U0/U_ICON/U_CMD/iTARGET [8]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_CMD/G_TARGET[9].I_NE0.U_TARGET ( + .C(CONTROL0[0]), + .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), + .CLR(\U0/U_ICON/U_CMD/iSEL_n ), + .D(\U0/U_ICON/U_CMD/iTARGET [10]), + .Q(\U0/U_ICON/U_CMD/iTARGET [9]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_CMD/G_TARGET[10].I_NE0.U_TARGET ( + .C(CONTROL0[0]), + .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), + .CLR(\U0/U_ICON/U_CMD/iSEL_n ), + .D(\U0/U_ICON/U_CMD/iTARGET [11]), + .Q(\U0/U_ICON/U_CMD/iTARGET [10]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_CMD/G_TARGET[11].I_NE0.U_TARGET ( + .C(CONTROL0[0]), + .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), + .CLR(\U0/U_ICON/U_CMD/iSEL_n ), + .D(\U0/U_ICON/iCORE_ID [0]), + .Q(\U0/U_ICON/U_CMD/iTARGET [11]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_CMD/G_TARGET[12].I_NE0.U_TARGET ( + .C(CONTROL0[0]), + .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), + .CLR(\U0/U_ICON/U_CMD/iSEL_n ), + .D(\U0/U_ICON/iCORE_ID [1]), + .Q(\U0/U_ICON/iCORE_ID [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_CMD/G_TARGET[13].I_NE0.U_TARGET ( + .C(CONTROL0[0]), + .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), + .CLR(\U0/U_ICON/U_CMD/iSEL_n ), + .D(\U0/U_ICON/iCORE_ID [2]), + .Q(\U0/U_ICON/iCORE_ID [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_CMD/G_TARGET[14].I_NE0.U_TARGET ( + .C(CONTROL0[0]), + .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), + .CLR(\U0/U_ICON/U_CMD/iSEL_n ), + .D(\U0/U_ICON/iCORE_ID [3]), + .Q(\U0/U_ICON/iCORE_ID [2]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_CMD/G_TARGET[15].I_EQ0.U_TARGET ( + .C(CONTROL0[0]), + .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), + .CLR(\U0/U_ICON/U_CMD/iSEL_n ), + .D(CONTROL0[1]), + .Q(\U0/U_ICON/iCORE_ID [3]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_STAT/U_STAT_CNT/G[5].U_FDRE ( + .C(CONTROL0[0]), + .CE(N1), + .D(\U0/U_ICON/U_STAT/U_STAT_CNT/D [5]), + .R(\U0/U_ICON/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/U_ICON/U_STAT/iSTAT_CNT [5]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_STAT/U_STAT_CNT/G[4].U_FDRE ( + .C(CONTROL0[0]), + .CE(N1), + .D(\U0/U_ICON/U_STAT/U_STAT_CNT/D [4]), + .R(\U0/U_ICON/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/U_ICON/U_STAT/iSTAT_CNT [4]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_STAT/U_STAT_CNT/G[3].U_FDRE ( + .C(CONTROL0[0]), + .CE(N1), + .D(\U0/U_ICON/U_STAT/U_STAT_CNT/D [3]), + .R(\U0/U_ICON/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/U_ICON/U_STAT/iSTAT_CNT [3]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_STAT/U_STAT_CNT/G[2].U_FDRE ( + .C(CONTROL0[0]), + .CE(N1), + .D(\U0/U_ICON/U_STAT/U_STAT_CNT/D [2]), + .R(\U0/U_ICON/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/U_ICON/U_STAT/iSTAT_CNT [2]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_STAT/U_STAT_CNT/G[1].U_FDRE ( + .C(CONTROL0[0]), + .CE(N1), + .D(\U0/U_ICON/U_STAT/U_STAT_CNT/D [1]), + .R(\U0/U_ICON/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/U_ICON/U_STAT/iSTAT_CNT [1]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_STAT/U_STAT_CNT/G[0].U_FDRE ( + .C(CONTROL0[0]), + .CE(N1), + .D(\U0/U_ICON/U_STAT/U_STAT_CNT/D [0]), + .R(\U0/U_ICON/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/U_ICON/U_STAT/iSTAT_CNT [0]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/U_ICON/U_STAT/U_STAT_CNT/G[5].U_LUT ( + .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [5]), + .O(\U0/U_ICON/U_STAT/U_STAT_CNT/S [5]) + ); + XORCY \U0/U_ICON/U_STAT/U_STAT_CNT/G[5].U_XORCY ( + .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [5]), + .LI(\U0/U_ICON/U_STAT/U_STAT_CNT/S [5]), + .O(\U0/U_ICON/U_STAT/U_STAT_CNT/D [5]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/U_ICON/U_STAT/U_STAT_CNT/G[4].U_LUT ( + .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [4]), + .O(\U0/U_ICON/U_STAT/U_STAT_CNT/S [4]) + ); + MUXCY_L \U0/U_ICON/U_STAT/U_STAT_CNT/G[4].GnH.U_MUXCY ( + .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [4]), + .DI(CONTROL0[2]), + .S(\U0/U_ICON/U_STAT/U_STAT_CNT/S [4]), + .LO(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [5]) + ); + XORCY \U0/U_ICON/U_STAT/U_STAT_CNT/G[4].U_XORCY ( + .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [4]), + .LI(\U0/U_ICON/U_STAT/U_STAT_CNT/S [4]), + .O(\U0/U_ICON/U_STAT/U_STAT_CNT/D [4]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/U_ICON/U_STAT/U_STAT_CNT/G[3].U_LUT ( + .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [3]), + .O(\U0/U_ICON/U_STAT/U_STAT_CNT/S [3]) + ); + MUXCY_L \U0/U_ICON/U_STAT/U_STAT_CNT/G[3].GnH.U_MUXCY ( + .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [3]), + .DI(CONTROL0[2]), + .S(\U0/U_ICON/U_STAT/U_STAT_CNT/S [3]), + .LO(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [4]) + ); + XORCY \U0/U_ICON/U_STAT/U_STAT_CNT/G[3].U_XORCY ( + .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [3]), + .LI(\U0/U_ICON/U_STAT/U_STAT_CNT/S [3]), + .O(\U0/U_ICON/U_STAT/U_STAT_CNT/D [3]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/U_ICON/U_STAT/U_STAT_CNT/G[2].U_LUT ( + .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [2]), + .O(\U0/U_ICON/U_STAT/U_STAT_CNT/S [2]) + ); + MUXCY_L \U0/U_ICON/U_STAT/U_STAT_CNT/G[2].GnH.U_MUXCY ( + .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [2]), + .DI(CONTROL0[2]), + .S(\U0/U_ICON/U_STAT/U_STAT_CNT/S [2]), + .LO(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [3]) + ); + XORCY \U0/U_ICON/U_STAT/U_STAT_CNT/G[2].U_XORCY ( + .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [2]), + .LI(\U0/U_ICON/U_STAT/U_STAT_CNT/S [2]), + .O(\U0/U_ICON/U_STAT/U_STAT_CNT/D [2]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/U_ICON/U_STAT/U_STAT_CNT/G[1].U_LUT ( + .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [1]), + .O(\U0/U_ICON/U_STAT/U_STAT_CNT/S [1]) + ); + MUXCY_L \U0/U_ICON/U_STAT/U_STAT_CNT/G[1].GnH.U_MUXCY ( + .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [1]), + .DI(CONTROL0[2]), + .S(\U0/U_ICON/U_STAT/U_STAT_CNT/S [1]), + .LO(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [2]) + ); + XORCY \U0/U_ICON/U_STAT/U_STAT_CNT/G[1].U_XORCY ( + .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [1]), + .LI(\U0/U_ICON/U_STAT/U_STAT_CNT/S [1]), + .O(\U0/U_ICON/U_STAT/U_STAT_CNT/D [1]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/U_ICON/U_STAT/U_STAT_CNT/G[0].U_LUT ( + .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [0]), + .O(\U0/U_ICON/U_STAT/U_STAT_CNT/S [0]) + ); + MUXCY_L \U0/U_ICON/U_STAT/U_STAT_CNT/G[0].GnH.U_MUXCY ( + .CI(N1), + .DI(CONTROL0[2]), + .S(\U0/U_ICON/U_STAT/U_STAT_CNT/S [0]), + .LO(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [1]) + ); + XORCY \U0/U_ICON/U_STAT/U_STAT_CNT/G[0].U_XORCY ( + .CI(N1), + .LI(\U0/U_ICON/U_STAT/U_STAT_CNT/S [0]), + .O(\U0/U_ICON/U_STAT/U_STAT_CNT/D [0]) + ); + MUXF6 \U0/U_ICON/U_STAT/U_TDO_next ( + .I0(\U0/U_ICON/U_STAT/iSTAT_LOW ), + .I1(\U0/U_ICON/U_STAT/iSTAT_HIGH ), + .S(\U0/U_ICON/U_STAT/iSTAT_CNT [5]), + .O(\U0/U_ICON/U_STAT/iTDO_next ) + ); + MUXF5 \U0/U_ICON/U_STAT/U_STAT_LOW ( + .I0(\U0/U_ICON/U_STAT/iSTAT [0]), + .I1(\U0/U_ICON/U_STAT/iSTAT [1]), + .S(\U0/U_ICON/U_STAT/iSTAT_CNT [4]), + .O(\U0/U_ICON/U_STAT/iSTAT_LOW ) + ); + MUXF5 \U0/U_ICON/U_STAT/U_STAT_HIGH ( + .I0(\U0/U_ICON/U_STAT/iSTAT [2]), + .I1(\U0/U_ICON/U_STAT/iSTAT [3]), + .S(\U0/U_ICON/U_STAT/iSTAT_CNT [4]), + .O(\U0/U_ICON/U_STAT/iSTAT_HIGH ) + ); + LUT4 #( + .INIT ( 16'h0101 )) + \U0/U_ICON/U_STAT/F_STAT[0].U_STAT ( + .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [0]), + .I1(\U0/U_ICON/U_STAT/iSTAT_CNT [1]), + .I2(\U0/U_ICON/U_STAT/iSTAT_CNT [2]), + .I3(\U0/U_ICON/U_STAT/iSTAT_CNT [3]), + .O(\U0/U_ICON/U_STAT/iSTAT [0]) + ); + LUT4 #( + .INIT ( 16'hC101 )) + \U0/U_ICON/U_STAT/F_STAT[1].U_STAT ( + .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [0]), + .I1(\U0/U_ICON/U_STAT/iSTAT_CNT [1]), + .I2(\U0/U_ICON/U_STAT/iSTAT_CNT [2]), + .I3(\U0/U_ICON/U_STAT/iSTAT_CNT [3]), + .O(\U0/U_ICON/U_STAT/iSTAT [1]) + ); + LUT4 #( + .INIT ( 16'h2100 )) + \U0/U_ICON/U_STAT/F_STAT[2].U_STAT ( + .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [0]), + .I1(\U0/U_ICON/U_STAT/iSTAT_CNT [1]), + .I2(\U0/U_ICON/U_STAT/iSTAT_CNT [2]), + .I3(\U0/U_ICON/U_STAT/iSTAT_CNT [3]), + .O(\U0/U_ICON/U_STAT/iSTAT [2]) + ); + LUT4 #( + .INIT ( 16'h1610 )) + \U0/U_ICON/U_STAT/F_STAT[3].U_STAT ( + .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [0]), + .I1(\U0/U_ICON/U_STAT/iSTAT_CNT [1]), + .I2(\U0/U_ICON/U_STAT/iSTAT_CNT [2]), + .I3(\U0/U_ICON/U_STAT/iSTAT_CNT [3]), + .O(\U0/U_ICON/U_STAT/iSTAT [3]) + ); + INV \U0/U_ICON/U_STAT/U_STATCMD_n ( + .I(\U0/U_ICON/U_STAT/iSTATCMD_CE ), + .O(\U0/U_ICON/U_STAT/iSTATCMD_CE_n ) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_ICON/U_STAT/U_STATCMD ( + .I0(\U0/U_ICON/U_STAT/iDATA_VALID ), + .I1(\U0/U_ICON/iCOMMAND_SEL [0]), + .I2(\U0/U_ICON/iCORE_ID_SEL[15] ), + .I3(\U0/U_ICON/U_STAT/iCMD_GRP0_SEL ), + .O(\U0/U_ICON/U_STAT/iSTATCMD_CE ) + ); + LUT2 #( + .INIT ( 4'h1 )) + \U0/U_ICON/U_STAT/U_CMDGRP0 ( + .I0(\U0/U_ICON/iCOMMAND_GRP [0]), + .I1(\U0/U_ICON/iCOMMAND_GRP [1]), + .O(\U0/U_ICON/U_STAT/iCMD_GRP0_SEL ) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/U_ICON/U_STAT/U_DATA_VALID ( + .I0(\U0/U_ICON/iSYNC ), + .I1(\U0/iSHIFT_OUT ), + .O(\U0/U_ICON/U_STAT/iDATA_VALID ) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/U_ICON/U_STAT/U_TDO ( + .C(CONTROL0[0]), + .CE(N1), + .D(\U0/U_ICON/U_STAT/iTDO_next ), + .Q(\U0/U_ICON/iTDO_VEC [15]) + ); + +// synthesis translate_on + +endmodule + +// synthesis translate_off + +`ifndef GLBL +`define GLBL + +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + tri1 p_up_tmp; + tri (weak1, strong0) PLL_LOCKG = p_up_tmp; + + reg GSR_int; + reg GTS_int; + reg PRLD_int; + +//-------- JTAG Globals -------------- + wire JTAG_TDO_GLBL; + wire JTAG_TCK_GLBL; + wire JTAG_TDI_GLBL; + wire JTAG_TMS_GLBL; + wire JTAG_TRST_GLBL; + + reg JTAG_CAPTURE_GLBL; + reg JTAG_RESET_GLBL; + reg JTAG_SHIFT_GLBL; + reg JTAG_UPDATE_GLBL; + reg JTAG_RUNTEST_GLBL; + + reg JTAG_SEL1_GLBL = 0; + reg JTAG_SEL2_GLBL = 0 ; + reg JTAG_SEL3_GLBL = 0; + reg JTAG_SEL4_GLBL = 0; + + reg JTAG_USER_TDO1_GLBL = 1'bz; + reg JTAG_USER_TDO2_GLBL = 1'bz; + reg JTAG_USER_TDO3_GLBL = 1'bz; + reg JTAG_USER_TDO4_GLBL = 1'bz; + + assign (weak1, weak0) GSR = GSR_int; + assign (weak1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + + initial begin + GSR_int = 1'b1; + PRLD_int = 1'b1; + #(ROC_WIDTH) + GSR_int = 1'b0; + PRLD_int = 1'b0; + end + + initial begin + GTS_int = 1'b1; + #(TOC_WIDTH) + GTS_int = 1'b0; + end + +endmodule + +`endif + +// synthesis translate_on diff --git a/usrp2/extramfifo/icon.xco b/usrp2/extramfifo/icon.xco new file mode 100644 index 000000000..fda273149 --- /dev/null +++ b/usrp2/extramfifo/icon.xco @@ -0,0 +1,47 @@ +############################################################## +# +# Xilinx Core Generator version 12.1 +# Date: Wed Jul 21 03:31:19 2010 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc3s2000 +SET devicefamily = spartan3 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = fg456 +SET removerpms = false +SET simulationfiles = Structural +SET speedgrade = -5 +SET verilogsim = true +SET vhdlsim = false +# END Project Options +# BEGIN Select +SELECT ICON_(ChipScope_Pro_-_Integrated_Controller) family Xilinx,_Inc. 1.04.a +# END Select +# BEGIN Parameters +CSET component_name=icon +CSET enable_jtag_bufg=true +CSET number_control_ports=1 +CSET use_ext_bscan=false +CSET use_softbscan=false +CSET use_unused_bscan=false +CSET user_scan_chain=USER1 +# END Parameters +GENERATE +# CRC: 799ba5a1 diff --git a/usrp2/extramfifo/ila.v b/usrp2/extramfifo/ila.v new file mode 100644 index 000000000..b0d8f8d0c --- /dev/null +++ b/usrp2/extramfifo/ila.v @@ -0,0 +1,5544 @@ +//////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. +//////////////////////////////////////////////////////////////////////////////// +// ____ ____ +// / /\/ / +// /___/ \ / Vendor: Xilinx +// \ \ \/ Version: M.53d +// \ \ Application: netgen +// / / Filename: ila.v +// /___/ /\ Timestamp: Wed Jul 21 11:51:09 2010 +// \ \ / \ +// \___\/\___\ +// +// Command : -w -sim -ofmt verilog /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/ila.ngc /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/ila.v +// Device : xc3s2000-fg456-5 +// Input file : /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/ila.ngc +// Output file : /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/ila.v +// # of Modules : 1 +// Design Name : ila +// Xilinx : /opt/Xilinx/12.1/ISE_DS/ISE +// +// Purpose: +// This verilog netlist is a verification model and uses simulation +// primitives which may not represent the true implementation of the +// device, however the netlist is functionally correct and should not +// be modified. This file cannot be synthesized and should only be used +// with supported simulation tools. +// +// Reference: +// Command Line Tools User Guide, Chapter 23 and Synthesis and Simulation Design Guide, Chapter 6 +// +//////////////////////////////////////////////////////////////////////////////// + +`timescale 1 ns/1 ps + +module ila ( + CLK, CONTROL, TRIG0, TRIG1, TRIG2, TRIG3 +)/* synthesis syn_black_box syn_noprune=1 */; + input CLK; + inout [35 : 0] CONTROL; + input [7 : 0] TRIG0; + input [7 : 0] TRIG1; + input [7 : 0] TRIG2; + input [3 : 0] TRIG3; + + // synthesis translate_off + + wire N0; + wire N1; + wire N38; + wire N39; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/CMP_RESET ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DIN ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iOUT ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DIN ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DIN ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iOUT ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DIN ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iOUT ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCE/iCFG_DIN ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iCFG_DIN ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DIN ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WCE/iCFG_DIN ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iCFG_DIN ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iCFG_DIN ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_CE ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[0] ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[1] ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[8] ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCfgData ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[0] ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[1] ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[8] ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCfgData ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[0] ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[1] ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[8] ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCfgData ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_CE ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_Q ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_CE ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iCAP_WR_EN ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iTRIGGER_IN ; + wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iTRIGGER_OUT ; + wire \U0/I_NO_D.U_ILA/U_RST/HALT_pulse ; + wire \U0/I_NO_D.U_ILA/U_RST/POR ; + wire \U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ; + wire \U0/I_NO_D.U_ILA/U_RST/PRE_RESET1 ; + wire \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/din_latched ; + wire \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iCLR ; + wire \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT ; + wire \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[0] ; + wire \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[1] ; + wire \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[2] ; + wire \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[4] ; + wire \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/din_latched ; + wire \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iCLR ; + wire \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT ; + wire \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT_dly[0] ; + wire \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT_dly[2] ; + wire \U0/I_NO_D.U_ILA/U_STAT/ACTRESET_pulse ; + wire \U0/I_NO_D.U_ILA/U_STAT/ACT_dstat ; + wire \U0/I_NO_D.U_ILA/U_STAT/ARM_dstat ; + wire \U0/I_NO_D.U_ILA/U_STAT/CAP_RESET_dly1 ; + wire \U0/I_NO_D.U_ILA/U_STAT/DIRTY_D0 ; + wire \U0/I_NO_D.U_ILA/U_STAT/DIRTY_D1 ; + wire \U0/I_NO_D.U_ILA/U_STAT/DIRTY_SEL ; + wire \U0/I_NO_D.U_ILA/U_STAT/DIRTY_dstat ; + wire \U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly1 ; + wire \U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly2 ; + wire \U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly3 ; + wire \U0/I_NO_D.U_ILA/U_STAT/DSTAT_load ; + wire \U0/I_NO_D.U_ILA/U_STAT/EXTCAP_READY_dstat ; + wire \U0/I_NO_D.U_ILA/U_STAT/FULL_dstat ; + wire \U0/I_NO_D.U_ILA/U_STAT/NS_load ; + wire \U0/I_NO_D.U_ILA/U_STAT/TDO_mux_in<0>1 ; + wire \U0/I_NO_D.U_ILA/U_STAT/TDO_next ; + wire \U0/I_NO_D.U_ILA/U_STAT/TRIGGER_dstat ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_10_443 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_101_444 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_11_445 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_12_f5_446 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_13_447 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_14_448 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_3_449 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_4_450 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_7_f6_451 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8_452 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8_f5_453 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9_454 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_91_455 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9_f5_456 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/din_latched ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iCLR ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O15_463 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O2_464 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O26_465 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O36_466 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O82_467 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f5_470 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f6_471 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_472 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f5_473 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f51 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12_475 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_121_476 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_122_477 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12_f5_478 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_13_479 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_131_480 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_132_481 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_14_482 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_8_f7_483 ; + wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_9_f6_484 ; + wire \U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE ; + wire \U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ; + wire \U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<1>1_535 ; + wire \U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<2>1_537 ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/iCFG_DIN ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/iDOUT ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/iTRIGGER ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/iCFG_DIN ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/iDOUT ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/iTRIGGER ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TC/iCAPTURE ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/DOUT_tmp ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/dout_tmp ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/DOUT_tmp ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/dout_tmp ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/DOUT_tmp ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/dout_tmp ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/DOUT_tmp ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<3> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<4> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ; + wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/dout_tmp ; + wire \U0/I_NO_D.U_ILA/U_TRIG/trigCondOut ; + wire \U0/I_NO_D.U_ILA/iARM ; + wire \U0/I_NO_D.U_ILA/iCAPTURE ; + wire \U0/I_NO_D.U_ILA/iCAP_DONE ; + wire \U0/I_NO_D.U_ILA/iCAP_TRIGGER_OUT ; + wire \U0/I_NO_D.U_ILA/iCAP_WR_EN ; + wire \U0/I_NO_D.U_ILA/iDATA_DOUT ; + wire \U0/I_NO_D.U_ILA/iSTAT_DOUT ; + wire \U0/I_NO_D.U_ILA/iTRIGGER ; + wire \NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF_cs_cfglut4_Q15_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH_Q_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH_Q_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH_Q_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_STAT/U_DSR_O_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_CAP_B_O_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/I_NOLUT6.I_SRL_T2.U_SRLC16E_Q15_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<31>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<30>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<29>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<28>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<27>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<26>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<25>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<24>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<23>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<22>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<21>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<20>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<19>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<18>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<17>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<16>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<15>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<14>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<13>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<12>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<11>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<10>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<9>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<8>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<7>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<6>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<5>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<4>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<3>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<2>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<1>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<0>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<3>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<2>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<1>_UNCONNECTED ; + wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<0>_UNCONNECTED ; + wire [27 : 0] \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp ; + wire [13 : 1] \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI ; + wire [13 : 0] \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D ; + wire [13 : 0] \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S ; + wire [13 : 0] \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR ; + wire [3 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DATA ; + wire [3 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/jO ; + wire [3 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DATA ; + wire [3 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/jO ; + wire [7 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA ; + wire [7 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO ; + wire [3 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/kO ; + wire [7 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA ; + wire [7 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO ; + wire [3 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/kO ; + wire [1 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iCFG_DATA ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iO ; + wire [3 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DATA ; + wire [3 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/jO ; + wire [1 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iCFG_DATA ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iO ; + wire [1 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iCFG_DATA ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iO ; + wire [8 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next ; + wire [8 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI ; + wire [8 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D ; + wire [8 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S ; + wire [8 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI ; + wire [8 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D ; + wire [8 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S ; + wire [1 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/cfg_data ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCompData ; + wire [1 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/cfg_data ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCompData ; + wire [1 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/cfg_data ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCompData ; + wire [4 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data ; + wire [16 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec ; + wire [8 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR ; + wire [8 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT ; + wire [9 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDIN ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDIN ; + wire [0 : 0] \U0/I_NO_D.U_ILA/U_RST/iRESET ; + wire [8 : 0] \U0/I_NO_D.U_ILA/U_STAT/NS_dstat ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_STAT/STATE_dstat ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDIN ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDOUT_dly ; + wire [1 : 0] \U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/iDOUT ; + wire [9 : 1] \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI ; + wire [9 : 0] \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D ; + wire [9 : 0] \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S ; + wire [16 : 0] \U0/I_NO_D.U_ILA/U_STAT/iSTAT ; + wire [9 : 0] \U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT ; + wire [1 : 1] \U0/I_NO_D.U_ILA/U_TRIG/U_TC/iCFG_DATA ; + wire [3 : 0] \U0/I_NO_D.U_ILA/U_TRIG/trigCondIn ; + wire [8 : 0] \U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES ; + wire [1 : 0] \U0/I_NO_D.U_ILA/iCAP_STATE ; + wire [8 : 0] \U0/I_NO_D.U_ILA/iCAP_WR_ADDR ; + wire [27 : 0] \U0/I_NO_D.U_ILA/iDATA ; + wire [7 : 0] \U0/I_NO_D.U_ILA/iRESET ; + wire [8 : 0] \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy ; + wire [8 : 0] \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut ; + wire [27 : 0] \U0/iTRIG_IN ; + GND XST_GND ( + .G(N0) + ); + VCC XST_VCC ( + .P(N1) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_WCNT_HCMP_Q ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP ), + .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/CMP_RESET ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_Q ) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_WCNT_LCMP_Q ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP ), + .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/CMP_RESET ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_SCNT_CMP_Q ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP ), + .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/CMP_RESET ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_INTCAP_F.U_CAPWE0 ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iCAP_WR_EN ) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_INTCAP_F.U_CAPWE1 ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iCAP_WR_EN ), + .R(\U0/I_NO_D.U_ILA/iRESET [7]), + .Q(\U0/I_NO_D.U_ILA/iCAP_WR_EN ) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_TRIG0 ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iTRIGGER_IN ), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iTRIGGER_OUT ) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_TRIG1 ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iTRIGGER_OUT ), + .R(\U0/I_NO_D.U_ILA/iRESET [7]), + .Q(\U0/I_NO_D.U_ILA/iCAP_TRIGGER_OUT ) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_YES_OREG.OUT_REG ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iOUT ), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_STATE [0]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_YES_OREG.OUT_REG ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iOUT ), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_STATE [1]) + ); + LUT3 #( + .INIT ( 8'h20 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_TRIG ( + .I0(\U0/I_NO_D.U_ILA/iTRIGGER ), + .I1(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .I2(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iTRIGGER_IN ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCE/I_NOLUT6.I_SRL_T2.U_SRLC16E ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCE/iCFG_DIN ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [5]) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCE/I_NOLUT6.I_SRL_T2.U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [4]), + .I1(CONTROL[9]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCE/iCFG_DIN ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WCE/I_NOLUT6.I_SRL_T2.U_SRLC16E ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WCE/iCFG_DIN ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [4]) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WCE/I_NOLUT6.I_SRL_T2.U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [3]), + .I1(CONTROL[9]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WCE/iCFG_DIN ) + ); + LUT3 #( + .INIT ( 8'hCA )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_YES_OREG.U_MUXF7 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/kO [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/kO [0]), + .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iOUT ) + ); + MUXF6 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U0_MUXF6 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [0]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/kO [0]) + ); + MUXF6 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U1_MUXF6 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [3]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [2]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/kO [1]) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U0_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [0]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [0]) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U1_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [3]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [2]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [1]) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U2_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [5]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [4]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [2]) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U3_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [7]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [6]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [3]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF0_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [1]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [0]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [2]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG0_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [2]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [1]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF1_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [3]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [2]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [2]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG1_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [4]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [3]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [3]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF2_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [5]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [4]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [4]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG2_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [6]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [5]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [5]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF3_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [7]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [6]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [6]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG3_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DIN ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [7]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [7]) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [1]), + .I1(CONTROL[9]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DIN ) + ); + LUT3 #( + .INIT ( 8'hCA )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_YES_OREG.U_MUXF7 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/kO [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/kO [0]), + .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iOUT ) + ); + MUXF6 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U0_MUXF6 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [0]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/kO [0]) + ); + MUXF6 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U1_MUXF6 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [3]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [2]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/kO [1]) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U0_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [0]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [0]) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U1_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [3]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [2]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [1]) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U2_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [5]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [4]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [2]) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U3_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [7]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [6]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [3]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF0_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [1]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [0]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG0_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [2]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [1]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF1_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [3]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [2]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [2]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG1_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [4]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [3]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [3]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF2_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [5]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [4]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [4]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG2_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [6]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [5]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [5]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF3_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [7]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [6]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [6]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG3_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DIN ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [7]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [7]) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [0]), + .I1(CONTROL[9]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DIN ) + ); + MUXF6 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_NO_OREG.U_MUXF6 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/jO [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/jO [0]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/CMP_RESET ) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.I_YES_RPM.U0_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [0]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/jO [0]) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.I_YES_RPM.U1_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [3]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [2]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/jO [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF0_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DATA [1]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [0]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [6]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG0_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DATA [2]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [1]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DATA [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF1_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DATA [3]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [2]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DATA [2]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG1_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DIN ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [3]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DATA [3]) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [5]), + .I1(CONTROL[9]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DIN ) + ); + MUXF6 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_NO_OREG.U_MUXF6 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/jO [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/jO [0]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.I_YES_RPM.U0_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [0]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/jO [0]) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.I_YES_RPM.U1_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [3]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [2]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/jO [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF0_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DATA [1]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [0]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [3]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG0_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DATA [2]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [1]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DATA [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF1_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DATA [3]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [2]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DATA [2]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG1_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DIN ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [3]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DATA [3]) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [2]), + .I1(CONTROL[9]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DIN ) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_NO_OREG.U_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iO [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iO [0]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_CE ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF_cs_cfglut4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iCFG_DATA [1]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iO [0]), + .Q15(\NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF_cs_cfglut4_Q15_UNCONNECTED ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG_cs_cfglut4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iCFG_DIN ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iO [1]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iCFG_DATA [1]) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/I_NOLUT6.I_SRL_T2.U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [9]), + .I1(CONTROL[9]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iCFG_DIN ) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_NO_OREG.U_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iO [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iO [0]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_CE ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF_cs_cfglut4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iCFG_DATA [1]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iO [0]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [9]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG_cs_cfglut4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iCFG_DIN ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iO [1]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iCFG_DATA [1]) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/I_NOLUT6.I_SRL_T2.U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [8]), + .I1(CONTROL[9]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iCFG_DIN ) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_NO_OREG.U_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iO [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iO [0]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_CE ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF_cs_cfglut4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iCFG_DATA [1]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iO [0]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [8]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG_cs_cfglut4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iCFG_DIN ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iO [1]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iCFG_DATA [1]) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/I_NOLUT6.I_SRL_T2.U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [7]), + .I1(CONTROL[9]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iCFG_DIN ) + ); + LUT3 #( + .INIT ( 8'hCA )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_YES_OREG.U_MUXF6 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/jO [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/jO [0]), + .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iOUT ) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.U0_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [0]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/jO [0]) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.U1_MUXF5 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [3]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [2]), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/jO [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF0_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DATA [1]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [0]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [7]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG0_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DATA [2]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [1]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DATA [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF1_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DATA [3]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [2]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DATA [2]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG1_CFGLUT4 ( + .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), + .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DIN ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [3]), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DATA [3]) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [6]), + .I1(CONTROL[9]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DIN ) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_YES_OREG.OUT_REG ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iOUT ), + .R(N0), + .Q(\U0/I_NO_D.U_ILA/iCAP_DONE ) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[8].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [8]), + .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [8]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[7].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [7]), + .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [7]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[6].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [6]), + .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [6]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[5].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [5]), + .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [5]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[4].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [4]), + .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [4]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[3].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [3]), + .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [3]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[2].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [2]), + .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [2]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[1].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [1]), + .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [1]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[0].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [0]), + .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [0]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[8].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [8]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [8]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[8].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [8]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [8]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [8]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[7].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [7]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [7]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[7].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [7]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [7]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [8]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[7].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [7]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [7]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [7]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[6].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [6]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [6]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[6].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [6]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [6]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [7]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[6].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [6]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [6]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [6]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[5].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [5]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [5]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[5].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [5]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [5]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [6]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[5].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [5]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [5]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [5]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[4].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [4]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [4]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[4].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [4]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [4]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [5]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[4].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [4]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [4]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [4]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[3].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [3]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [3]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[3].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [3]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [3]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [4]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[3].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [3]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [3]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [3]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[2].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [2]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [2]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[2].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [2]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [2]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [3]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[2].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [2]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [2]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [2]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[1].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [1]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [1]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[1].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [1]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [1]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [2]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[1].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [1]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [1]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [1]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[0].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [0]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [0]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[0].GnH.U_MUXCY ( + .CI(N1), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [0]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [1]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[0].U_XORCY ( + .CI(N1), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [0]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [0]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[8].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [8]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [8]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[7].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [7]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [7]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[6].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [6]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [6]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[5].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [5]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [5]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[4].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [4]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [4]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[3].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [3]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [3]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[2].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [2]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [2]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[1].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [1]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [1]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[0].U_FDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [0]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [0]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[8].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [8]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [8]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[8].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [8]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [8]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [8]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[7].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [7]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [7]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[7].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [7]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [7]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [8]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[7].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [7]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [7]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [7]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[6].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [6]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [6]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[6].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [6]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [6]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [7]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[6].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [6]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [6]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [6]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[5].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [5]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [5]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[5].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [5]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [5]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [6]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[5].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [5]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [5]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [5]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[4].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [4]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [4]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[4].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [4]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [4]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [5]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[4].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [4]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [4]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [4]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[3].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [3]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [3]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[3].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [3]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [3]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [4]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[3].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [3]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [3]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [3]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[2].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [2]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [2]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[2].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [2]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [2]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [3]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[2].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [2]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [2]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [2]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[1].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [1]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [1]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[1].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [1]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [1]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [2]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[1].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [1]), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [1]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [1]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[0].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [0]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [0]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[0].GnH.U_MUXCY ( + .CI(N1), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [0]), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [1]) + ); + XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[0].U_XORCY ( + .CI(N1), + .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [0]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [0]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.U_MUXL ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCompData [1]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[8] ), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( + .A0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [8]), + .A1(N1), + .A2(N1), + .A3(N1), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[8] ), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/cfg_data [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N1), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [0]), + .Q(\NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH_Q_UNCONNECTED ), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXL ( + .CI(N1), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[0] ), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCompData [0]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXH ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCompData [0]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[1] ), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCompData [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( + .A0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [0]), + .A1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [1]), + .A2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [2]), + .A3(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [3]), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCfgData ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[0] ), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( + .A0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [4]), + .A1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [5]), + .A2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [6]), + .A3(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [7]), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/cfg_data [1]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[1] ), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCfgData ) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.U_MUXL ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCompData [1]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[8] ), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( + .A0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [8]), + .A1(N1), + .A2(N1), + .A3(N1), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[8] ), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/cfg_data [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N1), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [2]), + .Q(\NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH_Q_UNCONNECTED ) +, + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXL ( + .CI(N1), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[0] ), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCompData [0]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXH ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCompData [0]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[1] ), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCompData [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( + .A0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [1]), + .A2(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [2]), + .A3(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [3]), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCfgData ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[0] ), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [3]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( + .A0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [4]), + .A1(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [5]), + .A2(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [6]), + .A3(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [7]), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/cfg_data [1]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[1] ), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCfgData ) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.U_MUXL ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCompData [1]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[8] ), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( + .A0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [8]), + .A1(N1), + .A2(N1), + .A3(N1), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[8] ), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/cfg_data [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N1), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [4]), + .Q(\NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH_Q_UNCONNECTED ) +, + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXL ( + .CI(N1), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[0] ), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCompData [0]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXH ( + .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCompData [0]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[1] ), + .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCompData [1]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( + .A0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [0]), + .A1(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [1]), + .A2(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [2]), + .A3(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [3]), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCfgData ), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[0] ), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [0]) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( + .A0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [4]), + .A1(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [5]), + .A2(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [6]), + .A3(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [7]), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/cfg_data [1]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[1] ), + .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCfgData ) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_BRK1 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [3]), + .I1(CONTROL[9]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [4]) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_BRK0 ( + .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [1]), + .I1(CONTROL[9]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [2]) + ); + LUT3 #( + .INIT ( 8'hCA )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[8].U_CAP_ADDR_MUX ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [8]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [8]), + .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [9]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [8]) + ); + LUT3 #( + .INIT ( 8'hCA )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[7].U_CAP_ADDR_MUX ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [7]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [7]), + .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [8]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [7]) + ); + LUT3 #( + .INIT ( 8'hCA )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[6].U_CAP_ADDR_MUX ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [6]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [6]), + .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [7]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [6]) + ); + LUT3 #( + .INIT ( 8'hCA )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[5].U_CAP_ADDR_MUX ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [5]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [5]), + .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [6]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [5]) + ); + LUT3 #( + .INIT ( 8'hCA )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[4].U_CAP_ADDR_MUX ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [4]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [4]), + .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [5]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [4]) + ); + LUT3 #( + .INIT ( 8'hCA )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[3].U_CAP_ADDR_MUX ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [3]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [3]), + .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [4]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [3]) + ); + LUT3 #( + .INIT ( 8'hCA )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[2].U_CAP_ADDR_MUX ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [2]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [2]), + .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [3]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [2]) + ); + LUT3 #( + .INIT ( 8'hCA )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[1].U_CAP_ADDR_MUX ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [1]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [2]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [1]) + ); + LUT3 #( + .INIT ( 8'hCA )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[0].U_CAP_ADDR_MUX ( + .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [0]), + .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [0]), + .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [1]), + .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [0]) + ); + SRL16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.I_SRL.U_SELX ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N1), + .CE(CONTROL[9]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [16]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [0]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[8].U_CAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [8]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [8]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[8].U_iCAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [8]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [8]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[7].U_CAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [7]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [7]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[7].U_iCAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [7]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [7]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[6].U_CAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [6]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [6]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[6].U_iCAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [6]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [6]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[5].U_CAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [5]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [5]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[5].U_iCAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [5]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [5]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[4].U_CAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [4]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [4]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[4].U_iCAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [4]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [4]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[3].U_CAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [3]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [3]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[3].U_iCAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [3]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [3]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[2].U_CAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [2]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [2]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[2].U_iCAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [2]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [2]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[1].U_CAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [1]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [1]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[1].U_iCAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [1]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [1]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[0].U_CAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [0]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [0]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[0].U_iCAP_ADDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [0]), + .R(\U0/I_NO_D.U_ILA/iRESET [6]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [0]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[15].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [15]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [16]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[14].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [14]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [15]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[13].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [13]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [14]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[12].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [12]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [13]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[11].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [11]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [12]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[10].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [10]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [11]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[9].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [9]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [10]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[8].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [8]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [9]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[7].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [7]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [8]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[6].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [6]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [7]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[5].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [5]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [6]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[4].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [4]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [5]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[3].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [3]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [4]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[2].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [2]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [3]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[1].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [1]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [2]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[0].U_SEL ( + .C(CONTROL[0]), + .CE(CONTROL[9]), + .D(CONTROL[1]), + .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [1]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DSL2 ( + .C(CLK), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly1 ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly2 ) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DSL3 ( + .C(CLK), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly2 ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly3 ) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_CR ( + .C(CLK), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/iRESET [0]), + .Q(\U0/I_NO_D.U_ILA/U_STAT/CAP_RESET_dly1 ) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/G_NS[8].U_NSQ ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), + .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [8]), + .R(\U0/I_NO_D.U_ILA/iARM ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [8]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/G_NS[7].U_NSQ ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), + .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [7]), + .R(\U0/I_NO_D.U_ILA/iARM ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [7]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/G_NS[6].U_NSQ ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), + .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [6]), + .R(\U0/I_NO_D.U_ILA/iARM ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [6]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/G_NS[5].U_NSQ ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), + .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [5]), + .R(\U0/I_NO_D.U_ILA/iARM ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [5]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/G_NS[4].U_NSQ ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), + .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [4]), + .R(\U0/I_NO_D.U_ILA/iARM ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [4]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/G_NS[3].U_NSQ ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), + .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [3]), + .R(\U0/I_NO_D.U_ILA/iARM ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [3]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/G_NS[2].U_NSQ ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), + .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [2]), + .R(\U0/I_NO_D.U_ILA/iARM ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [2]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/G_NS[1].U_NSQ ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), + .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [1]), + .R(\U0/I_NO_D.U_ILA/iARM ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [1]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/G_NS[0].U_NSQ ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), + .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [0]), + .R(\U0/I_NO_D.U_ILA/iARM ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [0]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STATE1 ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_load ), + .D(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), + .R(\U0/I_NO_D.U_ILA/iARM ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/STATE_dstat [1]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STATE0 ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_load ), + .D(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), + .R(\U0/I_NO_D.U_ILA/iARM ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/STATE_dstat [0]) + ); + FDRS #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_ARM ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_STAT/ARM_dstat ), + .R(\U0/I_NO_D.U_ILA/iRESET [0]), + .S(\U0/I_NO_D.U_ILA/iARM ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/ARM_dstat ) + ); + FDRS #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_TRIGGER ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_STAT/TRIGGER_dstat ), + .R(\U0/I_NO_D.U_ILA/iRESET [0]), + .S(\U0/I_NO_D.U_ILA/iCAP_TRIGGER_OUT ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/TRIGGER_dstat ) + ); + FDRS #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_FULL ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_STAT/FULL_dstat ), + .R(\U0/I_NO_D.U_ILA/iARM ), + .S(\U0/I_NO_D.U_ILA/iCAP_DONE ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/FULL_dstat ) + ); + FDRS #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_ECR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_STAT/EXTCAP_READY_dstat ), + .R(\U0/I_NO_D.U_ILA/iARM ), + .S(N1), + .Q(\U0/I_NO_D.U_ILA/U_STAT/EXTCAP_READY_dstat ) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DIRTY_FDCE ( + .C(CONTROL[0]), + .CE(N1), + .CLR(\U0/I_NO_D.U_ILA/iARM ), + .D(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_dstat ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_D0 ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DIRTY_FDPE ( + .C(CONTROL[0]), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_dstat ), + .PRE(CONTROL[13]), + .Q(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_D1 ) + ); + LDC #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DIRTY_LDC ( + .CLR(\U0/I_NO_D.U_ILA/iARM ), + .D(N1), + .G(CONTROL[13]), + .Q(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_SEL ) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_RISING ( + .C(CLK), + .CE(N1), + .CLR(\U0/I_NO_D.U_ILA/U_STAT/ACTRESET_pulse ), + .D(N1), + .Q(\U0/I_NO_D.U_ILA/U_STAT/ACT_dstat ) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_TDO ( + .C(CONTROL[0]), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/TDO_next ), + .Q(\U0/I_NO_D.U_ILA/iSTAT_DOUT ) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/U_GEN_DELAY[1].U_FD ( + .C(CLK), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDOUT_dly [0]), + .Q(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDOUT_dly [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/U_RFDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly1 ), + .CLR(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iCLR ), + .D(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly1 ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDOUT_dly [0]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/U_DOUT ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDIN [0]), + .R(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDIN [1]), + .Q(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly1 ) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/U_DOUT1 ( + .C(CLK), + .CE(N1), + .CLR(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iCLR ), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDIN [0]), + .Q(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDIN [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/U_DOUT0 ( + .C(CLK), + .CE(N1), + .CLR(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iCLR ), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/din_latched ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDIN [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/U_TFDRE ( + .C(CONTROL[0]), + .CE(CONTROL[5]), + .CLR(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iCLR ), + .D(CONTROL[5]), + .Q(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/din_latched ) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/I_H2L.U_DOUT ( + .C(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/iDOUT [1]), + .R(\U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/iDOUT [0]), + .Q(\U0/I_NO_D.U_ILA/U_STAT/ACTRESET_pulse ) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/U_DOUT1 ( + .C(CONTROL[0]), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/iDOUT [0]), + .Q(\U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/iDOUT [1]) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/U_DOUT0 ( + .C(CONTROL[0]), + .CE(N1), + .D(CONTROL[5]), + .Q(\U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/iDOUT [0]) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_2_f5 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_4_450 ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_3_449 ), + .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), + .O(\U0/I_NO_D.U_ILA/U_STAT/TDO_mux_in<0>1 ) + ); + LUT4 #( + .INIT ( 16'h5140 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_4 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_91_455 ), + .I3(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8_452 ), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_4_450 ) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<1>1_535 ), + .I2(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_12_f5_446 ), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8_452 ) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_12_f5 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_14_448 ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_13_447 ), + .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_12_f5_446 ) + ); + LUT2 #( + .INIT ( 4'hD )) + \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_14 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/FULL_dstat ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_14_448 ) + ); + LUT3 #( + .INIT ( 8'h53 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_13 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/STATE_dstat [1]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/STATE_dstat [0]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_13_447 ) + ); + LUT4 #( + .INIT ( 16'hFBEA )) + \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_3 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<2>1_537 ), + .I3(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_7_f6_451 ), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_3_449 ) + ); + MUXF6 \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_7_f6 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9_f5_456 ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8_f5_453 ), + .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_7_f6_451 ) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9_f5 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_11_445 ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_101_444 ), + .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9_f5_456 ) + ); + LUT3 #( + .INIT ( 8'h53 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_11 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [1]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [0]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_11_445 ) + ); + LUT3 #( + .INIT ( 8'h53 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_101 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [3]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [2]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_101_444 ) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8_f5 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_10_443 ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9_454 ), + .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8_f5_453 ) + ); + LUT3 #( + .INIT ( 8'h53 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_10 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [5]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [4]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_10_443 ) + ); + LUT3 #( + .INIT ( 8'h53 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [7]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [6]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9_454 ) + ); + MUXF7 \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_8_f7 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f6_471 ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_9_f6_484 ), + .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [7]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_8_f7_483 ) + ); + MUXF6 \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f6 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12_f5_478 ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f51 ), + .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [6]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f6_471 ) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12_f5 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_14_482 ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_132_481 ), + .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12_f5_478 ) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_14 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [0]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [1]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_14_482 ) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_132 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [2]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_132_481 ) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f5_0 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_131_480 ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_122_477 ), + .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f51 ) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_131 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [4]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [5]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_131_480 ) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_122 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [6]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [7]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_122_477 ) + ); + MUXF6 \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_9_f6 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f5_473 ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f5_470 ), + .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [6]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_9_f6_484 ) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f5 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_13_479 ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_121_476 ), + .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f5_473 ) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_13 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [8]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [9]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_13_479 ) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_121 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [10]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [11]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_121_476 ) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f5 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12_475 ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_472 ), + .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f5_470 ) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [12]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [13]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12_475 ) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [14]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [15]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_472 ) + ); + LUT2 #( + .INIT ( 4'hE )) + \U0/I_NO_D.U_ILA/U_STAT/U_STATCMD ( + .I0(CONTROL[4]), + .I1(CONTROL[5]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE ) + ); + INV \U0/I_NO_D.U_ILA/U_STAT/U_STATCMD_n ( + .I(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE ), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ) + ); + LUT2 #( + .INIT ( 4'h4 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DSL ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly3 ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly2 ), + .O(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_load ) + ); + LUT2 #( + .INIT ( 4'h2 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DSR ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly3 ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly2 ), + .O(\NLW_U0/I_NO_D.U_ILA/U_STAT/U_DSR_O_UNCONNECTED ) + ); + LUT4 #( + .INIT ( 16'h0F22 )) + \U0/I_NO_D.U_ILA/U_STAT/U_NSL ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly3 ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly2 ), + .I2(\U0/I_NO_D.U_ILA/U_STAT/CAP_RESET_dly1 ), + .I3(\U0/I_NO_D.U_ILA/iRESET [0]), + .O(\U0/I_NO_D.U_ILA/U_STAT/NS_load ) + ); + LUT4 #( + .INIT ( 16'h0030 )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[16].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [16]) + ); + LUT4 #( + .INIT ( 16'h1030 )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[15].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [15]) + ); + LUT4 #( + .INIT ( 16'h0070 )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[14].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [14]) + ); + LUT4 #( + .INIT ( 16'h1020 )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[13].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [13]) + ); + LUT4 #( + .INIT ( 16'h0070 )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[12].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [12]) + ); + LUT4 #( + .INIT ( 16'h1010 )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[11].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [11]) + ); + LUT4 #( + .INIT ( 16'h0070 )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[10].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [10]) + ); + LUT4 #( + .INIT ( 16'h100F )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[9].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [9]) + ); + LUT4 #( + .INIT ( 16'hFFF0 )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[8].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [8]) + ); + LUT4 #( + .INIT ( 16'h0004 )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[7].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [7]) + ); + LUT4 #( + .INIT ( 16'h3000 )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[6].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [6]) + ); + LUT4 #( + .INIT ( 16'h001F )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[5].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [5]) + ); + LUT4 #( + .INIT ( 16'hF001 )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[4].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [4]) + ); + LUT4 #( + .INIT ( 16'hB610 )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[3].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [3]) + ); + LUT4 #( + .INIT ( 16'h2100 )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[2].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [2]) + ); + LUT4 #( + .INIT ( 16'hC102 )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[1].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [1]) + ); + LUT4 #( + .INIT ( 16'h0101 )) + \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[0].I_STAT.U_STAT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [0]) + ); + LUT2 #( + .INIT ( 4'h2 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/U_CLEAR ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDOUT_dly [1]), + .I1(CONTROL[5]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iCLR ) + ); + XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[0].U_XORCY ( + .CI(N1), + .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [0]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [0]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[0].GnH.U_MUXCY ( + .CI(N1), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [0]), + .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [1]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[0].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [0]) + ); + XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[1].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [1]), + .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [1]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [1]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[1].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [1]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [1]), + .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [2]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[1].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [1]) + ); + XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[2].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [2]), + .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [2]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [2]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[2].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [2]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [2]), + .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [3]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[2].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [2]) + ); + XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[3].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [3]), + .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [3]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[3].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [3]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [3]), + .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [4]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[3].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [3]) + ); + XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[4].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [4]), + .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [4]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [4]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[4].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [4]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [4]), + .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [5]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[4].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [4]) + ); + XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[5].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [5]), + .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [5]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [5]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[5].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [5]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [5]), + .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [6]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[5].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [5]) + ); + XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[6].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [6]), + .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [6]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [6]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[6].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [6]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [6]), + .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [7]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[6].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [6]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [6]) + ); + XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[7].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [7]), + .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [7]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [7]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[7].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [7]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [7]), + .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [8]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[7].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [7]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [7]) + ); + XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[8].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [8]), + .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [8]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [8]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[8].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [8]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [8]), + .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [9]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[8].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [8]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [8]) + ); + XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[9].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [9]), + .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [9]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [9]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[9].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [9]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [9]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[0].U_FDRE ( + .C(CONTROL[0]), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [0]), + .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[1].U_FDRE ( + .C(CONTROL[0]), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [1]), + .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[2].U_FDRE ( + .C(CONTROL[0]), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [2]), + .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[3].U_FDRE ( + .C(CONTROL[0]), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [3]), + .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[4].U_FDRE ( + .C(CONTROL[0]), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [4]), + .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[5].U_FDRE ( + .C(CONTROL[0]), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [5]), + .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[6].U_FDRE ( + .C(CONTROL[0]), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [6]), + .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [6]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[7].U_FDRE ( + .C(CONTROL[0]), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [7]), + .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [7]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[8].U_FDRE ( + .C(CONTROL[0]), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [8]), + .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [8]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[9].U_FDRE ( + .C(CONTROL[0]), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [9]), + .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), + .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [9]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_RST/U_POR ( + .C(CLK), + .D(N0), + .PRE(N0), + .Q(\U0/I_NO_D.U_ILA/U_RST/POR ) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_RST/G_RST[0].U_RST ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_RST/iRESET [0]), + .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), + .Q(\U0/I_NO_D.U_ILA/iRESET [0]) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_RST/G_RST[1].U_RST ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/iRESET [0]), + .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), + .Q(\U0/I_NO_D.U_ILA/iRESET [1]) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_RST/G_RST[2].U_RST ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/iRESET [1]), + .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), + .Q(\U0/I_NO_D.U_ILA/iRESET [2]) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_RST/G_RST[3].U_RST ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/iRESET [2]), + .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), + .Q(\U0/I_NO_D.U_ILA/iRESET [3]) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_RST/G_RST[4].U_RST ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/iRESET [3]), + .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), + .Q(\U0/I_NO_D.U_ILA/iRESET [4]) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_RST/G_RST[5].U_RST ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/iRESET [4]), + .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), + .Q(\U0/I_NO_D.U_ILA/iRESET [5]) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_RST/G_RST[6].U_RST ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/iRESET [5]), + .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), + .Q(\U0/I_NO_D.U_ILA/iRESET [6]) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_RST/G_RST[7].U_RST ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/iRESET [6]), + .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), + .Q(\U0/I_NO_D.U_ILA/iRESET [7]) + ); + LUT3 #( + .INIT ( 8'hEF )) + \U0/I_NO_D.U_ILA/U_RST/U_PRST1 ( + .I0(\U0/I_NO_D.U_ILA/U_RST/HALT_pulse ), + .I1(\U0/I_NO_D.U_ILA/U_RST/POR ), + .I2(N1), + .O(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET1 ) + ); + LUT4 #( + .INIT ( 16'hFFFE )) + \U0/I_NO_D.U_ILA/U_RST/U_PRST0 ( + .I0(N0), + .I1(\U0/I_NO_D.U_ILA/iCAP_DONE ), + .I2(N0), + .I3(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET1 ), + .O(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ) + ); + LUT2 #( + .INIT ( 4'h4 )) + \U0/I_NO_D.U_ILA/U_RST/U_RST0 ( + .I0(\U0/I_NO_D.U_ILA/iARM ), + .I1(\U0/I_NO_D.U_ILA/iRESET [0]), + .O(\U0/I_NO_D.U_ILA/U_RST/iRESET [0]) + ); + LUT2 #( + .INIT ( 4'h2 )) + \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_CLEAR ( + .I0(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT_dly[2] ), + .I1(CONTROL[13]), + .O(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iCLR ) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_GEN_DELAY[2].U_FD ( + .C(CLK), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_RST/HALT_pulse ), + .Q(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT_dly[2] ) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_GEN_DELAY[1].U_FD ( + .C(CLK), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT_dly[0] ), + .Q(\U0/I_NO_D.U_ILA/U_RST/HALT_pulse ) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_RFDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT ), + .CLR(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iCLR ), + .D(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT ), + .Q(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT_dly[0] ) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_DOUT ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDIN [0]), + .R(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDIN [1]), + .Q(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT ) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_DOUT1 ( + .C(CLK), + .CE(N1), + .CLR(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iCLR ), + .D(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDIN [0]), + .Q(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDIN [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_DOUT0 ( + .C(CLK), + .CE(N1), + .CLR(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iCLR ), + .D(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/din_latched ), + .Q(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDIN [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_TFDRE ( + .C(CONTROL[0]), + .CE(CONTROL[13]), + .CLR(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iCLR ), + .D(CONTROL[13]), + .Q(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/din_latched ) + ); + LUT2 #( + .INIT ( 4'h2 )) + \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_CLEAR ( + .I0(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[4] ), + .I1(CONTROL[12]), + .O(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iCLR ) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_GEN_DELAY[4].U_FD ( + .C(CLK), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/iARM ), + .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[4] ) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_GEN_DELAY[3].U_FD ( + .C(CLK), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[2] ), + .Q(\U0/I_NO_D.U_ILA/iARM ) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_GEN_DELAY[2].U_FD ( + .C(CLK), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[1] ), + .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[2] ) + ); + FDE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_GEN_DELAY[1].U_FD ( + .C(CLK), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[0] ), + .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[1] ) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_RFDRE ( + .C(CLK), + .CE(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT ), + .CLR(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iCLR ), + .D(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT ), + .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[0] ) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_DOUT ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDIN [0]), + .R(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDIN [1]), + .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT ) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_DOUT1 ( + .C(CLK), + .CE(N1), + .CLR(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iCLR ), + .D(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDIN [0]), + .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDIN [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_DOUT0 ( + .C(CLK), + .CE(N1), + .CLR(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iCLR ), + .D(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/din_latched ), + .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDIN [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_TFDRE ( + .C(CONTROL[0]), + .CE(CONTROL[12]), + .CLR(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iCLR ), + .D(CONTROL[12]), + .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/din_latched ) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[13].U_FDRE ( + .C(CONTROL[0]), + .CE(CONTROL[6]), + .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [13]), + .R(CONTROL[14]), + .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [13]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[12].U_FDRE ( + .C(CONTROL[0]), + .CE(CONTROL[6]), + .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [12]), + .R(CONTROL[14]), + .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [12]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[11].U_FDRE ( + .C(CONTROL[0]), + .CE(CONTROL[6]), + .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [11]), + .R(CONTROL[14]), + .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [11]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[10].U_FDRE ( + .C(CONTROL[0]), + .CE(CONTROL[6]), + .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [10]), + .R(CONTROL[14]), + .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [10]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[9].U_FDRE ( + .C(CONTROL[0]), + .CE(CONTROL[6]), + .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [9]), + .R(CONTROL[14]), + .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [9]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[8].U_FDRE ( + .C(CONTROL[0]), + .CE(CONTROL[6]), + .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [8]), + .R(CONTROL[14]), + .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [8]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[7].U_FDRE ( + .C(CONTROL[0]), + .CE(CONTROL[6]), + .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [7]), + .R(CONTROL[14]), + .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [7]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[6].U_FDRE ( + .C(CONTROL[0]), + .CE(CONTROL[6]), + .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [6]), + .R(CONTROL[14]), + .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [6]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[5].U_FDRE ( + .C(CONTROL[0]), + .CE(CONTROL[6]), + .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [5]), + .R(CONTROL[14]), + .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [5]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[4].U_FDRE ( + .C(CONTROL[0]), + .CE(CONTROL[6]), + .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [4]), + .R(CONTROL[14]), + .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [4]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[3].U_FDRE ( + .C(CONTROL[0]), + .CE(CONTROL[6]), + .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [3]), + .R(CONTROL[14]), + .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [3]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[2].U_FDRE ( + .C(CONTROL[0]), + .CE(CONTROL[6]), + .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [2]), + .R(CONTROL[14]), + .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [2]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[1].U_FDRE ( + .C(CONTROL[0]), + .CE(CONTROL[6]), + .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [1]), + .R(CONTROL[14]), + .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [1]) + ); + FDRE #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[0].U_FDRE ( + .C(CONTROL[0]), + .CE(CONTROL[6]), + .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [0]), + .R(CONTROL[14]), + .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [0]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[13].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [13]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [13]) + ); + XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[13].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [13]), + .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [13]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [13]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[12].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [12]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [12]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[12].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [12]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [12]), + .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [13]) + ); + XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[12].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [12]), + .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [12]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [12]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[11].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [11]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [11]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[11].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [11]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [11]), + .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [12]) + ); + XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[11].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [11]), + .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [11]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [11]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[10].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [10]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [10]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[10].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [10]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [10]), + .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [11]) + ); + XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[10].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [10]), + .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [10]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [10]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[9].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [9]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [9]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[9].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [9]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [9]), + .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [10]) + ); + XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[9].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [9]), + .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [9]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [9]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[8].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [8]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [8]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[8].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [8]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [8]), + .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [9]) + ); + XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[8].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [8]), + .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [8]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [8]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[7].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [7]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [7]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[7].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [7]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [7]), + .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [8]) + ); + XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[7].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [7]), + .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [7]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [7]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[6].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [6]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [6]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[6].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [6]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [6]), + .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [7]) + ); + XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[6].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [6]), + .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [6]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [6]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[5].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [5]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [5]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[5].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [5]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [5]), + .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [6]) + ); + XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[5].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [5]), + .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [5]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [5]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[4].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [4]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [4]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[4].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [4]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [4]), + .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [5]) + ); + XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[4].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [4]), + .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [4]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [4]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[3].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [3]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [3]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[3].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [3]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [3]), + .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [4]) + ); + XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[3].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [3]), + .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [3]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [3]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[2].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [2]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [2]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[2].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [2]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [2]), + .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [3]) + ); + XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[2].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [2]), + .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [2]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [2]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[1].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [1]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [1]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[1].GnH.U_MUXCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [1]), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [1]), + .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [2]) + ); + XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[1].U_XORCY ( + .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [1]), + .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [1]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [1]) + ); + LUT1 #( + .INIT ( 2'h2 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[0].U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [0]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [0]) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[0].GnH.U_MUXCY ( + .CI(N1), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [0]), + .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [1]) + ); + XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[0].U_XORCY ( + .CI(N1), + .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [0]), + .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [0]) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[0].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [24]), + .PRE(CONTROL[23]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[1].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [25]), + .PRE(CONTROL[23]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[2].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [26]), + .PRE(CONTROL[23]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[3].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [27]), + .PRE(CONTROL[23]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_OREG.U_OREG ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ), + .S(\U0/I_NO_D.U_ILA/iRESET [0]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/DOUT_tmp ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N1), + .CE(CONTROL[23]), + .CLK(CONTROL[0]), + .D(CONTROL[1]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<4> ), + .Q15(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( + .A0(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ), + .A1(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ), + .A2(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ), + .A3(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ), + .CE(CONTROL[23]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<3> ), + .Q15 +(\NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ) + + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_YES_MUXH.U_MUXH ( + .CI(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<4> ), + .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.U_MUXL ( + .CI(N1), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<3> ), + .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[0].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [0]), + .PRE(CONTROL[20]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[1].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [1]), + .PRE(CONTROL[20]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[2].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [2]), + .PRE(CONTROL[20]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[3].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [3]), + .PRE(CONTROL[20]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[4].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [4]), + .PRE(CONTROL[20]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[5].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [5]), + .PRE(CONTROL[20]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[6].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [6]), + .PRE(CONTROL[20]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[7].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [7]), + .PRE(CONTROL[20]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_OREG.U_OREG ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ), + .S(\U0/I_NO_D.U_ILA/iRESET [0]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/DOUT_tmp ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( + .A0(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ), + .A1(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ), + .A2(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ), + .A3(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ), + .CE(CONTROL[20]), + .CLK(CONTROL[0]), + .D(CONTROL[1]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ), + .Q15(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( + .A0(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ), + .A1(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ), + .A2(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ), + .A3(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ), + .CE(CONTROL[20]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ), + .Q15 +(\NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ) + + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXH ( + .CI(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ), + .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXL ( + .CI(N1), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ), + .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ) + ); + XORCY \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_OREG.U_XORH ( + .CI(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ), + .LI(N0), + .O(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[0].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [8]), + .PRE(CONTROL[21]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[1].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [9]), + .PRE(CONTROL[21]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[2].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [10]), + .PRE(CONTROL[21]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[3].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [11]), + .PRE(CONTROL[21]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[4].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [12]), + .PRE(CONTROL[21]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[5].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [13]), + .PRE(CONTROL[21]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[6].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [14]), + .PRE(CONTROL[21]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[7].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [15]), + .PRE(CONTROL[21]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_OREG.U_OREG ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ), + .S(\U0/I_NO_D.U_ILA/iRESET [0]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/DOUT_tmp ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( + .A0(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ), + .A1(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ), + .A2(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ), + .A3(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ), + .CE(CONTROL[21]), + .CLK(CONTROL[0]), + .D(CONTROL[1]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ), + .Q15(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( + .A0(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ), + .A1(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ), + .A2(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ), + .A3(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ), + .CE(CONTROL[21]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ), + .Q15 +(\NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ) + + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXH ( + .CI(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ), + .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXL ( + .CI(N1), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ), + .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ) + ); + XORCY \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_OREG.U_XORH ( + .CI(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ), + .LI(N0), + .O(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[0].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [16]), + .PRE(CONTROL[22]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[1].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [17]), + .PRE(CONTROL[22]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[2].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [18]), + .PRE(CONTROL[22]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[3].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [19]), + .PRE(CONTROL[22]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[4].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [20]), + .PRE(CONTROL[22]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[5].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [21]), + .PRE(CONTROL[22]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[6].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [22]), + .PRE(CONTROL[22]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[7].U_IREG ( + .C(CLK), + .CE(N1), + .D(\U0/iTRIG_IN [23]), + .PRE(CONTROL[22]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_OREG.U_OREG ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ), + .S(\U0/I_NO_D.U_ILA/iRESET [0]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/DOUT_tmp ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( + .A0(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ), + .A1(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ), + .A2(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ), + .A3(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ), + .CE(CONTROL[22]), + .CLK(CONTROL[0]), + .D(CONTROL[1]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ), + .Q15(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( + .A0(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ), + .A1(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ), + .A2(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ), + .A3(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ), + .CE(CONTROL[22]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ), + .Q15 +(\NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ) + + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXH ( + .CI(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ), + .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ) + ); + MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXL ( + .CI(N1), + .DI(N0), + .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ), + .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ) + ); + XORCY \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_OREG.U_XORH ( + .CI(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ), + .LI(N0), + .O(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[0].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [0]), + .Q(\U0/I_NO_D.U_ILA/iDATA [0]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[1].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [1]), + .Q(\U0/I_NO_D.U_ILA/iDATA [1]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[2].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [2]), + .Q(\U0/I_NO_D.U_ILA/iDATA [2]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[3].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [3]), + .Q(\U0/I_NO_D.U_ILA/iDATA [3]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[4].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [4]), + .Q(\U0/I_NO_D.U_ILA/iDATA [4]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[5].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [5]), + .Q(\U0/I_NO_D.U_ILA/iDATA [5]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[6].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [6]), + .Q(\U0/I_NO_D.U_ILA/iDATA [6]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[7].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [7]), + .Q(\U0/I_NO_D.U_ILA/iDATA [7]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[8].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [8]), + .Q(\U0/I_NO_D.U_ILA/iDATA [8]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[9].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [9]), + .Q(\U0/I_NO_D.U_ILA/iDATA [9]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[10].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [10]), + .Q(\U0/I_NO_D.U_ILA/iDATA [10]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[11].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [11]), + .Q(\U0/I_NO_D.U_ILA/iDATA [11]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[12].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [12]), + .Q(\U0/I_NO_D.U_ILA/iDATA [12]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[13].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [13]), + .Q(\U0/I_NO_D.U_ILA/iDATA [13]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[14].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [14]), + .Q(\U0/I_NO_D.U_ILA/iDATA [14]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[15].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [15]), + .Q(\U0/I_NO_D.U_ILA/iDATA [15]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[16].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [16]), + .Q(\U0/I_NO_D.U_ILA/iDATA [16]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[17].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [17]), + .Q(\U0/I_NO_D.U_ILA/iDATA [17]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[18].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [18]), + .Q(\U0/I_NO_D.U_ILA/iDATA [18]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[19].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [19]), + .Q(\U0/I_NO_D.U_ILA/iDATA [19]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[20].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [20]), + .Q(\U0/I_NO_D.U_ILA/iDATA [20]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[21].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [21]), + .Q(\U0/I_NO_D.U_ILA/iDATA [21]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[22].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [22]), + .Q(\U0/I_NO_D.U_ILA/iDATA [22]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[23].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [23]), + .Q(\U0/I_NO_D.U_ILA/iDATA [23]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[24].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [24]), + .Q(\U0/I_NO_D.U_ILA/iDATA [24]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[25].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [25]), + .Q(\U0/I_NO_D.U_ILA/iDATA [25]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[26].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [26]), + .Q(\U0/I_NO_D.U_ILA/iDATA [26]) + ); + FD #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[27].I_SRLT_NE_0.FF ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [27]), + .Q(\U0/I_NO_D.U_ILA/iDATA [27]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[0].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [0]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [0]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[1].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [1]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [1]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[2].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [2]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [2]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[3].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [3]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [3]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[4].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [4]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [4]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[5].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [5]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [5]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[6].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [6]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [6]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[7].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [7]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [7]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[8].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [8]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [8]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[9].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [9]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [9]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[10].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [10]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [10]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[11].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [11]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [11]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[12].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [12]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [12]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[13].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [13]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [13]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[14].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [14]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [14]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[15].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [15]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [15]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[16].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [16]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [16]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[17].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [17]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [17]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[18].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [18]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [18]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[19].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [19]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [19]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[20].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [20]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [20]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[21].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [21]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [21]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[22].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [22]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [22]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[23].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [23]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [23]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[24].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [24]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [24]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[25].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [25]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [25]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[26].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [26]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [26]) + ); + SRL16 #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[27].I_SRLT_NE_0.DLY9 ( + .A0(N1), + .A1(N1), + .A2(N1), + .A3(N0), + .CLK(CLK), + .D(\U0/iTRIG_IN [27]), + .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [27]) + ); + LUT3 #( + .INIT ( 8'hCA )) + \U0/I_NO_D.U_ILA/U_DOUT ( + .I0(\U0/I_NO_D.U_ILA/iSTAT_DOUT ), + .I1(\U0/I_NO_D.U_ILA/iDATA_DOUT ), + .I2(CONTROL[6]), + .O(CONTROL[3]) + ); + LUT1 #( + .INIT ( 2'h1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_CAP_B ( + .I0(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/iCAPTURE ), + .O(\NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_CAP_B_O_UNCONNECTED ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/I_NOLUT6.I_SRL_T2.U_SRLC16E ( + .A0(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [0]), + .A1(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [1]), + .A2(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [2]), + .A3(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [3]), + .CE(CONTROL[8]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/iCFG_DIN ), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/iDOUT ), + .Q15 +(\NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/I_NOLUT6.I_SRL_T2.U_SRLC16E_Q15_UNCONNECTED ) + + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/I_NOLUT6.I_SRL_T2.U_LUT ( + .I0(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/iCFG_DATA [1]), + .I1(CONTROL[8]), + .O(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/iCFG_DIN ) + ); + SRLC16E #( + .INIT ( 16'h0000 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/I_NOLUT6.I_SRL_T2.U_SRLC16E ( + .A0(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [0]), + .A1(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [1]), + .A2(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [2]), + .A3(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [3]), + .CE(CONTROL[8]), + .CLK(CONTROL[0]), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/iCFG_DIN ), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/iDOUT ), + .Q15(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/iCFG_DATA [1]) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/I_NOLUT6.I_SRL_T2.U_LUT ( + .I0(CONTROL[1]), + .I1(CONTROL[8]), + .O(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/iCFG_DIN ) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_OREG.I_YES_OREG.U_OREG ( + .C(CLK), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/DOUT_tmp ), + .PRE(\U0/I_NO_D.U_ILA/iRESET [1]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/dout_tmp ) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/I_MC_NO.U_NO_MC_REG ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/dout_tmp ), + .S(\U0/I_NO_D.U_ILA/iRESET [2]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [2]) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_OREG.I_YES_OREG.U_OREG ( + .C(CLK), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/DOUT_tmp ), + .PRE(\U0/I_NO_D.U_ILA/iRESET [1]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/dout_tmp ) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/I_MC_NO.U_NO_MC_REG ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/dout_tmp ), + .S(\U0/I_NO_D.U_ILA/iRESET [2]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [1]) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_OREG.I_YES_OREG.U_OREG ( + .C(CLK), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/DOUT_tmp ), + .PRE(\U0/I_NO_D.U_ILA/iRESET [1]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/dout_tmp ) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/I_MC_NO.U_NO_MC_REG ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/dout_tmp ), + .S(\U0/I_NO_D.U_ILA/iRESET [2]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [0]) + ); + FDPE #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_OREG.I_YES_OREG.U_OREG ( + .C(CLK), + .CE(N1), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/DOUT_tmp ), + .PRE(\U0/I_NO_D.U_ILA/iRESET [1]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/dout_tmp ) + ); + FDS #( + .INIT ( 1'b1 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/I_MC_NO.U_NO_MC_REG ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/dout_tmp ), + .S(\U0/I_NO_D.U_ILA/iRESET [2]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [3]) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_CAP_DLY ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/iCAPTURE ), + .R(\U0/I_NO_D.U_ILA/iRESET [3]), + .Q(\U0/I_NO_D.U_ILA/iCAPTURE ) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_OUTREG.U_DOUT ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/iDOUT ), + .R(\U0/I_NO_D.U_ILA/iRESET [3]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/iTRIGGER ) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TRIGQ ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/iTRIGGER ), + .R(\U0/I_NO_D.U_ILA/iRESET [4]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/iCAPTURE ) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_OUTREG.U_DOUT ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/iDOUT ), + .R(\U0/I_NO_D.U_ILA/iRESET [3]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/iTRIGGER ) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TRIGQ ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/iTRIGGER ), + .R(\U0/I_NO_D.U_ILA/iRESET [4]), + .Q(\U0/I_NO_D.U_ILA/U_TRIG/trigCondOut ) + ); + FDR #( + .INIT ( 1'b0 )) + \U0/I_NO_D.U_ILA/U_TRIG/F_NO_TCMC.U_FDR ( + .C(CLK), + .D(\U0/I_NO_D.U_ILA/U_TRIG/trigCondOut ), + .R(\U0/I_NO_D.U_ILA/iRESET [5]), + .Q(\U0/I_NO_D.U_ILA/iTRIGGER ) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ3.G_TW[3].U_TQ ( + .C(CLK), + .D(TRIG3[3]), + .PRE(N0), + .Q(\U0/iTRIG_IN [27]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ3.G_TW[2].U_TQ ( + .C(CLK), + .D(TRIG3[2]), + .PRE(N0), + .Q(\U0/iTRIG_IN [26]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ3.G_TW[1].U_TQ ( + .C(CLK), + .D(TRIG3[1]), + .PRE(N0), + .Q(\U0/iTRIG_IN [25]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ3.G_TW[0].U_TQ ( + .C(CLK), + .D(TRIG3[0]), + .PRE(N0), + .Q(\U0/iTRIG_IN [24]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ2.G_TW[7].U_TQ ( + .C(CLK), + .D(TRIG2[7]), + .PRE(N0), + .Q(\U0/iTRIG_IN [23]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ2.G_TW[6].U_TQ ( + .C(CLK), + .D(TRIG2[6]), + .PRE(N0), + .Q(\U0/iTRIG_IN [22]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ2.G_TW[5].U_TQ ( + .C(CLK), + .D(TRIG2[5]), + .PRE(N0), + .Q(\U0/iTRIG_IN [21]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ2.G_TW[4].U_TQ ( + .C(CLK), + .D(TRIG2[4]), + .PRE(N0), + .Q(\U0/iTRIG_IN [20]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ2.G_TW[3].U_TQ ( + .C(CLK), + .D(TRIG2[3]), + .PRE(N0), + .Q(\U0/iTRIG_IN [19]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ2.G_TW[2].U_TQ ( + .C(CLK), + .D(TRIG2[2]), + .PRE(N0), + .Q(\U0/iTRIG_IN [18]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ2.G_TW[1].U_TQ ( + .C(CLK), + .D(TRIG2[1]), + .PRE(N0), + .Q(\U0/iTRIG_IN [17]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ2.G_TW[0].U_TQ ( + .C(CLK), + .D(TRIG2[0]), + .PRE(N0), + .Q(\U0/iTRIG_IN [16]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ1.G_TW[7].U_TQ ( + .C(CLK), + .D(TRIG1[7]), + .PRE(N0), + .Q(\U0/iTRIG_IN [15]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ1.G_TW[6].U_TQ ( + .C(CLK), + .D(TRIG1[6]), + .PRE(N0), + .Q(\U0/iTRIG_IN [14]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ1.G_TW[5].U_TQ ( + .C(CLK), + .D(TRIG1[5]), + .PRE(N0), + .Q(\U0/iTRIG_IN [13]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ1.G_TW[4].U_TQ ( + .C(CLK), + .D(TRIG1[4]), + .PRE(N0), + .Q(\U0/iTRIG_IN [12]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ1.G_TW[3].U_TQ ( + .C(CLK), + .D(TRIG1[3]), + .PRE(N0), + .Q(\U0/iTRIG_IN [11]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ1.G_TW[2].U_TQ ( + .C(CLK), + .D(TRIG1[2]), + .PRE(N0), + .Q(\U0/iTRIG_IN [10]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ1.G_TW[1].U_TQ ( + .C(CLK), + .D(TRIG1[1]), + .PRE(N0), + .Q(\U0/iTRIG_IN [9]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ1.G_TW[0].U_TQ ( + .C(CLK), + .D(TRIG1[0]), + .PRE(N0), + .Q(\U0/iTRIG_IN [8]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ0.G_TW[7].U_TQ ( + .C(CLK), + .D(TRIG0[7]), + .PRE(N0), + .Q(\U0/iTRIG_IN [7]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ0.G_TW[6].U_TQ ( + .C(CLK), + .D(TRIG0[6]), + .PRE(N0), + .Q(\U0/iTRIG_IN [6]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ0.G_TW[5].U_TQ ( + .C(CLK), + .D(TRIG0[5]), + .PRE(N0), + .Q(\U0/iTRIG_IN [5]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ0.G_TW[4].U_TQ ( + .C(CLK), + .D(TRIG0[4]), + .PRE(N0), + .Q(\U0/iTRIG_IN [4]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ0.G_TW[3].U_TQ ( + .C(CLK), + .D(TRIG0[3]), + .PRE(N0), + .Q(\U0/iTRIG_IN [3]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ0.G_TW[2].U_TQ ( + .C(CLK), + .D(TRIG0[2]), + .PRE(N0), + .Q(\U0/iTRIG_IN [2]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ0.G_TW[1].U_TQ ( + .C(CLK), + .D(TRIG0[1]), + .PRE(N0), + .Q(\U0/iTRIG_IN [1]) + ); + FDP #( + .INIT ( 1'b1 )) + \U0/I_TQ0.G_TW[0].U_TQ ( + .C(CLK), + .D(TRIG0[0]), + .PRE(N0), + .Q(\U0/iTRIG_IN [0]) + ); + LUT2 #( + .INIT ( 4'h8 )) + \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<0> ( + .I0(CONTROL[10]), + .I1(CONTROL[11]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [0]) + ); + MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<0> ( + .CI(N1), + .DI(N0), + .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [0]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [0]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<1> ( + .I0(CONTROL[12]), + .I1(CONTROL[13]), + .I2(CONTROL[9]), + .I3(CONTROL[14]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [1]) + ); + MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<1> ( + .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [0]), + .DI(N0), + .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [1]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [1]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<2> ( + .I0(CONTROL[15]), + .I1(CONTROL[16]), + .I2(CONTROL[8]), + .I3(CONTROL[17]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [2]) + ); + MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<2> ( + .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [1]), + .DI(N0), + .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [2]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [2]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<3> ( + .I0(CONTROL[18]), + .I1(CONTROL[21]), + .I2(CONTROL[7]), + .I3(CONTROL[19]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [3]) + ); + MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<3> ( + .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [2]), + .DI(N0), + .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [3]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [3]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<4> ( + .I0(CONTROL[20]), + .I1(CONTROL[22]), + .I2(CONTROL[6]), + .I3(CONTROL[23]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [4]) + ); + MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<4> ( + .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [3]), + .DI(N0), + .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [4]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [4]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<5> ( + .I0(CONTROL[24]), + .I1(CONTROL[25]), + .I2(CONTROL[5]), + .I3(CONTROL[26]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [5]) + ); + MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<5> ( + .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [4]), + .DI(N0), + .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [5]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [5]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<6> ( + .I0(CONTROL[27]), + .I1(CONTROL[28]), + .I2(CONTROL[2]), + .I3(CONTROL[29]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [6]) + ); + MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<6> ( + .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [5]), + .DI(N0), + .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [6]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [6]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<7> ( + .I0(CONTROL[30]), + .I1(CONTROL[31]), + .I2(CONTROL[1]), + .I3(CONTROL[32]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [7]) + ); + MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<7> ( + .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [6]), + .DI(N0), + .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [7]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [7]) + ); + LUT4 #( + .INIT ( 16'h8000 )) + \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<8> ( + .I0(CONTROL[33]), + .I1(CONTROL[34]), + .I2(CONTROL[4]), + .I3(CONTROL[35]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [8]) + ); + MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<8> ( + .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [7]), + .DI(N0), + .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [8]), + .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [8]) + ); + LUT4 #( + .INIT ( 16'hFEFF )) + \U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<2>1 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [8]), + .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<2>1_537 ) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \U0/I_NO_D.U_ILA/U_STAT/DIRTY_dstat1 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_SEL ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_D0 ), + .I2(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_D1 ), + .O(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_dstat ) + ); + LUT2 #( + .INIT ( 4'h2 )) + \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O2 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [9]), + .I1(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [8]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O2_464 ) + ); + LUT4 #( + .INIT ( 16'h0001 )) + \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O15 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [7]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [6]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O15_463 ) + ); + LUT4 #( + .INIT ( 16'hFFFE )) + \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O26 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [7]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [6]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O26_465 ) + ); + LUT4 #( + .INIT ( 16'hF222 )) + \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O36 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O26_465 ), + .I1(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [8]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O15_463 ), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [16]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O36_466 ) + ); + LUT4 #( + .INIT ( 16'hAF8D )) + \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O129 ( + .I0(CONTROL[4]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O2_464 ), + .I2(\U0/I_NO_D.U_ILA/U_STAT/TDO_mux_in<0>1 ), + .I3(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O82_467 ), + .O(\U0/I_NO_D.U_ILA/U_STAT/TDO_next ) + ); + MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_91 ( + .I0(N38), + .I1(N39), + .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_91_455 ) + ); + LUT3 #( + .INIT ( 8'h15 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_91_F ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_dstat ), + .O(N38) + ); + LUT4 #( + .INIT ( 16'h0145 )) + \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_91_G ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/EXTCAP_READY_dstat ), + .I3(\U0/I_NO_D.U_ILA/U_STAT/ACT_dstat ), + .O(N39) + ); + LUT4_L #( + .INIT ( 16'h3F50 )) + \U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<1>1 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/ARM_dstat ), + .I1(\U0/I_NO_D.U_ILA/U_STAT/TRIGGER_dstat ), + .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), + .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), + .LO(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<1>1_535 ) + ); + LUT4_L #( + .INIT ( 16'h3120 )) + \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O82 ( + .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [8]), + .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [9]), + .I2(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O36_466 ), + .I3(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_8_f7_483 ), + .LO(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O82_467 ) + ); + RAMB16_S1_S36 #( + .INIT_B ( 36'h000000000 ), + .INITP_00 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INITP_01 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INITP_02 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INITP_03 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INITP_04 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INITP_05 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INITP_06 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_00 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_01 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_02 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_03 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_04 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_05 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_06 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_07 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_08 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_09 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_0A ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_0B ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_0C ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_0D ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_0E ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_0F ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_10 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_11 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_12 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_13 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_14 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_15 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_16 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_17 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_18 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_19 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_1A ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_1B ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_1C ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_1D ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_1E ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_1F ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_20 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_21 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_22 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_23 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_24 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_25 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_26 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_27 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_28 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_29 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_2A ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_2B ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_2C ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_2D ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_2E ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_2F ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_30 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_31 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_32 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_33 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_34 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_35 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_36 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_37 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_38 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_39 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_3A ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_3B ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_3C ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_3D ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_3E ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_3F ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .INIT_A ( 1'h0 ), + .SIM_COLLISION_CHECK ( "ALL" ), + .INITP_07 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), + .SRVAL_A ( 1'h0 ), + .WRITE_MODE_A ( "WRITE_FIRST" ), + .WRITE_MODE_B ( "WRITE_FIRST" ), + .SRVAL_B ( 36'h000000000 )) + \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i ( + .CLKA(CONTROL[0]), + .CLKB(CLK), + .ENA(CONTROL[6]), + .ENB(N1), + .WEB(\U0/I_NO_D.U_ILA/iCAP_WR_EN ), + .SSRA(N0), + .SSRB(N0), + .WEA(N0), + .DIPB({N0, N0, N0, N0}), + .ADDRA({\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [13], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [12], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [11], +\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [10], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [9], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [8], +\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [7], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [6], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [5], +\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [4], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [3], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [2], +\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [1], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [0]}), + .ADDRB({\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [8], \U0/I_NO_D.U_ILA/iCAP_WR_ADDR [7], \U0/I_NO_D.U_ILA/iCAP_WR_ADDR [6], \U0/I_NO_D.U_ILA/iCAP_WR_ADDR [5] +, \U0/I_NO_D.U_ILA/iCAP_WR_ADDR [4], \U0/I_NO_D.U_ILA/iCAP_WR_ADDR [3], \U0/I_NO_D.U_ILA/iCAP_WR_ADDR [2], \U0/I_NO_D.U_ILA/iCAP_WR_ADDR [1], +\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [0]}), + .DIB({N0, N0, N0, \U0/I_NO_D.U_ILA/iDATA [27], \U0/I_NO_D.U_ILA/iDATA [26], \U0/I_NO_D.U_ILA/iDATA [25], \U0/I_NO_D.U_ILA/iDATA [24], +\U0/I_NO_D.U_ILA/iDATA [23], \U0/I_NO_D.U_ILA/iDATA [22], \U0/I_NO_D.U_ILA/iDATA [21], \U0/I_NO_D.U_ILA/iDATA [20], \U0/I_NO_D.U_ILA/iDATA [19], +\U0/I_NO_D.U_ILA/iDATA [18], \U0/I_NO_D.U_ILA/iDATA [17], \U0/I_NO_D.U_ILA/iDATA [16], \U0/I_NO_D.U_ILA/iDATA [15], \U0/I_NO_D.U_ILA/iDATA [14], +\U0/I_NO_D.U_ILA/iDATA [13], \U0/I_NO_D.U_ILA/iDATA [12], \U0/I_NO_D.U_ILA/iDATA [11], \U0/I_NO_D.U_ILA/iDATA [10], \U0/I_NO_D.U_ILA/iDATA [9], +\U0/I_NO_D.U_ILA/iDATA [8], \U0/I_NO_D.U_ILA/iDATA [7], \U0/I_NO_D.U_ILA/iDATA [6], \U0/I_NO_D.U_ILA/iDATA [5], \U0/I_NO_D.U_ILA/iDATA [4], +\U0/I_NO_D.U_ILA/iDATA [3], \U0/I_NO_D.U_ILA/iDATA [2], \U0/I_NO_D.U_ILA/iDATA [1], \U0/I_NO_D.U_ILA/iDATA [0], \U0/I_NO_D.U_ILA/iCAP_TRIGGER_OUT }), + .DOA({\U0/I_NO_D.U_ILA/iDATA_DOUT }), + .DIA({N0}), + .DOB({\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<31>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<30>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<29>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<28>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<27>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<26>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<25>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<24>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<23>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<22>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<21>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<20>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<19>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<18>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<17>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<16>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<15>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<14>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<13>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<12>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<11>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<10>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<9>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<8>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<7>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<6>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<5>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<4>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<3>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<2>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<1>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<0>_UNCONNECTED }), + .DOPB({\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<3>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<2>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<1>_UNCONNECTED , +\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<0>_UNCONNECTED }) + ); + +// synthesis translate_on + +endmodule + +// synthesis translate_off + +`ifndef GLBL +`define GLBL + +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + tri1 p_up_tmp; + tri (weak1, strong0) PLL_LOCKG = p_up_tmp; + + reg GSR_int; + reg GTS_int; + reg PRLD_int; + +//-------- JTAG Globals -------------- + wire JTAG_TDO_GLBL; + wire JTAG_TCK_GLBL; + wire JTAG_TDI_GLBL; + wire JTAG_TMS_GLBL; + wire JTAG_TRST_GLBL; + + reg JTAG_CAPTURE_GLBL; + reg JTAG_RESET_GLBL; + reg JTAG_SHIFT_GLBL; + reg JTAG_UPDATE_GLBL; + reg JTAG_RUNTEST_GLBL; + + reg JTAG_SEL1_GLBL = 0; + reg JTAG_SEL2_GLBL = 0 ; + reg JTAG_SEL3_GLBL = 0; + reg JTAG_SEL4_GLBL = 0; + + reg JTAG_USER_TDO1_GLBL = 1'bz; + reg JTAG_USER_TDO2_GLBL = 1'bz; + reg JTAG_USER_TDO3_GLBL = 1'bz; + reg JTAG_USER_TDO4_GLBL = 1'bz; + + assign (weak1, weak0) GSR = GSR_int; + assign (weak1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + + initial begin + GSR_int = 1'b1; + PRLD_int = 1'b1; + #(ROC_WIDTH) + GSR_int = 1'b0; + PRLD_int = 1'b0; + end + + initial begin + GTS_int = 1'b1; + #(TOC_WIDTH) + GTS_int = 1'b0; + end + +endmodule + +`endif + +// synthesis translate_on diff --git a/usrp2/extramfifo/ila.xco b/usrp2/extramfifo/ila.xco new file mode 100644 index 000000000..c8d4d2f75 --- /dev/null +++ b/usrp2/extramfifo/ila.xco @@ -0,0 +1,130 @@ +############################################################## +# +# Xilinx Core Generator version 12.1 +# Date: Wed Jul 21 18:51:14 2010 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc3s2000 +SET devicefamily = spartan3 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = fg456 +SET removerpms = false +SET simulationfiles = Structural +SET speedgrade = -5 +SET verilogsim = true +SET vhdlsim = false +# END Project Options +# BEGIN Select +SELECT ILA_(ChipScope_Pro_-_Integrated_Logic_Analyzer) family Xilinx,_Inc. 1.03.a +# END Select +# BEGIN Parameters +CSET component_name=ila +CSET counter_width_1=Disabled +CSET counter_width_10=Disabled +CSET counter_width_11=Disabled +CSET counter_width_12=Disabled +CSET counter_width_13=Disabled +CSET counter_width_14=Disabled +CSET counter_width_15=Disabled +CSET counter_width_16=Disabled +CSET counter_width_2=Disabled +CSET counter_width_3=Disabled +CSET counter_width_4=Disabled +CSET counter_width_5=Disabled +CSET counter_width_6=Disabled +CSET counter_width_7=Disabled +CSET counter_width_8=Disabled +CSET counter_width_9=Disabled +CSET data_port_width=0 +CSET data_same_as_trigger=true +CSET enable_storage_qualification=true +CSET enable_trigger_output_port=false +CSET exclude_from_data_storage_1=false +CSET exclude_from_data_storage_10=false +CSET exclude_from_data_storage_11=false +CSET exclude_from_data_storage_12=false +CSET exclude_from_data_storage_13=false +CSET exclude_from_data_storage_14=false +CSET exclude_from_data_storage_15=false +CSET exclude_from_data_storage_16=false +CSET exclude_from_data_storage_2=false +CSET exclude_from_data_storage_3=false +CSET exclude_from_data_storage_4=false +CSET exclude_from_data_storage_5=false +CSET exclude_from_data_storage_6=false +CSET exclude_from_data_storage_7=false +CSET exclude_from_data_storage_8=false +CSET exclude_from_data_storage_9=false +CSET match_type_1=basic +CSET match_type_10=basic +CSET match_type_11=basic +CSET match_type_12=basic +CSET match_type_13=basic +CSET match_type_14=basic +CSET match_type_15=basic +CSET match_type_16=basic +CSET match_type_2=basic +CSET match_type_3=basic +CSET match_type_4=basic +CSET match_type_5=basic +CSET match_type_6=basic +CSET match_type_7=basic +CSET match_type_8=basic +CSET match_type_9=basic +CSET match_units_1=1 +CSET match_units_10=1 +CSET match_units_11=1 +CSET match_units_12=1 +CSET match_units_13=1 +CSET match_units_14=1 +CSET match_units_15=1 +CSET match_units_16=1 +CSET match_units_2=1 +CSET match_units_3=1 +CSET match_units_4=1 +CSET match_units_5=1 +CSET match_units_6=1 +CSET match_units_7=1 +CSET match_units_8=1 +CSET match_units_9=1 +CSET max_sequence_levels=1 +CSET number_of_trigger_ports=4 +CSET sample_data_depth=512 +CSET sample_on=Rising +CSET trigger_port_width_1=8 +CSET trigger_port_width_10=8 +CSET trigger_port_width_11=8 +CSET trigger_port_width_12=8 +CSET trigger_port_width_13=8 +CSET trigger_port_width_14=8 +CSET trigger_port_width_15=8 +CSET trigger_port_width_16=8 +CSET trigger_port_width_2=8 +CSET trigger_port_width_3=8 +CSET trigger_port_width_4=4 +CSET trigger_port_width_5=8 +CSET trigger_port_width_6=8 +CSET trigger_port_width_7=8 +CSET trigger_port_width_8=8 +CSET trigger_port_width_9=8 +CSET use_rpms=true +# END Parameters +GENERATE +# CRC: 66151c7c diff --git a/usrp2/extramfifo/nobl_fifo.v b/usrp2/extramfifo/nobl_fifo.v index 1bd7439ad..7ddb517c7 100644 --- a/usrp2/extramfifo/nobl_fifo.v +++ b/usrp2/extramfifo/nobl_fifo.v @@ -1,3 +1,9 @@ +// Since this FIFO uses a ZBT/NoBL SRAM for its storage which is a since port +// device it can only sustain data throughput at half the RAM clock rate. +// Fair arbitration to ensure this occurs is included in this logic and +// requests for transactions that can not be completed are held off by (re)using the +// "full" and "empty" flags. + module nobl_fifo #(parameter WIDTH=18,DEPTH=19) ( @@ -17,14 +23,14 @@ module nobl_fifo output reg space_avail, output reg [WIDTH-1:0] read_data, input read_strobe, - output reg data_avail + output reg data_avail, + input upstream_full // (Connect to almost full flag upstream) ); reg [DEPTH-1:0] capacity; reg [DEPTH-1:0] wr_pointer; reg [DEPTH-1:0] rd_pointer; wire [DEPTH-1:0] address; - reg supress; reg data_avail_int; // Data available with high latency from ext FIFO flag wire [WIDTH-1:0] data_in; @@ -38,7 +44,7 @@ module nobl_fifo assign read = read_strobe_int && data_avail_int; assign write = write_strobe && space_avail; - // When a read and write collision occur, supress availability flags next cycle + // When a read and write collision occur, supress the availability flags next cycle // and complete write followed by read over 2 cycles. This forces balanced arbitration // and makes for a simple logic design. @@ -231,9 +237,11 @@ module nobl_fifo // Start an external FIFO read as soon as a read of the buffer reg is strobed to minimise refill latency. // If the buffer reg or the pending buffer reg is already empty also pre-emptively start a read. - // However there must be something in ext FIFO to read. - // This means that there can be 2 outstanding reads to the ext FIFO active at any time helping to hide latency. - assign read_strobe_int = (read_strobe & data_avail & ~pending_avail) || (~data_avail && ~pending_avail); + // However there must be something in the main external FIFO to read for this to occur!. + // Pay special attention to upstream devices signalling full due to the number of potential in-flight reads\ that need + // to be stalled and stored somewhere. + // This means that there can be 3 outstanding reads to the ext FIFO active at any time helping to hide latency. + assign read_strobe_int = (read_strobe && data_avail && ~pending_avail && ~upstream_full) || (~data_avail && ~pending_avail && ~upstream_full); // diff --git a/usrp2/extramfifo/nobl_if.v b/usrp2/extramfifo/nobl_if.v index 3143ce5ba..24d463b1e 100644 --- a/usrp2/extramfifo/nobl_if.v +++ b/usrp2/extramfifo/nobl_if.v @@ -1,3 +1,5 @@ +// Tested against an IDT 71v65603s150 in simulation and a Cypress 7C1356C in the real world. + module nobl_if #(parameter WIDTH=18,DEPTH=19) ( @@ -35,9 +37,9 @@ module nobl_if reg [WIDTH-1:0] data_out_pipe3; assign RAM_LDn = 0; + // ZBT/NoBL RAM actually manages its own output enables very well. assign RAM_OEn = 0; - // // Pipeline stage 1 // @@ -129,8 +131,5 @@ module nobl_if else data_in_valid <= 1'b0; end // always @ (posedge clk) - - - - + endmodule // nobl_if diff --git a/usrp2/extramfifo/test_sram_if.v b/usrp2/extramfifo/test_sram_if.v index 9f36b409c..0e74b49eb 100644 --- a/usrp2/extramfifo/test_sram_if.v +++ b/usrp2/extramfifo/test_sram_if.v @@ -1,3 +1,7 @@ +// Instantiate this block at the core level to conduct closed +// loop testing of the AC performance of the USRP2 SRAM interface + + `define WIDTH 18 `define DEPTH 19 diff --git a/usrp2/top/Makefile.common b/usrp2/top/Makefile.common index 1114c731e..6f855a070 100644 --- a/usrp2/top/Makefile.common +++ b/usrp2/top/Makefile.common @@ -34,6 +34,7 @@ synth: $(ISE_FILE) $(ISE_HELPER) "Synthesize - XST" bin: check $(BIN_FILE) + $(ISE_HELPER) "Generate Programming File" mcs: $(MCS_FILE) diff --git a/usrp2/top/u2_rev3/Makefile.udp b/usrp2/top/u2_rev3/Makefile.udp index 9962887d4..99effb038 100644 --- a/usrp2/top/u2_rev3/Makefile.udp +++ b/usrp2/top/u2_rev3/Makefile.udp @@ -24,6 +24,8 @@ include ../../vrt/Makefile.srcs include ../../udp/Makefile.srcs include ../../coregen/Makefile.srcs include ../../extram/Makefile.srcs +include ../../extramfifo/Makefile.srcs + ################################################## # Project Properties diff --git a/usrp2/top/u2_rev3/u2_core_udp.v b/usrp2/top/u2_rev3/u2_core_udp.v index 3b565ba90..b0c8e6d52 100644 --- a/usrp2/top/u2_rev3/u2_core_udp.v +++ b/usrp2/top/u2_rev3/u2_core_udp.v @@ -119,7 +119,9 @@ module u2_core inout [15:0] io_rx, // External RAM - inout [17:0] RAM_D, + input [17:0] RAM_D_pi, + output [17:0] RAM_D_po, + output RAM_D_poe, output [18:0] RAM_A, output RAM_CE1n, output RAM_CENn, @@ -646,10 +648,28 @@ module u2_core wire tx_src_rdy, tx_dst_rdy; wire [31:0] debug_vt; - fifo_cascade #(.WIDTH(36), .SIZE(DSP_TX_FIFOSIZE)) tx_fifo_cascade - (.clk(dsp_clk), .reset(dsp_rst), .clear(0), - .datain({rd1_flags,rd1_dat}), .src_rdy_i(rd1_ready_o), .dst_rdy_o(rd1_ready_i), - .dataout(tx_data), .src_rdy_o(tx_src_rdy), .dst_rdy_i(tx_dst_rdy) ); + ext_fifo #(.EXT_WIDTH(18),.INT_WIDTH(36),.DEPTH(19)) + ext_fifo_i1 + ( + .int_clk(dsp_clk), + .ext_clk(clk_to_mac), + .rst(dsp_rst), + .RAM_D_pi(RAM_D_pi), + .RAM_D_po(RAM_D_po), + .RAM_D_poe(RAM_D_poe), + .RAM_A(RAM_A), + .RAM_WEn(RAM_WEn), + .RAM_CENn(RAM_CENn), + .RAM_LDn(RAM_LDn), + .RAM_OEn(RAM_OEn), + .RAM_CE1n(RAM_CE1n), + .datain({rd1_flags,rd1_dat}), + .src_rdy_i(rd1_ready_o), // WRITE + .dst_rdy_o(rd1_ready_i), // not FULL + .dataout(tx_data), + .src_rdy_o(tx_src_rdy), // not EMPTY + .dst_rdy_i(tx_dst_rdy) + ); vita_tx_chain #(.BASE_CTRL(SR_TX_CTRL), .BASE_DSP(SR_TX_DSP), .REPORT_ERROR(1), .PROT_ENG_FLAGS(1)) @@ -678,6 +698,9 @@ module u2_core .rx_occupied(ser_rx_occ),.rx_full(ser_rx_full),.rx_empty(ser_rx_empty), .serdes_link_up(serdes_link_up),.debug0(debug_serdes0), .debug1(debug_serdes1) ); + assign RAM_CLK = clk_to_mac; + + // ///////////////////////////////////////////////////////////////////////// // VITA Timing diff --git a/usrp2/top/u2_rev3/u2_rev3.ucf b/usrp2/top/u2_rev3/u2_rev3.ucf index 6aa699d2a..82d879446 100644 --- a/usrp2/top/u2_rev3/u2_rev3.ucf +++ b/usrp2/top/u2_rev3/u2_rev3.ucf @@ -74,49 +74,49 @@ NET "MDC" LOC = "V18" ; NET "PHY_INTn" LOC = "AB13" ; NET "PHY_RESETn" LOC = "AA19" ; NET "PHY_CLK" LOC = "V15" ; -NET "RAM_D[0]" LOC = "N20" ; -NET "RAM_D[1]" LOC = "N21" ; -NET "RAM_D[2]" LOC = "N22" ; -NET "RAM_D[3]" LOC = "M17" ; -NET "RAM_D[4]" LOC = "M18" ; -NET "RAM_D[5]" LOC = "M19" ; -NET "RAM_D[6]" LOC = "M20" ; -NET "RAM_D[7]" LOC = "M21" ; -NET "RAM_D[8]" LOC = "M22" ; -NET "RAM_D[9]" LOC = "Y22" ; -NET "RAM_D[10]" LOC = "Y21" ; -NET "RAM_D[11]" LOC = "Y20" ; -NET "RAM_D[12]" LOC = "Y19" ; -NET "RAM_D[13]" LOC = "W22" ; -NET "RAM_D[14]" LOC = "W21" ; -NET "RAM_D[15]" LOC = "W20" ; -NET "RAM_D[16]" LOC = "W19" ; -NET "RAM_D[17]" LOC = "V22" ; -NET "RAM_A[0]" LOC = "U21" ; -NET "RAM_A[1]" LOC = "T19" ; -NET "RAM_A[2]" LOC = "V21" ; -NET "RAM_A[3]" LOC = "V20" ; -NET "RAM_A[4]" LOC = "T20" ; -NET "RAM_A[5]" LOC = "T21" ; -NET "RAM_A[6]" LOC = "T22" ; -NET "RAM_A[7]" LOC = "T18" ; -NET "RAM_A[8]" LOC = "R18" ; -NET "RAM_A[9]" LOC = "P19" ; -NET "RAM_A[10]" LOC = "P21" ; -NET "RAM_A[11]" LOC = "P22" ; -NET "RAM_A[12]" LOC = "N19" ; -NET "RAM_A[13]" LOC = "N17" ; -NET "RAM_A[14]" LOC = "N18" ; -NET "RAM_A[15]" LOC = "T17" ; -NET "RAM_A[16]" LOC = "U19" ; -NET "RAM_A[17]" LOC = "U18" ; -NET "RAM_A[18]" LOC = "V19" ; -NET "RAM_CE1n" LOC = "U20" ; -NET "RAM_CENn" LOC = "P18" ; -NET "RAM_CLK" LOC = "P17" ; -NET "RAM_WEn" LOC = "R22" ; -NET "RAM_OEn" LOC = "R21" ; -NET "RAM_LDn" LOC = "R19" ; +NET "RAM_D[0]" LOC = "N20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[1]" LOC = "N21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[2]" LOC = "N22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[3]" LOC = "M17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[4]" LOC = "M18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[5]" LOC = "M19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[6]" LOC = "M20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[7]" LOC = "M21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[8]" LOC = "M22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[9]" LOC = "Y22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[10]" LOC = "Y21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[11]" LOC = "Y20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[12]" LOC = "Y19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[13]" LOC = "W22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[14]" LOC = "W21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[15]" LOC = "W20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[16]" LOC = "W19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[17]" LOC = "V22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[0]" LOC = "U21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[1]" LOC = "T19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[2]" LOC = "V21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[3]" LOC = "V20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[4]" LOC = "T20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[5]" LOC = "T21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[6]" LOC = "T22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[7]" LOC = "T18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[8]" LOC = "R18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[9]" LOC = "P19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[10]" LOC = "P21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[11]" LOC = "P22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[12]" LOC = "N19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[13]" LOC = "N17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[14]" LOC = "N18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[15]" LOC = "T17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[16]" LOC = "U19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[17]" LOC = "U18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[18]" LOC = "V19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_CE1n" LOC = "U20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_CENn" LOC = "P18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_CLK" LOC = "P17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_WEn" LOC = "R22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_OEn" LOC = "R21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_LDn" LOC = "R19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_enable" LOC = "W11" ; NET "ser_prbsen" LOC = "AA3" ; NET "ser_loopen" LOC = "Y4" ; diff --git a/usrp2/top/u2_rev3/u2_rev3.v b/usrp2/top/u2_rev3/u2_rev3.v index bab5a7706..5e32b368a 100644 --- a/usrp2/top/u2_rev3/u2_rev3.v +++ b/usrp2/top/u2_rev3/u2_rev3.v @@ -345,100 +345,133 @@ module u2_rev3 .S(0) // Synchronous preset input ); */ + + wire [17:0] RAM_D_pi; + wire [17:0] RAM_D_po; + wire RAM_D_poe; + + genvar i; + + // + // Instantiate IO for Bidirectional bus to SRAM + // + + generate + for (i=0;i<18;i=i+1) + begin : gen_RAM_D_IO + + IOBUF #( + .DRIVE(12), + .IOSTANDARD("LVCMOS25"), + .SLEW("FAST") + ) + RAM_D_i ( + .O(RAM_D_pi[i]), + .I(RAM_D_po[i]), + .IO(RAM_D[i]), + .T(RAM_D_poe) + ); + end // block: gen_RAM_D_IO + endgenerate + + + u2_core #(.RAM_SIZE(32768)) - u2_core(.dsp_clk (dsp_clk), - .wb_clk (wb_clk), - .clock_ready (clock_ready), - .clk_to_mac (clk_to_mac), - .pps_in (pps_in), - .leds (leds_int), - .debug (debug[31:0]), - .debug_clk (debug_clk[1:0]), - .exp_pps_in (exp_pps_in), - .exp_pps_out (exp_pps_out), - .GMII_COL (GMII_COL), - .GMII_CRS (GMII_CRS), - .GMII_TXD (GMII_TXD_unreg[7:0]), - .GMII_TX_EN (GMII_TX_EN_unreg), - .GMII_TX_ER (GMII_TX_ER_unreg), - .GMII_GTX_CLK (GMII_GTX_CLK_int), - .GMII_TX_CLK (GMII_TX_CLK), - .GMII_RXD (GMII_RXD[7:0]), - .GMII_RX_CLK (GMII_RX_CLK), - .GMII_RX_DV (GMII_RX_DV), - .GMII_RX_ER (GMII_RX_ER), - .MDIO (MDIO), - .MDC (MDC), - .PHY_INTn (PHY_INTn), - .PHY_RESETn (PHY_RESETn), - .ser_enable (ser_enable), - .ser_prbsen (ser_prbsen), - .ser_loopen (ser_loopen), - .ser_rx_en (ser_rx_en), - .ser_tx_clk (ser_tx_clk_int), - .ser_t (ser_t_unreg[15:0]), - .ser_tklsb (ser_tklsb_unreg), - .ser_tkmsb (ser_tkmsb_unreg), - .ser_rx_clk (ser_rx_clk_buf), - .ser_r (ser_r_int[15:0]), - .ser_rklsb (ser_rklsb_int), - .ser_rkmsb (ser_rkmsb_int), - .cpld_start (cpld_start), - .cpld_mode (cpld_mode), - .cpld_done (cpld_done), - .cpld_din (cpld_din), - .cpld_clk (cpld_clk), - .cpld_detached (cpld_detached), - .cpld_misc (cpld_misc), - .cpld_init_b (cpld_init_b), - .por (~POR), - .config_success (config_success), - .adc_a (adc_a_reg2), - .adc_ovf_a (adc_ovf_a_reg2), - .adc_on_a (adc_on_a), - .adc_oe_a (adc_oe_a), - .adc_b (adc_b_reg2), - .adc_ovf_b (adc_ovf_b_reg2), - .adc_on_b (adc_on_b), - .adc_oe_b (adc_oe_b), - .dac_a (dac_a_int), - .dac_b (dac_b_int), - .scl_pad_i (scl_pad_i), - .scl_pad_o (scl_pad_o), - .scl_pad_oen_o (scl_pad_oen_o), - .sda_pad_i (sda_pad_i), - .sda_pad_o (sda_pad_o), - .sda_pad_oen_o (sda_pad_oen_o), - .clk_en (clk_en[1:0]), - .clk_sel (clk_sel[1:0]), - .clk_func (clk_func), - .clk_status (clk_status), - .sclk (sclk_int), - .mosi (mosi), - .miso (miso), - .sen_clk (sen_clk), - .sen_dac (sen_dac), - .sen_tx_db (sen_tx_db), - .sen_tx_adc (sen_tx_adc), - .sen_tx_dac (sen_tx_dac), - .sen_rx_db (sen_rx_db), - .sen_rx_adc (sen_rx_adc), - .sen_rx_dac (sen_rx_dac), - .io_tx (io_tx[15:0]), - .io_rx (io_rx[15:0]), - .RAM_D (RAM_D), - .RAM_A (RAM_A), - .RAM_CE1n (RAM_CE1n), - .RAM_CENn (RAM_CENn), - .RAM_CLK (RAM_CLK), - .RAM_WEn (RAM_WEn), - .RAM_OEn (RAM_OEn), - .RAM_LDn (RAM_LDn), - .uart_tx_o (uart_tx_o), - .uart_rx_i (uart_rx_i), - .uart_baud_o (), - .sim_mode (1'b0), - .clock_divider (2) - ); + u2_core(.dsp_clk (dsp_clk), + .wb_clk (wb_clk), + .clock_ready (clock_ready), + .clk_to_mac (clk_to_mac), + .pps_in (pps_in), + .leds (leds_int), + .debug (debug[31:0]), + .debug_clk (debug_clk[1:0]), + .exp_pps_in (exp_pps_in), + .exp_pps_out (exp_pps_out), + .GMII_COL (GMII_COL), + .GMII_CRS (GMII_CRS), + .GMII_TXD (GMII_TXD_unreg[7:0]), + .GMII_TX_EN (GMII_TX_EN_unreg), + .GMII_TX_ER (GMII_TX_ER_unreg), + .GMII_GTX_CLK (GMII_GTX_CLK_int), + .GMII_TX_CLK (GMII_TX_CLK), + .GMII_RXD (GMII_RXD[7:0]), + .GMII_RX_CLK (GMII_RX_CLK), + .GMII_RX_DV (GMII_RX_DV), + .GMII_RX_ER (GMII_RX_ER), + .MDIO (MDIO), + .MDC (MDC), + .PHY_INTn (PHY_INTn), + .PHY_RESETn (PHY_RESETn), + .ser_enable (ser_enable), + .ser_prbsen (ser_prbsen), + .ser_loopen (ser_loopen), + .ser_rx_en (ser_rx_en), + .ser_tx_clk (ser_tx_clk_int), + .ser_t (ser_t_unreg[15:0]), + .ser_tklsb (ser_tklsb_unreg), + .ser_tkmsb (ser_tkmsb_unreg), + .ser_rx_clk (ser_rx_clk_buf), + .ser_r (ser_r_int[15:0]), + .ser_rklsb (ser_rklsb_int), + .ser_rkmsb (ser_rkmsb_int), + .cpld_start (cpld_start), + .cpld_mode (cpld_mode), + .cpld_done (cpld_done), + .cpld_din (cpld_din), + .cpld_clk (cpld_clk), + .cpld_detached (cpld_detached), + .cpld_misc (cpld_misc), + .cpld_init_b (cpld_init_b), + .por (~POR), + .config_success (config_success), + .adc_a (adc_a_reg2), + .adc_ovf_a (adc_ovf_a_reg2), + .adc_on_a (adc_on_a), + .adc_oe_a (adc_oe_a), + .adc_b (adc_b_reg2), + .adc_ovf_b (adc_ovf_b_reg2), + .adc_on_b (adc_on_b), + .adc_oe_b (adc_oe_b), + .dac_a (dac_a_int), + .dac_b (dac_b_int), + .scl_pad_i (scl_pad_i), + .scl_pad_o (scl_pad_o), + .scl_pad_oen_o (scl_pad_oen_o), + .sda_pad_i (sda_pad_i), + .sda_pad_o (sda_pad_o), + .sda_pad_oen_o (sda_pad_oen_o), + .clk_en (clk_en[1:0]), + .clk_sel (clk_sel[1:0]), + .clk_func (clk_func), + .clk_status (clk_status), + .sclk (sclk_int), + .mosi (mosi), + .miso (miso), + .sen_clk (sen_clk), + .sen_dac (sen_dac), + .sen_tx_db (sen_tx_db), + .sen_tx_adc (sen_tx_adc), + .sen_tx_dac (sen_tx_dac), + .sen_rx_db (sen_rx_db), + .sen_rx_adc (sen_rx_adc), + .sen_rx_dac (sen_rx_dac), + .io_tx (io_tx[15:0]), + .io_rx (io_rx[15:0]), + .RAM_D_pi (RAM_D_pi), + .RAM_D_po (RAM_D_po), + .RAM_D_poe (RAM_D_poe), + .RAM_A (RAM_A), + .RAM_CE1n (RAM_CE1n), + .RAM_CENn (RAM_CENn), + .RAM_CLK (RAM_CLK), + .RAM_WEn (RAM_WEn), + .RAM_OEn (RAM_OEn), + .RAM_LDn (RAM_LDn), + .uart_tx_o (uart_tx_o), + .uart_rx_i (uart_rx_i), + .uart_baud_o (), + .sim_mode (1'b0), + .clock_divider (2) + ); endmodule // u2_rev2 -- cgit v1.2.3 From 408fac953746c8da3d476f294afdbf578df68754 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Wed, 11 Aug 2010 13:59:06 -0700 Subject: checkin of generated coregen files --- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc | 3 + usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v | 2 +- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.veo | 52 +++++++++++ usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco | 6 +- ...12x36_2clk_18to36_fifo_generator_v4_3_xst_1.lso | 3 + ...k_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt | 102 +++++++++++++++++++++ .../coregen/fifo_xlnx_512x36_2clk_18to36_flist.txt | 8 ++ .../fifo_xlnx_512x36_2clk_18to36_readme.txt | 39 ++++++++ .../coregen/fifo_xlnx_512x36_2clk_18to36_xmdf.tcl | 68 ++++++++++++++ usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ngc | 3 + usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v | 2 +- usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.veo | 51 +++++++++++ usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco | 6 +- ...12x36_2clk_36to18_fifo_generator_v4_3_xst_1.lso | 3 + ...k_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt | 101 ++++++++++++++++++++ .../coregen/fifo_xlnx_512x36_2clk_36to18_flist.txt | 8 ++ .../fifo_xlnx_512x36_2clk_36to18_readme.txt | 39 ++++++++ .../coregen/fifo_xlnx_512x36_2clk_36to18_xmdf.tcl | 68 ++++++++++++++ 18 files changed, 556 insertions(+), 8 deletions(-) create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.veo create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.lso create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_flist.txt create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_readme.txt create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_xmdf.tcl create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ngc create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.veo create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.lso create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_flist.txt create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_readme.txt create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_xmdf.tcl diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc new file mode 100644 index 000000000..376e18c57 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.4e +$4264g<,[o}e~g`n;"2*413&;$>"9 > %0:?*rjx&Uhk"hffn]{hk~X=88s?;Q=cmi\5=rh;?$ekb?40493456712:;<=>?01274>6789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123457<9:1:"=?<;029MKVR\3KOH_O39;2=5`=683CE\XZ5psmd[cskdV~c~h}g<883:73<990BB][[:qplcZ`rdeUdk|h^cpw`ts400;2?;4118JJUSS2yxdkRhzlm]wlwct`Vdnklzj<883:4?<990DYY^ZT;fbpdYdg|d044?>0a855113922?OIX\^1HDO31483:45<9?0DYY^ZT;FLE972294:>6?7:HLSQQ11:025>4=AGZ^X7JFP@>2>586:281CXZ_UU8GKUG;93:5=?5<2;KMTPR=L@H7?<4?>018775833:99?<:4378LQQVR\3ndyy2<5;2=6>5?l29x>=>?ff662(363=808;58JJUSS2MC[N1=50?31?10>5833<>><<592:4:0>0>1?>0:4O>2:4F0>>3:8;0595601;1?<0330<=5<<49;KMTPR=IMNYN1650?3f?<?=AGZ^X7~}of]fiur~W}byi~fParqfvq:?29499675IORVP?vugnUna}zv_ujqavnXflmjxh27:1<2f>?=G\^[YY4}d^fbpdYdg|d054?>99B@ATF49437LJKR@>2:==FLMXJ0?07;@FGVD:4611JHI\N<5<;?DBCZH6>255NDEPB838?3HNO^L28>99B@ATF414j7LJKR@>:>58?3HNO^L26>99B@ATE49437LJKRC>2:==FLMXI0?07;@FGVG:4611JHI\M<5<;?DBCZK6>255NDEPA838?3HNO^O28>`9B@ATE410;255NDEPA8=8>3HYRBNQ]EF38F6=E];20NX]PIODL5>E33JK3M?5LE008GMCDCVFBOH@\E^VZT@40OAEN4:AOOG53:2=CAH6:<394DHC?54803MCJ0<<17:FJE9746>1OEL2>4?;8@LG;9<0;2:5KI@>21;069GMG:6;7=0HDL315<4?AOE48?5;6JFB=35:2=CAK6:;394DH@?5=803MCI0<716:FJF979?2NBN169GMG:597=0HDL323<4?AOE4;95;6JFB=07:2=CAK699394DH@?63803MCI0?917:FJF94?6>1OEO2=9?48@LD;:7=0HDL331<:?AOE4:;1<394DH@?74813MCI0>09;EKA81813MCI0809;EKA83813MCI0:09;EKA8=813MCI0408;EKSE96912NB\L2>:1<4?AOWI5;5;6JFPC>3:2=CAYH7=394DHRA878>3MC[N1=50?58@LVE4:4=7IAN<1<4?AIF48:5;6J@A=32:2=CGH6:>394DNC?56803MEJ0<:19:FLE972294<7IAN<07=2>BHI5;5:6J@A=0=2>BHI595:6J@A=6=2>BHI5?5:6J@A=4=2>BHI5=5:6J@A=:=2>BHI535:6J@B=2=3>BHJ5;;2:5KOC>25;169GKG:6=7=0HBL317<4?AIE48=5;6J@B=3;:2=CGK6:5384DN@?5;1=08;EMA8779?2NDN1<=>69GKG:5;7=0HBL325<4?AIE4;?5;6J@B=05:2=CGK69;394DN@?6=803MEI0?716:FLF949?2NDN1=?>89GKG:493:5;6J@B=12:3=CGK682;5KOC>7:3=CGK6>2;5KOC>5:3=CGK6<2;5KOC>;:3=CGK622:5KOQC?4;?69GKUG;97=0HB^M<1<4?AIWJ5;5;6J@PC>1:<=CGYH7?7>17:FLTG:4681N?6KAA29FJG26H72:DG7>@CK=1MHNK<;GFS0>@CXL?0Jlb|e09D7>AIL;1B37D@FTQ]31==NF@^[S=87;HLJPUY7?01BBDZ\T@VF3>OIA]U;<:5FNHV\441M7:KMMQY7K>1BBDZP0E58MKOSW9O<7D@FT^2E3>OIA]U:<:5FNHV\541469JJLRX9<=0ECG[_044?LHN\V;<;6GAIU]2<2=NF@^T=494IOKW[4G03@DBXR?M7:KMMQY6K>1BBDZP1E58MKOSW8O<7D@FT^3E3>OIA]U9<:5FNHV\641494IOKW[7G03@DBXR1BBDZP2E58MKOSW;O<7D@FT^0E3>OIA]U8<:5FNHV\741<8;HLJPZ54?2CEEYQ<469JJLRX;<=0ECG[_244?LHN\V9<;6GAIU]0<2=NF@^T?494IOKW[6G03@DBXR=M7:KMMQY4K>1BBDZP3E58MKOSW:O<7D@FT^1E2>OIA]UJ:6GAIU]A7>OHJ;1GE?5CO79OKDBBL>1GCJGLAM68HPR6<2F^X?84LTV1[I2JR\=<0@XZ;_M78IVAHF<1FYUMVc:ObnjtQm{ybccm4MhllvScu{`ee>6@>3:L241=I99;?7C??259M55533G;;895A1177?K77>=1E==9;;O33<1=I99387C?>4:L25521368J474<2D:=9:4N0360>H69?>0B259M57633G;9=95A1307?K75;=1E=?:;;O3111=I9;33G;95>5A1268J457<2D:?<:4N0110>H6;:>0B<=;4:L27023668J45?;2D:8>5A1418J4043G;829M5<53:L166=I::90B9:<;O657>H30:1E9=<4N708J24H?<:1E4;=4N951?K?43G3;j6@M_CWPTLHXX[E[_:5AEUULVN2PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^pg[uhszVmhSua}0122[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYulVzexQhc^zlv567:VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;<>Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?016\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4562W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;:R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?06]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[rtXxg~ySjmPxnp3456XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^e`[}iu89::S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?2^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2346YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt789>T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=>:_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1232ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678>UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=6PRdqvhq7592_;#j|i.sd,cf~)keas#jPpovq[goi4949=6[?/fpe*w`(ojr%oaew/sf\tkruWkce0<0=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<3<15>S7'nxm"h gbz-gim'{nT|cz}_ckm868592_;#j|i.sd,cf~)keas#jPpovq[goi4=49=6[?/fpe*w`(ojr%oaew/sf\tkruWkce080=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<7<15>S7'nxm"h gbz-gim'{nT|cz}_ckm828592_;#j|i.sd,cf~)keas#jPpovq[goi4149<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS= gsd-vc)`kq$h`fv re]sjqtXj`dT9?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ9219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^514>S7'nxm"h gbz-gim'{nT|cz}_ckm[=413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=>=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45679;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0004?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789;:>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123671<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?3305?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789>9;6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0127570<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<8<8;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34536:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?63a8Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678?;:S^Y?2b9V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567>8;T_Z?=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq4561:;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0604?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789=:>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmh0=0=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm31?03?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb>1:76<]9%l~k }f.e`|+ekcq%yhR~ats]dg959:91^<"i}f/pe+be&jf`t"|k_qlwvZad4=49<6[?/fpe*w`(ojr%oaew/sf\tkruWni793328Q5)`zo$yj"ilx/aoo})ulVzexQhc=5=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`8=86n2_;#j|i.sd,cf~)keas#jPpovq[beX88l0Y=!hrg,qb*adp'iggu!}d^rmpwY`kV;:j6[?/fpe*w`(ojr%oaew/sf\tkruWniT>f:W3+bta&{l$knv!cmi{+wbXxg~ySjmP40d8Q5)`zo$yj"ilx/aoo})ulVzexQhc^72b>S7'nxm"h gbz-gim'{nT|cz}_fa\24`<]9%l~k }f.e`|+ekcq%yhR~ats]dgZ16n2_;#j|i.sd,cf~)keas#jPpovq[beX0;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi30?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4849:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=0=63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn682?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?0;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol080=6:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfc909:?1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyij28>348Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;078>7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_106?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`W88>7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_306?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`W:8>7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_506?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`W<8>7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_706?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`W>8>7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_90:?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;7<3<6;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7;97827X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3?6;4>3\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{olSi?33?0:?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;783<6;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7;=7827X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3?2;4>3\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{olSi?37?0:?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;743<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X8;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]26==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R<=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W:837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\07><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh?1378Q5)`zo$yj"ilx/aoo})ulVzexQhc^zlv567:;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVrd~=>?3378Q5)`zo$yj"ilx/aoo})ulVzexQhc^zlv567<;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVrd~=>?5378Q5)`zo$yj"ilx/aoo})ulVzexQhc^zlv567>;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVrd~=>?7338Q5)`zo$yj"ilx/aoo})pzVzexQmio>2:77<]9%l~k }f.e`|+ekcq%|~R~ats]amk:56;;0Y=!hrg,qb*adp'iggu!xr^rmpwYeag682??4U1-dvc(un&mht#mcky-tvZvi|{Uiec2;>338Q5)`zo$yj"ilx/aoo})pzVzexQmio>6:77<]9%l~k }f.e`|+ekcq%|~R~ats]amk:16;;0Y=!hrg,qb*adp'iggu!xr^rmpwYeag6<2??4U1-dvc(un&mht#mcky-tvZvi|{Uiec27>338Q5)`zo$yj"ilx/aoo})pzVzexQmio>::76<]9%l~k }f.e`|+ekcq%|~R~ats]amkY6:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV89<6[?/fpe*w`(ojr%oaew/vp\tkruWkceS>8;7X> gsd-vc)`kq$h`fv ws]sjqtXj`dT4?>4U1-dvc(un&mht#mcky-tvZvi|{UiecQ6279V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv5678;=0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?01312>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89::>:5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r12354413\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=<=7:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq45659;<0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?0204?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt78999>;5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r123071<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<9?=6:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq4562:>1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?5005?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt789<9o6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012554YT_98h7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01425ZUP9;=0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?07012>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:<>:5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r12334473\:$kh!rg-dg}(ddbr${Qnup\cf:76;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k5;5>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh0?0=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm33?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>7:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg939:91^<"i}f/pe+be&jf`t"y}_qlwvZad4?49<6[?/fpe*w`(ojr%oaew/vp\tkruWni7;3328Q5)`zo$yj"ilx/aoo})pzVzexQhc=;=5c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[57a3\:$kh!rg-dg}(ddbr${Qnup\cfY69o1^<"i}f/pe+be&jf`t"y}_qlwvZadW;;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU8=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS9?i;T2,cw`)zo%lou lljz,swYwf}xTknQ:1g9V4*aun'xm#jmw.bnh|*quWyd~Ril_73e?P6(o{l%~k!hcy,`hn~({U{by|Pgb]45c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[=7a3\:$kh!rg-dg}(ddbr${Qnup\cfY>:?1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyij2?>348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;978=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<3<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo595>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>7:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm793<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8385>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk191279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:?6;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi39?06?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`W98>7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_006?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`W;8>7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_206?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`W=8>7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_406?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`W?8>7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_606?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`W18>7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_80:?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;7=3<6;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7;:7827X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3?7;4>3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?34?0:?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;793<6;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7;>7827X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3?3;4>3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?38?0:?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;753<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X9;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]16==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R==8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W=837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\17><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh?1378Q5)`zo$yj"ilx/aoo})pzVzexQhc^zlv567:;?0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVrd~=>?3378Q5)`zo$yj"ilx/aoo})pzVzexQhc^zlv567<;?0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVrd~=>?5378Q5)`zo$yj"ilx/aoo})pzVzexQhc^zlv567>;?0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVrd~=>?7378Q5)`zo$yj"ilx/aoo})pzVzexQhc^zlv5670;k0Y=!hrg,qb*ak8'xo#j|>.sdtbq)UIDUYHRKA_GUEP44d3\:$kh!rg-dh5(ul&my=#|iwgv,VDKXZMUNBRHXFU3\57?<]9%l~k }f.eo4+tc'nx:"hxfu-QEHYUMNE^XRKA1218Q5)`zo$yj"ic0/pg+bt6&{l|jy!lusp\br`sWz~jxhQISL]EBa74>2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[CUJWOLo= Ga399V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}kiRH\M^DE`4+Nf8;8?6[?/fpe*w`(oe:%~i!hr0,qbr`s'jy~Rhxfu]ppdrbWOYFSKHk2248Q5)`zo$yj"ic0/pg+bt6&{l|jy!lusp\br`sWz~jxhQISL]EBa4*Ag937X> gsd-vc)`d9$yh"i}1/pescr(k|xySkyit^qweqcXNZGTJKj=-Hl257><]9%l~k }f.eo4+tc'nx:"hxfu-fiur~Wo}mxRhm269V4*aun'xm#jb?.sf,cw7)zo}mx"kbpu{\br`sW`8n7X> gsd-vc)`d9$yh"i}1/pescr(mdzuRhxfu]j[jt789:9j6[?/fpe*w`(oe:%~i!hr0,qbr`s'lg{xtQiwgv\mZiu89:;=?74U1-dvc(un&mg<#|k/fpbw+tt|z%h<"mnrs{maq:76;30Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&ij~waeu>2:7?<]9%l~k }f.eo4+tc'nxj#||tr-`4*efz{seiy2=>3;8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.abvwim}682?h4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"ibuy,di^6Z&ng:"`?=f:W3+bta&{l$ka>!re-dvdu)zz~x#n> glw{*bk\9T$la~ bs3d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.enq}(`eR8V"jc|.lq1b>S7'nxm"h gm2-va)`zhy%~~z|/b2,chs&ngP?P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`4*aj}q$laV:R.fop*hu5;2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(~86;2?=4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"x><0<17>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4:56;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&|:0>0=3:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0>7:7d<]9%l~k }f.eo4+tc'nxj#||tr-`4*p6W9Ujbi>?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4Y6Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.t2[7Yffm:;<=?=b:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0]0[dhc89:;=?l4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"x>_5]mkq6789;956[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$ol|}yogw858512_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(khxyuck{<0<1=>S7'nxm"h gm2-va)`zhy%~~z|/b3,gdtuqgo0?0=9:W3+bta&{l$ka>!re-dvdu)zz~x#n? c`pq}kcs4:49j6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$k`{w.foX4X(`e8$f=?h4U1-dvc(un&mg<#|k/fpbw+tt|z%h="ibuy,di^7Z&ngx"`}=f:W3+bta&{l$ka>!re-dvdu)zz~x#n? glw{*bk\:T$la~ bs3d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.enq}(`eR9V"jc|.lq1b>S7'nxm"h gm2-va)`zhy%~~z|/b3,chs&ngP8P hmr,nw75<]9%l~k }f.eo4+tc'nxj#||tr-`5*p64949?6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$z<2>>318Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t28785;2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~8682?=4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x><5<1f>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4Y7Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t2[4Yffm:;<=?=b:W3+bta&{l$ka>!re-dvdu)zz~x#n? v0]1[dhc89:;=?l4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x>_2]bja6789;9n6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$z=5Z0.eqb+ta'nf;"j gscp*wus{&ida}?=9:W3+bta&{l$ka>!re-dvdu)zz~x#ob_dosp|YajVc8<6[?/fpe*w`(oe:%~i!hr`q-vvrt'{kfShctx]efZoXg{:;<==>;T2,cw`)zo%l`= }d.eqev(u{}y$~lcPelrw}Z`eW`Ud~=>?0000?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphs:=1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by?=4:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmp7433\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d??:4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov761=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}?986[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at707?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphs?;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz7289V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5:5>n5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}969W{~956[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az8485k2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<0<\vq4>3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw32?0`?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7>3Q}t3;8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp682?m4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:46Vx>45Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}929:j1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=6=[wr512_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<4<1g>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir080Pru0:?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7:37Uyx?74U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:06;i0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>4:Zts:h1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQwos>3:7g<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|31?0b?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWqey0?0=a:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZ~hz595>l5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]{kw:36;k0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?1;4f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSua}<7<1e>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1912`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{632?j4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;07Uyxf:W3+bta&{l$ka>!re-qtkru'je~by2>>0d8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{<3<2b>S7'nxm"h gm2-va)uxg~y#naznu>0:4`<]9%l~k }f.eo4+tc'{zex!lotlw8186n2_;#j|i.sd,ci6)zm%y|cz}/bmvjq:268l0Y=!hrg,qb*ak8'xo#~ats-`kphs4?4:j6[?/fpe*w`(oe:%~i!}povq+firf}6<2e:W3+bta&{l$ka>!re-qtkru'je~byQ?1d9V4*aun'xm#jb?.sf,vuhsz&idyczP10g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_33f?P6(o{l%~k!hl1,q`*twf}x$ob{at^12a>S7'nxm"h gm2-va)uxg~y#naznu]75`=R8&myj#|i/fn3*wb(zyd~"m`uov\14c<]9%l~k }f.eo4+tc'{zex!lotlw[37b3\:$kh!rg-dh5(ul&x{by| cnwmpZ16m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY?:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl86;2?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?31?01?P6(o{l%~k!hl1,q`*twf}x$ob{at^f28785:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc9595>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<2;>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?1;453\:$kh!rg-dh5(ul&x{by| cnwmpZb64?49>6[?/fpe*w`(oe:%~i!}povq+firf}Uo=191239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>;:77<]9%l~k }f.eo4+tc'{zex!lotlw[a7X8;;0Y=!hrg,qb*ak8'xo#~ats-`kphsWm;T=??4U1-dvc(un&mg<#|k/srmpw)dg|dSi?P2338Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3\777<]9%l~k }f.eo4+tc'{zex!lotlw[a7X<;;0Y=!hrg,qb*ak8'xo#~ats-`kphsWm;T9??4U1-dvc(un&mg<#|k/srmpw)dg|dSi?P6338Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3\377<]9%l~k }f.eo4+tc'{zex!lotlw[a7X0;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>3:7?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2>>3;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}692?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:46;l0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&mfyu hmZ2^*bk6&d;9j6[?/fpe*w`(oe:%{!hw`q-svrt'j;$k`{w.foX5X(`ez$f?h4U1-dvc(un&mg<#y}/fubw+qt|z%h="ibuy,di^4Z&ngx"`}=f:W3+bta&{l$ka>!ws-dsdu)z~x#n? glw{*bk\;T$la~ bs3d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(`eR>V"jc|.lq17>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4:76;90Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:0<0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0>1:75<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p64:49?6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z<2;>3`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t2[5Yffm:;<=?=b:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0]2[dhc89:;=?l4U1-dvc(un&mg<#y}/fubw+qt|z%h="x>_3]bja6789;9n6[?/fpe*w`(oe:%{!hw`q-svrt'j;$zS7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0<0=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs4;4956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw8685n2_;#j|i.sd,ci6){%l{l}!wrvp+f4(ods"jcT0\,di4(j9;l0Y=!hrg,qb*ak8'}y#jyns/uppv)d:&mfyu hmZ3^*bkt&dy9j6[?/fpe*w`(oe:%{!hw`q-svrt'j8$k`{w.foX6X(`ez$f?h4U1-dvc(un&mg<#y}/fubw+qt|z%h>"ibuy,di^5Z&ngx"`}=f:W3+bta&{l$ka>!ws-dsdu)z~x#n< glw{*bk\"x><3<17>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4:46;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:090=b:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0]3[dhc89:;=?l4U1-dvc(un&mg<#y}/fubw+qt|z%h>"x>_0]bja6789;9n6[?/fpe*w`(oe:%{!hw`q-svrt'j8$zQnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~8U?Sl`k0123576<]9%l~k }f.eo4+qu'n}j#y|tr-`khv6:91^<"i}f/pe+bj7&~x$kzo|.vqww*ehey89<6[?/fpe*w`(oe:%{!hw`q-svrt'jef|>3 gsd-vc)`d9$|~"ixar,twqu(ohl%o>!hmtz-ch]5U'mf#c|329V4*aun'xm#jb?.vp,crgt&~y"inf/a0+bkrp'mfW>S!glq-iv543\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%laxv!glY7Y+aj{'gx>:5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m gsd-vc)`d9$|~"ixar,twqu(ohl%o>!y1=1=62=R8&myj#|i/fn3*rt(o~kx"z}{s.ebb+e4';783>2g9V4*aun'xm#jb?.vp,crgt&~y"inf/a0+s7X9Vkeh=>?000e?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q9V8Tmcj?01226c=R8&myj#|i/fn3*rt(o~kx"z}{s.ebb+e4';T?Road123444a3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%}=R:Paof34566:j1^<"i}f/pe+bj7&~x$kzo|.vqww*tfeVkgab}{_gwohZo4<2_;#j|i.sd,ci6){%l{l}!wrvp+wgjWhffc~zPftno[lYj}q:;<==:;T2,cw`)zo%l`= xr.etev(p{}y$~lcPamolwqYa}efTeRczx12344533\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXiegdyQiumn\mZhh|9:;=>;4U1-dvc(un&mg<#y}/fubw+qt|z%ym`QnllmppZ`rdeUbSca{012257><]9%l~k }f.eo4+qu'n}j#y|tr-qehYa}efTjoQf249V4*aun'xm#jb?.vp,crgt&~y"|nm^dvhiYn:j1^<"i}f/pe+bj7&~x$kzo|.vqww*tfeVl~`aQf_np34565l2_;#j|i.sd,ci6){%l{l}!wrvp+wgjWog`RgPos234575<2_;#j|i.sd,ci6){%l{l}!wrvp+rtXzz~Th0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz;259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq35<2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex;<;;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw372<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~3>95Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu;1=>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir0=0=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~494T~y<6;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;978h7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?5;Yu|;30Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPcx>1:7e<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2=>^pw6<=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1=12b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq595Sz=9:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4=49o6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az818Xz}827X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?1;4d3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw35?]qp7?<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot29>3a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6=2R|{289V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5=5>n5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}919W{~956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8=85k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<9<\vq4f3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSua}<1<1e>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vrd~1?12`9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{692?o4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\|jt;;78j7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8185i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=7=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc29>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7;3::Zts9o1^<"i}f/pe+bj7&~x${}`{r.alqkr;87;m7X> gsd-vc)`d9$|~"ynup,gjsi|5;5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~7>3?i;T2,cw`)zo%l`= xr.usjqt(kfex1=11g9V4*aun'xm#jb?.vp,suhsz&idycz34?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=7=5c=R8&myj#|i/fn3*rt(yd~"m`uov?2;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9199o1^<"i}f/pe+bj7&~x${}`{r.alqkr;07;m7X> gsd-vc)`d9$|~"ynup,gjsi|535=h5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T<e:W3+bta&{l$ka>!ws-ttkru'je~byQ<1d9V4*aun'xm#jb?.vp,suhsz&idyczP40g8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_43f?P6(o{l%~k!hl1,tv*qwf}x$ob{at^42a>S7'nxm"h gm2-sw)pxg~y#naznu]45`=R8&myj#|i/fn3*rt(yd~"m`uov\<4c<]9%l~k }f.eo4+qu'~zex!lotlw[<453\:$kh!rg-dh5(pz&}{by| cnwmpZb64949>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=1?1239V4*aun'xm#jb?.vp,suhsz&idyczPd0>1:74<]9%l~k }f.eo4+qu'~zex!lotlw[a7;;7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:090=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=7=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:16;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7;3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><9<16>S7'nxm"h gm2-sw)pxg~y#naznu]g59?9:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl8U;><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th209V4*aun'xm#jb?.vp,suhsz&idyczPd0]164=R8&myj#|i/fn3*rt(yd~"m`uov\`4Y4:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl8U?><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th3:74<]9%l~k }f.eo4+qu'~zex!lotlw[a4;97897X> gsd-vc)`d9$|~"ynup,gjsi|Vn90?0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk2=1=67=R8&myj#|i/fn3*rt(yd~"m`uov\`7:36;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm8793<=;T2,cw`)zo%l`= xr.usjqt(kfexRj=<7<16>S7'nxm"h gm2-sw)pxg~y#naznu]g6919:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;632?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<39?02?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[5463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W88:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S?<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_202?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[1463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W<8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S;<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_602?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[=463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W0897X> gsd-vc)`d9$|~"ynup,gjsi|Vn80=0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk3=3=67=R8&myj#|i/fn3*rt(yd~"m`uov\`6:56;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm97?3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj<<5<16>S7'nxm"h gm2-sw)pxg~y#naznu]g7939:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl:6=2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=37?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f08=85:2_;#j|i.sd,ci6){%||cz}/bmvjqYc;535><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q?209V4*aun'xm#jb?.vp,suhsz&idyczPd2]264=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y5:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U8><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q;209V4*aun'xm#jb?.vp,suhsz&idyczPd2]664=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y1:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U<><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q7209V4*aun'xm#jb?.vp,suhsz&idyczPd2]:53=R8&myj#|i/lgn+air|VcT<<84U1-dvc(un&gna"j`uu]j[4703\:$kh!rg-nah)cg|~TeR??169V4*aun'xm#`kb/emvpZoX98;<7X> gsd-vc)jmd%ocxzPi^3152=R8&myj#|i/lgn+air|VcT=>?8;T2,cw`)zo%fi`!kotv\mZ739>1^<"i}f/pe+hcj'me~xRgP1434?P6(o{l%~k!bel-gkprXaV;==:5Z0.eqb+ta'dof#iazt^k\52703\:$kh!rg-nah)cg|~TeR?7169V4*aun'xm#`kb/emvpZoX90;=7X> gsd-vc)jmd%ocxzPi^023>S7'nxm"h mdo,`jssW`U9<<94U1-dvc(un&gna"j`uu]j[776?2_;#j|i.sd,i`k(lfSdQ=2058Q5)`zo$yj"cjm.flqqYnW;9:;6[?/fpe*w`(elg$hb{{_h]1041<]9%l~k }f.ofi*bh}}UbS?;>7:W3+bta&{l$ahc dnww[lY5>8=0Y=!hrg,qb*kbe&ndyyQf_3523>S7'nxm"h mdo,`jssW`U94<94U1-dvc(un&gna"j`uu]j[7?6>2_;#j|i.sd,i`k(lfSdQ<169V4*aun'xm#`kb/emvpZoX;9;<7X> gsd-vc)jmd%ocxzPi^1252=R8&myj#|i/lgn+air|VcT???8;T2,cw`)zo%fi`!kotv\mZ549>1^<"i}f/pe+hcj'me~xRgP3534?P6(o{l%~k!bel-gkprXaV9>=;5Z0.eqb+ta'dof#iazt^k\040<]9%l~k }f.ofi*bh}}UbS8?9;T2,cw`)zo%fi`!kotv\mZ06>2_;#j|i.sd,i`k(lfSdQ8179V4*aun'xm#`kb/emvpZoX08<0Y=!hrg,qb*kbe&ndyyQf_83:?P6(o{l%~k!bel-gkprXelg7<3?n;T2,cw`)zo%fi`!kotv\i`k;994:m6[?/fpe*w`(elg$hb{{_lgn84799h1^<"i}f/pe+hcj'me~xRcjm=31:4g<]9%l~k }f.ofi*bh}}Ufi`2>3?3b?P6(o{l%~k!bel-gkprXelg7=90>a:W3+bta&{l$ahc dnww[hcj48?5=l5Z0.eqb+ta'dof#iazt^ofi97168k0Y=!hrg,qb*kbe&ndyyQbel>23;7f3\:$kh!rg-nah)cg|~Tahc319<2e>S7'nxm"h mdo,`jssWdof0<71189V4*aun'xm#`kb/emvpZkbe5;5=l5Z0.eqb+ta'dof#iazt^ofi94768k0Y=!hrg,qb*kbe&ndyyQbel>15;7f3\:$kh!rg-nah)cg|~Tahc323<2e>S7'nxm"h mdo,`jssWdof0?=11`9V4*aun'xm#`kb/emvpZkbe58?2 gsd-vc)jmd%ocxzPmdo?6386i2_;#j|i.sd,i`k(lfS`kb<35=5d=R8&myj#|i/lgn+air|Vgna1<7>0c8Q5)`zo$yj"cjm.flqqYjmd6953?6;T2,cw`)zo%fi`!kotv\i`k;:7;j7X> gsd-vc)jmd%ocxzPmdo?7586i2_;#j|i.sd,i`k(lfS`kb<23=5d=R8&myj#|i/lgn+air|Vgna1==>0c8Q5)`zo$yj"cjm.flqqYjmd68?3?n;T2,cw`)zo%fi`!kotv\i`k;;=4:m6[?/fpe*w`(elg$hb{{_lgn8639901^<"i}f/pe+hcj'me~xRcjm=1=5<=R8&myj#|i/lgn+air|Vgna1:1189V4*aun'xm#`kb/emvpZkbe5?5=45Z0.eqb+ta'dof#iazt^ofi909901^<"i}f/pe+hcj'me~xRcjm=5=5<=R8&myj#|i/lgn+air|Vgna161189V4*aun'xm#`kb/emvpZkbe535:h5Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(~hfbh#m|ts-qehjhgyQ;Q#|nm/p,r7Yig`dbx#|nm.fs5=~4>'xja gsd-vc)uidUyhRka169V4*aun'xm#ob_sgdkprXmg;87X> gsd-vc)uidU|~Rka1e9V4*aun'xm#}{bmi,vaYu{}Ujkh219V4*aun'xm#}{bmi,vaYu{}Ujkh_e314>S7'nxm"h rrvahn)ulVxxxRo|rde\`77d3\:$kh!rg-qwqdkc&xoS}{_bmnf4b<]9%l~k }f.pppgjl'{nT~~zPcnoa54c<]9%l~k }f.pppgjl'{nT~~zPrde?4;7b3\:$kh!rg-qwqdkc&xoS}{_sgd8486m2_;#j|i.sd,vvredb%yhR||t^pfc9499m1^<"i}f/pe+wusjea$~iQ}su]qabY79m1^<"i}f/pe+wusjea$~iQ}su]qabY69m1^<"i}f/pe+wusjea$~iQ}su]qabY59m1^<"i}f/pe+wusjea${Q}su]bwwc`:91^<"i}f/pe+wusjea${Q}su]bwwc`Wm;9<6[?/fpe*w`(zz~i`f!xr^pppZgtzlmTh??l;T2,cw`)zo%yylck.uq[wusWjefnd:W3+bta&{l$~~zmlj-tvZtt|VxnkR>>d:W3+bta&{l$~~zmlj-tvZtt|VxnkR?n;TQFVZGKAHYh7X]JR^TJWLDKM:1]ON74VHGT[Q_WM:1\IL=4WD@a?RTN\LUME_][c:UQMQCXEFNNSLm4WSKWAZKHLLUI=i5WIMKM\(^CJ):%=-][UC"3*4&F[JCB96V@RB[5?]USD@H<7U][_FLG3>^T\V\HOo5W_BMQAZOINF<0TilPIed8\anXX{cfZh||inl24>^ceVGjfb|Yesqjkk773QnfS@gaosTfvvohfj1j``a|t^gntqe3hffc~zPftno2>dfkb{h6lncjws[hguclx87nbdd:fbpdYdg|d$='k;ecweZeh}g~#=$j4d`vb[firf}"9%i5kauc\gjsi|!9"h6jnt`]`kphs =#o7io{a^alqkr/= n0hlzn_bmvjq.1!m1omyoPcnwmp-1.l2njxlQlotlw,=/c3mkmRm`uov+=,`:>5803mhbxh|}6:fjj-6.>2nbb%?&7:fjj-77!>1oec&>1(58`lh/9;#<7iga(01*3>bnf!;?%:5kio*21,12nbb%<&6:fjj-5.>2nbb%:&6:fjj-3.>2nbb%8&6:fjj-1.>2nbb%6&6:fjj-?.>2nbb1>17:fjj9776>1oec2>1?58`lh;9;4<7iga<01=3>bnf5;?2:5kio>21;14=7iga<9<5?aoi404<7iazt)2*3>bh}}":%55kotv+55/?3me~x%?>)99gkpr/9;#37iazt)30-==cg|~#=9'7;emvp-72!11ocxz'17+;?air|!;<%55kotv+5=/?3me~x%?6)69gkpr/: 20hb{{(32*<>bh}}"9=$64dnww,74.02ndyy&=3(:8`jss ;>"46j`uu*11,>bh}}"95$94dnww,6/?3me~x%=?)99gkpr/;8#37iazt)11-==cg|~#?>'7;emvp-53!11ocxz'34+4?air|!>";6j`uu*6-2=cg|~#:$94dnww,2/03me~x%6&7:flqq.>!>1ocxz30?:8`jss48:546j`uu>25;>bh}}6:9364dnww840902ndyy2>7?:8`jss482546j`uu>2=;199gkpr;:<437iazt=05:==cg|~7>:07;emvp94?611ocxz328<4?air|58546j`uu>04;>?18:flqq:4:720hb{{<21=<>bh}}6883o4dnww863=8720hb{{<27=3>bh}}682:5kotv?0;169gkpr;07=0hb{{<8<;?`bnn;dlh85jmqvz77=aaoeTkh`jr`vlvZp3W:&+Tdbfny"@KWC'Oldn~lz`r!33*4(7;8i0jdh`_ynm|Z36:q9=S?mck^3;pj51;h1mekaPxml{[075p:nbd_0:wk60+n`ldSjkaescwkwYqV8h`fQ>8um02)`nnfUlick}aumq[s2X;%qhSeo|_hlw[fjl59&hSeo|_rppp86+kVxoSk|jq<3/gZnf{VxoSio{a^alqkr:8%iThd`Pwhfwl87?$jUcm~Qxr^fbpdYdg|d1="l_gwohZ`kinyT~~zPv`n>4)eXadzgi`kat`vjkkYsqyo6>!mPurg\ahdblmooSkh=1.`[rtXn{oz1<"l_tqf[air|Vxxx0?#c^wm``tadf}T`by20-a\lduXgoyjaax=1.`[utbdfkoSao{eoaz95*dWme~xRyfduj>73*dWdylccQyam?2(fYulVnn|yf2500/gZnf{Vehh|ilnu>4)eX`hyTmac`su]eqij:9%iTdl}Prrv>5)eXlh~jSnaznu]tmaro58:'oRfns^uq[del59&hSx}j_da`95*dWjefab`Pcmm`o86+kV}ySlmd_mmt95*dW{nT|cz}_vkgpm;>$jU~hQiwgv\`drfWje~by3?,b]kevYfddexxRkbpu{>4)eXzmUomyoPcnwmpZqnl}b65!mPowgqbiipWee|1="l_vp\tkruW~coxe3>0-a\twi`Wlg{xtQ{yqg>4)eX{UomyoPcnwmpZqnl}b6=="l_qpfhjgcW{ol0?#c^flqqYu{}U}ma3?,b]kevYci}kTob{at<2/gZvugnUmyabPtipfwmYimnkiRxnl<3367*dW~xThh~{h<3361*dWyxdkRkbpu{\pmtb{aUeijo{e^tbh83+kVzycjQjmqvz[qnumzbTm~}jru]uei;3$jUcm~Qyamkg95*dWyxdkRhzlm]wlwct`Vkxh|{_wco9465;%ida}aaeov\jdkb5ocmcRvcny]657~4>V8h`fQ>8um02)eX~hfbhRb`w<2/gZvuadUmekaPtxrf94m91&hS}|`g^dvhiYsqyo6vugnUna}zv_ujqavn/< ;?7}|`g^gntqX|axne&:)068twi`Wlg{xtQ{hsgpl-0.9=1{~biPelrw}Zrozlyc$:'>4:rqkbYbey~rSyf}erj+<,713yxdkRkbpu{\pmtb{a636=0>b:rqkbYbey~rSyf}erj\evubz}";%vugnUna}zv_ujqavnXizyn~y&9)0`8twi`Wlg{xtQ{hsgplZgt{lx$:'>b:rqkbYbey~rSyf}erj\evubz}"3%vugnUna}zv_ujqavnXflmjxh&:)0`8twi`Wlg{xtQ{hsgplZhboh~n$;'>b:rqkbYbey~rSyf}erj\j`af|l"<%5rne\bpjkW}byi~f'1(30?uthoVl~`aQ{hsgpl-4.9:1{~biPftno[qnumzb#?$?<;qplcZ`rdeUdk|h)6*56=wzfmTjxbc_ujqavn/= ;87}|`g^dvhiYs`{oxd%8&129svjaXn|fgSyf}erj+3,743yxdkRhzlm]wlwct`!2"=>5rne\bpjkW}byi~f'9(36?uthoVl~`aQ{hsgpl9?=87;j7}|`g^dvhiYs`{oxdRo|sdpw,5/6i2zycjQiumn\pmtb{aUj~k}t)3*5d=wzfmTjxbc_ujqavnXizyn~y&=)0c8twi`Wog`Rzgrdqk[dutm{~#?$?n;qplcZ`rdeUdk|h^cpw`ts =#:m6~}of]eqijX|axneQnsrgqp-3.9h1{~biPftno[qnumzbTm~}jru*5-4ga:rqkbYa}efTxe|jsi]bwvcu|!3"=n5rne\bpjkW}byi~fParqfvq:>294:m6~}of]eqijX|axneQaefcwa-6.9h1{~biPftno[qnumzbTbhintd*2-4g'>a:rqkbYa}efTxe|jsi]mabgsm!>"=l5rne\bpjkW}byi~fPndebp`.2!8k0|ah_gwohZrozlycSckhaug+2,7f3yxdkRhzlm]wlwct`Vdnklzj(6+2e>vugnUmyabPtipfwmYimnki%6&1`9svjaXn|fgSyf}erj\j`af|l"2%4re]geqgXkfex%=&119q`Zbf|hUhcx`{(5+24>tcWmkmRm`uov+1,773{nThlzn_bmvjq.1!8:0~iQkauc\gjsi|!="==5}d^fbpdYdg|d$5'>0:pg[agsiVidycz30?31?wbXlh~jSnaznu>;>5823{nTic84re]qwq5uu{}>0x{j9:wm``tadf}>7{ocie48swYfkb<0{Qllj33?rtXlh~jSnaznu*3-46<{UomyoPcnwmp-7.991|~Rjnt`]`kphs ;#:<6y}_ecweZeh}g~#?$??;vp\`drfWje~by&;)028swYci}kTob{at)7*55=pzVnjxlQlotlw,3/682}ySio{a^alqkr/? ;;7z|Pd`vb[firf}"3%<>4ws]geqgXkfex%7&139tvZbf|hUhcx`{<883:0=pzVoe:6y}_sqwyEFwjj<0LMv>:G87>4}T=80?5;48:011f3ef2:2<9>ua40795>h39?0?7):>3;63`>{T5\13590<`=83;8>o8la;1;303<[=l184h50;306g0di393;8;4d5;:>5<628qX9<4;9784>455j?ij6>68529uP4>2290:6<4>94yP14<31?0<6<==b7ab>6>0=:1/8=9513:8R1732;q~=><51:w276<73t.:;i4>9:`7=<<72:o1?7=j{I631>\3>38p=:4>0;'5=g=<030(9?=:5;;?l2bm3:17d;?3;29?j2>l3:17b:67;29?l2a?3:17b:>8;29?l2a83:17b:9a;29 41a2=2o7c?8e;28?j2113:1(<9i:5:g?k70m3;07b:98;29 41a2=2o7c?8e;08?j21?3:1(<9i:5:g?k70m3907b:96;29 41a2=2o7c?8e;68?j21=3:1(<9i:5:g?k70m3?07b:93;29 41a2=2o7c?8e;48?j21:3:1(<9i:5:g?k70m3=07b:91;29 41a2=2o7c?8e;:8?j2183:1(<9i:5:g?k70m3307b::f;29 41a2=2o7c?8e;c8?j22m3:1(<9i:5:g?k70m3h07b::d;29 41a2=2o7c?8e;a8?j22k3:1(<9i:5:g?k70m3n07b::b;29 41a2=2o7c?8e;g8?j22i3:1(<9i:5:g?k70m3l07b::8;29 41a2=2o7c?8e;33?>i3=>0;6)?8f;6;`>h6?l0:=65`44494?"6?o0?4i5a16g957=6=4+16d90=b4?:%34b?2?l2d:;h4>5:9l004=83.:;k4;8e9m52c=9?10c9;>:18'52`=<1n0b<9j:058?j2283:1(<9i:5:g?k70m3;376a;4g83>!70n3>3h6`>7d82=>=h<>:1<7*>7g87o1=l54o54e>5<#9>l185j4n05f>4d<3f>=i7>5$05e>1>c3g;i3=00;6)?8f;6;`>h6?l09=65`45g94?"6?o0?4i5a16g967=o6=4+16d90=b8<7>5$05e>1253g;9i7>5$05e>1253g;9o7>5$05e>1253g;9m7>5$05e>1253g;<3`>847>5$05e>1253g;8:7>5$05e>1253g;887>5$05e>1253g;8>7>5$05e>1253g;54?:%34b?23:2d:;h4>1:9j0`4=831i8=850;394?6|@=:>7)?7a;632>i6?j0;66smd583>4<729qC8=;4$0:b>a2\3>3;=w?l5d;0g>gx"60h0?5n5+1369`7=#=1=:l4i5ge>5<5<5<5<#9>l18o;4n05f>5=5<#9>l18o;4n05f>7=54i5`3>5<#9>l18o;4n05f>1=5<#9>l18o;4n05f>3=5<#9>l18o;4n05f>==5<5<#9>l19=<4n05f>4=5<#9>l19=<4n05f>6=5<#9>l19=<4n05f>0=5<#9>l19=<4n05f>2=5<#9>l19=<4n05f><=5<#9>l18hj4n05f>4=5<#9>l18hj4n05f>6=5<#9>l18hj4n05f>0=6=4+16d90`b5<#9>l18hj4n05f>2=5<#9>l18h?4n05f>5=5<#9>l18h?4n05f>7=54i5f`>5<#9>l18h?4n05f>1=5<#9>l18h?4n05f>3=5<#9>l18h?4n05f>==5<6=4+16d90705<#9>l18?84n05f>4=5<#9>l18?84n05f>6=5<#9>l18?84n05f>0=5<#9>l18?84n05f>2=5<#9>l18?84n05f><=5<5<#9>l18nl4n05f>4=5<#9>l18nl4n05f>6=5<#9>l18nl4n05f>0=5<#9>l18nl4n05f>2=5<#9>l18nl4n05f><=5<5<5<5<5<#9>l185j4n05f>5=5<#9>l185j4n05f>7=54o545>5<#9>l185j4n05f>1=6=4+16d90=b5<#9>l185j4n05f>3=5<#9>l185j4n05f>==5<#9>l185j4n05f>d=5<#9>l185j4n05f>f=5<#9>l185j4n05f>`=5<#9>l185j4n05f>46<3f>>;7>5$05e>1>c3g;;:m713<72-;07b::3;29 41a2=2o7c?8e;36?>i3=;0;6)?8f;6;`>h6?l0::65`44394?"6?o0?4i5a16g952=32e?;=4?:%34b?2?l2d:;h4>a:9l03`=83.:;k4;8e9m52c=9k10c98j:18'52`=<1n0b<9j:0a8?j21l3:1(<9i:5:g?k70m3;o76a;6b83>!70n3>3h6`>7d82a>=h7g87o1=k54o547>5<#9>l185j4n05f>76<3f>>57>5$05e>1>c3g;;:m70`<72-;:18'52`=<=80b<9j:198m157290/=:h54508j41b2810e910e9=6:18'52`=<=80b<9j:998m15?290/=:h54508j41b2010e9=8:18'52`=<=80b<9j:`98m151290/=:h54508j41b2k10e9=::18'52`=<=80b<9j:b98m153290/=:h54508j41b2m10e9=<:18'52`=<=80b<9j:d98m155290/=:h54508j41b2o10e9<6:18'52`=<=80b<9j:028?l2503:1(<9i:561?k70m3;:76g;1883>>o3l<0;6)?8f;6g2>h6?l0;76g;d583>!70n3>o:6`>7d82?>o3l:0;6)?8f;6g2>h6?l0976g;d383>!70n3>o:6`>7d80?>o3l80;6)?8f;6g2>h6?l0?76g;d183>!70n3>o:6`>7d86?>o3ko0;6)?8f;6g2>h6?l0=76g;cd83>!70n3>o:6`>7d84?>o3km0;6)?8f;6g2>h6?l0376g;cb83>!70n3>o:6`>7d8:?>o3jl0;6)?8f;6ab>h6?l0;76g;be83>!70n3>ij6`>7d82?>o3jj0;6)?8f;6ab>h6?l0976g;bc83>!70n3>ij6`>7d80?>o3jh0;6)?8f;6ab>h6?l0?76g;b883>!70n3>ij6`>7d86?>o3j10;6)?8f;6ab>h6?l0=76g;b683>!70n3>ij6`>7d84?>o3j?0;6)?8f;6ab>h6?l0376a;a083>>i3:>0;66g;e383>>d3990;6<4?:1y'5=g=l=1C8=h4H526?jb42900qo:>1;295?6=8r.:4l4;079K05`<@=:>7b?8c;29?xd4n;0;6>4?:1y'5=g=km1C8=h4H526?M243-;8<7:i3:&f5?4>i6080;66sm3gf94?5=83:p(<6n:bf8L16a3A>;96F;3:&275<3n:1/i<4=;h64>5<>54g18 `7=:2c?;7>5;h71>5<8`8g5>N38o1C8=;4H518 4572=l87)k>:39j02<722c?57>5;h71>5<5<53;294~"60h0hh6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k66?6=3f;3=7>5;|`0b5<72<0;6=u+19c9`4=O<9l0D9>:;I60?!7483>m?6*j1;08m11=831b844?::k66?6=3`;3<7>5;n3;5?6=3th8jl4?:583>5}#91k1h=5G41d8L1623-o:6?5f4683>>o2:3:17d?70;29?j7?93:17pl1<729q/=5o5d19K05`<@=:>7)k>:39j02<722c>>7>5;h3;4?6=3f;3=7>5;|`0b=<72=0;6=u+19c9`5=O<9l0D9>:;%g2>7=n<>0;66g:2;29?l7?83:17b?71;29?xd38:0;694?:1y'5=g=l91C8=h4H526?!c62;1b8:4?::k66?6=3`;3<7>5;n3;5?6=3th?5}#91k1h=5G41d8L1623-o:6?5f4683>>o2:3:17d?70;29?j7?93:17pl=9`83>1<729q/=5o5d19K05`<@=:>7)k>:79j02<722c>>7>5;h3;4?6=3f;3=7>5;|`063<72=0;6=u+19c9g`=O<9l0D9>:;%g2>7=n<>0;66g;e;29?l352900c<6>:188yg5583:197>50z&25;h6:>5<>i6080;66sm33;94?2=83:p(<6n:e28L16a3A>;96*j1;08m11=831b9?4?::k2<5<722e:4<4?::a773=83>1<7>t$0:b>fc<@=:m7E:?5:&f5?4>o2:3:17b?71;29?xd5?h0;694?:1y'5=g=9:;0D9>i;I631>o3j3:17d;<:188m4>42900c<9n:188yg4013:187>50z&24?::k2<6<722e:;l4?::a621=83>1<7>t$0:b>4563A>;j6F;049j0g<722c>?7>5;h3;7?6=3f;5;|`133<72=0;6=u+19c9567<@=:m7E:?5:k7f?6=3`?86=44i0:0>5<8`8274=O<9l0D9>:;h6a>5<k1<75rb3:`>5<3290;w)?7a;305>N38o1C8=;4i5`94?=n=:0;66g>8283>>i6?h0;66sm29`94?2=83:p(<6n:012?M27n2B?<85f4c83>>o2;3:17d?73;29?j70i3:17pl=8`83>1<729q/=5o51238L16a3A>;96g;b;29?l342900e<6<:188k41f2900qo<79;290?6=8r.:4l4>309K05`<@=:>7d:m:188m05=831b=5=50;9l52g=831vn?kl:187>5<7s-;3m7?<1:J74c=O<9?0e9l50;9j16<722c:4>4?::m23d<722wi>hl50;694?6|,82j6<=>;I63b>N38<1b8o4?::k67?6=3`;3?7>5;n34e?6=3th9il4?:583>5}#91k1=>?4H52e?M27=2c?n7>5;h70>5<5<54;294~"60h0:?<5G41d8L1623`>i6=44i4194?=n9191<75`16c94?=zj;o36=4;:183!7?i3;8=6F;0g9K053>o60:0;66a>7`83>>{e:ol1<7:50;2x 4>f289:7E:?f:J740=ni;I631>o3j3:17d;<:188m4>42900c<9n:188yg4al3:187>50z&24?::k2<6<722e:;l4?::a6cd=83>1<7>t$0:b>4563A>;j6F;049j0g<722c>?7>5;h3;7?6=3f;5;|`050<72=0;6=u+19c9567<@=:m7E:?5:k7f?6=3`?86=44i0:0>5<8`8274=O<9l0D9>:;h6a>5<k1<75rb230>5<3290;w)?7a;305>N38o1C8=;4i5`94?=n=:0;66g>8283>>i6?h0;66sm30094?2=83:p(<6n:012?M27n2B?<85f4c83>>o2;3:17d?73;29?j70i3:17pl<1083>1<729q/=5o51238L16a3A>;96g;b;29?l342900e<6<:188k41f2900qon6=44i4094?=h91;1<75rb32f>5<3290;w)?7a;af?M27n2B?<85+e081?l202900e9k50;9j17<722e:4<4?::a65b=83>1<7>t$0:b>fc<@=:m7E:?5:&f5?4>o2:3:17b?71;29?xd58j0;694?:1y'5=g=kl1C8=h4H526?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<,l;1>6g;7;29?l2b2900e8<50;9l5=7=831vn?>n:187>5<7s-;3m7mj;I63b>N38<1/i<4=;h64>5<>i6080;66sm21;94?2=83:p(<6n:bg8L16a3A>;96*j1;08m11=831b8h4?::k66?6=3f;3=7>5;|`14=<72=0;6=u+19c9g`=O<9l0D9>:;%g2>7=n<>0;66g;e;29?l352900c<6>:188yg47?3:187>50z&25;h6f>5<ac83>1<729q/=5o5cd9K05`<@=:>7)k>:39j02<722c?i7>5;h71>5<8`8`a>N38o1C8=;4$d396>o3?3:17d:j:188m04=831d=5?50;9~f4g>290?6=4?{%3;e?eb3A>;j6F;049'a4<53`><6=44i5g94?=n=;0;66a>8083>>{e9h21<7:50;2x 4>f2jo0D9>i;I631>"b9380e9950;9j0`<722c>>7>5;n3;5?6=3th:m:4?:583>5}#91k1oh5G41d8L1623-o:6?5f4683>>o3m3:17d;=:188k4>62900qo?n6;290?6=8r.:4l4le:J74c=O<9?0(h?52:k73?6=3`>n6=44i4094?=h91;1<75rb0c6>5<3290;w)?7a;af?M27n2B?<85+e081?l202900e9k50;9j17<722e:4<4?::a60d=83>1<7>t$0:b>fc<@=:m7E:?5:&f5?4>o2:3:17b?71;29?xd5=h0;694?:1y'5=g=kl1C8=h4H526?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<57>54;294~"60h0hi6F;0g9K053<,l;1>6g;7;29?l2b2900e8<50;9l5=7=831vn?;7:187>5<7s-;3m7mj;I63b>N38<1/i<4=;h64>5<>i6080;66sm24594?2=83:p(<6n:bg8L16a3A>;96*j1;08m11=831b8h4?::k66?6=3f;3=7>5;|`113<72=0;6=u+19c9g`=O<9l0D9>:;%g2>7=n<>0;66g;e;29?l352900c<6>:188yg42=3:187>50z&25;h6f>5<8=50;694?6|,82j6nk4H52e?M27=2.n=7<4i5594?=nf483>1<729q/=5o5cd9K05`<@=:>7)k>:39j02<722c?i7>5;h71>5<8`8`a>N38o1C8=;4$d396>o3?3:17d:j:188m04=831d=5?50;9~f4`4290?6=4?{%3;e?eb3A>;j6F;049'a4<53`><6=44i5g94?=n=;0;66a>8083>>{e9o81<7:50;2x 4>f2jo0D9>i;I631>"b9380e9950;9j0`<722c>>7>5;n3;5?6=3th:j<4?:583>5}#91k1oh5G41d8L1623-o:6?5f4683>>o3m3:17d;=:188k4>62900qo?i0;290?6=8r.:4l4le:J74c=O<9?0(h?52:k73?6=3`>n6=44i4094?=h91;1<75rb0ge>5<3290;w)?7a;af?M27n2B?<85+e081?l202900e9k50;9j17<722e:4<4?::a5`c=83>1<7>t$0:b>fc<@=:m7E:?5:&f5?4>o2:3:17b?71;29?xd6mm0;694?:1y'5=g=kl1C8=h4H526?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<7>54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<7>54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<,l;1>6g;7;29?l2b2900e8<50;9l5=7=831vn5<7s-;3m7mj;I63b>N38<1/i<4=;h64>5<>i6080;66sm1bd94?2=83:p(<6n:bg8L16a3A>;96*j1;08m11=831b8h4?::k66?6=3f;3=7>5;|`2g`<72=0;6=u+19c9g`=O<9l0D9>:;%g2>7=n<>0;66g;e;29?l352900c<6>:188yg7dl3:187>50z&25;h6f>5<c`83>1<729q/=5o5cd9K05`<@=:>7)k>:39j02<722c?i7>5;h71>5<8`8`a>N38o1C8=;4$d396>o3?3:17d:j:188m04=831d=5?50;9~f752290?6=4?{%3;e?eb3A>;j6F;049'a4<53`><6=44i5g94?=n=;0;66a>8083>>{e::>1<7:50;2x 4>f2jo0D9>i;I631>"b9380e9950;9j0`<722c>>7>5;n3;5?6=3th9?>4?:583>5}#91k1oh5G41d8L1623-o:6?5f4683>>o3m3:17d;=:188k4>62900qo<<2;290?6=8r.:4l4le:J74c=O<9?0(h?52:k73?6=3`>n6=44i4094?=h91;1<75rb312>5<3290;w)?7a;af?M27n2B?<85+e081?l202900e9k50;9j17<722e:4<4?::a666=83>1<7>t$0:b>fc<@=:m7E:?5:&f5?4>o2:3:17b?71;29?xd5:o0;694?:1y'5=g=kl1C8=h4H526?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<,l;1>6g;7;29?l2b2900e8<50;9l5=7=831vn?5<7s-;3m7mj;I63b>N38<1/i<4=;h64>5<>i6080;66sm23a94?2=83:p(<6n:bg8L16a3A>;96*j1;08m11=831b8h4?::k66?6=3f;3=7>5;|`1`4<72<0;6=u+19c9gc=O<9l0D9>:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn?j?:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd5ko0;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb3af>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th9oi4?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f7ed290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<t$0:b>f`<@=:m7E:?5:&f5?4>o3m3:17d;=:188k4>62900qo7d:m:188m4422900c<9n:188yg4el3:1?7>50z&2309K05`<@=:>7d:m:188m05=831b=5=50;9l52g=831vn?ll:180>5<7s-;3m7:?e:J74c=O<9?0e9l50;9j573=831d=:o50;9~f7d5290?6=4?{%3;e?7492B?4?::k2<6<722e:;l4?::a6gd=8391<7>t$0:b>16b3A>;j6F;049j0g<722c:>84?::m23d<722wi>o>50;694?6|,82j6<=>;I63b>N38<1b8o4?::k67?6=3`;3?7>5;n34e?6=3th9nl4?:283>5}#91k18=k4H52e?M27=2c?n7>5;h311?6=3f;5;|`1e`<72=0;6=u+19c9567<@=:m7E:?5:k7f?6=3`?86=44i0:0>5<8`874`=O<9l0D9>:;h6a>5<6=44o05b>5<54;294~"60h0:?<5G41d8L1623`>i6=44i4194?=n9191<75`16c94?=zj;h36=4<:183!7?i3>;i6F;0g9K053k1<75rb3cb>5<3290;w)?7a;305>N38o1C8=;4i5`94?=n=:0;66g>8283>>i6?h0;66sm2c594?5=83:p(<6n:52f?M27n2B?<85f4c83>>o6:<0;66a>7`83>>{e:h21<7:50;2x 4>f289:7E:?f:J740=n4?:1y'5=g=<9o0D9>i;I631>o3j3:17d?=5;29?j70i3:17pl=a783>1<729q/=5o51238L16a3A>;96g;b;29?l342900e<6<:188k41f2900qo26=44i5g94?=n=;0;66a>8083>>{e:l81<7;50;2x 4>f2jl0D9>i;I631>"b9380e9950;9j0<<722c?i7>5;h71>5<8`8`b>N38o1C8=;4$d396>o3?3:17d:6:188m1c=831b9?4?::m2<4<722wi>h>50;794?6|,82j6nh4H52e?M27=2.n=7<4i5594?=n<00;66g;e;29?l352900c<6>:188yg4cn3:197>50z&25;h6:>5<>i6080;66sm2eg94?3=83:p(<6n:bd8L16a3A>;96*j1;08m11=831b844?::k7a?6=3`?96=44o0:2>5<55;294~"60h0hj6F;0g9K053<,l;1>6g;7;29?l2>2900e9k50;9j17<722e:4<4?::a6ae=83?1<7>t$0:b>f`<@=:m7E:?5:&f5?4>o3m3:17d;=:188k4>62900qo26=44i5g94?=n=;0;66a>8083>>{e:?h1<7:50;2x 4>f2jo0D9>i;I631>"b9380e9950;9j0`<722c>>7>5;n3;5?6=3th9:54?:583>5}#91k1oh5G41d8L1623-o:6?5f4683>>o3m3:17d;=:188k4>62900qo<9f;290?6=8r.:4l4k0:J74c=O<9?0(h?56:k73?6=3`?96=44i0:3>5<8`8g4>N38o1C8=;4$d392>o3?3:17d;=:188m4>72900c<6>:188yg51=3:197>50z&25;h6:>5<>i6080;66sm37694?3=83:p(<6n:bd8L16a3A>;96*j1;08m11=831b844?::k7a?6=3`?96=44o0:2>5<7>55;294~"60h0hj6F;0g9K053<,l;1>6g;7;29?l2>2900e9k50;9j17<722e:4<4?::a737=83?1<7>t$0:b>f`<@=:m7E:?5:&f5?4>o3m3:17d;=:188k4>62900qo=93;291?6=8r.:4l4lf:J74c=O<9?0(h?52:k73?6=3`>26=44i5g94?=n=;0;66a>8083>>{e;?:1<7;50;2x 4>f2jl0D9>i;I631>"b9380e9950;9j0<<722c?i7>5;h71>5<8`8`b>N38o1C8=;4$d396>o3?3:17d:6:188m1c=831b9?4?::m2<4<722wi?8j50;794?6|,82j6i?4H52e?M27=2.n=784i5594?=n<00;66g:2;29?l7?83:17b?71;29?xd4=j0;684?:1y'5=g=l81C8=h4H526?!c62?1b8:4?::k7=?6=3`?96=44i0:3>5<8`8`b>N38o1C8=;4$d396>o3?3:17d:6:188m1c=831b9?4?::m2<4<722wi?8>50;194?6|,82j69>j;I63b>N38<1b8o4?::k260<722e:;l4?::a71`=8391<7>t$0:b>16b3A>;j6F;049j0g<722c:>84?::m23d<722wi?9;50;694?6|,82j6<=>;I63b>N38<1b8o4?::k67?6=3`;3?7>5;n34e?6=3th88h4?:283>5}#91k18=k4H52e?M27=2c?n7>5;h311?6=3f;5;|`006<72=0;6=u+19c9567<@=:m7E:?5:k7f?6=3`?86=44i0:0>5<8`874`=O<9l0D9>:;h6a>5<6=44o05b>5<54;294~"60h0:?<5G41d8L1623`>i6=44i4194?=n9191<75`16c94?=zj:>h6=4<:183!7?i3>;i6F;0g9K053k1<75rb21e>5<3290;w)?7a;305>N38o1C8=;4i5`94?=n=:0;66g>8283>>i6?h0;66sm35`94?5=83:p(<6n:52f?M27n2B?<85f4c83>>o6:<0;66a>7`83>>{e;:n1<7:50;2x 4>f289:7E:?f:J740=n4?:1y'5=g=<9o0D9>i;I631>o3j3:17d?=5;29?j70i3:17pl<3c83>1<729q/=5o51238L16a3A>;96g;b;29?l342900e<6<:188k41f2900qo=;9;297?6=8r.:4l4;0d9K05`<@=:>7d:m:188m4422900c<9n:188yg5413:187>50z&2=8:187>5<7s-;3m7?<1:J74c=O<9?0e9l50;9j16<722c:4>4?::m23d<722wi?9950;194?6|,82j69>j;I63b>N38<1b8o4?::k260<722e:;l4?::a763=83>1<7>t$0:b>4563A>;j6F;049j0g<722c>?7>5;h3;7?6=3f;5;|`037<72<0;6=u+19c9gc=O<9l0D9>:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn>9?:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd4?80;684?:1y'5=g=l81C8=h4H526?!c62?1b8:4?::k7=?6=3`?96=44i0:3>5<8`8`b>N38o1C8=;4$d396>o3?3:17d:6:188m1c=831b9?4?::m2<4<722wi?::50;794?6|,82j6nh4H52e?M27=2.n=7<4i5594?=n<00;66g;e;29?l352900c<6>:188yg50?3:197>50z&25;h6:>5<>i6080;66sm36794?3=83:p(<6n:bd8L16a3A>;96*j1;08m11=831b844?::k7a?6=3`?96=44o0:2>5<55;294~"60h0hj6F;0g9K053<,l;1>6g;7;29?l2>2900e9k50;9j17<722e:4<4?::a72>=83?1<7>t$0:b>f`<@=:m7E:?5:&f5?4>o3m3:17d;=:188k4>62900qo=89;291?6=8r.:4l4lf:J74c=O<9?0(h?52:k73?6=3`>26=44i5g94?=n=;0;66a>8083>>{e;1<1<7;50;2x 4>f2jl0D9>i;I631>"b9380e9950;9j0<<722c?i7>5;h71>5<8`8g5>N38o1C8=;4$d392>o3?3:17d:6:188m04=831b=5>50;9l5=7=831vn>6::186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd40>0;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb2:;>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th84o4?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f6>>290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<5;|`0:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn>o>:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd4i90;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb2;e>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th85h4?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f6?c290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<5;|`0=d<72<0;6=u+19c9gc=O<9l0D9>:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn>76:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd4110;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb2`e>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th8nh4?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f6dc290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<5;|`0fd<72<0;6=u+19c9gc=O<9l0D9>:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn>l7:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd4j>0;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb2`5>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th8n84?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f6d3290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<5;|`0f4<72<0;6=u+19c9gc=O<9l0D9>:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn>l?:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd4io0;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb2cg>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th8mn4?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f6ge290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<5;|`0e=<72<0;6=u+19c9gc=O<9l0D9>:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn>o8:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd4i?0;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb2c6>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th8m94?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f6e2290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<5;|`0g7<72<0;6=u+19c9gc=O<9l0D9>:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn>m>:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd4k90;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb2`:>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th8mh4?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f6g4290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<>oc>3:17b?8a;29?xd4n=0;6>4?:1y'5=g=9;k0D9>i;I631>"b93;j7dj::188ma0=831d=:o50;9~f77629086=4?{%3;e?75i2B?5;|`2ec<72:0;6=u+19c957g<@=:m7E:?5:&f5?7a3`n>6=44ie494?=h9>k1<75rb0;a>5<4290;w)?7a;31e>N38o1C8=;4$d395c=nl<0;66gk6;29?j70i3:17pl>9`83>6<729q/=5o513c8L16a3A>;96*j1;3e?lb22900ei850;9l52g=831vn<76:180>5<7s-;3m7?=a:J74c=O<9?0(h?51g9j`0<722co:7>5;n34e?6=3th:554?:283>5}#91k1=?o4H52e?M27=2.n=7?i;hf6>5<>oc>3:17b?8a;29?xd61?0;6>4?:1y'5=g=9;k0D9>i;I631>"b93;m7dj::188ma0=831d=:o50;9~f4?229086=4?{%3;e?75i2B?5;|`2=1<72:0;6=u+19c957g<@=:m7E:?5:&f5?7a3`n>6=44ie494?=h9>k1<75rb0;0>5<4290;w)?7a;31e>N38o1C8=;4$d395c=nl<0;66gk6;29?j70i3:17pl>9383>6<729q/=5o513c8L16a3A>;96*j1;3e?lb22900ei850;9l52g=831vn<7>:180>5<7s-;3m7?=a:J74c=O<9?0(h?51g9j`0<722co:7>5;n34e?6=3th:5=4?:283>5}#91k1=?o4H52e?M27=2.n=7?i;hf6>5<>oc>3:17b?8a;29?xd60l0;6>4?:1y'5=g=9;k0D9>i;I631>"b93;m7dj::188ma0=831d=:o50;9~f4>c29086=4?{%3;e?75i2B?5;|`26=44ie494?=h9>k1<75rb0:a>5<4290;w)?7a;31e>N38o1C8=;4$d395c=nl<0;66gk6;29?j70i3:17pl=1283>1<729q/=5o513a8L16a3A>;96*j1;04?lb22900ei850;9j`2<722e:;l4?::a5g7=83>1<7>t$0:b>44d3A>;j6F;049'a4<5?2co97>5;hf5>5<>5fd483>>oc>3:17dj8:188k41f2900qo<>5;291?6=8r.:4l4>2d9K05`<@=:>7)k>:338ma3=831bh;4?::kg3?6=3`n36=44o05b>5<55;294~"60h0:>h5G41d8L1623-o:6??4ie794?=nl?0;66gk7;29?lb?2900c<9n:188yg4093:197>50z&25;hf;>5<8`826`=O<9l0D9>:;%g2>74>oc?3:17dj7:188k41f2900qo==4;297?6=8r.:4l4>2`9K05`<@=:>7)k>:568ma3=831bh;4?::m23d<722wi>;950;694?6|,82j6<N38<1/i<4>8:kg1?6=3`n=6=44ie594?=h9>k1<75rb20b>5<4290;w)?7a;31e>N38o1C8=;4$d3954=nl<0;66gk6;29?j70i3:17pl=1683>6<729q/=5o513c8L16a3A>;96*j1;3e?lb22900ei850;9l52g=831vn5<7s-;3m7?=a:J74c=O<9?0(h?51g9j`0<722co:7>5;n34e?6=3th9=44?:583>5}#91k1=?m4H52e?M27=2.n=7<8;hf6>5<>i6?h0;66sm1c594?2=83:p(<6n:00`?M27n2B?<85+e0813>oc=3:17dj9:188ma1=831d=:o50;9~f77e290>6=4?{%3;e?75m2B?k1<75rb0`:>5<2290;w)?7a;31a>N38o1C8=;4$d3964=nl<0;66gk6;29?lb02900ei650;9l52g=831vn>kl:180>5<7s-;3m7?=a:J74c=O<9?0(h?5c99j`0<722co:7>5;n34e?6=3th95:4?:283>5}#91k1=?o4H52e?M27=2.n=7<:;hf6>5<85fd483>>oc>3:17b?8a;29?xd49o0;684?:1y'5=g=9;o0D9>i;I631>"b938=7dj::188ma0=831bh:4?::kg5;|`04<<72<0;6=u+19c957c<@=:m7E:?5:&f5?413`n>6=44ie494?=nl>0;66gk8;29?j70i3:17pl=f783>0<729q/=5o513g8L16a3A>;96*j1;05?lb22900ei850;9j`2<722co47>5;n34e?6=3th8=h4?:483>5}#91k1=?k4H52e?M27=2.n=7<9;hf6>5<>oc03:17b?8a;29?xd4810;684?:1y'5=g=9;o0D9>i;I631>"b938=7dj::188ma0=831bh:4?::kg5;|`1b0<72<0;6=u+19c957c<@=:m7E:?5:&f5?413`n>6=44ie494?=nl>0;66gk8;29?j70i3:17pl=9783>0<729q/=5o513g8L16a3A>;96*j1;07?lb22900ei850;9j`2<722co47>5;n34e?6=3th94>4?:483>5}#91k1=?k4H52e?M27=2.n=7<;;hf6>5<>oc03:17b?8a;29?xd49m0;684?:1y'5=g=9;o0D9>i;I631>"b938=7dj::188ma0=831bh:4?::kg5;|`042<72<0;6=u+19c957c<@=:m7E:?5:&f5?413`n>6=44ie494?=nl>0;66gk8;29?j70i3:17pl=f583>0<729q/=5o513g8L16a3A>;96*j1;05?lb22900ei850;9j`2<722co47>5;n34e?6=3th9584?:483>5}#91k1=?k4H52e?M27=2.n=7<;;hf6>5<>oc03:17b?8a;29?xd50;0;684?:1y'5=g=9;o0D9>i;I631>"b938?7dj::188ma0=831bh:4?::kg5;|`05f<72<0;6=u+19c957c<@=:m7E:?5:&f5?413`n>6=44ie494?=nl>0;66gk8;29?j70i3:17pl<0783>0<729q/=5o513g8L16a3A>;96*j1;05?lb22900ei850;9j`2<722co47>5;n34e?6=3th9j>4?:483>5}#91k1=?k4H52e?M27=2.n=7<9;hf6>5<>oc03:17b?8a;29?xd51=0;684?:1y'5=g=9;o0D9>i;I631>"b938?7dj::188ma0=831bh:4?::kg5;|`1<4<72<0;6=u+19c957c<@=:m7E:?5:&f5?433`n>6=44ie494?=nl>0;66gk8;29?j70i3:17pl=9b83>1<729q/=5o513a8L16a3A>;96*j1;a`?lb22900ei850;9j`2<722e:;l4?::a74d=83>1<7>t$0:b>44d3A>;j6F;049'a4<6j2co97>5;hf5>5<6=4;:183!7?i3;9o6F;0g9K053<,l;1=o5fd483>>oc>3:17dj8:188k41f2900qo2b9K05`<@=:>7)k>:0`8ma3=831bh;4?::kg3?6=3f;5;|`067<72<0;6=u+19c957c<@=:m7E:?5:&f5?7b3`n>6=44ie494?=nl>0;66gk8;29?j70i3:17pl=9283>0<729q/=5o513g8L16a3A>;96*j1;07?lb22900ei850;9j`2<722co47>5;n34e?6=3th94=4?:483>5}#91k1=?k4H52e?M27=2.n=7<;;hf6>5<>oc03:17b?8a;29?xd5j<0;6?4?:1y'5=g=9;30D9>i;I631>"b93;:7dj::188k41f2900qo289K05`<@=:>7)k>:038ma3=831d=:o50;9~f7d629096=4?{%3;e?7512B?lh50;094?6|,82j6<<6;I63b>N38<1/i<4>1:kg1?6=3f;5;|`1ea<72;0;6=u+19c957?<@=:m7E:?5:&f5?763`n>6=44o05b>5<52;294~"60h0:>45G41d8L1623-o:6k1<75rb3c:>5<5290;w)?7a;31=>N38o1C8=;4$d3954=nl<0;66a>7`83>>{e:h=1<7<50;2x 4>f28827E:?f:J740=#m80:=6gk5;29?j70i3:17pl<4783>7<729q/=5o513;8L16a3A>;96*j1;32?lb22900c<9n:188yg53<3:1>7>50z&2:=:181>5<7s-;3m7?=9:J74c=O<9?0(h?5109j`0<722e:;l4?::a716=8381<7>t$0:b>44>3A>;j6F;049'a4<692co97>5;n34e?6=3th8?h4?:383>5}#91k1=?74H52e?M27=2.n=7?>;hf6>5<8`826<=O<9l0D9>:;%g2>47>i6?h0;66sm32:94?4=83:p(<6n:00:?M27n2B?<85+e0825>oc=3:17b?8a;29?xd4;?0;6?4?:1y'5=g=9;30D9>i;I631>"b93;:7dj::188k41f2900qo289K05`<@=:>7)k>:038ma3=831d=:o50;9~f63629096=4?{%3;e?7512B?N38<1/i<4=1:kg1?6=3`n=6=44ie594?=nl10;66a>7`83>>{e9kl1<7;50;2x 4>f288n7E:?f:J740=#m80946gk5;29?lb12900ei950;9j`=<722e:;l4?::a64`=83?1<7>t$0:b>44b3A>;j6F;049'a4<592co97>5;hf5>5<>i6?h0;66sm23394?3=83:p(<6n:00f?M27n2B?<85+e081<>oc=3:17dj9:188ma1=831bh54?::m23d<722wi??650;794?6|,82j6<N38<1/i<4lb:kg1?6=3`n=6=44ie594?=nl10;66a>7`83>>{e:?<1<7;50;2x 4>f288n7E:?f:J740=#m80::6gk5;29?lb12900ei950;9j`=<722e:;l4?::a7`g=832<6=4?{%3;e?7?:2B?44j:06957<6k3l1=>4>5;3g>x"6:90>7)?=1;78 a?==2.om7;4$e`91>"ck3?0(ij55:&ga?3<,82=6>5+19590>"b:3?0(h=55:&f0?3<,l?196*j6;78 `1==2.n47;4$d;91>"bi3?0(hl55:&fg?3<,ln196*je;78 ``==2.m<7;4$g391>"a:3?0(k=55:&e0?3<,o?196*i6;78 c1==2.m47;4$g;91>"ai3?0(kl55:&eg?3<,on196*ie;78 c`==2.:<=4:;%335?3<,8:9685+11191>"68=0>7)??5;78 4612<1/==955:&24=<23-;;57;4$02b>0=#99h196*>0b86?!77l3?0(<>j:49'55`==2.:==4:;%325?3<,8;9685+10191>"69=0>7)?>5;78 4712<1/=<955:&25=<23-;:57;4$03b>0=#98h196*>1b86?!76l3?0(16f3-o;685f4b83>>o3l3:17dm6:188mfg=831b=5650;9j5=?=831b8=650;9j05?=831b?54?:%34b?503g;4;h15>5<#9>l1?:5a16g95>=n;<0;6)?8f;14?k70m3807d=;:18'52`=;>1e=:k53:9j76<72-;o1965f3083>!70n39<7c?8e;48?l57290/=:h5369m52c=?21b>k4?:%34b?503g;5<#9>l1?:5a16g9=>=n<;0;6)?8f;62?k70m3:07d:?:18'52`=<81e=:k51:9j7c<72-;;o34a?4<3`9n6=4+16d904=i9>o1?65f3e83>!70n3>:7c?8e;68?l5d290/=:h5409m52c==21b?o4?:%34b?263g;5<#9>l18<5a16g93>=n;00;6)?8f;62?k70m3207d;m:18'52`==h1e=:k50:9j1<<72-;o1>65f5683>!70n3?j7c?8e;18?l31290/=:h55`9m52c=<21b984?:%34b?3f3g;5<#9>l19l5a16g92>=n>:0;6)?8f;7b?k70m3=07d8=:18'52`==h1e=:k58:9j24<72-;o1m65f5g83>!70n3?j7c?8e;`8?l3b290/=:h55`9m52c=k21b9i4?:%34b?3f3g;5<#9>l19l5a16g9a>=n==0;6)?8f;7b?k70m3l07d9j:18'52`=?m1e=:k50:9j3f<72-;o1>65f7883>!70n3=o7c?8e;18?l1?290/=:h57e9m52c=<21b;:4?:%34b?1c3g;5<#9>l1;i5a16g92>=n?<0;6)?8f;5g?k70m3=07d9;:18'52`=?m1e=:k58:9j36<72-;o1m65f7083>!70n3=o7c?8e;`8?l0a290/=:h57e9m52c=k21b:h4?:%34b?1c3g;5<#9>l1;i5a16g9a>=n>j0;6)?8f;5g?k70m3l07d8m:18'52`=?m1e=:k51198m3g=83.:;k48d:l23`<6921b:44?:%34b?1c3g;45<3`<<6=4+16d93a=i9>o1=954i7494?"6?o07d821>=n0<0;6)?8f;5g?k70m3;=76g74;29 41a2>n0b<9j:058?l>4290/=:h57e9m52c=9110e5<50;&23c<0l2d:;h4>9:9j<4<72-;5$05e>2b5<#9>l1;i5a16g95f=h1<7*>7g84`>h6?l0:h65f7183>!70n3=o7c?8e;3f?>o1=3:1(<9i:6f8j41b28l07d67:18'52`=0>1e=:k50:9j<3<72-;o1<65f8c83>!70n32h7c?8e;38?l>f290/=:h58b9m52c=:21b444?:%34b?>d3g;5<#9>l1595a16g94>=h1:0;6)?8f;;7?k70m3;07b7=:18'52`=1=1e=:k52:9l=4<72-;o1865`8g83>!70n33?7c?8e;78?j?b290/=:h5959m52c=>21d5i4?:%34b??33g;5<#9>l1595a16g9<>=h1k0;6)?8f;;7?k70m3307b7n:18'52`=1=1e=:k5a:9l=<<72-;o1o65`9683>!70n33?7c?8e;f8?j?1290/=:h5959m52c=m21d4h4?:%34b??33g;5<#9>l1o<5a16g94>=hk90;6)?8f;a2?k70m3;07bl7:18'52`=j>1e=:k50:9lf3<72-;o1>65`b283>!70n3h<7c?8e;18?jd5290/=:h5b69m52c=<21dn<4?:%34b?d03g;5<#9>l1n:5a16g92>=hio0;6)?8f;`4?k70m3=07boj:18'52`=j>1e=:k58:9lea<72-;o1m65`ac83>!70n3h<7c?8e;`8?jg>290/=:h5b69m52c=k21dm54?:%34b?d03g;5<#9>l1n:5a16g9a>=hi?0;6)?8f;`4?k70m3l07bo::18'52`=j>1e=:k51198kd2=83.:;k4m7:l23`<6921dm>4?:%34b?d03g;45<3fk:6=4+16d9f2=i9>o1=954o`294?"6?o0i;6`>7d821>=hjo0;6)?8f;`4?k70m3;=76ame;29 41a2k=0b<9j:058?jdc290/=:h5b69m52c=9110com50;&23c9:9lfg<72-;5$05e>g15<#9>l1n:5a16g95f=7g8a3>h6?l0:h65`a`83>!70n3h<7c?8e;3f?>i>n3:1(<9i:c58j41b28l07bm8:18'52`=k?1e=:k50:9lg0<72-;o1>65`c283>!70n3i=7c?8e;18?xd5><0;684?:1y'5=g=9;l0D9>i;I631>"b93;=7dj::188ma0=831bh:4?::kg5;|`2fg<72:0;6=u+19c957d<@=:m7E:?5:&f5?7a3`n>6=44ie494?=h9;<1<75rb0``>5<3290;w)?7a;31`>N38o1C8=;4$d3965=nl<0;66gk6;29?lb02900c<<9:188yg46l3:1?7>50z&2;4?::a64c=83>1<7>t$0:b>44c3A>;j6F;049'a4<582co97>5;hf5>5<;5>h0o;63=708g<>;5>m0o463=668g1>;5>?0o963=648g1>{tX3n?1U8k:4^534?[2a92T?m=5Q4g78Z1g63W>h<6P;249]072X39m1U8mo6P;fc9]0cgX3m>1U8h84^5g6?[2b<2T?i>524029`6=:;oh19?523g2917=:;ok19?523g;917=:;o219?52411917=:<9819?5233;917=::>k19>5226;916=::>219>52265916=::><19>5229f916=::1i19>5229`916=::1k19>5229;916=::li19>522d`916=::lk19>522d;916=::l219>522gd916=::oo19>522gf916=::oi19>522g`916=:;8?19>52306916=:;8919>52300916=:;8;19>522c6916=::k819>522c2916=::ho19>522`a916=::hk19>522`:916=::h<19>52357916=:;=919>52353916=:;:l19>5232f916=:;:h19>5232;916=:;:=19>52327916=:;lk1=564=2gb>16>349nm79j;<1fe?1d349nm79n;<1fe?1>349nm797;<1fe?10349nm799;<1fe?12349nm79;;<1fe?14349nm79=;<1fe?16349nm78i;<1fe?0b349nm78k;<1fe?0d349nm78m;<1fe?0f349nm786;<1fe?0?349nm788;<1fe?01349nm76:;<1fe?>3349nm76<;<1fe?>5349nm76>;<1fe?>7349nm79i;<1fe?1e349nm79?;<1fe?02349nm76k;<1fe?>e349nm76n;<1fe?>>3ty?=54?:3y]04><5:8;6<6>;|q7b5<72:qU8k>4=2da>4>7349m<7?70:p0<1=838pR978;<05b?7?92wx9==50;1xZ0643499m7j:;<117:8;<1e5?20349m<7:8;<1ee?20349m57:8;<1en7:8;<06e?20348>57:8;<06;7:8;<062?20348>97:8;<060?20348>?7:8;<07=?20348?47:8;<073?20348?:7:8;<071?20348?87:8;<077?20348?>7:8;<075?20348?<7:8;<3g5?2034;o<7:8;<3`b?2034;hi7:8;<3``?2034;ho7:8;<3`f?2034;hm7:8;<3`=?20348o=7:8;<0g4?20348hj7:8;<0`a?20348hh7:8;<0`g?20348hm7:8;<0`=?20348hn7:8;<0f7?20348n>7:8;<0f5?20348n<7:8;<0gb?20348oi7:8;<0g`?20348oo7:8;<0gf?20348=n7:8;<057:8;<1a5?20349i<7:8;<1bb?20349jh7:8;<1bg?20349jn7:8;<1be?20349j57:8;<1b4>63ty?j:4?:4:xZ1`0349mh7:8;<1ef?20349mo7:8;<637?2034>;>7:8;<112?203499<7:8;<11=?20349997:8;<3b`?2034;jo7:8;<3bf?2034;jm7:8;<3b=?2034;j47:8;<3b3?2034;j:7:8;<3b1?2034;m97:8;<3e0?2034;m?7:8;<3e6?2034;m=7:8;<3e4?2034;nj7:8;<3fa?2034;nh7:8;<3f7?2034;n>7:8;<3f5?2034;n<7:8;<3gb?2034;oi7:8;<3g`?2034;oo7:8;<3gf?20348897:8;<000?203488?7:8;<006?203488=7:8;<004?203489j7:8;<01a?203489h7:8;<01g?20349=97:8;<150?20349=>7:8;<155?20349=?7:8;<154?20349>j7:8;<16`?20349>o7:8;<16a?20349<>7:8;<144?20349<=7:8;<147?20349<87:8;<143?20349<97:8;<142?20349<47:8;<14=?203493:7:8;<1;0?20349397:8;<1;3?20349347:8;<1;f?20349357:8;<1;e?203493o7:8;<1;`?20349j=7:8;<1b4?203492j7:8;<1:a?203492h7:8;<1:g?203492n7:8;<1:e?20349257:8;<1:4>63ty?4n4?:3y]03?<5:kj6<6>;|q74>63ty?4l4?:3y]031<5:k36<6>;|q7<<<72;qU8;84=2c4>4>63ty?454?:3y]033<5:k=6<6>;|q7<3<72;qU8;=4=2c6>4>63ty?484?:3y]034<5:k?6<6>;|q7<1<72;qU8;?4=2a6>4>63ty?4>4?:3y]036<5:i?6<6>;|q7<7<72;qU88h4=2a0>4>63ty?4<4?:3y]00c<5:i96<6>;|q7<5<72;qU88j4=2a2>4>63ty?;k4?:3y]00e<5:i;6<6>;|q73`<72;qU88l4=2`:>4>63ty?;i4?:3y]00g<5:kn6<6>;|q73g<72;qU8864=2c0>4>63ty?;l4?:3y]001<5:k96<6>;|q73<<72;qU8884=2`e>4>63ty?;54?:3y]003<5:hn6<6>;|q732<72;qU88:4=2`g>4>63ty?;;4?:3y]005<5:hh6<6>;|q730<72;qU88<4=2`a>4>63ty?;94?:3y]007<5:hj6<6>;|q736<72;qU88>4=2`;>4>63ty?;?4?:3y]01`<5:h<6<6>;|q7=0<72;qU8:>4=2`5>4>63ty?594?:3y]03`<5:h>6<6>;|q7=6<72;qU8;k4=2`7>4>63ty?5?4?:3y]03b<5:h86<6>;|q7=4<72;qU8;m4=2`1>4>63ty?5=4?:3y]03d<5:h:6<6>;|q74>63ty?4:4?:3y]00?<5:km6<6>;|q73f<72;qU89k4=2cg>4>63ty?;<4?:3y]01b<5:kh6<6>;|q706<72;qU8>?4=2gb>=>?=7>52z\775=:;lk19o5rs563>5<5sW>9j63{t<:l1<77}Y<;n01>kn:458yv24l3:1>vP;2b9>7`g==?1v9=l:181[25j278il4:5:p06d=838pR9j6=4={_603>;4mh0=>6s|45;94?4|V=9=70=ja;42?xu3<10;6?uQ427896cf2?:0q~:;7;296~X3;=16?ho55g9~w1212909wS:<3:?0ad<2m2wx89;50;0xZ155349nm7;k;|q701<72;qU8?74=2gb>0e8m7>52z\76==:;lk1995rs017>5:=7?8c:?133<3j279444;b:?1a=<3j279jo4;b:?054<3j279n;4;b:?1e3<3j2788:4;b:?070<3j278il4l9:p7c7=839p1>h=:40896`6282:70=i0;6:?xu4n;0;6?u23g095=7<5:l?6i;4}r1eg?6=;r78ji4:2:?0bg<31278jn4>809~w6`c2909w0=id;3;5>;4no0o96s|3g294?5|5:l:68<4=2d3>4>6349m87j9;|q0bg<72:q6?kl5193896`d2<801>hi:e48yv5a;3:18v34=2d;>4>7349m87?8a:p7c1=83;3w0=ia;3;5>;51h0:4=522e390`=::m:18h522bd90`=::jo18h522bf90`=::ji18h522bc90`=::j31=5>4=3aa>1c<5;o869k4=3g1>1c<5;o:69k4=3g3>1c<5;nm69k4=3ff>1c<5;no69k4=3f`>1c<5;ni69k4=34a>1c<5;<369k4=34e>4>7348=i7?70:p7c0=838=w0=i9;3;5>;58o0?i63=0d87a>;58m0?i63=0b87a>;58k0?i63=0`87a>;5800?i63=0987a>;58>0?i63=5c87a>;5=h0?i63=5887a>;5=10?i63=5687a>;5=?0?i63=5487a>;5==0?i63=5287a>;5<00?i63=4987a>;5<>0?i63=4787a>;5<<0?i63=4587a>;5<:0?i63=4387a>;5<80?i63=4187a>;6l80?i63>d187a>;6ko0?i63>cd87a>;6km0?i63>cb87a>;6kk0?i63>c`87a>;6k00?i6s|3g794?40s49m47?71:?0fc<3m278nh4;e:?0fa<3m278nn4;e:?0fg<3m278nl4;e:?0f=<3m278n:4;e:?0f3<3m278n84;e:?0f1<3m278n>4;e:?0f7<3m278n<4;e:?0f5<3m278mk4;e:?0ea<3m278mn4;e:?0eg<3m278ml4;e:?0e<<3m278m54;e:?0e2<3m278m;4;e:?0e0<3m278m94;e:?0g0<3m278o94;e:?0g6<3m278o?4;e:?0g4<3m278o=4;e:?0f<<3m278mh4;e:?0e6<3m278m?4;e:?0af889~w6`b2908w0:?3;3;4>;38;0:4=523gd952g;=7>52ey>055=91;01><9:5g896472=o01><6:0:3?855=3>n70=95;6f?851<3>n70=92;6f?85193>n70=93;6f?85183>n70=:f;6f?852l3;3<63<5b82<5=:;:18h5236395=6<5:=869k4=257>1c<5:=<69k4=256>1c<5:==69k4=25;>1c<5:=269k4=2:5>1c<5:2?6<6?;<1;1?2b3493;7:j;<1;=:0:2?87fl3>n70?nc;6f?87fj3>n70?na;6f?87f13>n70?n8;6f?87f?3>n70?n6;6f?87f=3>n70?i5;6f?87a<3>n70?i3;6f?87a:3>n70?i1;6f?87a83>n70?jf;6f?87bm3>n70?jd;6f?87b;3>n70?j2;6f?87b93>n70?j0;6f?87cn3>n70?ke;6f?87cl3>n70?kc;6f?87cj3>n70<<5;6f?844<3>n70<<3;6f?844:3>n70<<1;6f?84483>n70<=f;6f?845m3>n70<=d;6f?845k3>n7p}=9c83>7}::0k19?5228a952g54z?1=d<60816>;j5d49>630=l?16>;;5d79~w6402908w0==6;71?855=3?970==8;34e>{t;;91<71?<5:8?6<9n;|q064<72;q6??>5539>774=9>k0q~==9;297~;4:00:4<523369`0=:;;81h85rs206>5<3s49997?71:?061278>l4k6:?06=2wx>:;50;0x971f2=h01?96:05b?xu5?o0;6?u226c95=5<5;2?6<9n;|q1==<72;q6>:o516c897?d2m=0q~<84;296~;5?00?n63=79823d=z{;=n6=4={<04=?7?;2794>4>7`9~w7142909w0<88;6a?840?3;:<50;0x97102=h01?99:05b?xu5?j0;6?u226595=5<5;2:6<9n;|q13g<72;q6>:85191897>728=j7p}=8983>7}::1n18o5229a952g7>52z?149516c8yv4>13:1>v3=8e823d=::0i1h;5rs3:4>5<5s483o7:m;<0;f?70i2wx>4?50;0x97>d282870<66;34e>{t:1<1<71d<5;2j6<9n;|q1=5<72;q6>5l5191897?228=j7p}=8483>7}::1k18o5229;952g52z?14:516c8yv4?m3:1>v3=8882<6=::091=:o4}r0f3?6=:r79in4;b:?1ag<6?h1v?h>:18184bk3;3?63=f7823d=z{::j6=4={<0fg?70i278>54k7:p6`0=838p1?km:5`897cf28=j7p}=f183>7}::lh1=5=4=3d6>41f3ty9i84?:3y>6`g=h7516c8yv4bn3:1>v3=e`82<6=::o>1=:o4}r0f0?6=:r79i44;b:?1a=<6?h1v?kj:18184b13;3?63=f2823d=z{;oo6=4={<0f7`9~w7`f2909w07}::oo18o522gf952g52z?1b`<60:16?=6516c8yv4a03:1>v3=fe87f>;5nj0:;l5rs221>5<5s48mh7?73:?042<6?h1v?h8:18184ak3>i70{t;9;1<74>4349;:7?8a:p756=838p1?hm:0:0?857=3;69l4=237>41f3ty8=l4?:3y>743=91901>?i:05b?xu48j0;6?u2307952g<5:896i84}r13b?6=:r78=94;b:?056<6?h1v>?6:181856<3;3?63<1d823d=z{::n6=4={<127?2e349:>7?8a:p74>=838p1>?<:0:0?856l3;41f3ty8=:4?:3y>744=91901>?l:05b?xu49?0;6?u230395=5<5:;i6<9n;|q117<72=h5539>60d=91;01??>:e4897742m?01??::e58yv47>3:1?v3=0g82<4=::0=1h8522969`0=z{;;;6=4={<03a?35348:=7?8a:p653=839p1?>j:0:2?84>>3n=70<73;f5?xu59;0;6?u221f917=::891=:o4}r030?6=;r79809>6<0=l<16>5=5d49~w773290;5900o963=1c8g3>;59o0o963=208g1>{t:991<7=t=32`>4>6348297j9;<0;6?b13ty9=;4?:3y>65d==;16><9516c8yv47:3:1?v3=0c82<4=::0?1h8522909`0=z{;;36=4={<03e?35348:57?8a:p657=839p1?>n:0:2?84><3n=70<71;f5?xu59h0;6?u221;917=::8h1=:o4}r034?6=;r79<44>809>6<2=l<16>5?5d49~w77d2909w0;<0:7?b13483<7j9;|q165<72;q6>=95539>677=9>k0q~?ie;297~;58>0:4<522819`0=::1:1h85rs0g`>5<2s4;jh7;=;<3e1?7?927:mk4k6:?2f44k7:p5d2=83>p13n=7p}>ad83>7}:9hi19?521`d952g54z?2ef<60816?75?=l116>k85d99~w4d72909w0?nb;71?87e93;;<12a?b1349;47j9;<0e1?b13ty:n?4?:6y>5dg==;16=o=516c894d22m<012m=01p1b783>7}:9h219?521c5952g54z?2e=<60816?751=l116>k:5d99~w4d?2909w0?n7;71?87e13;;<12g?b1349;:7j9;<0e7?b13ty:nl4?:3y>5d0==;16=oj516c8yv7>l3:18v3>a782<4=:;8i1h5523149`==::o91h55rs0`f>5<5s4;j97;=;<3ab?70i2wx=4m50;6x94g2282:70=>b;f4?857=3n<70:187842i3;3=63=108g1>;59:0o:63=148g<>{t::n1<704<5;><6<6>;|q115<72:q6>875193897742m=01??::e78yv44k3:1>v3=59866>;55<5s48>47?71:?1502wx>>l50;0x97302<801?:::0:2?xu5a0<5;;i6i64=33e>a0<5;8:6i84}r00e?6=:r799;4:2:?101<6081v?:k:186842>3;3=63=188g3>;59k0o963=1g8g3>;5:80o;6s|22;94?4|5;?>68<4=360>4>63ty98n4?:5y>603=91;01??m:e48977c2m?01??j:e78yv4403:1>v3=55866>;5<;0:4<5rs36a>5<4s48>87?71:?15a279=h4k6:p661=838p1?;<:4089726282:7p}=4`83>7}::<91=5?4=33f>a152z?2b0<2:27:i>4>809~w4b>2909w0?i4;71?87b:3;3=6s|1d`94?2|58l?6<6>;<3bb?b234;i=7j9;<3a7?b?3ty:h54?:3y>5c5==;16=h?51938yv7bi3:1?v3>f282<4=:9k;1h:521c19`0=z{8n<6=4={<3e6?3534;n<7?71:p5`?=838p1d783>7}:9o;19?521ed95=756z?2b4<60816=o;5d49>5g1=l?16=o75d99>5gb=l?16=oh5d79~w4b22909w0?i0;71?87cm3;3=6s|1d594?3|58l;6<6>;<3a3?b034;i57j:;<3a`?b034;ij7j8;|q2`1<72;q6=hh5539>5ab=91;0q~?j6;290~;6mo0:4<521c;9`3=:9kh1h8521ca9`0=z{8n86=4={<3fa?3534;oo7?71:p5`3=839p1809>5ge=l>1v?{t:;k1<704<5;9?6<6>;|q16<<72;q6>995539>665=91;0q~<=8;296~;5>63=3382<4=z{;8<6=4={<071?353488=7?71:p670=838p1?:;:4089757282:7p}=2483>7}::=919?5223d95=752z?107<2:279>h4>809~w7442909w0<;1;71?845l3;3=6s|23094?4|5;>;68<4=30`>4>63ty9?;4?:0y>616=91;0q~?l8;296~;6m:0>>63>d082<4=z{8i<6=4={<3f6?3534;o<7?71:p5f0=838p1:40894ea282:7p}>c483>7}:9l:19?521bg95=752z?2`c<2:27:oi4>809~w4e42909w0?ke;71?87dk3;3=6s|1b094?4|58no68<4=0aa>4>63ty:o<4?:3y>5ae==;16=no51938yv7d83:1>v3>dc866>;6k00:4<5rs3fb>5<2s4;o=7;=;<0f7?7?927:4o4k5:?1<1278il4;2:p5c0=838p1e28=j7p}>f683>7}:9jl19?5219a952g52z?2g`<2:27:4i4>7`9~w4`>2909w0?ld;71?87?m3;41f3ty:jo4?:3y>5fd==;16=4>516c8yv7ak3:1>v3>c`866>;6180:;l5rs0dg>5<5s4;h57;=;<3:6?70i2wx?4950;6x97522<801>o>:0:2?87>;3n>70=ja;1;?xu5=j0;6?u2226917=:9091=:o4}r06`?6=:r79?>4:2:?2=1<6?h1v?;j:181844:3?970?65;34e>{t:04<583=6<9n;|q125<72;q6>>>5539>5<1=9>k0q~<91;296~;5:o0>>63>99823d=z{;<96=4={<01a?3534;257?8a:p635=838p1?7}::;i19?5218`952g515y>6a7=<016>i>5489>6f`=<016>nk5489>6fb=<016>nm5489>6fg=<016>n75489>6fd=<016>h=5489>6`4=<016>h?5489>6`6=<016>ih5489>6ac=<016>ij5489>6ae=<016>il5489>7`e=l?16>;8516c8yv4f=3:1>v3=d0866>;5jl0:;l5rs3a;>5<3s48o=7?71:?1a6<2:2795:4k6:?1fcl:50;0x97b72<801?lk:05b?xu5k>0;69u22e295=7<5;o968<4=3;5>a><5;h>6i;4}r0b7?6=:r79ok4:2:?1ff<6?h1v?m9:18784dn3;3=63=e0866>;51?0o;63=b28g1>{t:h81<704<5;hi6<9n;|q1g0<72=q6>nk5193897c72<801?7::e:897d62m?0q~>63=b`823d=z{;i?6=4;{<0``?7?9279hk4:2:?1=028=j7p}=c283>1}::ji1=5?4=3ff>04<5;3?6i64=3cg>a352z?1gd<2:279n:4>7`9~w7e6290?w0;5lj0>>63=928g<>;5i00o96s|28f94?4|5;i268<4=3`5>41f3ty9o=4?:5y>6f?=91;01?jm:40897?42m=01?o8:e78yv4>n3:1>v3=cc866>;5j10:;l5rs3a1>5<3s48hn7?71:?1`a<2:279594k7:?1ego:50;0x97db2=h01?l;:05b?xu5jo0;6?u22cg9573<5;hm6<9n;|q1f7<72:q6>oj54c9>6g2=o<516c8yv4e=3:1?v3=be8260=::k>1=5=4=3`6>41f3ty9n=4?:2y>6ge=o<54c9>6g6=9>k0q~8522c095=5<5;h86<9n;|q1e`<72:q6>ol54c9>6g6=lk516c8yv4e93:1?v3=bc8260=::k:1=5=4=3`2>41f3ty9mn4?:2y>6gg=lk54c9>6de=9>k0q~8522`g95=5<5;km6<9n;|q1ed<72:q6>o754c9>6de=lo516c8yv4fl3:1?v3=b88260=::hi1=5=4=3cg>41f3ty9m54?:2y>6g>=lo54c9>6d>=9>k0q~8522`c95=5<5;ki6<9n;|q1e3<72:q6>o954c9>6d>=l8516c8yv4f13:1?v3=b68260=::h21=5=4=3c:>41f3ty9m:4?:2y>6g0=9;?01?o9:0:0?84f?3;;<3;g?b234;3n7j9;<0;7?b?349nm7:?;|q1`=<72h?5193894>c2m?01<6l:e4897>42m=01>kn:2d8yv4c?3:19v3=e182<4=:91o1h85219f9`3=::181h5523dc97`=z{;n=6=4:{<0gb?7?927:4k4k5:?2<`2794?4k7:?0ad<4l2wx>i;50;7x97bb282:70?60;f6?87?n3n=70<71;f;?85bi39h7p}=d583>0}::mn1=5?4=0;2>a3<583;6i84=3:2>a1<5:oj6>l4}r0g7?6==r79hn4>809>5<4=l<16=4?5d79>6=6=l116?ho53`9~w7b5290?w0;61;0o:63=818g3>;4mh0856s|27a94?4|5;41f3ty9:o4?:6y>63d=91;01?8n:e4897162m=01?8k:e5897002m=01?89:e:897022m20q~<99;296~;5>10>>63=6`823d=z{;<36=48{<05279:i4k6:?122279:;4k7:?120:>50;1x970a2<801?8j:408971628=j7p}=6d83>7}::?o1=5?4=352>a352cy>733=<016?;:5489>734=<016?;?5489>735=<016?;>5489>70`=<016?8j5489>70e=<016?8k5489>724=<016?:>5489>727=<016?:=5489>722=<016?:95489>723=<016?:85489>72>=<016?:75489>7=0=<016?5:5489>7=3=<016?595489>7=>=<016?5l5489>7=?=<016?5o5489>7=e=<016?5j5489>7d7=<016?l>5489>7<`=<016?4k5489>77777g=9>k01><=:e:896cf2=:37p}<3583>7}:;??19?52342952gn7>54z?020<60816?:75539>74`=l<16?8?5d49~w6542909w0=94;71?853n3;;<14734==;16?9j516c8yv5203:18v3<6382<4=:;><19?5230g9`2=:;=81h85rs213>5<5s49==7;=;<17g?70i2wx?8950;6x9606282:70=85;71?856l3n>70=;0;f6?xu4;;0;6?u2371917=:;=o1=:o4}r16=?6=4>809>721==;16?712=l<1v>{t;<<1<7:t=243>4>6349<87;=;<12`?b03498i7j:;|q06`<72;q6?8h5539>71g=9>k0q~=:5;290~;4=o0:4<52361917=:;8i1h85232a9`0=z{:8h6=4={<16`?35349?47?8a:p705=83>p1>;k:0:2?85093?970=>b;f5?85403n>7p}<2c83>7}:;>7>54z?01f<60816?:>5539>74d=l<16?>85d49~w64c2909w0=:e;71?85313;;<146?35349:o7j8;<10e?b23ty8884?:3y>706=v3<518260=:;<;1=:o4}r177?6=;r788k4;b:?000<3j2788>4>7`9~w6212908w0=;f;311>;4<<0:4>52354952g53z?00`<3j2788>4;b:?004<6?h1v>:;:180853m3;9963<4282<6=:;=>1=:o4}r10b?6=;r788i4;b:?004<3j278?k4>7`9~w6252908w0=;d;311>;4<80:4>52350952g53z?00f<3j278?k4;b:?07a<6?h1v>:?:180853k3;9963<3g82<6=:;=:1=:o4}r10f?6=;r788o4;b:?07a<3j278?o4>7`9~w65b2908w0=;b;311>;4;m0:4>5232g952g53z?00d<3j278?o4;b:?07<<6?h1v>=l:180853i3;9963<3c82<6=:;:i1=:o4}r103?6=;r78844;b:?07<<3j278?:4>7`9~w65f2908w0=;9;311>;4;00:4>5232c952g53z?00=<3j278?:4;b:?070<6?h1v>=7:18085303;9963<3682<6=:;:21=:o4}r102?6=;r788:4>249>763=91901>=9:05b?xu4>10;6>u236095=7<5:2=68<4=225>a153z?035<60816?5:5539>753=l<1v>88:18085093;3=63<84866>;48<0o:6s|37;94?5|5:=86<6>;<1;3?35349;:7j:;|q02d<72:q6?::5193896>?2<801>>8:e58yv51l3:1?v3<7682<4=:;1h19?5231:9`0=z{:6}:;>21=5?4=2:`>04<5::26i94}r15b?6=;r78;44>809>7=b==;16?=75d49~w61d2908w0=76;3;5>;41h0>>63=f28g3>{t;>k1<7=t=2:7>4>6349247;=;<0e6?b23ty8;o4?:2y>7=3=91;01>76:40897`52m<0q~=8d;297~;40>0:4<5238`917=::o91h85rs25f>5<4s49347?71:?0=f<2:279j94k7:p7=7=839p1>6m:0:2?85>n3?970u239;95=7<5:3o68<4=3d7>a353z?06c3=l>1v>6=:18085?k3;3=63;5n?0o;6s|39194?5|5:2o6<6>;<1b5?35348m:7j:;|q0=3<72=q6?l>5193894?32m?01<7<:e4896cf2:<0q~=65;290~;41o0:4<521879`0=:90>1h;523dc970=z{:3?6=4;{<1:a?7?927:5;4k5:?2=0278il4<4:p7<5=83>p1>7k:0:2?87>?3n>70?66;f5?85bi3987p}<9383>1}:;0i1=5?4=0;;>a3<583<6i84=2gb>6454z?0=g<60816=475d49>5<>=l?16?ho5309~w6?7290?w0=6a;3;5>;61h0o963>988g2>;4mh08<6s|39d94?2|5:326<6>;<3:f?b234;2m7j9;<1fe?4a3ty84h4?:2y>7<>=91;01<7m:e4896cf2;o0q~=je;2960}:;kl184523cg90<=:;kn184523ca90<=:;kh184523cc90<=:;k2184523c590<=:;k<184523c790<=:;k>184523c190<=:;k8184523c390<=:;k:184523`d90<=:;hn184523`a90<=:;hh184523`c90<=:;h3184523`:90<=:;h=184523`490<=:;h?184523`690<=:;j?184523b690<=:;j9184523b090<=:;j;184523b290<=:;k3184523`g90<=:;h9184523`090<=::?=1=:o4}r1f6?6=:r78nk4:2:?0adkn:c:8yv5b83:1>v3;4mh0i:6s|3ed94?4|5:hh68<4=2gb>g252z?0fg<2:278il4m3:p7ab=838p1>ln:40896cf2k80q~=kb;296~;4j10>>63{t;mk1<704<5:oj6o>4}r1g=?6=:r78n;4:2:?0adkn:b78yv5c?3:1>v3;4mh0ji6s|3e494?4|5:h868<4=2gb>db52z?0f7<2:278il4nc:p7a2=838p1>l>:40896cf2hh0q~=k3;296~;4j90>>63{t;m81<704<5:oj6l64}r1g4?6=:r78mi4:2:?0adkn:`48yv5dm3:1>v3;4mh0h86s|3bf94?4|5:kj68<4=2gb>d352z?0e<<2:278il4n4:p7fd=838p1>o7:40896cf2h90q~=la;296~;4i>0>>63{t;j31<704<5:oj6l?4}r1`kn:cd8yv5b13:1>v3;4mh0ii6s|3d:94?4|5:i?68<4=2gb>f552z?0g6<2:278il4md:p7`0=838p1>m=:40896cf2ki0q~=j5;296~;4k80>>63{t;l>1<704<5:oj6oo4}r1f7?6=:r78n44:2:?0adkn:c78yv5c93:1>v3;4mh0jm6s|3b494?4|5:k968<4=2gb><`52z?0af<6?h16?ho5c`9~w6cc2909w0<6c;f6?841=3;9:6s|17;94?4|58ho6i64=0`a>4413ty::l4?:3y>5g`=l116=om51348yv71j3:1>v3=1g8g<>;59m0:>;5rs04`>5<5s489=7j7;<02a?75>2wv9:<:181[24927?97:<1:&741<6>m1v9:>:181[24827?97:<0:&741<6>l1v9:?:181[25n27?97:=f:&741<6>o1v9=i:181[25m27?97:=e:&741<6?<1v9=j:181[25l27?97:=d:&741<6;<1v9=k:181[25k27?97:=c:&741<6;o1v9=l:181[25j27?97:=b:&741<691v9:n:181[24?27?97:<7:&741<6>81v9:6:181[24>27?97:<6:&741<6>;1v9:7:181[24=27?97:<5:&741<6>:1v9:8:181[24<27?97:<4:&741<6>=1v9:9:181[24;27?97:<3:&741<6><1v9:::181[24:27?97:<2:&741<6>?1v9:;:181[25127?97:=9:&741<6>>1v9=n:181[25027?97:=8:&741<6>11v9k=:181[2b:27?97:j2:&741<6?91v9kj:181[2bm27?97:je:&741<6?81v9h?:181[2a827?97:i0:&741<6?;1v9h8:181[2a?27?97:i7:&741<6?:1v8><:181[37;27?97;?3:&741<6?=1v9?7:181[26027?97:>8:&741<6??1v96j:181[21i27?97:9a:&741<6;?1v96l:181[21127?97:99:&741<6;>1v96m:181[21027?97:98:&741<6;11v96n:181[21?27?97:97:&741<6;01v966:181[21>27?97:96:&741<6;h1v967:181[21=27?97:95:&741<6;k1v969:181[21;27?97:93:&741<6;j1v96::181[21:27?97:92:&741<6;m1v96;:181[21927?97:91:&741<6;l1v96<:181[21827?97:90:&741<6<91v96=:181[22n27?97::f:&741<6<81v96>:181[22m27?97::e:&741<6<;1v96?:181[22l27?97::d:&741<6<:1v99i:181[22k27?97::c:&741<6<=1v99j:181[22j27?97::b:&741<6<<1v99k:181[22i27?97::a:&741<61v99n:181[22?27?97::7:&741<6<11v996:181[22>27?97::6:&741<6<01v997:181[22=27?97::5:&741<6:181[21k27?97:9c:&741<6=>1v97?:181[21j27?97:9b:&741<6=11v96i:181[21<27?97:94:&741<6=01v968:181[22127?97::9:&741<6=h1v99l:181[23m27?97:;e:&741<6=k1v99>:181[23l27?97:;d:&741<6=j1v978:181[2>?27?97:67:&741<6=m1v97k:181[2>l27?97:6d:&741<6=l1vqc7i3;296~N38<1vb4h;:181M27=2we5k;50;0xL1623td2j;4?:3yK05352zJ740=zf0l36=4={I631>{i1o31<7nh0;6?uG4178yk?aj3:1>vF;049~j<`d2909wE:?5:m=cb=838pD9>:;|l:b`<72;qC8=;4}o;eb?6=:rB?<85rn`23>5<5sA>;96saa1394?4|@=:>7p`n0383>7}O<9?0qco?3;296~N38<1vbl>;:181M27=2wem=;50;0xL1623tdj<;4?:3yK05352zJ740=zfh:36=4={I631>{ii931<7vF;049~jd6d2909wE:?5:me5b=838pD9>:;|lb4`<72;qC8=;4}oc3b?6=:rB?<85rn`33>5<5sA>;96saa0394?4|@=:>7p`n1383>7}O<9?0qco>3;296~N38<1vbl?;:181M27=2wem<;50;0xL1623tdj=;4?:3yK05352zJ740=zfh;36=4={I631>{ii831<7vF;049~jd7d2909wE:?5:me4b=838pD9>:;|lb5`<72;qC8=;4}oc2b?6=:rB?<85rn`03>5<5sA>;96saa3394?4|@=:>7p`n2383>7}O<9?0qco=3;296~N38<1vbl<;:181M27=2wem?;50;0xL1623tdj>;4?:3yK05352zJ740=zfh836=4={I631>{ii;31<7vF;049~jd4d2909wE:?5:me7b=838pD9>:;|lb6`<72;qC8=;4}oc1b?6=:rB?<85rn`13>5<5sA>;96sa84d94?7|@=:>7p`79e83>4}O<9?0qc66e;295~N38<1vb57i:182M27=2we4l>50;3xL1623td3m<4?:0yK0537>51zJ740=zf1k86=4>{I631>{i0h>1<7?tH526?xh?i<0;6f>3:1=vF;049~j=g0290:wE:?5:m=83;pD9>:;|l;e<<728qC8=;4}o:be?6=9rB?<85rn9ca>5<6sA>;96sa8`a94?7|@=:>7p`7ae83>4}O<9?0qc6ne;295~N38<1vb5oi:182M27=2we4o>50;3xL1623td3n<4?:0yK0537>51zJ740=zf1h86=4>{I631>{i0k>1<7?tH526?xh?j<0;6e>3:1=vF;049~j=d0290:wE:?5:m=83;pD9>:;|l;f<<728qC8=;4}o:ae?6=9rB?<85rn9`a>5<6sA>;96sa8ca94?7|@=:>7p`7be83>4}O<9?0qc6me;295~N38<1vb5li:182M27=2we4n>50;3xL1623td3o<4?:0yK0537>51zJ740=zf1i86=4>{I631>{i0j>1<7?tH526?xh?k<0;6d>3:1=vF;049~j=e0290:wE:?5:m=83;pD9>:;|l;g<<728qC8=;4}o:`e?6=9rB?<85rn9aa>5<6sA>;96sa8ba94?7|@=:>7p`7ce83>4}O<9?0qc6le;295~N38<1vb5mi:182M27=2we4i>50;3xL1623td3h<4?:0yK0537>51zJ740=zf1n86=4>{I631>{i0m>1<7?tH526?xh?l<0;6c>3:1=vF;049~j=b0290:wE:?5:m=83;pD9>:;|l;`<<728qC8=;4}o:ge?6=9rB?<85rn9fa>5<6sA>;96sa8ea94?7|@=:>7p`7de83>4}O<9?0qc6ke;295~N38<1vb5ji:182M27=2we4h>50;3xL1623td3i<4?:0yK0537>51zJ740=zf1o86=4>{I631>{i0l>1<7?tH526?xh?m<0;6b>3:1=vF;049~j=c0290:wE:?5:m<`>=83;pD9>:;|l;a<<728qC8=;4}o:fe?6=9rB?<85rn9ga>5<6sA>;96sa8da94?7|@=:>7p`7ee83>4}O<9?0qc6je;295~N38<1vb5ki:182M27=2we4k>50;3xL1623td3j<4?:0yK0537>51zJ740=zf1l86=4>{I631>{i0o>1<7?tH526?xh?n<0;6a>3:1=vF;049~j=`0290:wE:?5:m=83;pD9>:;|l;b<<728qC8=;4}o:ee?6=9rB?<85rn9da>5<6sA>;96sa8ga94?7|@=:>7p`7fe83>4}O<9?0qc6ie;295~N38<1vb5hi:182M27=2we5=>50;3xL1623td2<<4?:0yK0537>51zJ740=zf0:86=4>{I631>{i19>1<7?tH526?xh>8<0;63:1=vF;049~j<60290:wE:?5:m=5>=83;pD9>:;|l:4<<728qC8=;4}o;3e?6=9rB?<85rn82a>5<6sA>;96sa91a94?7|@=:>7p`60e83>4}O<9?0qc7?e;295~N38<1vb4>i:182M27=2we5<>50;3xL1623td2=<4?:0yK0537>51zJ740=zf0;86=4>{I631>{i18>1<7?tH526?xh>9<0;63:1=vF;049~j<70290:wE:?5:m=4>=83;pD9>:;|l:5<<728qC8=;4}o;2e?6=9rB?<85rn83a>5<6sA>;96sa90a94?7|@=:>7p`61e83>4}O<9?0qc7>e;295~N38<1vb4?i:182M27=2we5?>50;3xL1623td2><4?:0yK0537>51zJ740=zf0886=4>{I631>{i1;>1<7?tH526?xh>:<0;63:1=vF;049~j<40290:wE:?5:m=7>=83;pD9>:;|l:6<<728qC8=;4}o;1e?6=9rB?<85rn80a>5<6sA>;96sa93a94?7|@=:>7p`62e83>4}O<9?0qc7=e;295~N38<1vb4>50;3xL1623td2?<4?:0yK0537>51zJ740=zf0986=4>{I631>{i1:>1<7?tH526?xh>;<0;63:1=vF;049~j<50290:wE:?5:m=6>=83;pD9>:;|l:7<<728qC8=;4}o;0e?6=9rB?<85rn81a>5<6sA>;96sa92a94?7|@=:>7p`63e83>4}O<9?0qc750;3xL1623td28<4?:0yK0537>51zJ740=zf0>86=4>{I631>{i1=>1<7?tH526?xh><<0;63:1=vF;049~j<20290:wE:?5:m=1>=83;pD9>:;|l:0<<728qC8=;4}o;7e?6=9rB?<85rn86a>5<6sA>;96sa95a94?7|@=:>7p`64e83>4}O<9?0qc7;e;295~N38<1vb4:i:182M27=2we58>50;3xL1623td29<4?:0yK053>7>51zJ740=zf0?86=4>{I631>{i1<>1<7?tH526?xh>=<0;63:1=vF;049~j<30290:wE:?5:m=0>=83;pD9>:;|l:1<<728qC8=;4}o;6e?6=9rB?<85rn87a>5<6sA>;96sa94a94?7|@=:>7p`65e83>4}O<9?0qc7:e;295~N38<1vb4;i:182M27=2we5;>50;3xL1623td2:<4?:0yK0537>51zJ740=zf0<86=4>{I631>{i1?>1<7?tH526?xh>><0;63:1=vF;049~j<00290:wE:?5:m=3>=83;pD9>:;|l:2<<728qC8=;4}o;5e?6=9rB?<85rn84a>5<6sA>;96sa97a94?7|@=:>7p`66e83>4}O<9?0qc79e;295~N38<1vb48i:182M27=2we5:>50;3xL1623td2;<4?:0yK0537>51zJ740=zf0=86=4>{I631>{i1>>1<7?tH526?xh>?<0;63:1=vF;049~j<10290:wE:?5:m=2>=83;pD9>:;|l:3<<728qC8=;4}o;4e?6=9rB?<85rn85a>5<6sA>;96sa96a94?7|@=:>7p`67e83>4}O<9?0qc78e;295~N38<1vb49i:182M27=2we55>50;3xL1623td24<4?:0yK0537>51zJ740=zf0286=4>{I631>{i11>1<7?tH526?xh>0<0;63:1=vF;049~j<>0290:wE:?5:m==>=83;pD9>:;|l:<<<728qC8=;4}o;;e?6=9rB?<85rn8:a>5<6sA>;96sa99a94?7|@=:>7p`68e83>4}O<9?0qc77e;295~N38<1vb46i:182M27=2we54>50;3xL1623td25<4?:0yK0537>51zJ740=zf0386=4>{I631>{i10>1<7?tH526?xh>1<0;6>3:1=vF;049~j=83;pD9>:;|l:=<<728qC8=;4}o;:e?6=9rB?<85rn8;a>5<6sA>;96sa98a94?7|@=:>7p`69e83>4}O<9?0qc76e;295~N38<1vb47i:182M27=2we5l>50;3xL1623td2m<4?:0yK0537>51zJ740=zf0k86=4>{I631>{i1h>1<7?tH526?xh>i<0;63:1=vF;049~j=83;pD9>:;|l:e<<728qC8=;4}o;be?6=9rB?<85rn8ca>5<6sA>;96sa9`a94?7|@=:>7p`6ae83>4}O<9?0qc7ne;295~N38<1vb4oi:182M27=2we5o>50;3xL1623td2n<4?:0yK0537>51zJ740=zf0h86=4>{I631>{i1k>1<7?tH526?xh>j<0;63:1=vF;049~j=83;pD9>:;|l:f<<728qC8=;4}o;ae?6=9rB?<85rn8`a>5<6sA>;96sa9ca94?7|@=:>7p`6be83>4}O<9?0qc7me;295~N38<1vb4li:182M27=2we5n>50;3xL1623td2o<4?:0yK0537>51zJ740=zf0i86=4>{I631>{i1j>1<7?tH526?xh>k<0;63:1=vF;049~j=83;pD9>:;|l:g<<728qC8=;4}o;`e?6=9rB?<85rn8aa>5<6sA>;96sa9ba94?7|@=:>7p`6ce83>4}O<9?0qc7le;295~N38<1vb4mi:182M27=2we5i>50;3xL1623td2h<4?:0yK0537>51zJ740=zf0n86=4>{I631>{i1m>1<7?tH526?xh>l<0;63:1=vF;049~j=83;pD9>:;|l:`<<728qC8=;4}o;ge?6=9rB?<85rn8fa>5<6sA>;96sa9ea94?7|@=:>7p`6de83>4}O<9?0qc7ke;295~N38<1vb4ji:182M27=2we5h>50;3xL1623td2i<4?:0yK0537>51zJ740=zf0o86=4>{I631>{i1l>1<7?tH526?xh>m<0;63:1=vF;049~j=83;pD9>:;|l:a<<728qC8=;4}o;fe?6=9rB?<85rn8ga>5<6sA>;96sa9da94?7|@=:>7p`6ee83>4}O<9?0qc7je;295~N38<1vb4ki:182M27=2we5k>50;3xL1623td2j<4?:0yK0537>51zJ740=zutwKLNumc78;2d33k=9vLMLt0|BCT~{GH \ No newline at end of file diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v index 32de19e8a..531d56c08 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v @@ -63,7 +63,7 @@ output full; // synthesis translate_off - FIFO_GENERATOR_V4_4 #( + FIFO_GENERATOR_V4_3 #( .C_COMMON_CLOCK(0), .C_COUNT_TYPE(0), .C_DATA_COUNT_WIDTH(10), diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.veo b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.veo new file mode 100644 index 000000000..cd949ccaa --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.veo @@ -0,0 +1,52 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2007 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The following must be inserted into your Verilog file for this +// core to be instantiated. Change the instance name and port connections +// (in parentheses) to your own signal names. + +//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG +fifo_xlnx_512x36_2clk_18to36 YourInstanceName ( + .din(din), // Bus [17 : 0] + .rd_clk(rd_clk), + .rd_en(rd_en), + .rst(rst), + .wr_clk(wr_clk), + .wr_en(wr_en), + .almost_full(almost_full), + .dout(dout), // Bus [35 : 0] + .empty(empty), + .full(full)); + +// INST_TAG_END ------ End INSTANTIATION Template --------- + +// You must compile the wrapper file fifo_xlnx_512x36_2clk_18to36.v when simulating +// the core, fifo_xlnx_512x36_2clk_18to36. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco index 05ceffbe9..12b88da39 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco @@ -1,7 +1,7 @@ ############################################################## # # Xilinx Core Generator version K.39 -# Date: Fri Jul 30 20:43:00 2010 +# Date: Tue Aug 10 23:12:53 2010 # ############################################################## # @@ -32,7 +32,7 @@ SET verilogsim = true SET vhdlsim = false # END Project Options # BEGIN Select -SELECT Fifo_Generator family Xilinx,_Inc. 4.4 +SELECT Fifo_Generator family Xilinx,_Inc. 4.3 # END Select # BEGIN Parameters CSET almost_empty_flag=false @@ -78,5 +78,5 @@ CSET write_data_count=false CSET write_data_count_width=10 # END Parameters GENERATE -# CRC: 9b689ee4 +# CRC: 6866170 diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.lso b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.lso new file mode 100644 index 000000000..f1a6f7899 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.lso @@ -0,0 +1,3 @@ +blkmemdp_v6_2 +blk_mem_gen_v2_6 +fifo_generator_v4_3 diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt new file mode 100644 index 000000000..f718bb394 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt @@ -0,0 +1,102 @@ + + + + + + +
+ + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+
+ + + +
+
+
+
+
+
+
+
+ + + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + +
+
+
+
+
+ + + +
+ + + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_flist.txt b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_flist.txt new file mode 100644 index 000000000..18ba3e664 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_flist.txt @@ -0,0 +1,8 @@ +# Output products list for +fifo_xlnx_512x36_2clk_18to36.ngc +fifo_xlnx_512x36_2clk_18to36.v +fifo_xlnx_512x36_2clk_18to36.veo +fifo_xlnx_512x36_2clk_18to36.xco +fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt +fifo_xlnx_512x36_2clk_18to36_flist.txt +fifo_xlnx_512x36_2clk_18to36_xmdf.tcl diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_readme.txt b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_readme.txt new file mode 100644 index 000000000..e0d45849d --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_readme.txt @@ -0,0 +1,39 @@ +The following files were generated for 'fifo_xlnx_512x36_2clk_18to36' in directory +/home/matt/fpgapriv/usrp2/coregen/: + +fifo_xlnx_512x36_2clk_18to36.ngc: + Binary Xilinx implementation netlist file containing the information + required to implement the module in a Xilinx (R) FPGA. + +fifo_xlnx_512x36_2clk_18to36.v: + Verilog wrapper file provided to support functional simulation. + This file contains simulation model customization data that is + passed to a parameterized simulation model for the core. + +fifo_xlnx_512x36_2clk_18to36.veo: + VEO template file containing code that can be used as a model for + instantiating a CORE Generator module in a Verilog design. + +fifo_xlnx_512x36_2clk_18to36.xco: + CORE Generator input file containing the parameters used to + regenerate a core. + +fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt: + Please see the core data sheet. + +fifo_xlnx_512x36_2clk_18to36_flist.txt: + Text file listing all of the output files produced when a customized + core was generated in the CORE Generator. + +fifo_xlnx_512x36_2clk_18to36_readme.txt: + Text file indicating the files generated and how they are used. + +fifo_xlnx_512x36_2clk_18to36_xmdf.tcl: + ISE Project Navigator interface file. ISE uses this file to determine + how the files output by CORE Generator for the core can be integrated + into your ISE project. + + +Please see the Xilinx CORE Generator online help for further details on +generated files and how to use them. + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_xmdf.tcl b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_xmdf.tcl new file mode 100644 index 000000000..f20d53f64 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_xmdf.tcl @@ -0,0 +1,68 @@ +# The package naming convention is _xmdf +package provide fifo_xlnx_512x36_2clk_18to36_xmdf 1.0 + +# This includes some utilities that support common XMDF operations +package require utilities_xmdf + +# Define a namespace for this package. The name of the name space +# is _xmdf +namespace eval ::fifo_xlnx_512x36_2clk_18to36_xmdf { +# Use this to define any statics +} + +# Function called by client to rebuild the params and port arrays +# Optional when the use context does not require the param or ports +# arrays to be available. +proc ::fifo_xlnx_512x36_2clk_18to36_xmdf::xmdfInit { instance } { +# Variable containg name of library into which module is compiled +# Recommendation: +# Required +utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_xlnx_512x36_2clk_18to36 +} +# ::fifo_xlnx_512x36_2clk_18to36_xmdf::xmdfInit + +# Function called by client to fill in all the xmdf* data variables +# based on the current settings of the parameters +proc ::fifo_xlnx_512x36_2clk_18to36_xmdf::xmdfApplyParams { instance } { + +set fcount 0 +# Array containing libraries that are assumed to exist +# Examples include unisim and xilinxcorelib +# Optional +# In this example, we assume that the unisim library will +# be magically +# available to the simulation and synthesis tool +utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library +utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_18to36.ngc +utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_18to36.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_18to36.veo +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_18to36.xco +utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_18to36_xmdf.tcl +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_xlnx_512x36_2clk_18to36 +incr fcount + +} + +# ::gen_comp_name_xmdf::xmdfApplyParams diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ngc b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ngc new file mode 100644 index 000000000..d76e4c3db --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ngc @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.4e +$5ca4g<,[o}e~g`n;"2*413&;$>"9 > %0:?*rjx&Uhk"hffn]{hk~X=88s?;Q=cmi\73rh91$ekb?40493456712:;<=>?01274>6789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123454<80;0=>5>.130?46=AGZ^X7OKDSC?=?699o1:<7GAPTV9twi`Wlg{xtQ{hsgpl9?=878=7<>5IORVP?vugnUna}zv_ujqavnXizyn~y26:1<12>772@D[YY4rne\ahvsqV~c~h}g_ogdeqc;13:5=n5>0;MVPUSS2{nThlzn_bmvjq:>294:>6?9:HLSQQ112922?IR\Y__6IAN<0794;733821CXZ_UU8gkpr;9>0;2<5=2:0254=52@D[YY4KIQC?5?699;196B[[PTV9@JVF480;2<<4338JJUSS2MCI0>?50?30?64=G\^[YY4KOC>05?69<298>>?=;249MKVR\3nbb1=::1<1?6>c3:y9<=>ig575)07<<8;087GAPTV9@LVE4:0;2<<44;MVPUSS2ME[N1=50?3827=11=1=548;;7;B57=1M=138??>;868=56>:23=86796831?<;>586l231EC^ZT;rqkbYa}efTxe|jsi>;>585<231EC^ZT;rqkbYa}efTxe|jsi]bwvcu|521<3<;;88JJUSS2yxdkRhzlm]wlwct`Vdnklzj<983:4><13E^X][[:ecweZeh}g~747>11c9:>JSSX\^1{Qkauc\gjsi|521<364AEFQE96902KOH_O31?:8EABUI58546OKDSC?7;>GCL[K7;364AEFQE9>9i2KOH_O39;2=<>GCL[K75364AEFQF96902KOH_L31?:8EABUJ58546OKDS@?7;>GCL[H7;3o4AEFQF9>=8720MIJ]B=:==>GTQGIT^HI<;CW1<>DR[VCEJB?4C59@E=G53JO:>6MGEBI\HLEBFZOTXT^J2:AJ0>EKCH>0OAEM3:AOV<=DGDGBXYKK159@KWCXOLDN^LZFOO]JJCI03JXNMYKK1:F1?AO13MCJ0=08;EKB8469?2NBM1?>>69GMD:6:7=0HDO312<4?AOF48>556JFA=36>5803MCJ0<;16:FJE979>2NBM1<16:FJE959>2NBM1:16:FJE939>2NBM1816:FJE919>2NBM1616:FJE9?9>2NBN1>17:FJF9776>1OEO2>1?58@LD;9;4<7IGM<01=3>BNJ5;?2:5KIC>21;169GMG:617<0HDL31?58@LD;:94<7IGM<33=3>BNJ5892:5KIC>17;1908;EKA8739?2NBN1<9>69GMG:5?7=0HDL329<4?AOE4;35:6JFB=0=3>BNJ59;245KIC>05?69?2NBN1=>>79GMG:46?1OEO2;>79GMG:26?1OEO29>79GMG:06?1OEO27>79GMG:>6>1OE]O30?;8@LVF480;2:5KIQC?5;189GMUD;;3:5;6JFPC>0:3=CGH6;2:5KO@>24;169GKD:6<730HBO31483:2=CGH6:9384DNC?5;0384DNC?7;01OCO2>3?58@JD;9=4<7IAM<07=3>BHJ5;=2:5KOC>23;12NDN1?17:FLF9476>1OCO2=1?58@JD;:;4<7IAM<31=3>BHJ58?2:5KOC>11;1;08;EMA8719?2NDN1<7>69GKG:517<0HBL32?58@JD;;9427IAM<2394;119:FLTD:6294<7IA_A=3=3>BHXK6;2:5KOQ@?5;1@fdzo:7J=4GOF1?L653@;97D<=;H1;?LHN\YU;<55FNHVS[57?3@DBX]Q?299JJLRWW9937D@FTQ]30==NF@^[S=;7;HLJPUY7>11BBDZ__15:?LHN\Z^JXH94IOKW[5603@DBXR>>7:KMMQY7:>1BBDZP0258MKOSW9><7D@FT^263>OIA]U;::5FNHV\421?2CEEYQ?A69JJLRX8K=0ECG[_1A4?LHN\V:O;6GAIU]3A2=NF@^T7:KMMQY6:>1BBDZP1258MKOSW8><7D@FT^363>OIA]U:::5FNHV\521?2CEEYQ>A69JJLRX9K=0ECG[_0A4?LHN\V;O;6GAIU]2A2=NF@^T=K94IOKW[7603@DBXR<>7:KMMQY5:>1BBDZP2258MKOSW;><7D@FT^063>OIA]U9::5FNHV\621?2CEEYQ=A69JJLRX:K=0ECG[_3A4?LHN\V8O;6GAIU]1A2=NF@^T>K94IOKW[6603@DBXR=>7:KMMQY4:>1BBDZP3258MKOSW:><7D@FT^163>OIA]U8::5FNHV\72168;HLJPZ5>?2CEEYQ2F^X?QC4:NVP60JR\=UG96C\GNL6?HS_KPi0Ald`rWgqwliik2Gbbb|Yesqjkk4;;O3341=I998?7C??459M55343G;:86@>1968J47>;2D:>95A1327?K759=1E=?<;;O3171=I9;>?7C?=559M57033G;9;95A13:7?K751:1E=>:4N0130>H6;8>0B<==4:L27623468J451<2D:?:=4N060?K72;2D::>5A1618J4>43G;2?6@=029M645H50:1E>4=4N220?K56;2D8>>5A3218J6243G9>?6@<629M725;N08KN7UNEVID@AG\INL\GMCDC?1XCX\LE69PVSGKWH=0__XNL^@7?VUUI=1X__L;;U[SA64<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?01]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3457XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:9S_k|umv277=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwY`kVrd~=>?3^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\vaYwf}xTknQwos2341YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW{nT|cz}_fa\|jt789?T^h}zlu306>S7'nxm"h gbz-gim'Drd~R|k_qlwvZadWqey<=>9_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]q`Zvi|{UloRv`r1233ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtXzmU{by|Pgb]{kw6781UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=>PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^uq[uhszVmhSua}0122[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYpzVzexQhc^zlv567:VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT{Qnup\cfYg{:;<>Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_vp\tkruWniTtb|?016\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZquWyd~Ril_ymq4562W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{U|~R~ats]dgZ~hz9:;:R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pws]sjqtXojUsc>?06]Qavsk|88:7X> gsd-vc)`kq$h`fv re]sjqtXj`d7=3<>;T2,cw`)zo%lou lljz,vaYwf}xTnd`32?02?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl?7;463\:$kh!rg-dg}(ddbr$~iQnup\flh;<78:7X> gsd-vc)`kq$h`fv re]sjqtXj`d793<>;T2,cw`)zo%lou lljz,vaYwf}xTnd`36?02?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl?3;463\:$kh!rg-dg}(ddbr$~iQnup\flh;078:7X> gsd-vc)`kq$h`fv re]sjqtXj`d753 gsd-vc)`kq$h`fv re]sjqtXj`dT9?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ9219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^514>S7'nxm"h gbz-gim'{nT|cz}_ckm[=473\:$kh!rg-dg}(ddbr$~iQnup\flhX1;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0104?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789::>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123571<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?2005?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt78999;6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0120670<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<9<8;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34526:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?5358Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678<;9:6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}01256f=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;:S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:==;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123371<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<:?=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm30?03?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb>2:76<]9%l~k }f.e`|+ekcq%yhR~ats]dg949:91^<"i}f/pe+be&jf`t"|k_qlwvZad4:49<6[?/fpe*w`(ojr%oaew/sf\tkruWni783328Q5)`zo$yj"ilx/aoo})ulVzexQhc=4=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`828582_;#j|i.sd,cf~)keas#jPpovq[be;078;7X> gsd-vc)`kq$h`fv re]sjqtXoj622>f:W3+bta&{l$knv!cmi{+wbXxg~ySjmP10d8Q5)`zo$yj"ilx/aoo})ulVzexQhc^02b>S7'nxm"h gbz-gim'{nT|cz}_fa\74`<]9%l~k }f.e`|+ekcq%yhR~ats]dgZ26n2_;#j|i.sd,cf~)keas#jPpovq[beX=8l0Y=!hrg,qb*adp'iggu!}d^rmpwY`kV<:j6[?/fpe*w`(ojr%oaew/sf\tkruWniT;f:W3+bta&{l$knv!cmi{+wbXxg~ySjmP9348Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;878=7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh<0<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo585>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>0:70<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlm783<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8085>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk181279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:06;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi38?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`404996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^211>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV;996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^011>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV9996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^611>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV?996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^411>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV=996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^:11>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV3956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2848512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><3<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0>0=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb64=4956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2808512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><7<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0:0=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6414956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f28<8502_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj>_00;?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;T>?64U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4Y4:11^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1^61<>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:S8<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X>;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]46==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R6=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W08>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0106?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw67888>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0306?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw678:8>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0506?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw678<8>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0706?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw678>8>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0902?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?4;463\:$kh!rg-dg}(ddbr${Qnup\flh;978:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d7>3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`33?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?0;463\:$kh!rg-dg}(ddbr${Qnup\flh;=78:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d7:3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`37?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?<;473\:$kh!rg-dg}(ddbr${Qnup\flhX8;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU:>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR<=0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_203?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\076<]9%l~k }f.e`|+ekcq%|~R~ats]amkY2:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV<9<6[?/fpe*w`(ojr%oaew/vp\tkruWkceS: gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?012263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;=?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234475>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>=269V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567:88=7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01113>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:8>?84U1-dvc(un&mht#mcky-tvZvi|{UiecQwos2341403\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=:>279V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567=;=0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?04312>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:=>n5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r123247X[^:9o6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012554YT_88<7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?014163=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;;?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos23427582_;#j|i.sd,cf~)keas#z|Ppovq[be;878;7X> gsd-vc)`kq$h`fv ws]sjqtXoj6:2?>4U1-dvc(un&mht#mcky-tvZvi|{Ulo1<1219V4*aun'xm#jmw.bnh|*quWyd~Ril<2<14>S7'nxm"h gbz-gim'~xT|cz}_fa?0;473\:$kh!rg-dg}(ddbr${Qnup\cf:26;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k5<5>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh0:0=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm38?3e?P6(o{l%~k!hcy,`hn~({U{by|Pgb]35c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[47a3\:$kh!rg-dg}(ddbr${Qnup\cfY59o1^<"i}f/pe+be&jf`t"y}_qlwvZadW:;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU?=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS8?i;T2,cw`)zo%lou lljz,swYwf}xTknQ91g9V4*aun'xm#jmw.bnh|*quWyd~Ril_63e?P6(o{l%~k!hcy,`hn~({U{by|Pgb];63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn6;2?84U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde?5;413\:$kh!rg-dg}(ddbr${Qnup\cfYf{{ol0?0=6:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfc959:?1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyij2;>348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;=78=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<7<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo5=5>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>;:73<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\773<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT8?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\173<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT:?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\373<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT4?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:76;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>2:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2=>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8682?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:36;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>6:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<29>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86<2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:?6;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]36==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012360=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89::>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012160=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:8>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012760=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:>>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012560=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:<>l5Z0.eqb+ta'nf;"j gs3-vcqa|&XJAR\K_DL\BR@S9;i0Y=!hrg,qb*ak8'xo#j|>.sdtbq)UIDUYHRKA_GUEP4Y6:j1^<"i}f/pe+bj7&{n$k?!rguep*TFEVXOSH@PFVDW5Z4512_;#j|i.sd,ci6)zm%l~< }fvdw+WGJW[OLCXZPEO307>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_GQN[C@c9:<0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`YA[DUMJi?"Io1;?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykPFRO\BCb6%@d:=>=4U1-dvc(un&mg<#|k/fp2*w`pn}%hy|Pfvdw[vrf|lUM_@QIFe002>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_GQN[C@c:$Ce?55Z0.eqb+ta'nf;"j gs3-vcqa|&i~~Qiwgv\wqgsmVLXARHId3/Jj47502_;#j|i.sd,ci6)zm%l~< }fvdw+`kw|pUm{kzPfc04?P6(o{l%~k!hl1,q`*au9'xm{kz elrw}Z`pn}Ub>h5Z0.eqb+ta'nf;"j gs3-vcqa|&of|ywPfvdw[lYhz9:;!re-dvdu)zz~x#n> c`pq}kcs494956[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$ol|}yogw848512_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(khxyuck{<3<1=>S7'nxm"h gm2-va)`zhy%~~z|/b2,gdtuqgo0>0=f:W3+bta&{l$ka>!re-dvdu)zz~x#n> glw{*bk\8T$la< b13d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.enq}(`eR;V"jc|.lq1b>S7'nxm"h gm2-va)`zhy%~~z|/b2,chs&ngP>P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`4*aj}q$laV=R.fop*hu5n2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(ods"jcT4\,div(j{;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&|:0=0=3:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0>2:75<]9%l~k }f.eo4+tc'nxj#||tr-`4*p64;49?6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$z<2<>318Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.t28185j2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(~8U;Sl`k012357d<]9%l~k }f.eo4+tc'nxj#||tr-`4*p6W8Ujbi>?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4Y5Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.t2[6Yffm:;<=?=b:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0]7[dhc89:;=?74U1-dvc(un&mg<#|k/fpbw+tt|z%h="mnrs{maq:76;30Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&ij~waeu>2:7?<]9%l~k }f.eo4+tc'nxj#||tr-`5*efz{seiy2=>3;8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.abvwim}682?h4U1-dvc(un&mg<#|k/fpbw+tt|z%h="ibuy,di^6Z&ng:"`?=f:W3+bta&{l$ka>!re-dvdu)zz~x#n? glw{*bk\9T$la~ bs3d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.enq}(`eR8V"jc|.lq1b>S7'nxm"h gm2-va)`zhy%~~z|/b3,chs&ngP?P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`5*aj}q$laV:R.fop*hu5;2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~86;2?=4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x><0<17>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4:56;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&|:0>0=3:W3+bta&{l$ka>!re-dvdu)zz~x#n? v0>7:7d<]9%l~k }f.eo4+tc'nxj#||tr-`5*p6W9Ujbi>?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4Y6Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t2[7Yffm:;<=?=b:W3+bta&{l$ka>!re-dvdu)zz~x#n? v0]0[dhc89:;=?l4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x>_5]bja6789;9<6[?/fpe*w`(oe:%~i!hr`q-vvrt'jef|=>4U1-dvc(un&mg<#|k/fpbw+tt|z%ym`Qjmqvz[cdXaVey<=>?309V4*aun'xm#jb?.sf,cwgt&{y"|nm^gntqXnkUbSb|?012266=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}8?7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{1368Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkr5:=1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by==4:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmp1433\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d9?:4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov561=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}=986[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at907?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphs1;30Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>3:7e<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2?>^pw6<=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1?12b9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5;5Sz=9:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4;49o6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az878Xz}827X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?7;4d3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw33?]qp7?<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2;>3a8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6?2R|{289V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5?5>n5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}939W{~956[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az8385k2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<7<\vq4>3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw37?0`?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7;3Q}t3;8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp632?m4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:?6Vx>l5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]{kw:76;k0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?5;4f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSua}<3<1e>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1=12`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{6?2?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;=78j7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8385i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=5=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc27>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx75311g9V4*aun'xm#jb?.sf,vuhsz&idycz31?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=0=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?7;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9299o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;=7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5<5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~7;3?i;T2,cw`)zo%l`= }d.psjqt(kfex1611g9V4*aun'xm#jb?.sf,vuhsz&idycz39?3f?P6(o{l%~k!hl1,q`*twf}x$ob{at^22a>S7'nxm"h gm2-va)uxg~y#naznu]25`=R8&myj#|i/fn3*wb(zyd~"m`uov\64c<]9%l~k }f.eo4+tc'{zex!lotlw[67b3\:$kh!rg-dh5(ul&x{by| cnwmpZ26m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY29l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX>8o0Y=!hrg,qb*ak8'xo#~ats-`kphsW>;n7X> gsd-vc)`d9$yh"|nup,gjsi|V2:i6[?/fpe*w`(oe:%~i!}povq+firf}U2>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<2?>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?5;453\:$kh!rg-dh5(ul&x{by| cnwmpZb64;49>6[?/fpe*w`(oe:%~i!}povq+firf}Uo=1=1239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>7:74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;=7897X> gsd-vc)`d9$yh"|nup,gjsi|Vn:0;0=2:W3+bta&{l$ka>!re-qtkru'je~byQk1=5=67=R8&myj#|i/fn3*wb(zyd~"m`uov\`4:?6;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;753<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_102?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[4463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W;8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S><>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_502?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[0463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W?8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S:<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_902?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[<4>3\:$kh!rg-dh5(pz&m|m~ xsuq,g4)di{xrbhz30?0:?P6(o{l%~k!hl1,tv*apiz$|y} c0-`ewt~fl~7=3<6;T2,cw`)zo%l`= xr.etev(p{}y$o gsd-vc)`d9$|~"ixar,twqu(k8%hm|vndv?7;4a3\:$kh!rg-dh5(pz&m|m~ xsuq,g4)`e|r%k`U?]/en5+k6:o1^<"i}f/pe+bj7&~x$kzo|.vqww*e6'ng~t#ib[0_-chu)ez8m7X> gsd-vc)`d9$|~"ixar,twqu(k8%laxv!glY1Y+aj{'gx>k5Z0.eqb+ta'nf;"z| gvcp*rus{&i:#jczx/en_6[)ody%a~/w3?4;443\:$kh!rg-dh5(pz&m|m~ xsuq,g4)q95;5>>5Z0.eqb+ta'nf;"z| gvcp*rus{&i:#{?32?00?P6(o{l%~k!hl1,tv*apiz$|y} c0-u5959::1^<"i}f/pe+bj7&~x$kzo|.vqww*e6';783o5Z0.eqb+ta'nf;"z| gvcp*rus{&i:#{?P1^cm`567888i7X> gsd-vc)`d9$|~"ixar,twqu(k8%}=RTbbz?01226<=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+fguzpdnx1>1289V4*aun'xm#jb?.vp,crgt&~y"m=/bcqv|hb|5;5>45Z0.eqb+ta'nf;"z| gvcp*rus{&i9#no}rxlfp949:01^<"i}f/pe+bj7&~x$kzo|.vqww*e5'jky~t`jt=1=6c=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+bkrp'mfW=S!gl3-i44a3\:$kh!rg-dh5(pz&m|m~ xsuq,g7)`e|r%k`U>]/enw+kt:o1^<"i}f/pe+bj7&~x$kzo|.vqww*e5'ng~t#ib[3_-chu)ez8m7X> gsd-vc)`d9$|~"ixar,twqu(k;%laxv!glY0Y+aj{'gx>k5Z0.eqb+ta'nf;"z| gvcp*rus{&i9#jczx/en_1[)ody%a~<<;T2,cw`)zo%l`= xr.etev(p{}y$o?!y1=2=66=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+s7;97887X> gsd-vc)`d9$|~"ixar,twqu(k;%}=1<1229V4*aun'xm#jb?.vp,crgt&~y"m=/w3?7;443\:$kh!rg-dh5(pz&m|m~ xsuq,g7)q95>5>o5Z0.eqb+ta'nf;"z| gvcp*rus{&i9#{?P0^cm`567888i7X> gsd-vc)`d9$|~"ixar,twqu(k;%}=R?Paof34566:k1^<"i}f/pe+bj7&~x$kzo|.vqww*e5';T>Road123444e3\:$kh!rg-dh5(pz&m|m~ xsuq,g7)q9V9Tmcj?01226g=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+s7X?0003?P6(o{l%~k!hl1,tv*apiz$|y} cnos576<]9%l~k }f.eo4+qu'n}j#y|tr-`khv5:11^<"i}f/pe+bj7&~x$kzo|.vqww*tfeVl~`aQib^k11>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVc9o6[?/fpe*w`(oe:%{!hw`q-svrt'{kfSk{cl^k\kw67898o7X> gsd-vc)`d9$|~"ixar,twqu(zhgTjxbc_h]lv56788;o7X> gsd-vc)`d9$|~"|nm^uq[`hXa8887X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq75<2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex?<;;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw772<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~?>95Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu710>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|?8?7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{7368Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkr?:01^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=2=6f=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1>1_sv1=>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir0<0=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~484T~y<6;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;:78h7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?6;Yu|;30Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPcx>0:7e<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2<>^pw6<=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1:12b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5>5Sz=9:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4<49o6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az808Xz}827X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?2;4d3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw36?]qp7?<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot28>3a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6<2R|{2`9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{6;2?o4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\|jt;978j7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8785i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=1=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc2;>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx793;:7b<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|38?]qp4`<]9%l~k }f.eo4+qu'~zex!lotlw8586n2_;#j|i.sd,ci6){%||cz}/bmvjq:668l0Y=!hrg,qb*ak8'}y#z~ats-`kphs4;4:j6[?/fpe*w`(oe:%{!xpovq+firf}682f:W3+bta&{l$ka>!ws-ttkru'je~by2:>0d8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{<7<2b>S7'nxm"h gm2-sw)pxg~y#naznu>4:4`<]9%l~k }f.eo4+qu'~zex!lotlw8=86m2_;#j|i.sd,ci6){%||cz}/bmvjqY79l1^<"i}f/pe+bj7&~x${}`{r.alqkrX98o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW;;n7X> gsd-vc)`d9$|~"ynup,gjsi|V9:i6[?/fpe*w`(oe:%{!xpovq+firf}U?=h5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T9e:W3+bta&{l$ka>!ws-ttkru'je~byQ7239V4*aun'xm#jb?.vp,suhsz&idyczPd0>3:74<]9%l~k }f.eo4+qu'~zex!lotlw[a7;97897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:0?0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=1=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:36;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;793<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><7<16>S7'nxm"h gm2-sw)pxg~y#naznu]g5919:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl8632??4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?P0338Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3\577<]9%l~k }f.eo4+qu'~zex!lotlw[a7X:;;0Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;T???4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?P4338Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3\177<]9%l~k }f.eo4+qu'~zex!lotlw[a7X>;;0Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;T;??4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?P8308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?4;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54849>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>1<1239V4*aun'xm#jb?.vp,suhsz&idyczPd3>0:74<]9%l~k }f.eo4+qu'~zex!lotlw[a4;<7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn9080=2:W3+bta&{l$ka>!ws-ttkru'je~byQk2=4=67=R8&myj#|i/fn3*rt(yd~"m`uov\`7:06;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm8743<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_102?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[4463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W;8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S><>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_502?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[0463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W?8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S:<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_935?P6(o{l%~k!bel-gkprXaV:::6[?/fpe*w`(elg$hb{{_h]252=R8&myj#|i/lgn+air|VcT==?8;T2,cw`)zo%fi`!kotv\mZ769>1^<"i}f/pe+hcj'me~xRgP1334?P6(o{l%~k!bel-gkprXaV;8=:5Z0.eqb+ta'dof#iazt^k\51703\:$kh!rg-nah)cg|~TeR?:169V4*aun'xm#`kb/emvpZoX9?;<7X> gsd-vc)jmd%ocxzPi^3453=R8&myj#|i/lgn+air|VcT><84U1-dvc(un&gna"j`uu]j[6713\:$kh!rg-nah)cg|~TeR:>6:W3+bta&{l$ahc dnww[lY29?1^<"i}f/pe+hcj'me~xRgP6048Q5)`zo$yj"cjm.flqqYnW>;=7X> gsd-vc)jmd%ocxzPi^:22>S7'nxm"h mdo,`jssW`U2=45Z0.eqb+ta'dof#iazt^ofi9699h1^<"i}f/pe+hcj'me~xRcjm=33:4g<]9%l~k }f.ofi*bh}}Ufi`2>1?3b?P6(o{l%~k!bel-gkprXelg7=?0>a:W3+bta&{l$ahc dnww[hcj4895=l5Z0.eqb+ta'dof#iazt^ofi97368k0Y=!hrg,qb*kbe&ndyyQbel>21;7f3\:$kh!rg-nah)cg|~Tahc317<2e>S7'nxm"h mdo,`jssWdof0<91189V4*aun'xm#`kb/emvpZkbe5;5=45Z0.eqb+ta'dof#iazt^ofi949901^<"i}f/pe+hcj'me~xRcjm=1=5<=R8&myj#|i/lgn+air|Vgna1:1189V4*aun'xm#`kb/emvpZkbe5?5=45Z0.eqb+ta'dof#iazt^ofi909901^<"i}f/pe+hcj'me~xRcjm=5=5<=R8&myj#|i/lgn+air|Vgna161189V4*aun'xm#`kb/emvpZkbe535:h5Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(~hfbh#m|ts-qehjhgyQ;Q#|nm/p,r7Yig`dbx#|nm.fs73~60'xja gsd-vc)uidUyhRka169V4*aun'xm#ob_sgdkprXmg;87X> gsd-vc)uidU|~Rka1e9V4*aun'xm#}{bmi,vaYu{}Ujkh219V4*aun'xm#}{bmi,vaYu{}Ujkh_e314>S7'nxm"h rrvahn)ulVxxxRo|rde\`77d3\:$kh!rg-qwqdkc&xoS}{_bmnf4b<]9%l~k }f.pppgjl'{nT~~zPcnoa54c<]9%l~k }f.pppgjl'{nT~~zPrde?4;7b3\:$kh!rg-qwqdkc&xoS}{_sgd8486m2_;#j|i.sd,vvredb%yhR||t^pfc9499m1^<"i}f/pe+wusjea$~iQ}su]qabY79m1^<"i}f/pe+wusjea$~iQ}su]qabY69m1^<"i}f/pe+wusjea$~iQ}su]qabY59m1^<"i}f/pe+wusjea${Q}su]bwwc`:91^<"i}f/pe+wusjea${Q}su]bwwc`Wm;9<6[?/fpe*w`(zz~i`f!xr^pppZgtzlmTh??l;T2,cw`)zo%yylck.uq[wusWjefnd:W3+bta&{l$~~zmlj-tvZtt|VxnkR>>d:W3+bta&{l$~~zmlj-tvZtt|VxnkR?n;TQFVZGKAHYh7X]JR^TJWLDKM:1]ON74VHGT[Q_WM:1\IL=4WD@a?RTN\LUME_][c:UQMQCXEFNNSLm4WSKWAZKHLLUI=i5WIMKM\(^CJ):%=-][UC"3*4&F[JCB96V@RB[5?]USD@H<7U][_FLG3>^T\V\HOo5W_BMQAZOINF<0TilPIed8\anXX{cfZh||inl24>^ceVGjfb|Yesqjkk773QnfS@gaosTfvvohfj1j``a|t^gntqe3hffc~zPftno2>dfkb{h6lncjws[hguclx87nbdd:fbpdYdg|d$='k;ecweZeh}g~#=$j4d`vb[firf}"9%i5kauc\gjsi|!9"h6jnt`]`kphs =#o7io{a^alqkr/= n0hlzn_bmvjq.1!m1omyoPcnwmp-1.l2njxlQlotlw,=/a3mkmRm`uov?)69gmk.68 =0hd`'10+4?aoi 88";6jfn)30-2=cag":8$94dhl+50/03mce$<8&7:fjj-70!>1oec&>8(58`lh/90#=7iga(3+4?aoi ;:";6jfn)02-2=cag"9>$94dhl+66/03mce$?:&7:fjj-42!>1oec&=6(58`lh/:>#<7iga(3:*3>bnf!82%;5kio*0-2=cag"8<$94dhl+74/03mce$><&7:fjj-54!>1oec&<4(58`lh/;<#=7iga(5+5?aoi <#=7iga(7+5?aoi >#=7iga(9+5?aoi 0#=7iga<1<4?aoi48:5;6jfn=32:2=cag6:>394dhl?56803mce0<:17:fjj9726>1oec2>6?58`lh;9>4<7iga<0:=3>bnf5;22;5kio>2:2=cag69<394dhl?64803mce0?<17:fjj9446>1oec2=4?58`lh;:<4<7iga<34=3>bnf58<2:5kio>1<;1409;ekm87803mce0>>17:fjj9566>1oec2<2?58`lh;;:4<7iga<26==>bnf59>6=08;ekm8639>2nbb1=16:fjj929>2nbb1;16:fjj909>2nbb1916:fjj9>9>2nbb1717:flqq.7!>1ocxz'1(:8`jss 8:"46j`uu*25,>bh}}":9$64dnww,40.02ndyy&>7(58`jss ;#<7iazt)1*3>bh}}"?%:5kotv+1,199gkpr;9:437iazt=37:==cg|~7=807;emvp9716h1ocxz31683:==cg|~7=:08;emvp979?2ndyy2=>69gkpr;;7=0hb{{<5<4?air|5?5;6j`uu>5:2=cg|~7;394dnww8=803me~x1718:ggmc4iom?0i`~{y208bl`hWnoeio{os]u0Z5+(Qcgecv/CNPF$Bcim{kc.>0/3-467d3ocmcRvcny]657~4>V8h`fQ<6um2<6g`nnfUs`cvP500{73Y5keaT?;z`19.emciXoldn~lz`r^t7[6*|kVbjRgat^aoo86+kVbjR}}su?3(fYulVlyi|3>,b]kevYulVnjxlQlotlw95*dWmceSzgkti?02)eX`hyT{Qkauc\gjsi|4:'oRhzlm]ehdatW{yS{oc=1.`[lkwdlgnbyo{inl\p|vb5;&hSx}j_doaaabblVxnk0>#c^uq[ctby4;'oR{|e^flqqYu{}7: nQznegqbiipWee|1="l_icp[jpbzofd{0>#c^rqaiiflVfjxh`ly<2/gZbh}}U|eizg=0:/gZktofdTzlb21-a\vaYcmy~c1<>=4-a\lduX}gnn~kb`w<2/gZnf{Vkgab}{_gwoh86+kVbjR||t<3/gZbf|hUhcx`{_vkgpm;>$jUcm~Qxr^c`o86+kVxiRklc<2/gZehedeeSnb`cj?3(fYpzVkhgRb`w<2/gZtcWyd~Ryfduj>55*dW|ynSkyit^fbpdYdg|d1="l_icp[djjgz~Ti`~{y<2/gZtcWmkmRm`uov\slbs`4;; nQ`vdpehjqXdf}62-a\twi`Wlg{xtQ{hsgplZhboh~nS{oc=4.`[uthoVof|ywPtipfwmYf{zoyxRxnl<6/gZnf{V|j`dj20-a\twi`Wog`Rzgrdqk[dutm{~Tzlb251;/gjkwggoexR`nmd?emciXpedsS8?=x24\6fjlW:<c<6#c^tbhlbXdf}6T?Rv|t^37?cskd>1bbyQllj:8jbee}`fo46ayesdokrg0|ah_dosp|Ys`{oxd%?&159svjaXmdzuRzgrdqk,7/6<2zycjQjmqvz[qnumzb#?$?;;qplcZcjx}sTxe|jsi*7-42vugnUna}zv_ujqavn/? ;?7}|`g^gntqX|axne&7)068twi`Wlg{xtQ{hsgpl-?.9?1{~biPelrw}Zrozlyc044?>0`8twi`Wlg{xtQ{hsgplZgt{lx$='>b:rqkbYbey~rSyf}erj\evubz}":%vugnUna}zv_ujqavnXizyn~y&8)0`8twi`Wlg{xtQ{hsgplZgt{lx$5'>b:rqkbYbey~rSyf}erj\evubz}"2%vugnUna}zv_ujqavnXflmjxh&:)0`8twi`Wlg{xtQ{hsgplZhboh~n$;'>b:rqkbYbey~rSyf}erj\j`af|l"<%!8n0|ah_dosp|Ys`{oxdR`jg`vf8<<7601{~biPftno56=wzfmTjxbc_ujqavn/8 ;87}|`g^dvhiYs`{oxd%?&129svjaXn|fgSyf}erj+6,743yxdkRhzlm]wlwct`!9"=>5rne\bpjkW}byi~f'4(30?uthoVl~`aQ{hsgpl-3.9:1{~biPftno[qnumzb#:$?<;qplcZ`rdeUdk|h)5*56=wzfmTjxbc_ujqavn/0 ;>7}|`g^dvhiYs`{oxd1650?3b?uthoVl~`aQ{hsgplZgt{lx$='>a:rqkbYa}efTxe|jsi]bwvcu|!;"=l5rne\bpjkW}byi~fParqfvq.5!8k0|ah_gwohZrozlycSl}|esv+7,7f3yxdkRhzlm]wlwct`Vkxh|{(5+2e>vugnUmyabPtipfwmYf{zoyx%;&1`9svjaXn|fgSyf}erj\evubz}"=%vugnUmyabPtipfwmYimnki%?&1`9svjaXn|fgSyf}erj\j`af|l"9%=87<0~iQllj33?wbXlh~jSnaznu*3-464re]geqgXkfex%7&119q`Zbf|hUhcx`{<1<26>tcWmkmRm`uov?=?69=2xoSh`9;sf\vvr43{y;6}miugqv1=tzz~?7y|ze89vjacunee|96xnlhf5?rtXija=7z|Pcmi24>quWmkmRm`uov+4,773~xThlzn_bmvjq.6!8:0{Qkauc\gjsi|!8"==5xr^fbpdYdg|d$>'>0:uq[agsiVidycz'4(33?rtXlh~jSnaznu*6-46<{UomyoPcnwmp-0.991|~Rjnt`]`kphs >#:<6y}_ecweZeh}g~#4$?=;vp\`drfWje~by27:1<6?rtXmg<0{Q}suCDug0k2JKt<4I:582V372=9h654>33`5gd<40?;2wc=mc;38j6dc2=1/?oo53c68yV2b2=9h654>33`5gd<40?;27^?=6;671?6=9:8i:no53942f>U3m3>?97>5120a2fg=;1<:n6j;3g83>4<6sZ?;69=l:98277d1kh084;?6;wV23c<7280:6<8m{R73>15d210:??l9c`80<37>3-9ji7?=7:T0fg<5s|;8=7?4u011>5=z,8=<65<4l391?iuG3`a8^13=:r;;6<65}%3;0?24n2.8n44;3d9j0<3=831b8l750;9l015=831d8>j50;9j0=821d8=:21d8=<21d8=>21d8<750;&23<<3;81e=:657:9l07>=83.:;44;309m52>=021d8?950;&23<<3;81e=:659:9l070=83.:;44;309m52>=i21d8?;50;&23<<3;81e=:65b:9l072=83.:;44;309m52>=k21d8?=50;&23<<3;81e=:65d:9l074=83.:;44;309m52>=m21d8??50;&23<<3;81e=:65f:9l04>=83.:;44;309m52>=9910c9?8:18'52?=<:;0b<97:038?l5bj3:1(<96:52f?k7003:07d=ja;29 41>2=:n7c?88;38?l5b13:1(<96:52f?k7003807d=j8;29 41>2=:n7c?88;18?l5b?3:1(<96:52f?k7003>07d=j6;29 41>2=:n7c?88;78?l5b<3:1(<96:52f?k7003<07d=j3;29 41>2=:n7c?88;58?l5b:3:1(<96:52f?k7003207d=j1;29 41>2=:n7c?88;;8?l5b83:1(<96:52f?k7003k07d=kf;29 41>2=:n7c?88;`8?l5cm3:1(<96:52f?k7003i07d=kd;29 41>2=:n7c?88;f8?l5ck3:1(<96:52f?k7003o07d=kb;29 41>2=:n7c?88;d8?l5c13:1(<96:52f?k7003;;76g!7013>;i6`>79825>=n;m=1<7*>78874`=i9>21=?54i2f5>5<#9>318=k4n05;>45<3`9o97>5$05:>16b3g;<47?;;:k0`1<72-;<57:?e:l23=<6=21b?i=50;&23<<38l1e=:651798m6b5290/=:7541g8j41?28=07d=k1;29 41>2=:n7c?88;3;?>o4l90;6)?89;63a>h6?10:565f3g394?"6?00?j;o34d:9j7`b=83.:;44;0d9m52>=9l10e>kl:18'52?=<9o0b<97:0d8?l5b=3:1(<96:52f?k70038;76g!7013>;i6`>79815>=n;jl1<7*>78874`=i9>21>?54i2af>5<#9>318=k4n05;>75<3`>347>5;c1b`?6=93:1"60=0o?6ak2;29?xd3<3:1m>4>30822g}O;hi0V9;517ya>7b=l38i6?m528824?g=9109m7m52b81`?772m0i6<652c81e?4>2j0j6p*>858707=#9;91h<5+488705=#5<5<5<5<#9>3188j4n05;>4=5<#9>3188j4n05;>6=5<#9>3188j4n05;>0=5<#9>3188j4n05;>2=5<#9>3188j4n05;><=6=44o565>5<5<#9>318l64n05;>4=6=4+16;90d>5<#9>318l64n05;>6=5<#9>318l64n05;>0=5<#9>318l64n05;>2=5<#9>3184:4n05;>5=5<#9>3184:4n05;>7=54o5:f>5<#9>3184:4n05;>1=5<#9>3184:4n05;>3=5<#9>3184:4n05;>==5<#9>318594n05;>5=6=4+16;90=15<#9>318594n05;>7=54i5:1>5<#9>318594n05;>1=5<#9>318594n05;>3=5<#9>318594n05;>==5<#9>31?nm4n05;>5=5<#9>31?nm4n05;>7=54o2a4>5<#9>31?nm4n05;>1=5<#9>31?nm4n05;>3=5<#9>31?nm4n05;>==86=44o51g>5<5<#9>318:=4n05;>4=5<#9>318:=4n05;>6=5<#9>318:=4n05;>0=5<#9>318:=4n05;>2=5<?6=44i2a1>5<5<5<5<5<#9>318>?4n05;>4=5<#9>318>?4n05;>6=5<#9>318>?4n05;>0=5<#9>318>?4n05;>2=5<#9>318>?4n05;><=5<#9>318>?4n05;>g=5<#9>318>?4n05;>a=5<#9>318>?4n05;>c=4;n623?6=,8=269=>;o3432c8io4?:%34=?27m2d:;54?;:k0ad<72-;<57:?e:l23=<632c8i44?:%34=?27m2d:;54=;:k0a=<72-;<57:?e:l23=<432c8i:4?:%34=?27m2d:;54;;:k0a3<72-;<57:?e:l23=<232c8i94?:%34=?27m2d:;549;:k0a6<72-;<57:?e:l23=<032c8i?4?:%34=?27m2d:;547;:k0a4<72-;<57:?e:l23=<>32c8i=4?:%34=?27m2d:;54n;:k0`c<72-;<57:?e:l23=0:9j7a>=83.:;44;0d9m52>=9810e>j8:18'52?=<9o0b<97:008?l5c>3:1(<96:52f?k7003;876g!7013>;i6`>79820>=n;m>1<7*>78874`=i9>21=854i2f0>5<#9>318=k4n05;>40<3`9o>7>5$05:>16b3g;<47?8;:k0`4<72-;<57:?e:l23=<6021b?i>50;&23<<38l1e=:651898m6`6290/=:7541g8j41?28k07d=i0;29 41>2=:n7c?88;3a?>o4mo0;6)?89;63a>h6?10:o65f3dg94?"6?00?j;o34=:810e>mi:18'52?=<9o0b<97:308?l5dm3:1(<96:52f?k70038876g>o3?j0;6)?89;64`>h6?10;76g;7c83>!7013>7982?>o3?h0;6)?89;64`>h6?10976g;7883>!7013>7980?>o3?10;6)?89;64`>h6?10?76g;7683>!7013>7986?>o3??0;6)?89;64`>h6?10=76g;7483>!7013>7984?>o3?=0;6)?89;64`>h6?10376g;6683>!7013>=46`>7983?>o3>?0;6)?89;65<>h6?10:76g;6483>!7013>=46`>7981?>o3>=0;6)?89;65<>h6?10876g;6283>!7013>=46`>7987?>o3>;0;6)?89;65<>h6?10>76g;6083>!7013>=46`>7985?>o3>90;6)?89;65<>h6?10<76g;5g83>!7013>=46`>798;?>o3=l0;6)?89;65<>h6?10276a;4683>>i4km0;66g;8983>>d4j>0;6<4?:1y'5=2=l:1C?o84H2c`?jb52900qo=m8;295?6=8r.:4944?:1y'5=2=kj1C?o84H2c`?M243-;9j7:6a:&f4?4>i6?k0;66sm3`694?5=83:p(<6;:ba8L6d13A9jo6F;3:&26c<31h1/i=4=;h65>5<5;h72>5<858g4>N4j?1C?lm4H518 44a2=3j7)k?:39j03<722c?47>5;h72>5<5<53;294~"60=0ho6F5;|`0=2<72<0;6=u+1969`5=O;k<0D>ol;I60?!75n3>2m6*j0;08m10=831b854?::k65?6=3`;5;n34f?6=3th8m<4?:583>5}#91>1ok5G3c48L6gd3-o;6?5f4783>>o293:17d?8a;29?j70j3:17pl1<729q/=5:5cg9K7g0<@:kh7)k?:39j03<722c>=7>5;h34e?6=3f;5;|`0=c<72=0;6=u+1969gc=O;k<0D>ol;%g3>7=n5;n34f?6=3th8m44?:583>5}#91>1ok5G3c48L6gd3-o;6?5f4783>>o293:17d?8a;29?j70j3:17pl=9483>1<729q/=5:5cg9K7g0<@:kh7)k?:69j03<722c>=7>5;h34e?6=3f;5;|`055<72=0;6=u+1969ga=O;k<0D>ol;%g3>7=n50z&2<15;h6g>5<6=4;:183!7?<3;8<6F>o6?m0;66a>7583>>{e:>>1<7:50;2x 4>3289;7E=m6:J0ef=nl9;I1bg>o3i3:17d;=:188m41c2900c<9;:188yg40:3:187>50z&2<1<6;91C?o84H2c`?l2f2900e8<50;9j52b=831d=::50;9~f716290?6=4?{%3;0?7482B8n;5G3`a8m1g=831b9?4?::k23a<722e:;94?::a6=>=83>1<7>t$0:7>4573A9i:6F>7>5;h34`?6=3f;<87>5;|`1<2<72=0;6=u+1969566<@:h=7E=nc:k7e?6=3`?96=44i05g>5<858275=O;k<0D>ol;h6b>5<>1<75rb3:6>5<3290;w)?74;304>N4j?1C?lm4i5c94?=n=;0;66g>7e83>>i6?=0;66sm29694?2=83:p(<6;:013?M5e>2B8mn5f4`83>>o2:3:17d?8d;29?j70<3:17pl=eg83>1<729q/=5:51228L6d13A9jo6g;a;29?l352900e<9k:188k4132900qo319K7g0<@:kh7d:n:188m04=831b=:j50;9l522=831vn?kk:187>5<7s-;387?<0:J0f3=O;hi0e9o50;9j17<722c:;i4?::m231<722wi>hm50;694?6|,82?6<=?;I1a2>N4ij1b8l4?::k66?6=3`;5;n340?6=3th9io4?:583>5}#91>1=>>4H2`5?M5fk2c?m7>5;h71>5<5<7>54;294~"60=0:?=5G3c48L6gd3`>j6=44i4094?=n9>n1<75`16694?=zj:::6=4;:183!7?<3;8<6F>o6?m0;66a>7583>>{e;9:1<7:50;2x 4>3289;7E=m6:J0ef=nl9;I1bg>o3i3:17d;=:188m41c2900c<9;:188yg4am3:187>50z&2<1<6;91C?o84H2c`?l2f2900e8<50;9j52b=831d=::50;9~f4g0290?6=4?{%3;0?ec3A9i:6F=6=44i5f94?=n=80;66a>7c83>>{e9h<1<7:50;2x 4>32jn0D>l9;I1bg>"b8380e9850;9j0a<722c>=7>5;n34f?6=3th:m84?:583>5}#91>1oi5G3c48L6gd3-o;6?5f4783>>o3l3:17d;>:188k41e2900qo?n4;290?6=8r.:494ld:J0f3=O;hi0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0c0>5<3290;w)?74;ag?M5e>2B8mn5+e181?l212900e9j50;9j14<722e:;o4?::a5d4=83>1<7>t$0:7>fb<@:h=7E=nc:&f4?4>o293:17b?8b;29?xd6i80;694?:1y'5=2=km1C?o84H2c`?!c72;1b8;4?::k7`?6=3`?:6=44o05a>5<54;294~"60=0hh6F6g;6;29?l2c2900e8?50;9l52d=831vn<7i:187>5<7s-;387mk;I1a2>N4ij1/i=4=;h65>5<>i6?k0;66sm21g94?2=83:p(<6;:bf8L6d13A9jo6*j0;08m10=831b8i4?::k65?6=3f;5;|`14a<72=0;6=u+1969ga=O;k<0D>ol;%g3>7=n50z&2<15;h6g>5<=o50;694?6|,82?6nj4H2`5?M5fk2.n<7<4i5494?=n1<729q/=5:5ce9K7g0<@:kh7)k?:39j03<722c?h7>5;h72>5<858``>N4j?1C?lm4$d296>o3>3:17d:k:188m07=831d=:l50;9~f760290?6=4?{%3;0?ec3A9i:6F=6=44i5f94?=n=80;66a>7c83>>{e:9<1<7:50;2x 4>32jn0D>l9;I1bg>"b8380e9850;9j0a<722c>=7>5;n34f?6=3th99;4?:583>5}#91>1oi5G3c48L6gd3-o;6?5f4783>>o3l3:17d;>:188k41e2900qo<:5;290?6=8r.:494ld:J0f3=O;hi0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb377>5<3290;w)?74;ag?M5e>2B8mn5+e181?l212900e9j50;9j14<722e:;o4?::a605=83>1<7>t$0:7>fb<@:h=7E=nc:&f4?4>o293:17b?8b;29?xd5=;0;694?:1y'5=2=km1C?o84H2c`?!c72;1b8;4?::k7`?6=3`?:6=44o05a>5<=7>54;294~"60=0hh6F6g;6;29?l2c2900e8?50;9l52d=831vn?;?:187>5<7s-;387mk;I1a2>N4ij1/i=4=;h65>5<>i6?k0;66sm25d94?2=83:p(<6;:bf8L6d13A9jo6*j0;08m10=831b8i4?::k65?6=3f;5;|`10`<72=0;6=u+1969ga=O;k<0D>ol;%g3>7=n50z&2<15;h6g>5<f183>1<729q/=5:5ce9K7g0<@:kh7)k?:39j03<722c?h7>5;h72>5<858``>N4j?1C?lm4$d296>o3>3:17d:k:188m07=831d=:l50;9~f4cb290?6=4?{%3;0?ec3A9i:6F=6=44i5f94?=n=80;66a>7c83>>{e9ln1<7:50;2x 4>32jn0D>l9;I1bg>"b8380e9850;9j0a<722c>=7>5;n34f?6=3th:in4?:583>5}#91>1oi5G3c48L6gd3-o;6?5f4783>>o3l3:17d;>:188k41e2900qo?jb;290?6=8r.:494ld:J0f3=O;hi0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb367>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb360>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb361>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb362>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb363>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb31e>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb31f>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb31g>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb31`>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0g2>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0g3>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0fe>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0ff>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0fg>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0f`>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0fa>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0fb>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0f:>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0f;>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0ag>5<3290;w)?74;ag?M5e>2B8mn5+e181?l212900e9j50;9j14<722e:;o4?::a5fe=83>1<7>t$0:7>fb<@:h=7E=nc:&f4?4>o293:17b?8b;29?xd6kk0;694?:1y'5=2=km1C?o84H2c`?!c72;1b8;4?::k7`?6=3`?:6=44o05a>5<54;294~"60=0hh6F6g;6;29?l2c2900e8?50;9l52d=831vn5<7s-;387mk;I1a2>N4ij1/i=4=;h65>5<>i6?k0;66sm1b:94?2=83:p(<6;:bf8L6d13A9jo6*j0;08m10=831b8i4?::k65?6=3f;5;|`2g2<72=0;6=u+1969ga=O;k<0D>ol;%g3>7=n3:187>50z&2<15;h6g>5<6=4;:183!7?<3io7E=m6:J0ef=#m9097d:9:188m1b=831b9<4?::m23g<722wi=n:50;694?6|,82?6nj4H2`5?M5fk2.n<7<4i5494?=n1<729q/=5:5ce9K7g0<@:kh7)k?:39j03<722c?h7>5;h72>5<858``>N4j?1C?lm4$d296>o3>3:17d:k:188m07=831d=:l50;9~f757290?6=4?{%3;0?ec3A9i:6F=6=44i5f94?=n=80;66a>7c83>>{e:;l1<7:50;2x 4>32jn0D>l9;I1bg>"b8380e9850;9j0a<722c>=7>5;n34f?6=3th9>h4?:583>5}#91>1oi5G3c48L6gd3-o;6?5f4783>>o3l3:17d;>:188k41e2900qo<=d;290?6=8r.:494ld:J0f3=O;hi0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb30`>5<3290;w)?74;ag?M5e>2B8mn5+e181?l212900e9j50;9j14<722e:;o4?::a67d=83>1<7>t$0:7>fb<@:h=7E=nc:&f4?4>o293:17b?8b;29?xd5:h0;694?:1y'5=2=km1C?o84H2c`?!c72;1b8;4?::k7`?6=3`?:6=44o05a>5<7>55;294~"60=0hi6F6g;6;29?l2?2900e9j50;9j14<722e:;o4?::a6a7=83?1<7>t$0:7>fc<@:h=7E=nc:&f4?4>o3l3:17d;>:188k41e2900qo52:k72?6=3`>36=44i5f94?=n=80;66a>7c83>>{e:jo1<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi>nj50;794?6|,82?6nk4H2`5?M5fk2.n<7<4i5494?=n<10;66g;d;29?l362900c<9m:188yg4dk3:197>50z&2<15;h6;>5<>i6?k0;66sm2bc94?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0o<6F6=4?{%3;0?eb3A9i:6F=6=44i5:94?=n6<729q/=5:53c78L6d13A9jo6g;a;29?l75<3:17b?84;29?xd5jj0;6>4?:1y'5=2=;k?0D>l9;I1bg>o3i3:17d?=4;29?j70<3:17pl=b383>1<729q/=5:51228L6d13A9jo6g;a;29?l352900e<9k:188k4132900qo50z&2<1<6;91C?o84H2c`?l2f2900e8<50;9j52b=831d=::50;9~f7df29086=4?{%3;0?5e=2B8n;5G3`a8m1g=831b=?:50;9l522=831vn?oj:187>5<7s-;387?<0:J0f3=O;hi0e9o50;9j17<722c:;i4?::m231<722wi>o750;194?6|,82?6>l:;I1a2>N4ij1b8l4?::k261<722e:;94?::a6de=83>1<7>t$0:7>4573A9i:6F>7>5;h34`?6=3f;<87>5;|`1f=<72:0;6=u+19697g3<@:h=7E=nc:k7e?6=3`;987>5;n340?6=3th9ml4?:583>5}#91>1=>>4H2`5?M5fk2c?m7>5;h71>5<5<53;294~"60=08n85G3c48L6gd3`>j6=44i007>5<858275=O;k<0D>ol;h6b>5<>1<75rb3`5>5<4290;w)?74;1a1>N4j?1C?lm4i5c94?=n9;>1<75`16694?=zj;k=6=4;:183!7?<3;8<6F>o6?m0;66a>7583>>{e:k?1<7=50;2x 4>32:h>7E=m6:J0ef=n2583>>i6?=0;66sm2`694?2=83:p(<6;:013?M5e>2B8mn5f4`83>>o2:3:17d?8d;29?j70<3:17pl=b583>6<729q/=5:53c78L6d13A9jo6g;a;29?l75<3:17b?84;29?xd5i;0;694?:1y'5=2=9::0D>l9;I1bg>o3i3:17d;=:188m41c2900c<9;:188yg4b>3:197>50z&2<15;h6;>5<>i6?k0;66sm2d794?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;6;29?l2?2900e9j50;9j14<722e:;o4?::a6`5=83?1<7>t$0:7>fc<@:h=7E=nc:&f4?4>o3l3:17d;>:188k41e2900qo52:k72?6=3`>36=44i5f94?=n=80;66a>7c83>>{e:l;1<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi>ih50;794?6|,82?6nk4H2`5?M5fk2.n<7<4i5494?=n<10;66g;d;29?l362900c<9m:188yg4cm3:197>50z&2<15;h6;>5<>i6?k0;66sm2ef94?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<54;294~"60=0hh6F6g;6;29?l2c2900e8?50;9l52d=831vn?8<:187>5<7s-;387mk;I1a2>N4ij1/i=4=;h65>5<>i6?k0;66sm27c94?2=83:p(<6;:bd8L6d13A9jo6*j0;58m10=831b9<4?::k23d<722e:;o4?::a63?=83>1<7>t$0:7>f`<@:h=7E=nc:&f4?1>o6?h0;66a>7c83>>{e;=21<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi?9850;794?6|,82?6nk4H2`5?M5fk2.n<7<4i5494?=n<10;66g;d;29?l362900c<9m:188yg53=3:197>50z&2<15;h6;>5<>i6?k0;66sm35694?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;6;29?l2?2900e9j50;9j14<722e:;o4?::a717=83?1<7>t$0:7>a6<@:h=7E=nc:&f4?1>o293:17d?8a;29?j70j3:17pl<4183>0<729q/=5:5cd9K7g0<@:kh7)k?:39j03<722c?47>5;h6g>5<96=4::183!7?<3in7E=m6:J0ef=#m9097d:9:188m1>=831b8i4?::k65?6=3f;5;|`070<72:0;6=u+19697g3<@:h=7E=nc:k7e?6=3`;987>5;n340?6=3th8?94?:283>5}#91>1?o;4H2`5?M5fk2c?m7>5;h310?6=3f;<87>5;|`06g<72=0;6=u+1969566<@:h=7E=nc:k7e?6=3`?96=44i05g>5<8580f0=O;k<0D>ol;h6b>5<5<54;294~"60=0:?=5G3c48L6gd3`>j6=44i4094?=n9>n1<75`16694?=zj:996=4<:183!7?<39i96F>1<75rb204>5<3290;w)?74;304>N4j?1C?lm4i5c94?=n=;0;66g>7e83>>i6?=0;66sm32394?5=83:p(<6;:2`6?M5e>2B8mn5f4`83>>o6:=0;66a>7583>>{e;;?1<7:50;2x 4>3289;7E=m6:J0ef=n4?:1y'5=2=;k?0D>l9;I1bg>o3i3:17d?=4;29?j70<3:17pl<2283>1<729q/=5:51228L6d13A9jo6g;a;29?l352900e<9k:188k4132900qo==f;297?6=8r.:49450z&2<1<6;91C?o84H2c`?l2f2900e8<50;9j52b=831d=::50;9~f64b29086=4?{%3;0?5e=2B8n;5G3`a8m1g=831b=?:50;9l522=831vn>?i:187>5<7s-;387?<0:J0f3=O;hi0e9o50;9j17<722c:;i4?::m231<722wi??j50;194?6|,82?6>l:;I1a2>N4ij1b8l4?::k261<722e:;94?::a74b=83>1<7>t$0:7>4573A9i:6F>7>5;h34`?6=3f;<87>5;|`011<72<0;6=u+1969g`=O;k<0D>ol;%g3>7=n;=:186>5<7s-;387j?;I1a2>N4ij1/i=48;h65>5<>o6?h0;66a>7c83>>{e;<91<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi?8850;794?6|,82?6nk4H2`5?M5fk2.n<7<4i5494?=n<10;66g;d;29?l362900c<9m:188yg52?3:197>50z&2<15;h6;>5<>i6?k0;66sm34:94?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<57>55;294~"60=0hi6F6g;6;29?l2?2900e9j50;9j14<722e:;o4?::a70g=83?1<7>t$0:7>fc<@:h=7E=nc:&f4?4>o3l3:17d;>:188k41e2900qo=9c;291?6=8r.:494le:J0f3=O;hi0(h>52:k72?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;?h1<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi?;750;794?6|,82?6nk4H2`5?M5fk2.n<7<4i5494?=n<10;66g;d;29?l362900c<9m:188yg5103:197>50z&2<15;h6;>5<>i6?k0;66sm37594?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;6;29?l2?2900e9j50;9j14<722e:;o4?::a733=83?1<7>t$0:7>fc<@:h=7E=nc:&f4?4>o3l3:17d;>:188k41e2900qo=94;291?6=8r.:494le:J0f3=O;hi0(h>52:k72?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;><1<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi?::50;794?6|,82?6nk4H2`5?M5fk2.n<7<4i5494?=n<10;66g;d;29?l362900c<9m:188yg50;3:197>50z&2<15;h6;>5<>i6?k0;66sm36094?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;6;29?l2?2900e9j50;9j14<722e:;o4?::a726=83?1<7>t$0:7>fc<@:h=7E=nc:&f4?4>o3l3:17d;>:188k41e2900qo=9f;291?6=8r.:494le:J0f3=O;hi0(h>52:k72?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;>o1<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi?:m50;794?6|,82?6nk4H2`5?M5fk2.n<7<4i5494?=n<10;66g;d;29?l362900c<9m:188yg50j3:197>50z&2<15;h6;>5<>i6?k0;66sm36c94?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;6;29?l2?2900e9j50;9j14<722e:;o4?::a72>=83?1<7>t$0:7>fc<@:h=7E=nc:&f4?4>o3l3:17d;>:188k41e2900qo=87;291?6=8r.:494le:J0f3=O;hi0(h>52:k72?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;?o1<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi?l850;194?6|,82?6<<6;I1a2>N4ij1/i=4>b:kg0?6=3`n>6=44o057>5<53;294~"60=0:>45G3c48L6gd3-o;67583>>{e:8:1<7=50;2x 4>328827E=m6:J0ef=#m90:i6gk4;29?lb22900c<9;:188yg7f13:1?7>50z&2<1<6:01C?o84H2c`?!c728o0ei:50;9j`0<722e:;94?::a5<3=8391<7>t$0:7>44>3A9i:6F5;hf6>5<85826<=O;k<0D>ol;%g3>4c1<75fd483>>i6?=0;66sm18194?5=83:p(<6;:00:?M5e>2B8mn5+e182a>oc<3:17dj::188k4132900qo?62;297?6=8r.:494>289K7g0<@:kh7)k?:0g8ma2=831bh84?::m231<722wi=4?50;194?6|,82?6<<6;I1a2>N4ij1/i=4>e:kg0?6=3`n>6=44o057>5<53;294~"60=0:>45G3c48L6gd3-o;67583>>{e91l1<7=50;2x 4>328827E=m6:J0ef=#m90:i6gk4;29?lb22900c<9;:188yg7?m3:1?7>50z&2<1<6:01C?o84H2c`?!c728o0ei:50;9j`0<722e:;94?::a5=b=8391<7>t$0:7>44>3A9i:6F5;hf6>5<85826<=O;k<0D>ol;%g3>4c1<75fd483>>i6?=0;66sm19`94?5=83:p(<6;:00:?M5e>2B8mn5+e182a>oc<3:17dj::188k4132900qo?7a;297?6=8r.:494>289K7g0<@:kh7)k?:0g8ma2=831bh84?::m231<722wi=5750;194?6|,82?6<<6;I1a2>N4ij1/i=4>e:kg0?6=3`n>6=44o057>5<53;294~"60=0:>45G3c48L6gd3-o;67583>>{e91=1<7=50;2x 4>328827E=m6:J0ef=#m90:i6gk4;29?lb22900c<9;:188yg7?>3:1?7>50z&2<1<6:01C?o84H2c`?!c728o0ei:50;9j`0<722e:;94?::a5=3=8391<7>t$0:7>44>3A9i:6F5;hf6>5<85826g=O;k<0D>ol;%g3>701<75fd483>>oc>3:17b?84;29?xd6ik0;694?:1y'5=2=9;h0D>l9;I1bg>"b838=7dj;:188ma3=831bh;4?::m231<722wi>;;50;694?6|,82?6<N4ij1/i=4=2:kg0?6=3`n>6=44ie494?=h9>>1<75rb337>5<2290;w)?74;31`>N4j?1C?lm4$d2965=nl=0;66gk5;29?lb12900ei950;9l522=831vn5<7s-;387?=d:J0f3=O;hi0(h>5219j`1<722co97>5;hf5>5<>oc=3:17dj9:188ma1=831d=::50;9~f70?290>6=4?{%3;0?75l2B8n;5G3`a8 `6=:81bh94?::kg1?6=3`n=6=44ie594?=h9>>1<75rb230>5<4290;w)?74;31=>N4j?1C?lm4$d2954=nl=0;66gk5;29?j70<3:17pl=6383>1<729q/=5:513`8L6d13A9jo6*j0;3:?lb32900ei;50;9j`3<722e:;94?::a640=8391<7>t$0:7>44>3A9i:6F5;hf6>5<85826<=O;k<0D>ol;%g3>4c1<75fd483>>i6?=0;66sm20:94?2=83:p(<6;:00a?M5e>2B8mn5+e1812>oc<3:17dj::188ma0=831d=::50;9~f4d6290?6=4?{%3;0?75j2B8n;5G3`a8 `6=:?1bh94?::kg1?6=3`n=6=44o057>5<55;294~"60=0:>i5G3c48L6gd3-o;6?>4ie694?=nl<0;66gk6;29?lb02900c<9;:188yg7e;3:197>50z&2<1<6:m1C?o84H2c`?!c72;:0ei:50;9j`0<722co:7>5;hf4>5<85826<=O;k<0D>ol;%g3>f11<75fd483>>i6?=0;66sm31a94?5=83:p(<6;:00:?M5e>2B8mn5+e1810>oc<3:17dj::188k4132900qo289K7g0<@:kh7)k?:368ma2=831bh84?::m231<722wi>4<50;794?6|,82?6<N4ij1/i=4=3:kg0?6=3`n>6=44ie494?=nl>0;66a>7583>>{e:>l1<7;50;2x 4>3288o7E=m6:J0ef=#m909?6gk4;29?lb22900ei850;9j`2<722e:;94?::a75d=83?1<7>t$0:7>44c3A9i:6F5;hf6>5<>i6?=0;66sm2g:94?3=83:p(<6;:00g?M5e>2B8mn5+e1811>oc<3:17dj::188ma0=831bh:4?::m231<722wi>4?50;794?6|,82?6<N4ij1/i=4=3:kg0?6=3`n>6=44ie494?=nl>0;66a>7583>>{e:>o1<7;50;2x 4>3288o7E=m6:J0ef=#m909?6gk4;29?lb22900ei850;9j`2<722e:;94?::a75g=83?1<7>t$0:7>44c3A9i:6F5;hf6>5<>i6?=0;66sm2g594?3=83:p(<6;:00g?M5e>2B8mn5+e1811>oc<3:17dj::188ma0=831bh:4?::m231<722wi>4>50;794?6|,82?6<N4ij1/i=4=3:kg0?6=3`n>6=44ie494?=nl>0;66a>7583>>{e:>n1<7;50;2x 4>3288o7E=m6:J0ef=#m909?6gk4;29?lb22900ei850;9j`2<722e:;94?::a75?=83?1<7>t$0:7>44c3A9i:6F5;hf6>5<>i6?=0;66sm2g494?3=83:p(<6;:00g?M5e>2B8mn5+e1811>oc<3:17dj::188ma0=831bh:4?::m231<722wi>5h50;794?6|,82?6<N4ij1/i=4=3:kg0?6=3`n>6=44ie494?=nl>0;66a>7583>>{e:>i1<7;50;2x 4>3288o7E=m6:J0ef=#m909?6gk4;29?lb22900ei850;9j`2<722e:;94?::a6<1=83>1<7>t$0:7>44e3A9i:6F5;hf6>5<5<7s-;387?=b:J0f3=O;hi0(h>5139j`1<722co97>5;hf5>5<85826a=O;k<0D>ol;%g3>fg1<75fd483>>oc>3:17dj8:188k4132900qo=?8;291?6=8r.:494>2e9K7g0<@:kh7)k?:318ma2=831bh84?::kg2?6=3`n<6=44o057>5<55;294~"60=0:>i5G3c48L6gd3-o;6?;4ie694?=nl<0;66gk6;29?lb02900c<9;:188yg4e;3:1>7>50z&2<1<6:11C?o84H2c`?!c728;0ei:50;9l522=831vn?l>:181>5<7s-;387?=8:J0f3=O;hi0(h>5109j`1<722e:;94?::a6d`=8381<7>t$0:7>44?3A9i:6F5;n340?6=3th9mi4?:383>5}#91>1=?64H2`5?M5fk2.n<7?>;hf7>5<85826==O;k<0D>ol;%g3>471<75`16694?=zj;k26=4=:183!7?<3;946F>i6?=0;66sm2`594?4=83:p(<6;:00;?M5e>2B8mn5+e1825>oc<3:17b?84;29?xd5i<0;6?4?:1y'5=2=9;20D>l9;I1bg>"b83;:7dj;:188k4132900qo299K7g0<@:kh7)k?:038ma2=831d=::50;9~f64d29096=4?{%3;0?7502B8n;5G3`a8 `6=981bh94?::m231<722wi??o50;094?6|,82?6<<7;I1a2>N4ij1/i=4>1:kg0?6=3f;<87>5;|`06=<72;0;6=u+196957><@:h=7E=nc:&f4?763`n?6=44o057>5<52;294~"60=0:>55G3c48L6gd3-o;6>1<75rb207>5<5290;w)?74;31<>N4j?1C?lm4$d2954=nl=0;66a>7583>>{e;;81<7<50;2x 4>328837E=m6:J0ef=#m90:=6gk4;29?j70<3:17pl<2183>7<729q/=5:513:8L6d13A9jo6*j0;32?lb32900c<9;:188yg56m3:1>7>50z&2<1<6:11C?o84H2c`?!c728;0ei:50;9l522=831vn?lj:181>5<7s-;387?=8:J0f3=O;hi0(h>5109j`1<722e:;94?::a760=8381<7>t$0:7>44?3A9i:6F5;n340?6=3th:n:4?:483>5}#91>1=?j4H2`5?M5fk2.n<75<>oc?3:17b?84;29?xd6j00;684?:1y'5=2=9;n0D>l9;I1bg>"b838<7dj;:188ma3=831bh;4?::kg3?6=3f;<87>5;|`15`<72<0;6=u+196957b<@:h=7E=nc:&f4?473`n?6=44ie794?=nl?0;66gk7;29?j70<3:17pl=2183>0<729q/=5:513f8L6d13A9jo6*j0;04?lb32900ei;50;9j`3<722co;7>5;n340?6=3th9:<4?:483>5}#91>1=?j4H2`5?M5fk2.n<7?8;hf7>5<>oc?3:17b?84;29?xd4180;65950;2x 4>328=h7E=m6:J0ef=]<<0jw44=8;g950<6;3;h6k4>4;35>4b=u-;:j7;4$003>0=#l10>7)j6:49'`d<23-ni685+db86?!bc2<1/=5>53:&2<4<33-o:685+e386?!c42<1/i94:;%g6>0=#m?0>7)k8:49'a=<23-o2685+e`86?!ce2<1/in4:;%gg>0=#ml0>7)ki:49'b5<23-l:685+f386?!`42<1/j94:;%d6>0=#n?0>7)h8:49'b=<23-l2685+f`86?!`e2<1/jn4:;%dg>0=#nl0>7)hi:49'556==2.:<<4:;%336?3<,8:8685+11691>"68<0>7)??6;78 4602<1/==655:&24<<23-;;m7;4$02a>0=#99i196*>0e86?!77m3?0(<>i:49'546==2.:=<4:;%326?3<,8;8685+10691>"69<0>7)?>6;78 4702<1/=<655:&25<<23-;:m7;4$03a>0=#98i196*>1e86?!76m3?0(>l<:2`2?!bb2<1/=:k51618 4462:1/=?<54:&0f7<4j81/hk4:;h6a>5<>od13:17d?72;29?l7?;3:17d=nf;29?l5e83:17d=7:18'52?=;>1e=:650:9j73<72-;<57=8;o346=4+16;972=i9>21>65f3583>!70139<7c?88;18?l54290/=:75369m52>=<21b??4?:%34=?503g;<47;4;h12>5<#9>31?:5a16:92>=n;90;6)?89;14?k7003=07d1e=:658:9j6`<72-;<57=8;o3496=4+16;904=i9>21<65f4183>!7013>:7c?88;38?l5a290/=:75409m52>=:21b?h4?:%34=?263g;<47=4;h1g>5<#9>318<5a16:90>=n;j0;6)?89;62?k7003?07d=m:18'52?=<81e=:656:9j7d<72-;<57:>;o3421465f5`83>!7013?27c?88;28?l3?290/=:75589m52>=921b9:4?:%34=?3>3g;<47<4;h75>5<#9>31945a16:97>=n=<0;6)?89;7:?k7003>07d;;:18'52?==01e=:655:9j26<72-;<57;6;o3421;65f6083>!7013?27c?88;:8?l07290/=:75589m52>=121b9k4?:%34=?3>3g;<47o4;h7f>5<#9>31945a16:9f>=n=m0;6)?89;7:?k7003i07d;l:18'52?==01e=:65d:9j1g<72-;<57;6;o3421j65f7e83>!7013=h7c?88;28?l1e290/=:757b9m52>=921b;44?:%34=?1d3g;<47<4;h5;>5<#9>31;n5a16:97>=n?>0;6)?89;5`?k7003>07d99:18'52?=?j1e=:655:9j30<72-;<579l;o3421;65f7283>!7013=h7c?88;:8?l15290/=:757b9m52>=121b;<4?:%34=?1d3g;<47o4;h53>5<#9>31;n5a16:9f>=n>l0;6)?89;5`?k7003i07d8k:18'52?=?j1e=:65d:9j2f<72-;<579l;o3421j65f6`83>!7013=h7c?88;33?>o113:1(<96:6a8j41?28;07d87:18'52?=?j1e=:651398m31=83.:;448c:l23=<6;21b:;4?:%34=?1d3g;<47?;;:k51?6=,8=26:m4n05;>43<3`2?6=4+16;93f=i9>21=;54i9194?"6?0079823>=n0;0;6)?89;5`?k7003;376g71;29 41>2>i0b<97:0;8?l>7290/=:757b9m52>=9h10e:h50;&23<<0k2d:;54>b:9j3`<72-;<579l;o345$05:>2e5<#9>31;n5a16:95`=1<7*>7884g>h6?10:j65f8683>!70132=7c?88;28?l>2290/=:75879m52>=921b4n4?:%34=?>e3g;<47>4;h:b>5<#9>314o5a16:95>=n000;6)?89;:a?k7003807d67:18'52?=0k1e=:653:9l=1<72-;<577<;o3421=65`9083>!7013387c?88;08?j?7290/=:75929m52>=;21d4k4?:%34=??43g;<47:4;n:f>5<#9>315>5a16:91>=h1m0;6)?89;;0?k7003<07b7l:18'52?=1:1e=:657:9l=g<72-;<577<;o34<3f3j6=4+16;9=6=i9>21565`9883>!7013387c?88;c8?j??290/=:75929m52>=j21d5:4?:%34=??43g;<47m4;n;5>5<#9>315>5a16:9`>=h1<0;6)?89;;0?k7003o07b6k:18'52?=1:1e=:65f:9lg4<72-;<57m?;o3421=65`b683>!7013h=7c?88;28?jd2290/=:75b79m52>=921dn>4?:%34=?d13g;<47<4;n`1>5<#9>31n;5a16:97>=hj80;6)?89;`5?k7003>07bl?:18'52?=j?1e=:655:9lec<72-;<57l9;o3421;65`ae83>!7013h=7c?88;:8?jgd290/=:75b79m52>=121dmo4?:%34=?d13g;<47o4;ncb>5<#9>31n;5a16:9f>=hi10;6)?89;`5?k7003i07bo8:18'52?=j?1e=:65d:9le3<72-;<57l9;o346=4+16;9f3=i9>21j65`a583>!7013h=7c?88;33?>if;3:1(<96:c48j41?28;07bo=:18'52?=j?1e=:651398kd7=83.:;44m6:l23=<6;21dm=4?:%34=?d13g;<47?;;:m:b?6=,8=26o84n05;>43<3fhn6=4+16;9f3=i9>21=;54ocf94?"6?00i:6`>79823>=hjj0;6)?89;`5?k7003;376amb;29 41>2k<0b<97:0;8?jdf290/=:75b79m52>=9h10co750;&23<2d:;54>b:9lf=<72-;<57l9;o345$05:>g05<#9>31n;5a16:95`=788a2>h6?10:j65`c783>!7013i>7c?88;28?je3290/=:75c49m52>=921do>4?:%34=?e23g;<47<4;na1>5<#9>31o85a16:97>=zj;?m6=4::183!7?<3;9i6F>oc=3:17dj9:188ma1=831d=?;50;9~f4d229086=4?{%3;0?75i2B8n;5G3`a8 `6=9l1bh94?::kg1?6=3f;997>5;|`2f3<72=0;6=u+196957e<@:h=7E=nc:&f4?7a3`n?6=44ie794?=nl?0;66a>2483>>{e:8i1<7=50;2x 4>3288j7E=m6:J0ef=#m90:i6gk4;29?lb22900c<<::188yg46l3:187>50z&2<1<6:j1C?o84H2c`?!c728l0ei:50;9j`0<722co:7>5;n311?6=3th9:=4?:483>5}#91>1=?k4H2`5?M5fk2.n<7?8;hf7>5<>oc?3:17b?=5;29?xu31<0;65uQ487897022m<01?8l:e58970?2m=01?8=:e6897062m>01?;i:e6897072m>0q~:63;2922}Y;jn0R>li;_6:`>X31k1U?ok4^5;;?[23>2T?5n5Q4558Z10>3W9hn6Pm;;_1`7>X3i>1U8l84^5c6?[2f<2T?m>5Q4`08Z1g63W>j<6P;9g9]0<4X30k1U85o4^5::?85e?3n970=n2;72?85>?3?:70=n1;72?85f83?:70=6f;72?85fi3?:70=n9;72?840=3?970<84;71?840;3?970<82;71?84093?970<78;71?84??3?970<76;71?84?=3?970<74;71?84bn3?9703?970f;71?856l3?970=61;3;7>;41808mk5238391d=:;0;19552383912=:;0;19;52383910=:;0;19952383926=:;0;1:?52383924=:;0;1:=5238391c=:;0;19h5238391a=:;0;19n5238391g=:;0;19>523839<2=:;0;1485rs5;4>5<4sW>2;63j57>53z\7e<=:;891h9523009`1=z{=236=4:8z\7<==:;0318;5238:903=:;0=18;523`3903=:;h:18;5238d903=::0?18;5221g903=::9n18;5221a903=::9h18;5221c903=::9318;5221:903=::9=18;52214903=::<<18;52247903=::<>18;52241903=::<818;52243903=::<:18;5225d903=::=o18;52256903=::=918;52250903=::=;18;52252903=:::l18;5222g903=:::n18;5222a903=:9jn18;521ba903=:9jh18;521bc903=:9j318;521b:903=:9j=18;521b4903=:9j?18;521b6903=::m818;522e3903=::jl18;522bg903=::m:18;522bf903=::ji18;522bc903=::j318;522b`903=::l<18;522d7903=::l>18;522d1903=::l818;522d3903=::l:18;522ed903=::mo18;522ef903=::?<18;52271903=::?k18;5227;903=:;><18;52367903=:;>>18;52361903=:;>818;52363903=:;>:18;5237d903=:;>o18;5236f903=:;>i18;5236`903=:;>k18;5236;903=:;>218;52365903=:;?o18;5237f903=:;0;18o5rs560>5<5sW>??63<11823g=z{=3n6=4;9z\7=`=:;h>18;523`0903=:;h918;523`c903=:;h318;52302903=:;9l18;521`5903=:9h<18;521`7903=:9h>18;521`1903=:9h818;521`3903=:9h:18;5218d903=:9o918;521g0903=:9o;18;521g2903=:9ll18;521dg903=:9ln18;521da903=:9lh18;521d3903=:9l:18;521ed903=:9mo18;521ef903=:9mi18;521e`903=:9mk18;521e;903=:9m218;52220903=:::;18;52222903=::;l18;5223g903=::;n18;5223a903=::;h18;5223c903=:;=218;52355903=:;=<18;52357903=:;=>18;52351903=:;=;18;52352903=:;=818;52346903=:;<818;52341903=:;18;5238390f=z{=996=4={_614>;4??0:;o5rs513>5<5sW>:j63<74823g=z{=8m6=4={_62a>;4?=0:;o5rs50f>5<5sW>:h63<72823g=z{=8o6=4={_62g>;4?;0:;o5rs50`>5<5sW>:n63<70823g=z{=8i6=4={_62e>;4?90:;o5rs50b>5<5sW>:563<6g823g=z{=9i6=4={_61<>;4?l0:;o5rs51b>5<5sW>9;63<7e823g=z{=926=4={_612>;4?j0:;o5rs51;>5<5sW>9963<7c823g=z{=9<6=4={_610>;4?h0:;o5rs515>5<5sW>9?63<78823g=z{=9>6=4={_616>;4?10:;o5rs517>5<5sW>9=63<76823g=z{=986=4={_62<>;4>l0:;o5rs50:>5<5sW>:;63<6e823g=z{=:m6=4={_1ff>;4180356s|41f94?4|V:oj70=61;4b?xu38j0;6?uQ3d;896?62?30q~:?b;296~X4m116?4?5699~w16f2909wS=j7:?0=4<1?2wx8=750;0xZ6c13492=789;|q742<72;qU?h:4=2;2>33;:7>52z\0a6=:;0;1495rs526>5<5sW9n>63<908;7>{t<9>1<793237p};0283>7}Y;l:01>7>:908yv27:3:1>vP7<7=081v9>>:181[5cm2785<470:p056=838pR>jk;<1:5?1a3ty8jk4?:3y]7ae<5:3:6:k4}r1ea?6=:rT8ho5238393d=z{:lh6=4={_1g=>;4180=j6s|3g`94?4|V:n370=61;47?xu4nh0;6?uQ3e5896?621i0q~=i9;296~X4l?16?4?57e9~w6`?2909wS=k5:?0=4<0j2wx?k950;0xZ6b33492=796;|q0b3<72;qU?i=4=2;2>2>52z\0`7=:;0;1;:5rs2d7>5<5sW9o=63<90842>{t;o91<793=>7p};1783>7}Y;o;01>7>:668yv26=3:1>vP7<7=0h1v9?;:181[5bn2785<483:p045=838pR>kj;<1:5?153ty?=?4?:3y]7`b<5:3:6:?4}r625?6=:rT8in52383935=z{=;;6=4={_1f1>;4180=i6s|41:94?4|V:nj70=61;4g?xu4nm0;6?uQ3bd896?62?i0q~=i2;296~X4kl16?4?56c9~w454290jw0=m8;342>;5?80?m63=8587e>;5mk0?m63=fd87e>;5j=0?m63=a387e>;4:m0?m63<1e87e>;4180h56s|38:94?5|5:3268?4=2;;>41e3492;7:7;|q0=<<72;q6?47516`896?e2m>0q~=n3;297~;4i=0>=63;4i:0:;o5rs2c7>5<5s49j87?8b:?0e378:05a?85>j3n>7p}6}:;h81=:l4=2c0>07<5:k=6i;4}r1:e?6=7`9>7d6=9>k01>7i:05b?85>j3;<86s|38g94?7fs49j=7?8b:?1=0<6?h16>i<54e9>6a7=nh54e9>6fc=i>54e9>6fb=nm54e9>6fg=n7516c897ee2=n01?k9:5f897c22=n01?k;:5f897c42=n01?k=:5f897c62=n01?k?:5f897ba2=n01?jj:5f897bc2=n01?89:5f897042=n01?8n:05b?84113;4;d:?107<3l2798<4;d:?105<3l279?k4;d:?17`<3l279?i4;d:?17f<3l27:oi4;d:?2gf<3l27:oo4;d:?2gd<3l27:o44;d:?2g=<3l27:o:4;d:?2g3<3l27:o84;d:?2g1<3l2wx?4m50;3685>n3;;4?<0?h63<7587`>;4?:0?h63<7387`>;4?80?h63<7187`>;4>o0?h63<7d87`>;4?m0?h63<7b87`>;4?k0?h63<7`87`>;4?00?h63<7987`>;4?>0?h63<6d87`>;4>m0?h63<928g0>;4180:4?5rs2c6>5<4s49jm7?8a:?0e<<6?h16?l851668yv5f03:1=hu23`c952d<5:;;69j4=22e>1b<5:>369j4=264>1b<5:>=69j4=266>1b<5:>?69j4=260>1b<5:>:6<9n;<174?2c349?>7:k;<160?2c349>>7?8a:?016<3l278984;d:?013<3l2789:4;d:?01=<3l278944;d:?01d<3l278:n4;d:?02g<3l278:l4;d:?02<<3l278:54;d:?022<3l278:;4;d:?020<3l278:94;d:p7d1=838=w0=n9;34f>;6i>0?h63>a787`>;6i<0?h63>a587`>;6i:0?h63>a387`>;6i80?h63>a187`>;61o0?h63>f287`>;6n;0?h63>f087`>;6n90?h63>eg87`>;6ml0?h63>ee87`>;6mj0?h63>ec87`>;6m80?h63>e187`>;6lo0?h63>dd87`>;6lm0?h63>db87`>;6lk0?h63>d`87`>;6l00?h63>d987`>;5;;0?h63=3087`>;5;90?h63=2g87`>;5:l0?h63=2e87`>;5:j0?h63=2c87`>;5:h0?h6s|28494?4|5;3>68?4=3;4>4133ty9584?:4y>6<3=9>h01?87:e6897062m?01?;i:e7897072m?0q~=>1;297~;4990>=63<0g865>;49;0:;95rs22e>5<4s49;j7?8b:?0567}::>?1=:j4=35e>4133ty95>4?:3y>623=9>>01?78:e48yv41n3:1>v3=7587e>;5?:0:;95rs35:>5<5s48<87?8d:?13`<6?=1v?8j:181840;3>j70<82;340>{t:>21<741c3487}::>81=:j4=35`>4133ty9;;4?:3y>627=9>n01?9m:057?xu50:0;6?u229:90d=::1=1=::4}r0;`?6=:r79454>7e9>6<4=9>>0q~<64;296~;5010:;9522859`0=z{;296=4={<0;3?2f3483:7?84:p6=e=838p1?68:05g?84>93;<86s|29394?4|5;2=69o4=3:6>4133ty94o4?:3y>6=0=9>n01?7?:057?xu5090;6?u229790d=::1>1=::4}r0;e?6=:r79484>7e9>6=`=9>>0q~<79;296~;50=0:;i5229g952252z?1ac<3i279ih4>759~w7`32909w0;5n00:;95rs22g>5<5s48nj7?84:?0572wx>h750;0x97cb2=k01?kk:057?xu5n:0;6?u22dg952b<5;l36<9;;|q1a=<72;q6>hj54`9>6`e=9>>0q~52z?1af<3i279io4>759~w7`62909w0;5n?0:;95rs3d3>5<5s48nn7?8d:?1b0<6?=1v?hk:181857:3>j70=?1;340>{t;9=1<741c349;o7?84:p75c=838p1>>=:057?856:3n<7p}=fb83>7}:;9;18l52312952252z?044<6?m16?=l51668yv4aj3:1>v3<0187e>;5no0:;95rs226>5<5s49;<7?8d:?04d<6?=1v?hn:18184an3>j70{t;9>1<741c349;57?84:p755=838p1?hj:05g?85703;<86s|1dc94?3|58k<68?4=0d0>41e34;j57j:;<3bf?b334;jh7j8;|q2=`<72:q6=l9516`8966d2m>01?h6:e78yv7f03:1>v3>a7865>;6i00:;95rs0;g>5<4s4;j:7?8b:?04g9b83>6}:9h?1=:l4=22a>a2<5;l36i94}r3bg?6=?r7:m94:1:?2ea<6?=16=lh5d49>5g7=l?16=o=5d69>5g1=l>16=o75d69~w4?e2908w0?n4;34f>;48h0o963=f68g1>{t9ho1<707<58km6<9;;|q2=d<72:q6=l=516`8966f2m>01?h8:e58yv7e83:1>v3>a3865>;6j80:;95rs0;:>5<4s4;j>7?8b:?04<:43894d428=?7p}>9983>6}:9h;1=:l4=22:>a2<5;l=6i94}r3a0?6=:r7:m=4:1:?2f2<6?=1v<78:18087f83;;5n<0o96s|1c:94?4|583m68?4=0`:>4133ty:5;4?:2y>5<`=9>h01>>7:e6897`22m=0q~<;d;291~;58l0>=63=57823g=::8:1h8522009`1=::8>1h:5rs326>5<4s48;i7?8b:?1=7k:438977728=?7p}=0583>6}::9n1=:l4=3;1>a2<5;=m6i:4}r025?6=:r79<:180847k3;;5?l0o96s|20194?1|5;:i68?4=337>413348::7j:;<02=l516`897?62m>01?9j:e68yv46=3:1>v3=0`865>;59?0:;95rs322>5<4s48;m7?8b:?1=56:438977?28=?7p}=0183>6}::931=:l4=3;3>a2<5;=o6i:4}r02=?6=:r79<54:1:?15d<6?=1v;5?j0o96s|20`94?4|5;:<68?4=33f>4133ty:jh4?:2y>651=9>h01?6i:e68971d2m>0q~<>f;296~;58?0>=63=218231=z{8lo6=4<{<032?70j2794h4k4:?13g>l50;0x97312<;01?:;:05a?xu5;h0;6?u2247914=::=91=:l4}r07g?6=7c9>646=l=16><<5d49>642=l?1v?=6:181842<3?:70<;2;34f>{t:=h1<7=t=377>41e348:>7j9;<020?b23ty9?54?:3y>605==816>9?516`8yv43i3:1>v3=52823g=::8>1h95rs314>5<5s48>>7;>;<074?70j2wx>9750;4x973528=i70<>6;f7?84603n>70<>a;f5?846m3n>70<=0;f6?xu5;?0;6?u2243914=:::l1=:l4}r077c9>64>=l=16>64c=l=16>?>5d59~w7522909w0<:0;72?844m3;61`==816>>j516`8yv43>3:1?v3=4g823g=::8i1h85220f9`0=z{;986=4={<07a?363488o7?8b:p613=838p1?:j:05a?846l3n=7p}>d683>7}:9o919<521d3952d52z?2b7<2927:i=4>7c9~w4c>290?w0?i2;34f>;6i00o863>ac8g1>;6im0o:6s|1e794?4|58l:68?4=0fe>41e3ty:i54?:2y>5c7=9>h01=63>dd823g=z{8o<6=4={<3e4?70j27:mi4k4:p5a5=838p1e783>3}:9ll1=:l4=0ce>a2<58h:6i;4=0`0>a0<58h<6i;4=0`:>a37>52z?2a`<2927:hn4>7c9~w4c2290>w0?je;34f>;6j80o863>b28g1>;6j>0o863>b88g0>{t9m;1<707<58ni6<9m;|q2a1<72=q6=hj516`894d42m>010q~?k0;296~;6mj0>=63>d`823g=z{8o86=4<{<3fg?70j27:n84k5:?2f3{t:;=1<707<5;9;6<9m;|q163<72;q6>9?5509>67`=9>h0q~<=5;296~;5<90>=63=2d823g=z{;8?6=4={<00b?363489h7?8b:p675=838p1?=j:438974d28=i7p}=2383>7}:::n19<5223`952d52z?17f<29279>l4>7c9~w4e42909w0?j1;72?87dl3;41e3ty:o<4?:3y>5a`==816=nl516`8yv7d83:1>v3>dd865>;6kh0:;o5rs0`e>5<5s4;oh7;>;<3`=?70j2wx=ok50;0x94bd2<;01{t9kk1<707<58i?6<9m;|q2g`<728q6=i6516`8yv4ck3:19v3>ce865>;5m?0:;o521979`1=::>l1h:5238397==z{8l?6=4={<3`g?3634;397?84:p5c3=838p1128=?7p}>f783>7}:9jk19<52195952252z?2g<<2927:454>759~w4`?2909w0?l8;72?87?13;<86s|1g;94?4|58i<68?4=0:b>4133ty:jl4?:3y>5f0==816=5l51668yv7aj3:1>v3>c4865>;60j0:;95rs0d`>5<5s4;h87;>;<3;`?70<2wx?;=50;6x97552<;01>8l:05a?87?m3n?70=61;61?xu5=>0;6?u2223914=:91o1=::4}r06{t:07<583:6<9;;|q11g<72;q6>?j5509>5<4=9>>0q~<:c;296~;5:j0>=63>928231=z{;?o6=4={<01f?3634;287?84:p60c=838p1?43|5;n96964=3f2>1><5;im6964=3af>1><5;n;6964=3ag>1><5;ih6964=3ab>1><5;i26964=3aa>1><5;o=6964=3g6>1><5;o?6964=3g0>1><5;o96964=3g2>1><5;o;6964=3fe>1><5;nn6964=3fg>1><5;<:6<9;;|q1e4<72;q6>i<5509>6gb=9>>0q~p1?j>:05a?84b=3?:70<62;f5?84e;3n?7p}=9d83>7}::jl19<522cc952254z?1gc<6?k16>h=5509>6<7=l?16>lh5d59~w7?c2909w06a6==816>ol51668yv4d>3:18v3=d1823g=::l>19<522839`2=::k;1h95rs3;`>5<5s48hh7;>;<0an=50;6x97ec28=i7083n=707c9>6`6==816>5h5d69>6d?=l=1v?76:18184di3?:70{t:j:1<7:t=3ab>41e348oi7;>;<0;a?b2348j97j;;|q1==<72;q6>n75509>6g2=9>>0q~p1?mm:05a?84cn3?:70<7f;f5?84f?3n?7p}=b383>7}::kn18l522c0952252z?1fa<6:=16>ok51668yv4e83:1?v3=bb87e>;5j;0?m63=b18231=z{;h86=4<{<0ag?75<279n?4>7e9>6g5=9>>0q~;5il0:;95rs3`2>5<4s48in7?=4:?1f5<6?m16>o?51668yv4fk3:1?v3=b`87e>;5il0?m63=ab8231=z{;km6=4<{<0ae?75<279mh4>7e9>6d`=9>>0q~;5ih0:;95rs3cg>5<4s48i57?=4:?1ef<6?m16>lj51668yv4f03:1?v3=b987e>;5ih0?m63=a98231=z{;ki6=4<{<0a7e9>6dd=9>>0q~0?m63=a987e>;5i?0:;95rs3c:>5<4s48i;7?=4:?1e=<6?m16>l751668yv4f<3:1?v3=b787e>;5i?0?m63=a58231=z{;k<6=4<{<0a2?75<279m;4>7e9>6d1=9>>0q~;5i;0:;95rs3c6>5<4s48i97?=4:?1e1<6?m16>l;51668yv4f;3:1?v3=b58261=::h81=:j4=3c0>4133ty9ho4?:4y>6`3=9>h01<69:e6894>22m?01?9i:e4896?62:<0q~5<2s48n?7?8b:?2<=2785<4<4:p6a>=83?p1?k=:05a?87?13n?70?78;f6?840l3n<70=61;10?xu5l>0;68u22d3952d<582j6i:4=0::>a3<5;=o6i84=2;2>6455z?1a5<6?k16=5l5d59>5=g=l<16>:m5d69>7<7=;81v?j::18684cn3;8b8g0>;60k0o963=7b8g2>;41808<6s|2e694?3|5;nn6<9m;<3;`?b334;3o7j:;<04f?b13492=7ij516`894>c2m?01?9m:e7896?62;o0q~<97;296~;5>?0>=63=698231=z{;<=6=47{<052?70j279:84k5:?12f279:54k6:?127279:<4k7:?11c=}::?91=:l4=346>a2<5;a3<5;<96i;4=342>a0<5;?m6i84=343>a053z?12d<29279:44:1:?12f<6?=1v?86:18184113;{t;0<1<7?k{<1787:7;<166?2?349>?7:7;<161?2?349>:7:7;<163?2?349>47:7;<16=?2?349>m7:7;<15g?2?349=n7:7;<15e?2?349=57:7;<15?l:18185303?:70=<5;340>{t;:l1<7:t=26;>41e349>m7;>;<13g?b23498:7j;;|q05g<72;q6?995509>762=9>>0q~=0:;o5234;914=:;9h1h:5233a9`1=z{:;j6=4={<172?363498?7?84:p76b=83>p1>:9:05a?85203?:70=?b;f5?855i3n?7p}<1883>7}:;=?19<52320952254z?000<6?k16?895509>75g=l>16??65d59~w67?2909w0=;4;72?85493;<86s|32`94?2|5:>?6<9m;<162?36349;m7j9;<112?b33ty8=:4?:3y>715==816?>>51668yv54i3:18v3<42823g=:;1h95rs236>5<5s49?=7;>;<11a?70<2wx?>650;6x962628=i70=:3;72?85703n<70==0;f7?xu49=0;6?u2352914=:;;n1=::4}r103?6=7c9>704==816?=65d79>74c=l=1v>?9:181853:3?:70==f;340>{t;:31<7:t=261>41e349>87;>;<13=?b13499>7j;;|q06g<72;q6?>;54`9>77d=9>>0q~=<6;296~;4;<0:>952324952253z?071<3i278>o4;a:?06<<6?=1v>4;a:?06<<3i278>:4>759~w64f2908w0=<3;310>;4:00:;i5233c952253z?077<3i278>:4;a:?060<6?=1v><7:180854:3;9863<26823a=:;;21=::4}r117?6=;r78?<4;a:?060<3i278>>4>759~w6412908w0=<1;310>;4:<0:;i52334952253z?075<3i278>>4;a:?064<6?=1v><;:18085483;9863<22823a=:;;>1=::4}r12b?6=;r78>k4;a:?064<3i278=k4>759~w6452908w0==f;310>;4:80:;i52330952253z?06`<3i278=k4;a:?05a<6?=1v>i4>259>74b=9>n01>?j:057?xu4u2346952d<5:<=68?4=3d5>a053z?017<6?k16?;:5509>6c3=l?1v>:n:180852;3;;5n<0o86s|35a94?5|5:?>6<9m;<153?36348m:7j;;|q00a<72:q6?88516`8960?2<;01?h8:e48yv53m3:1?v3<56823g=:;?319<522g59`1=z{:>m6=4<{<162wx?8>50;1x963>28=i70=9b;72?84a03n?7p}<5083>6}:;07<5;l26i:4}r156?6=7c9>5=`=l=16=5k5d49>7<7=<91v>8>:187851i3;918g0>;60o0o963<9080b>{t;?:1<7:t=24:>41e34;2=7j;;<3:4?b23492=7=j;|q01c<72=q6?;6516`894?52m>01<7>:e7896?62:n0q~=:e;290~;4>>0:;o521819`1=:9081h85238397f=z{:?o6=4;{<152?70j27:594k4:?2=6p1>8::05a?87>=3n?70?64;f6?85>939j7p}<5c83>6}:;?>1=:l4=0;6>a3<5:3:6>74}r1:1?6=9:q6?:85499>723=<116?::5499>725=<116?:<5499>727=<116?:>5499>73`=<116?:k5499>72b=<116?:m5499>72d=<116?:o5499>72?=<116?:65499>721=<116?;k5499>73b=<116>;<51668yv5??3:1>v3<77865>;4180h=6s|39494?4|5:=>68?4=2;2><252z?031<292785<462:p7=2=838p1>9<:43896?620;0q~=73;296~;4?;0>=63<908:4>{t;181<707<5:3:65h4}r1;5?6=:r78;=4:1:?0=450;0x960a2<;01>7>:8f8yv5>83:1>v3<7d865>;41802o6s|39d94?4|5:=o68?4=2;2>g`52z?03f<292785<46b:p7=b=838p1>9m:43896?620k0q~=7c;296~;4?h0>=63<908:=>{t;1h1<707<5:3:6464}r1;e?6=:r78;54:1:?0=4<>?2wx?5750;0x96102<;01>7>:848yv5?03:1>v3<6d865>;4180296s|36d94?4|5:=bj7>52z?0=6249~w6?52909w0=63;340>;4180h46s|38694?4|5;3<6i:4=37e>4423ty::94?:3y>5g1=l?16=o;51378yv71>3:1>v3>b88g2>;6j?0:>85rs04;>5<5s48:i7j9;<02g?75=2wx=;o50;0x97472m<01??k:006?x{t<9l1<7{t<9n1<7{t<9i1<7{t<9h1<7{t<9k1<7{t<931<7{t<9=1<7{t<9<1<7{t<9?1<7{t<9>1<7{t<991<7{t<981<7{t<9;1<7{t<9:1<7{t;ol1<7{t;oo1<7{t;oi1<7{t;oh1<7{t;ok1<7{t;o31<7{t;o21<77)=nb;36g>{t;o=1<7{t;o<1<7{t;o?1<7{t;o>1<7{t;o91<7{t<8<1<7{t<8?1<7{t<8>1<7{t<891<7{t<881<7{t<8;1<7{t<8:1<77)=nb;35<>{t<921<7{t;on1<7{t;o81<7{t<121<7{t<0?1<77)=nb;301>{t<0=1<7{t<0o1<7{t{t<:81<7{t<::1<7{t<;l1<7{t<;o1<7{t<;n1<7{t<;i1<7{t<;h1<7{t<;k1<7{t<:h1<7{t<:k1<7{t<:31<7{t<:21<77)=nb;372>{t<:=1<7{t<:<1<7{t<:?1<7{t<:>1<7{t<:91<7{t<;31<7{t<:n1<7{t<=91<787)=nb;37b>{zf1n?6=4={I1bg>{i0m?1<7c?3:1>vFol;|l;`d<72;qC?lm4}o:gf?6=:rB8mn5rn9f`>5<5sA9jo6sa8ef94?4|@:kh7p`7dd83>7}O;hi0qc6kf;296~N4ij1vb5k?:181M5fk2we4h?50;0xL6gd3td3i?4?:3yK7de52zJ0ef=zf1o?6=4={I1bg>{i0l?1<7b?3:1>vFol;|l;ad<72;qC?lm4}o:ff?6=:rB8mn5rn9g`>5<5sA9jo6sa8df94?4|@:kh7p`7ed83>7}O;hi0qc6jf;296~N4ij1vb5h?:181M5fk2we4k?50;0xL6gd3td3j?4?:3yK7de52zJ0ef=zf1l?6=4={I1bg>{i0o?1<7a?3:1>vFol;|l;bd<72;qC?lm4}o:ef?6=:rB8mn5rn9d`>5<5sA9jo6sa8gf94?4|@:kh7p`7fd83>7}O;hi0qc6if;296~N4ij1vb4>?:181M5fk2we5=?50;0xL6gd3td252zJ0ef=zf0:?6=4={I1bg>{i19?1<78?0;6?uG3`a8yk?7?3:1>vFol;|l:4d<72;qC?lm4}o;3f?6=:rB8mn5rn82`>5<5sA9jo6sa91f94?4|@:kh7p`60d83>7}O;hi0qc7?f;296~N4ij1vb4??:181M5fk2we;;o50;3xL6gd3td51zJ0ef=zf>k26=4>{I1bg>{i?hk1<7?tH2c`?xh0ik0;6ol;|l4ec<728qC?lm4}o5a4?6=9rB8mn5rn6`2>5<6sA9jo6sa7c094?7|@:kh7p`8b283>4}O;hi0qc9m4;295~N4ij1vb:l::182M5fk2we;o850;3xL6gd3td51zJ0ef=zf>h26=4>{I1bg>{i?kk1<7?tH2c`?xh0jk0;6ol;|l4fc<728qC?lm4}o5`4?6=9rB8mn5rn6a2>5<6sA9jo6sa7b094?7|@:kh7p`8c283>4}O;hi0qc9l4;295~N4ij1vb:m::182M5fk2we;n850;3xL6gd3td51zJ0ef=zf>i26=4>{I1bg>{i?jk1<7?tH2c`?xh0kk0;6ol;|l4gc<728qC?lm4}o5g4?6=9rB8mn5rn6f2>5<6sA9jo6sa7e094?7|@:kh7p`8d283>4}O;hi0qc9k4;295~N4ij1vb:j::182M5fk2we;i850;3xL6gd3td51zJ0ef=zf>n26=4>{I1bg>{i?mk1<7?tH2c`?xh0lk0;6ol;|l4`c<728qC?lm4}o5f4?6=9rB8mn5rn6g2>5<6sA9jo6sa7d094?7|@:kh7p`8e283>4}O;hi0qc9j4;295~N4ij1vb:k::182M5fk2we;h850;3xL6gd3td51zJ0ef=zf>o26=4>{I1bg>{i?lk1<7?tH2c`?xh0mk0;6ol;|l4ac<728qC?lm4}o5e4?6=9rB8mn5rn6d2>5<6sA9jo6sa7g094?7|@:kh7p`8f283>4}O;hi0qc9i4;295~N4ij1vb:h::182M5fk2we;k850;3xL6gd3td51zJ0ef=zf>l26=4>{I1bg>{i?ok1<7?tH2c`?xh0nk0;6ol;|l4bc<728qC?lm4}o:34?6=9rB8mn5rn922>5<6sA9jo6sa81094?7|@:kh7p`70283>4}O;hi0qc6?4;295~N4ij1vb5>::182M5fk2we4=850;3xL6gd3td3<:4?:0yK7de51zJ0ef=zf1:26=4>{I1bg>{i09k1<7?tH2c`?xh?8k0;67k3:1=vFol;|l;4c<728qC?lm4}o:24?6=9rB8mn5rn932>5<6sA9jo6sa80094?7|@:kh7p`71283>4}O;hi0qc6>4;295~N4ij1vb5?::182M5fk2we4<850;3xL6gd3td3=:4?:0yK7de51zJ0ef=zf1;26=4>{I1bg>{i08k1<7?tH2c`?xh?9k0;66k3:1=vFol;|l;5c<728qC?lm4}o:14?6=9rB8mn5rn902>5<6sA9jo6sa83094?7|@:kh7p`72283>4}O;hi0qc6=4;295~N4ij1vb5<::182M5fk2we4?850;3xL6gd3td3>:4?:0yK7de51zJ0ef=zf1826=4>{I1bg>{i0;k1<7?tH2c`?xh?:k0;65k3:1=vFol;|l;6c<728qC?lm4}o:04?6=9rB8mn5rn912>5<6sA9jo6sa82094?7|@:kh7p`73283>4}O;hi0qc6<4;295~N4ij1vb5=::182M5fk2we4>850;3xL6gd3td3?:4?:0yK7de51zJ0ef=zf1926=4>{I1bg>{i0:k1<7?tH2c`?xh?;k0;64k3:1=vFol;|l;7c<728qC?lm4}o:74?6=9rB8mn5rn962>5<6sA9jo6sa85094?7|@:kh7p`74283>4}O;hi0qc6;4;295~N4ij1vb5:::182M5fk2we49850;3xL6gd3td38:4?:0yK7de51zJ0ef=zf1>26=4>{I1bg>{i0=k1<7?tH2c`?xh?3k3:1=vFol;|l;0c<728qC?lm4}o:64?6=9rB8mn5rn972>5<6sA9jo6sa84094?7|@:kh7p`75283>4}O;hi0qc6:4;295~N4ij1vb5;::182M5fk2we48850;3xL6gd3td39:4?:0yK7de47>51zJ0ef=zf1?26=4>{I1bg>{i02k3:1=vFol;|l;1c<728qC?lm4}o:54?6=9rB8mn5rn942>5<6sA9jo6sa87094?7|@:kh7p`76283>4}O;hi0qc694;295~N4ij1vb58::182M5fk2we4;850;3xL6gd3td3::4?:0yK7de51zJ0ef=zf1<26=4>{I1bg>{i0?k1<7?tH2c`?xh?>k0;61k3:1=vFol;|l;2c<728qC?lm4}o:44?6=9rB8mn5rn952>5<6sA9jo6sa86094?7|@:kh7p`77283>4}O;hi0qc684;295~N4ij1vb59::182M5fk2we4:850;3xL6gd3td3;:4?:0yK7de51zJ0ef=zf1=26=4>{I1bg>{i0>k1<7?tH2c`?xh??k0;60k3:1=vFol;|l;3c<728qC?lm4}o:;4?6=9rB8mn5rn9:2>5<6sA9jo6sa89094?7|@:kh7p`78283>4}O;hi0qc674;295~N4ij1vb56::182M5fk2we45850;3xL6gd3td34:4?:0yK7de51zJ0ef=zf1226=4>{I1bg>{i01k1<7?tH2c`?xh?0k0;6?k3:1=vFc290:wE=nc:m<=c=83;pD>ol;|l;5<6sA9jo6sa88094?7|@:kh7p`79283>4}O;hi0qc664;295~N4ij1vb57::182M5fk2we44850;3xL6gd3td35:4?:0yK7de51zJ0ef=zf1326=4>{I1bg>{i00k1<7?tH2c`?xh?1k0;6>k3:1=vFol;|l;=c<728qC?lm4}o:b4?6=9rB8mn5rn9c2>5<6sA9jo6sa8`094?7|@:kh7p`7a283>4}O;hi0qc6n4;295~N4ij1vb5o::182M5fk2we4l850;3xL6gd3td3m:4?:0yK7de51zJ0ef=zf1k26=4>{I1bg>{i0hk1<7?tH2c`?xh?ik0;6fk3:1=vFol;|l;ec<728qC?lm4}o:a4?6=9rB8mn5rn9`2>5<6sA9jo6sa8c094?7|@:kh7p`7b283>4}O;hi0qc6m4;295~N4ij1vb5l::182M5fk2we4o850;3xL6gd3td3n:4?:0yK7de51zJ0ef=zf1h26=4>{I1bg>{i0kk1<7?tH2c`?xh?jk0;6ek3:1=vFol;|l;fc<728qC?lm4}o:`4?6=9rB8mn5rn9a2>5<6sA9jo6sa8b094?7|@:kh7p`7c283>4}O;hi0qc6l4;295~N4ij1vb5m::182M5fk2we4n850;3xL6gd3td3o:4?:0yK7de51zJ0ef=zf1i26=4>{I1bg>{i0jk1<7?tH2c`?xh?kk0;6dk3:1=vFol;|l;gc<728qC?lm4}o:g4?6=9rB8mn5rn9f2>5<6sA9jo6sa8e094?7|@:kh7p`7d283>4}O;hi0qpsr@AAxe2e==ml>?i==}ABA5{GHYqvLM \ No newline at end of file diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v index f7f6e7e9f..6f849b24c 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v @@ -61,7 +61,7 @@ output full; // synthesis translate_off - FIFO_GENERATOR_V4_4 #( + FIFO_GENERATOR_V4_3 #( .C_COMMON_CLOCK(0), .C_COUNT_TYPE(0), .C_DATA_COUNT_WIDTH(9), diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.veo b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.veo new file mode 100644 index 000000000..5c2da4b97 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.veo @@ -0,0 +1,51 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2007 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The following must be inserted into your Verilog file for this +// core to be instantiated. Change the instance name and port connections +// (in parentheses) to your own signal names. + +//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG +fifo_xlnx_512x36_2clk_36to18 YourInstanceName ( + .din(din), // Bus [35 : 0] + .rd_clk(rd_clk), + .rd_en(rd_en), + .rst(rst), + .wr_clk(wr_clk), + .wr_en(wr_en), + .dout(dout), // Bus [17 : 0] + .empty(empty), + .full(full)); + +// INST_TAG_END ------ End INSTANTIATION Template --------- + +// You must compile the wrapper file fifo_xlnx_512x36_2clk_36to18.v when simulating +// the core, fifo_xlnx_512x36_2clk_36to18. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco index a1c75dc39..9f47c073c 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco @@ -1,7 +1,7 @@ ############################################################## # # Xilinx Core Generator version K.39 -# Date: Thu Jul 29 18:10:59 2010 +# Date: Tue Aug 10 23:09:39 2010 # ############################################################## # @@ -32,7 +32,7 @@ SET verilogsim = true SET vhdlsim = false # END Project Options # BEGIN Select -SELECT Fifo_Generator family Xilinx,_Inc. 4.4 +SELECT Fifo_Generator family Xilinx,_Inc. 4.3 # END Select # BEGIN Parameters CSET almost_empty_flag=false @@ -78,5 +78,5 @@ CSET write_data_count=false CSET write_data_count_width=9 # END Parameters GENERATE -# CRC: 392ad537 +# CRC: b2f58113 diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.lso b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.lso new file mode 100644 index 000000000..f1a6f7899 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.lso @@ -0,0 +1,3 @@ +blkmemdp_v6_2 +blk_mem_gen_v2_6 +fifo_generator_v4_3 diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt new file mode 100644 index 000000000..3abf04253 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt @@ -0,0 +1,101 @@ + + + + + + +
+ + + + + + + + + + + + + + +
+
+ + + + + + + + + + + +
+
+ + + +
+
+
+
+
+
+
+
+ + + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + +
+
+
+
+
+ + + +
+ + + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_flist.txt b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_flist.txt new file mode 100644 index 000000000..aadac46c0 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_flist.txt @@ -0,0 +1,8 @@ +# Output products list for +fifo_xlnx_512x36_2clk_36to18.ngc +fifo_xlnx_512x36_2clk_36to18.v +fifo_xlnx_512x36_2clk_36to18.veo +fifo_xlnx_512x36_2clk_36to18.xco +fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt +fifo_xlnx_512x36_2clk_36to18_flist.txt +fifo_xlnx_512x36_2clk_36to18_xmdf.tcl diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_readme.txt b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_readme.txt new file mode 100644 index 000000000..568c757ec --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_readme.txt @@ -0,0 +1,39 @@ +The following files were generated for 'fifo_xlnx_512x36_2clk_36to18' in directory +/home/matt/fpgapriv/usrp2/coregen/: + +fifo_xlnx_512x36_2clk_36to18.ngc: + Binary Xilinx implementation netlist file containing the information + required to implement the module in a Xilinx (R) FPGA. + +fifo_xlnx_512x36_2clk_36to18.v: + Verilog wrapper file provided to support functional simulation. + This file contains simulation model customization data that is + passed to a parameterized simulation model for the core. + +fifo_xlnx_512x36_2clk_36to18.veo: + VEO template file containing code that can be used as a model for + instantiating a CORE Generator module in a Verilog design. + +fifo_xlnx_512x36_2clk_36to18.xco: + CORE Generator input file containing the parameters used to + regenerate a core. + +fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt: + Please see the core data sheet. + +fifo_xlnx_512x36_2clk_36to18_flist.txt: + Text file listing all of the output files produced when a customized + core was generated in the CORE Generator. + +fifo_xlnx_512x36_2clk_36to18_readme.txt: + Text file indicating the files generated and how they are used. + +fifo_xlnx_512x36_2clk_36to18_xmdf.tcl: + ISE Project Navigator interface file. ISE uses this file to determine + how the files output by CORE Generator for the core can be integrated + into your ISE project. + + +Please see the Xilinx CORE Generator online help for further details on +generated files and how to use them. + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_xmdf.tcl b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_xmdf.tcl new file mode 100644 index 000000000..09248b321 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_xmdf.tcl @@ -0,0 +1,68 @@ +# The package naming convention is _xmdf +package provide fifo_xlnx_512x36_2clk_36to18_xmdf 1.0 + +# This includes some utilities that support common XMDF operations +package require utilities_xmdf + +# Define a namespace for this package. The name of the name space +# is _xmdf +namespace eval ::fifo_xlnx_512x36_2clk_36to18_xmdf { +# Use this to define any statics +} + +# Function called by client to rebuild the params and port arrays +# Optional when the use context does not require the param or ports +# arrays to be available. +proc ::fifo_xlnx_512x36_2clk_36to18_xmdf::xmdfInit { instance } { +# Variable containg name of library into which module is compiled +# Recommendation: +# Required +utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_xlnx_512x36_2clk_36to18 +} +# ::fifo_xlnx_512x36_2clk_36to18_xmdf::xmdfInit + +# Function called by client to fill in all the xmdf* data variables +# based on the current settings of the parameters +proc ::fifo_xlnx_512x36_2clk_36to18_xmdf::xmdfApplyParams { instance } { + +set fcount 0 +# Array containing libraries that are assumed to exist +# Examples include unisim and xilinxcorelib +# Optional +# In this example, we assume that the unisim library will +# be magically +# available to the simulation and synthesis tool +utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library +utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_36to18.ngc +utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_36to18.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_36to18.veo +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_36to18.xco +utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_36to18_xmdf.tcl +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_xlnx_512x36_2clk_36to18 +incr fcount + +} + +# ::gen_comp_name_xmdf::xmdfApplyParams -- cgit v1.2.3 From ff21cc7592573249938022fdcf118d73928a037e Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Thu, 12 Aug 2010 12:00:01 -0700 Subject: Found bug due to not accounting for the correct number of possible in flight READ operations that can be in the extfifo pipeline. Regenerated fifo_xlnx_512x36_2clk_18to36 to include prog_full output triggered at 1017 so that there are 6 empty spaces to accept in flight read data upon completion. Had to generate the FIFO using Coregen from ISE12.1 due to 10.1 verion not working correctly in FPGA Still have to tackle making this simulate in Icarus --- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc | 4 +- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v | 68 ++++++++++++++------------ usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco | 18 ++++--- usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ngc | 2 +- usrp2/extramfifo/ext_fifo.v | 15 ++++-- usrp2/extramfifo/ext_fifo_tb.v | 39 +++++++++++++++ usrp2/extramfifo/nobl_fifo.v | 16 +++--- 7 files changed, 110 insertions(+), 52 deletions(-) diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc index 376e18c57..657b1aa98 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc @@ -1,3 +1,3 @@ XILINX-XDB 0.1 STUB 0.1 ASCII -XILINX-XDM V1.4e -$4264g<,[o}e~g`n;"2*413&;$>"9 > %0:?*rjx&Uhk"hffn]{hk~X=88s?;Q=cmi\5=rh;?$ekb?40493456712:;<=>?01274>6789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123457<9:1:"=?<;029MKVR\3KOH_O39;2=5`=683CE\XZ5psmd[cskdV~c~h}g<883:73<990BB][[:qplcZ`rdeUdk|h^cpw`ts400;2?;4118JJUSS2yxdkRhzlm]wlwct`Vdnklzj<883:4?<990DYY^ZT;fbpdYdg|d044?>0a855113922?OIX\^1HDO31483:45<9?0DYY^ZT;FLE972294:>6?7:HLSQQ11:025>4=AGZ^X7JFP@>2>586:281CXZ_UU8GKUG;93:5=?5<2;KMTPR=L@H7?<4?>018775833:99?<:4378LQQVR\3ndyy2<5;2=6>5?l29x>=>?ff662(363=808;58JJUSS2MC[N1=50?31?10>5833<>><<592:4:0>0>1?>0:4O>2:4F0>>3:8;0595601;1?<0330<=5<<49;KMTPR=IMNYN1650?3f?<?=AGZ^X7~}of]fiur~W}byi~fParqfvq:?29499675IORVP?vugnUna}zv_ujqavnXflmjxh27:1<2f>?=G\^[YY4}d^fbpdYdg|d054?>99B@ATF49437LJKR@>2:==FLMXJ0?07;@FGVD:4611JHI\N<5<;?DBCZH6>255NDEPB838?3HNO^L28>99B@ATF414j7LJKR@>:>58?3HNO^L26>99B@ATE49437LJKRC>2:==FLMXI0?07;@FGVG:4611JHI\M<5<;?DBCZK6>255NDEPA838?3HNO^O28>`9B@ATE410;255NDEPA8=8>3HYRBNQ]EF38F6=E];20NX]PIODL5>E33JK3M?5LE008GMCDCVFBOH@\E^VZT@40OAEN4:AOOG53:2=CAH6:<394DHC?54803MCJ0<<17:FJE9746>1OEL2>4?;8@LG;9<0;2:5KI@>21;069GMG:6;7=0HDL315<4?AOE48?5;6JFB=35:2=CAK6:;394DH@?5=803MCI0<716:FJF979?2NBN169GMG:597=0HDL323<4?AOE4;95;6JFB=07:2=CAK699394DH@?63803MCI0?917:FJF94?6>1OEO2=9?48@LD;:7=0HDL331<:?AOE4:;1<394DH@?74813MCI0>09;EKA81813MCI0809;EKA83813MCI0:09;EKA8=813MCI0408;EKSE96912NB\L2>:1<4?AOWI5;5;6JFPC>3:2=CAYH7=394DHRA878>3MC[N1=50?58@LVE4:4=7IAN<1<4?AIF48:5;6J@A=32:2=CGH6:>394DNC?56803MEJ0<:19:FLE972294<7IAN<07=2>BHI5;5:6J@A=0=2>BHI595:6J@A=6=2>BHI5?5:6J@A=4=2>BHI5=5:6J@A=:=2>BHI535:6J@B=2=3>BHJ5;;2:5KOC>25;169GKG:6=7=0HBL317<4?AIE48=5;6J@B=3;:2=CGK6:5384DN@?5;1=08;EMA8779?2NDN1<=>69GKG:5;7=0HBL325<4?AIE4;?5;6J@B=05:2=CGK69;394DN@?6=803MEI0?716:FLF949?2NDN1=?>89GKG:493:5;6J@B=12:3=CGK682;5KOC>7:3=CGK6>2;5KOC>5:3=CGK6<2;5KOC>;:3=CGK622:5KOQC?4;?69GKUG;97=0HB^M<1<4?AIWJ5;5;6J@PC>1:<=CGYH7?7>17:FLTG:4681N?6KAA29FJG26H72:DG7>@CK=1MHNK<;GFS0>@CXL?0Jlb|e09D7>AIL;1B37D@FTQ]31==NF@^[S=87;HLJPUY7?01BBDZ\T@VF3>OIA]U;<:5FNHV\441M7:KMMQY7K>1BBDZP0E58MKOSW9O<7D@FT^2E3>OIA]U:<:5FNHV\541469JJLRX9<=0ECG[_044?LHN\V;<;6GAIU]2<2=NF@^T=494IOKW[4G03@DBXR?M7:KMMQY6K>1BBDZP1E58MKOSW8O<7D@FT^3E3>OIA]U9<:5FNHV\641494IOKW[7G03@DBXR1BBDZP2E58MKOSW;O<7D@FT^0E3>OIA]U8<:5FNHV\741<8;HLJPZ54?2CEEYQ<469JJLRX;<=0ECG[_244?LHN\V9<;6GAIU]0<2=NF@^T?494IOKW[6G03@DBXR=M7:KMMQY4K>1BBDZP3E58MKOSW:O<7D@FT^1E2>OIA]UJ:6GAIU]A7>OHJ;1GE?5CO79OKDBBL>1GCJGLAM68HPR6<2F^X?84LTV1[I2JR\=<0@XZ;_M78IVAHF<1FYUMVc:ObnjtQm{ybccm4MhllvScu{`ee>6@>3:L241=I99;?7C??259M55533G;;895A1177?K77>=1E==9;;O33<1=I99387C?>4:L25521368J474<2D:=9:4N0360>H69?>0B259M57633G;9=95A1307?K75;=1E=?:;;O3111=I9;33G;95>5A1268J457<2D:?<:4N0110>H6;:>0B<=;4:L27023668J45?;2D:8>5A1418J4043G;829M5<53:L166=I::90B9:<;O657>H30:1E9=<4N708J24H?<:1E4;=4N951?K?43G3;j6@M_CWPTLHXX[E[_:5AEUULVN2PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^pg[uhszVmhSua}0122[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYulVzexQhc^zlv567:VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;<>Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?016\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4562W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;:R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?06]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[rtXxg~ySjmPxnp3456XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^e`[}iu89::S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?2^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2346YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt789>T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=>:_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1232ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678>UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=6PRdqvhq7592_;#j|i.sd,cf~)keas#jPpovq[goi4949=6[?/fpe*w`(ojr%oaew/sf\tkruWkce0<0=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<3<15>S7'nxm"h gbz-gim'{nT|cz}_ckm868592_;#j|i.sd,cf~)keas#jPpovq[goi4=49=6[?/fpe*w`(ojr%oaew/sf\tkruWkce080=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<7<15>S7'nxm"h gbz-gim'{nT|cz}_ckm828592_;#j|i.sd,cf~)keas#jPpovq[goi4149<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS= gsd-vc)`kq$h`fv re]sjqtXj`dT9?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ9219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^514>S7'nxm"h gbz-gim'{nT|cz}_ckm[=413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=>=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45679;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0004?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789;:>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123671<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?3305?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789>9;6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0127570<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<8<8;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34536:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?63a8Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678?;:S^Y?2b9V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567>8;T_Z?=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq4561:;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0604?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789=:>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmh0=0=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm31?03?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb>1:76<]9%l~k }f.e`|+ekcq%yhR~ats]dg959:91^<"i}f/pe+be&jf`t"|k_qlwvZad4=49<6[?/fpe*w`(ojr%oaew/sf\tkruWni793328Q5)`zo$yj"ilx/aoo})ulVzexQhc=5=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`8=86n2_;#j|i.sd,cf~)keas#jPpovq[beX88l0Y=!hrg,qb*adp'iggu!}d^rmpwY`kV;:j6[?/fpe*w`(ojr%oaew/sf\tkruWniT>f:W3+bta&{l$knv!cmi{+wbXxg~ySjmP40d8Q5)`zo$yj"ilx/aoo})ulVzexQhc^72b>S7'nxm"h gbz-gim'{nT|cz}_fa\24`<]9%l~k }f.e`|+ekcq%yhR~ats]dgZ16n2_;#j|i.sd,cf~)keas#jPpovq[beX0;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi30?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4849:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=0=63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn682?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?0;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol080=6:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfc909:?1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyij28>348Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;078>7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_106?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`W88>7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_306?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`W:8>7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_506?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`W<8>7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_706?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`W>8>7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_90:?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;7<3<6;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7;97827X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3?6;4>3\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{olSi?33?0:?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;783<6;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7;=7827X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3?2;4>3\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{olSi?37?0:?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;743<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X8;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]26==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R<=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W:837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\07><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh?1378Q5)`zo$yj"ilx/aoo})ulVzexQhc^zlv567:;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVrd~=>?3378Q5)`zo$yj"ilx/aoo})ulVzexQhc^zlv567<;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVrd~=>?5378Q5)`zo$yj"ilx/aoo})ulVzexQhc^zlv567>;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVrd~=>?7338Q5)`zo$yj"ilx/aoo})pzVzexQmio>2:77<]9%l~k }f.e`|+ekcq%|~R~ats]amk:56;;0Y=!hrg,qb*adp'iggu!xr^rmpwYeag682??4U1-dvc(un&mht#mcky-tvZvi|{Uiec2;>338Q5)`zo$yj"ilx/aoo})pzVzexQmio>6:77<]9%l~k }f.e`|+ekcq%|~R~ats]amk:16;;0Y=!hrg,qb*adp'iggu!xr^rmpwYeag6<2??4U1-dvc(un&mht#mcky-tvZvi|{Uiec27>338Q5)`zo$yj"ilx/aoo})pzVzexQmio>::76<]9%l~k }f.e`|+ekcq%|~R~ats]amkY6:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV89<6[?/fpe*w`(ojr%oaew/vp\tkruWkceS>8;7X> gsd-vc)`kq$h`fv ws]sjqtXj`dT4?>4U1-dvc(un&mht#mcky-tvZvi|{UiecQ6279V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv5678;=0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?01312>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89::>:5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r12354413\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=<=7:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq45659;<0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?0204?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt78999>;5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r123071<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<9?=6:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq4562:>1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?5005?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt789<9o6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012554YT_98h7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01425ZUP9;=0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?07012>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:<>:5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r12334473\:$kh!rg-dg}(ddbr${Qnup\cf:76;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k5;5>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh0?0=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm33?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>7:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg939:91^<"i}f/pe+be&jf`t"y}_qlwvZad4?49<6[?/fpe*w`(ojr%oaew/vp\tkruWni7;3328Q5)`zo$yj"ilx/aoo})pzVzexQhc=;=5c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[57a3\:$kh!rg-dg}(ddbr${Qnup\cfY69o1^<"i}f/pe+be&jf`t"y}_qlwvZadW;;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU8=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS9?i;T2,cw`)zo%lou lljz,swYwf}xTknQ:1g9V4*aun'xm#jmw.bnh|*quWyd~Ril_73e?P6(o{l%~k!hcy,`hn~({U{by|Pgb]45c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[=7a3\:$kh!rg-dg}(ddbr${Qnup\cfY>:?1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyij2?>348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;978=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<3<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo595>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>7:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm793<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8385>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk191279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:?6;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi39?06?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`W98>7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_006?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`W;8>7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_206?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`W=8>7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_406?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`W?8>7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_606?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`W18>7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_80:?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;7=3<6;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7;:7827X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3?7;4>3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?34?0:?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;793<6;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7;>7827X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3?3;4>3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?38?0:?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;753<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X9;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]16==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R==8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W=837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\17><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh?1378Q5)`zo$yj"ilx/aoo})pzVzexQhc^zlv567:;?0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVrd~=>?3378Q5)`zo$yj"ilx/aoo})pzVzexQhc^zlv567<;?0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVrd~=>?5378Q5)`zo$yj"ilx/aoo})pzVzexQhc^zlv567>;?0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVrd~=>?7378Q5)`zo$yj"ilx/aoo})pzVzexQhc^zlv5670;k0Y=!hrg,qb*ak8'xo#j|>.sdtbq)UIDUYHRKA_GUEP44d3\:$kh!rg-dh5(ul&my=#|iwgv,VDKXZMUNBRHXFU3\57?<]9%l~k }f.eo4+tc'nx:"hxfu-QEHYUMNE^XRKA1218Q5)`zo$yj"ic0/pg+bt6&{l|jy!lusp\br`sWz~jxhQISL]EBa74>2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[CUJWOLo= Ga399V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}kiRH\M^DE`4+Nf8;8?6[?/fpe*w`(oe:%~i!hr0,qbr`s'jy~Rhxfu]ppdrbWOYFSKHk2248Q5)`zo$yj"ic0/pg+bt6&{l|jy!lusp\br`sWz~jxhQISL]EBa4*Ag937X> gsd-vc)`d9$yh"i}1/pescr(k|xySkyit^qweqcXNZGTJKj=-Hl257><]9%l~k }f.eo4+tc'nx:"hxfu-fiur~Wo}mxRhm269V4*aun'xm#jb?.sf,cw7)zo}mx"kbpu{\br`sW`8n7X> gsd-vc)`d9$yh"i}1/pescr(mdzuRhxfu]j[jt789:9j6[?/fpe*w`(oe:%~i!hr0,qbr`s'lg{xtQiwgv\mZiu89:;=?74U1-dvc(un&mg<#|k/fpbw+tt|z%h<"mnrs{maq:76;30Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&ij~waeu>2:7?<]9%l~k }f.eo4+tc'nxj#||tr-`4*efz{seiy2=>3;8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.abvwim}682?h4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"ibuy,di^6Z&ng:"`?=f:W3+bta&{l$ka>!re-dvdu)zz~x#n> glw{*bk\9T$la~ bs3d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.enq}(`eR8V"jc|.lq1b>S7'nxm"h gm2-va)`zhy%~~z|/b2,chs&ngP?P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`4*aj}q$laV:R.fop*hu5;2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(~86;2?=4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"x><0<17>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4:56;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&|:0>0=3:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0>7:7d<]9%l~k }f.eo4+tc'nxj#||tr-`4*p6W9Ujbi>?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4Y6Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.t2[7Yffm:;<=?=b:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0]0[dhc89:;=?l4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"x>_5]mkq6789;956[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$ol|}yogw858512_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(khxyuck{<0<1=>S7'nxm"h gm2-va)`zhy%~~z|/b3,gdtuqgo0?0=9:W3+bta&{l$ka>!re-dvdu)zz~x#n? c`pq}kcs4:49j6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$k`{w.foX4X(`e8$f=?h4U1-dvc(un&mg<#|k/fpbw+tt|z%h="ibuy,di^7Z&ngx"`}=f:W3+bta&{l$ka>!re-dvdu)zz~x#n? glw{*bk\:T$la~ bs3d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.enq}(`eR9V"jc|.lq1b>S7'nxm"h gm2-va)`zhy%~~z|/b3,chs&ngP8P hmr,nw75<]9%l~k }f.eo4+tc'nxj#||tr-`5*p64949?6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$z<2>>318Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t28785;2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~8682?=4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x><5<1f>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4Y7Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t2[4Yffm:;<=?=b:W3+bta&{l$ka>!re-dvdu)zz~x#n? v0]1[dhc89:;=?l4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x>_2]bja6789;9n6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$z=5Z0.eqb+ta'nf;"j gscp*wus{&ida}?=9:W3+bta&{l$ka>!re-dvdu)zz~x#ob_dosp|YajVc8<6[?/fpe*w`(oe:%~i!hr`q-vvrt'{kfShctx]efZoXg{:;<==>;T2,cw`)zo%l`= }d.eqev(u{}y$~lcPelrw}Z`eW`Ud~=>?0000?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphs:=1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by?=4:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmp7433\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d??:4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov761=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}?986[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at707?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphs?;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz7289V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5:5>n5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}969W{~956[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az8485k2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<0<\vq4>3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw32?0`?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7>3Q}t3;8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp682?m4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:46Vx>45Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}929:j1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=6=[wr512_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<4<1g>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir080Pru0:?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7:37Uyx?74U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:06;i0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>4:Zts:h1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQwos>3:7g<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|31?0b?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWqey0?0=a:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZ~hz595>l5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]{kw:36;k0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?1;4f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSua}<7<1e>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1912`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{632?j4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;07Uyxf:W3+bta&{l$ka>!re-qtkru'je~by2>>0d8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{<3<2b>S7'nxm"h gm2-va)uxg~y#naznu>0:4`<]9%l~k }f.eo4+tc'{zex!lotlw8186n2_;#j|i.sd,ci6)zm%y|cz}/bmvjq:268l0Y=!hrg,qb*ak8'xo#~ats-`kphs4?4:j6[?/fpe*w`(oe:%~i!}povq+firf}6<2e:W3+bta&{l$ka>!re-qtkru'je~byQ?1d9V4*aun'xm#jb?.sf,vuhsz&idyczP10g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_33f?P6(o{l%~k!hl1,q`*twf}x$ob{at^12a>S7'nxm"h gm2-va)uxg~y#naznu]75`=R8&myj#|i/fn3*wb(zyd~"m`uov\14c<]9%l~k }f.eo4+tc'{zex!lotlw[37b3\:$kh!rg-dh5(ul&x{by| cnwmpZ16m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY?:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl86;2?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?31?01?P6(o{l%~k!hl1,q`*twf}x$ob{at^f28785:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc9595>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<2;>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?1;453\:$kh!rg-dh5(ul&x{by| cnwmpZb64?49>6[?/fpe*w`(oe:%~i!}povq+firf}Uo=191239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>;:77<]9%l~k }f.eo4+tc'{zex!lotlw[a7X8;;0Y=!hrg,qb*ak8'xo#~ats-`kphsWm;T=??4U1-dvc(un&mg<#|k/srmpw)dg|dSi?P2338Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3\777<]9%l~k }f.eo4+tc'{zex!lotlw[a7X<;;0Y=!hrg,qb*ak8'xo#~ats-`kphsWm;T9??4U1-dvc(un&mg<#|k/srmpw)dg|dSi?P6338Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3\377<]9%l~k }f.eo4+tc'{zex!lotlw[a7X0;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>3:7?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2>>3;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}692?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:46;l0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&mfyu hmZ2^*bk6&d;9j6[?/fpe*w`(oe:%{!hw`q-svrt'j;$k`{w.foX5X(`ez$f?h4U1-dvc(un&mg<#y}/fubw+qt|z%h="ibuy,di^4Z&ngx"`}=f:W3+bta&{l$ka>!ws-dsdu)z~x#n? glw{*bk\;T$la~ bs3d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(`eR>V"jc|.lq17>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4:76;90Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:0<0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0>1:75<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p64:49?6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z<2;>3`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t2[5Yffm:;<=?=b:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0]2[dhc89:;=?l4U1-dvc(un&mg<#y}/fubw+qt|z%h="x>_3]bja6789;9n6[?/fpe*w`(oe:%{!hw`q-svrt'j;$zS7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0<0=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs4;4956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw8685n2_;#j|i.sd,ci6){%l{l}!wrvp+f4(ods"jcT0\,di4(j9;l0Y=!hrg,qb*ak8'}y#jyns/uppv)d:&mfyu hmZ3^*bkt&dy9j6[?/fpe*w`(oe:%{!hw`q-svrt'j8$k`{w.foX6X(`ez$f?h4U1-dvc(un&mg<#y}/fubw+qt|z%h>"ibuy,di^5Z&ngx"`}=f:W3+bta&{l$ka>!ws-dsdu)z~x#n< glw{*bk\"x><3<17>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4:46;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:090=b:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0]3[dhc89:;=?l4U1-dvc(un&mg<#y}/fubw+qt|z%h>"x>_0]bja6789;9n6[?/fpe*w`(oe:%{!hw`q-svrt'j8$zQnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~8U?Sl`k0123576<]9%l~k }f.eo4+qu'n}j#y|tr-`khv6:91^<"i}f/pe+bj7&~x$kzo|.vqww*ehey89<6[?/fpe*w`(oe:%{!hw`q-svrt'jef|>3 gsd-vc)`d9$|~"ixar,twqu(ohl%o>!hmtz-ch]5U'mf#c|329V4*aun'xm#jb?.vp,crgt&~y"inf/a0+bkrp'mfW>S!glq-iv543\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%laxv!glY7Y+aj{'gx>:5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m gsd-vc)`d9$|~"ixar,twqu(ohl%o>!y1=1=62=R8&myj#|i/fn3*rt(o~kx"z}{s.ebb+e4';783>2g9V4*aun'xm#jb?.vp,crgt&~y"inf/a0+s7X9Vkeh=>?000e?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q9V8Tmcj?01226c=R8&myj#|i/fn3*rt(o~kx"z}{s.ebb+e4';T?Road123444a3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%}=R:Paof34566:j1^<"i}f/pe+bj7&~x$kzo|.vqww*tfeVkgab}{_gwohZo4<2_;#j|i.sd,ci6){%l{l}!wrvp+wgjWhffc~zPftno[lYj}q:;<==:;T2,cw`)zo%l`= xr.etev(p{}y$~lcPamolwqYa}efTeRczx12344533\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXiegdyQiumn\mZhh|9:;=>;4U1-dvc(un&mg<#y}/fubw+qt|z%ym`QnllmppZ`rdeUbSca{012257><]9%l~k }f.eo4+qu'n}j#y|tr-qehYa}efTjoQf249V4*aun'xm#jb?.vp,crgt&~y"|nm^dvhiYn:j1^<"i}f/pe+bj7&~x$kzo|.vqww*tfeVl~`aQf_np34565l2_;#j|i.sd,ci6){%l{l}!wrvp+wgjWog`RgPos234575<2_;#j|i.sd,ci6){%l{l}!wrvp+rtXzz~Th0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz;259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq35<2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex;<;;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw372<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~3>95Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu;1=>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir0=0=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~494T~y<6;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;978h7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?5;Yu|;30Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPcx>1:7e<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2=>^pw6<=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1=12b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq595Sz=9:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4=49o6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az818Xz}827X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?1;4d3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw35?]qp7?<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot29>3a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6=2R|{289V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5=5>n5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}919W{~956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8=85k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<9<\vq4f3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSua}<1<1e>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vrd~1?12`9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{692?o4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\|jt;;78j7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8185i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=7=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc29>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7;3::Zts9o1^<"i}f/pe+bj7&~x${}`{r.alqkr;87;m7X> gsd-vc)`d9$|~"ynup,gjsi|5;5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~7>3?i;T2,cw`)zo%l`= xr.usjqt(kfex1=11g9V4*aun'xm#jb?.vp,suhsz&idycz34?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=7=5c=R8&myj#|i/fn3*rt(yd~"m`uov?2;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9199o1^<"i}f/pe+bj7&~x${}`{r.alqkr;07;m7X> gsd-vc)`d9$|~"ynup,gjsi|535=h5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T<e:W3+bta&{l$ka>!ws-ttkru'je~byQ<1d9V4*aun'xm#jb?.vp,suhsz&idyczP40g8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_43f?P6(o{l%~k!hl1,tv*qwf}x$ob{at^42a>S7'nxm"h gm2-sw)pxg~y#naznu]45`=R8&myj#|i/fn3*rt(yd~"m`uov\<4c<]9%l~k }f.eo4+qu'~zex!lotlw[<453\:$kh!rg-dh5(pz&}{by| cnwmpZb64949>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=1?1239V4*aun'xm#jb?.vp,suhsz&idyczPd0>1:74<]9%l~k }f.eo4+qu'~zex!lotlw[a7;;7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:090=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=7=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:16;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7;3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><9<16>S7'nxm"h gm2-sw)pxg~y#naznu]g59?9:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl8U;><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th209V4*aun'xm#jb?.vp,suhsz&idyczPd0]164=R8&myj#|i/fn3*rt(yd~"m`uov\`4Y4:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl8U?><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th3:74<]9%l~k }f.eo4+qu'~zex!lotlw[a4;97897X> gsd-vc)`d9$|~"ynup,gjsi|Vn90?0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk2=1=67=R8&myj#|i/fn3*rt(yd~"m`uov\`7:36;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm8793<=;T2,cw`)zo%l`= xr.usjqt(kfexRj=<7<16>S7'nxm"h gm2-sw)pxg~y#naznu]g6919:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;632?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<39?02?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[5463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W88:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S?<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_202?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[1463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W<8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S;<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_602?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[=463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W0897X> gsd-vc)`d9$|~"ynup,gjsi|Vn80=0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk3=3=67=R8&myj#|i/fn3*rt(yd~"m`uov\`6:56;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm97?3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj<<5<16>S7'nxm"h gm2-sw)pxg~y#naznu]g7939:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl:6=2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=37?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f08=85:2_;#j|i.sd,ci6){%||cz}/bmvjqYc;535><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q?209V4*aun'xm#jb?.vp,suhsz&idyczPd2]264=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y5:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U8><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q;209V4*aun'xm#jb?.vp,suhsz&idyczPd2]664=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y1:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U<><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q7209V4*aun'xm#jb?.vp,suhsz&idyczPd2]:53=R8&myj#|i/lgn+air|VcT<<84U1-dvc(un&gna"j`uu]j[4703\:$kh!rg-nah)cg|~TeR??169V4*aun'xm#`kb/emvpZoX98;<7X> gsd-vc)jmd%ocxzPi^3152=R8&myj#|i/lgn+air|VcT=>?8;T2,cw`)zo%fi`!kotv\mZ739>1^<"i}f/pe+hcj'me~xRgP1434?P6(o{l%~k!bel-gkprXaV;==:5Z0.eqb+ta'dof#iazt^k\52703\:$kh!rg-nah)cg|~TeR?7169V4*aun'xm#`kb/emvpZoX90;=7X> gsd-vc)jmd%ocxzPi^023>S7'nxm"h mdo,`jssW`U9<<94U1-dvc(un&gna"j`uu]j[776?2_;#j|i.sd,i`k(lfSdQ=2058Q5)`zo$yj"cjm.flqqYnW;9:;6[?/fpe*w`(elg$hb{{_h]1041<]9%l~k }f.ofi*bh}}UbS?;>7:W3+bta&{l$ahc dnww[lY5>8=0Y=!hrg,qb*kbe&ndyyQf_3523>S7'nxm"h mdo,`jssW`U94<94U1-dvc(un&gna"j`uu]j[7?6>2_;#j|i.sd,i`k(lfSdQ<169V4*aun'xm#`kb/emvpZoX;9;<7X> gsd-vc)jmd%ocxzPi^1252=R8&myj#|i/lgn+air|VcT???8;T2,cw`)zo%fi`!kotv\mZ549>1^<"i}f/pe+hcj'me~xRgP3534?P6(o{l%~k!bel-gkprXaV9>=;5Z0.eqb+ta'dof#iazt^k\040<]9%l~k }f.ofi*bh}}UbS8?9;T2,cw`)zo%fi`!kotv\mZ06>2_;#j|i.sd,i`k(lfSdQ8179V4*aun'xm#`kb/emvpZoX08<0Y=!hrg,qb*kbe&ndyyQf_83:?P6(o{l%~k!bel-gkprXelg7<3?n;T2,cw`)zo%fi`!kotv\i`k;994:m6[?/fpe*w`(elg$hb{{_lgn84799h1^<"i}f/pe+hcj'me~xRcjm=31:4g<]9%l~k }f.ofi*bh}}Ufi`2>3?3b?P6(o{l%~k!bel-gkprXelg7=90>a:W3+bta&{l$ahc dnww[hcj48?5=l5Z0.eqb+ta'dof#iazt^ofi97168k0Y=!hrg,qb*kbe&ndyyQbel>23;7f3\:$kh!rg-nah)cg|~Tahc319<2e>S7'nxm"h mdo,`jssWdof0<71189V4*aun'xm#`kb/emvpZkbe5;5=l5Z0.eqb+ta'dof#iazt^ofi94768k0Y=!hrg,qb*kbe&ndyyQbel>15;7f3\:$kh!rg-nah)cg|~Tahc323<2e>S7'nxm"h mdo,`jssWdof0?=11`9V4*aun'xm#`kb/emvpZkbe58?2 gsd-vc)jmd%ocxzPmdo?6386i2_;#j|i.sd,i`k(lfS`kb<35=5d=R8&myj#|i/lgn+air|Vgna1<7>0c8Q5)`zo$yj"cjm.flqqYjmd6953?6;T2,cw`)zo%fi`!kotv\i`k;:7;j7X> gsd-vc)jmd%ocxzPmdo?7586i2_;#j|i.sd,i`k(lfS`kb<23=5d=R8&myj#|i/lgn+air|Vgna1==>0c8Q5)`zo$yj"cjm.flqqYjmd68?3?n;T2,cw`)zo%fi`!kotv\i`k;;=4:m6[?/fpe*w`(elg$hb{{_lgn8639901^<"i}f/pe+hcj'me~xRcjm=1=5<=R8&myj#|i/lgn+air|Vgna1:1189V4*aun'xm#`kb/emvpZkbe5?5=45Z0.eqb+ta'dof#iazt^ofi909901^<"i}f/pe+hcj'me~xRcjm=5=5<=R8&myj#|i/lgn+air|Vgna161189V4*aun'xm#`kb/emvpZkbe535:h5Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(~hfbh#m|ts-qehjhgyQ;Q#|nm/p,r7Yig`dbx#|nm.fs5=~4>'xja gsd-vc)uidUyhRka169V4*aun'xm#ob_sgdkprXmg;87X> gsd-vc)uidU|~Rka1e9V4*aun'xm#}{bmi,vaYu{}Ujkh219V4*aun'xm#}{bmi,vaYu{}Ujkh_e314>S7'nxm"h rrvahn)ulVxxxRo|rde\`77d3\:$kh!rg-qwqdkc&xoS}{_bmnf4b<]9%l~k }f.pppgjl'{nT~~zPcnoa54c<]9%l~k }f.pppgjl'{nT~~zPrde?4;7b3\:$kh!rg-qwqdkc&xoS}{_sgd8486m2_;#j|i.sd,vvredb%yhR||t^pfc9499m1^<"i}f/pe+wusjea$~iQ}su]qabY79m1^<"i}f/pe+wusjea$~iQ}su]qabY69m1^<"i}f/pe+wusjea$~iQ}su]qabY59m1^<"i}f/pe+wusjea${Q}su]bwwc`:91^<"i}f/pe+wusjea${Q}su]bwwc`Wm;9<6[?/fpe*w`(zz~i`f!xr^pppZgtzlmTh??l;T2,cw`)zo%yylck.uq[wusWjefnd:W3+bta&{l$~~zmlj-tvZtt|VxnkR>>d:W3+bta&{l$~~zmlj-tvZtt|VxnkR?n;TQFVZGKAHYh7X]JR^TJWLDKM:1]ON74VHGT[Q_WM:1\IL=4WD@a?RTN\LUME_][c:UQMQCXEFNNSLm4WSKWAZKHLLUI=i5WIMKM\(^CJ):%=-][UC"3*4&F[JCB96V@RB[5?]USD@H<7U][_FLG3>^T\V\HOo5W_BMQAZOINF<0TilPIed8\anXX{cfZh||inl24>^ceVGjfb|Yesqjkk773QnfS@gaosTfvvohfj1j``a|t^gntqe3hffc~zPftno2>dfkb{h6lncjws[hguclx87nbdd:fbpdYdg|d$='k;ecweZeh}g~#=$j4d`vb[firf}"9%i5kauc\gjsi|!9"h6jnt`]`kphs =#o7io{a^alqkr/= n0hlzn_bmvjq.1!m1omyoPcnwmp-1.l2njxlQlotlw,=/c3mkmRm`uov+=,`:>5803mhbxh|}6:fjj-6.>2nbb%?&7:fjj-77!>1oec&>1(58`lh/9;#<7iga(01*3>bnf!;?%:5kio*21,12nbb%<&6:fjj-5.>2nbb%:&6:fjj-3.>2nbb%8&6:fjj-1.>2nbb%6&6:fjj-?.>2nbb1>17:fjj9776>1oec2>1?58`lh;9;4<7iga<01=3>bnf5;?2:5kio>21;14=7iga<9<5?aoi404<7iazt)2*3>bh}}":%55kotv+55/?3me~x%?>)99gkpr/9;#37iazt)30-==cg|~#=9'7;emvp-72!11ocxz'17+;?air|!;<%55kotv+5=/?3me~x%?6)69gkpr/: 20hb{{(32*<>bh}}"9=$64dnww,74.02ndyy&=3(:8`jss ;>"46j`uu*11,>bh}}"95$94dnww,6/?3me~x%=?)99gkpr/;8#37iazt)11-==cg|~#?>'7;emvp-53!11ocxz'34+4?air|!>";6j`uu*6-2=cg|~#:$94dnww,2/03me~x%6&7:flqq.>!>1ocxz30?:8`jss48:546j`uu>25;>bh}}6:9364dnww840902ndyy2>7?:8`jss482546j`uu>2=;199gkpr;:<437iazt=05:==cg|~7>:07;emvp94?611ocxz328<4?air|58546j`uu>04;>?18:flqq:4:720hb{{<21=<>bh}}6883o4dnww863=8720hb{{<27=3>bh}}682:5kotv?0;169gkpr;07=0hb{{<8<;?`bnn;dlh85jmqvz77=aaoeTkh`jr`vlvZp3W:&+Tdbfny"@KWC'Oldn~lz`r!33*4(7;8i0jdh`_ynm|Z36:q9=S?mck^3;pj51;h1mekaPxml{[075p:nbd_0:wk60+n`ldSjkaescwkwYqV8h`fQ>8um02)`nnfUlick}aumq[s2X;%qhSeo|_hlw[fjl59&hSeo|_rppp86+kVxoSk|jq<3/gZnf{VxoSio{a^alqkr:8%iThd`Pwhfwl87?$jUcm~Qxr^fbpdYdg|d1="l_gwohZ`kinyT~~zPv`n>4)eXadzgi`kat`vjkkYsqyo6>!mPurg\ahdblmooSkh=1.`[rtXn{oz1<"l_tqf[air|Vxxx0?#c^wm``tadf}T`by20-a\lduXgoyjaax=1.`[utbdfkoSao{eoaz95*dWme~xRyfduj>73*dWdylccQyam?2(fYulVnn|yf2500/gZnf{Vehh|ilnu>4)eX`hyTmac`su]eqij:9%iTdl}Prrv>5)eXlh~jSnaznu]tmaro58:'oRfns^uq[del59&hSx}j_da`95*dWjefab`Pcmm`o86+kV}ySlmd_mmt95*dW{nT|cz}_vkgpm;>$jU~hQiwgv\`drfWje~by3?,b]kevYfddexxRkbpu{>4)eXzmUomyoPcnwmpZqnl}b65!mPowgqbiipWee|1="l_vp\tkruW~coxe3>0-a\twi`Wlg{xtQ{yqg>4)eX{UomyoPcnwmpZqnl}b6=="l_qpfhjgcW{ol0?#c^flqqYu{}U}ma3?,b]kevYci}kTob{at<2/gZvugnUmyabPtipfwmYimnkiRxnl<3367*dW~xThh~{h<3361*dWyxdkRkbpu{\pmtb{aUeijo{e^tbh83+kVzycjQjmqvz[qnumzbTm~}jru]uei;3$jUcm~Qyamkg95*dWyxdkRhzlm]wlwct`Vkxh|{_wco9465;%ida}aaeov\jdkb5ocmcRvcny]657~4>V8h`fQ>8um02)eX~hfbhRb`w<2/gZvuadUmekaPtxrf94m91&hS}|`g^dvhiYsqyo6vugnUna}zv_ujqavn/< ;?7}|`g^gntqX|axne&:)068twi`Wlg{xtQ{hsgpl-0.9=1{~biPelrw}Zrozlyc$:'>4:rqkbYbey~rSyf}erj+<,713yxdkRkbpu{\pmtb{a636=0>b:rqkbYbey~rSyf}erj\evubz}";%vugnUna}zv_ujqavnXizyn~y&9)0`8twi`Wlg{xtQ{hsgplZgt{lx$:'>b:rqkbYbey~rSyf}erj\evubz}"3%vugnUna}zv_ujqavnXflmjxh&:)0`8twi`Wlg{xtQ{hsgplZhboh~n$;'>b:rqkbYbey~rSyf}erj\j`af|l"<%5rne\bpjkW}byi~f'1(30?uthoVl~`aQ{hsgpl-4.9:1{~biPftno[qnumzb#?$?<;qplcZ`rdeUdk|h)6*56=wzfmTjxbc_ujqavn/= ;87}|`g^dvhiYs`{oxd%8&129svjaXn|fgSyf}erj+3,743yxdkRhzlm]wlwct`!2"=>5rne\bpjkW}byi~f'9(36?uthoVl~`aQ{hsgpl9?=87;j7}|`g^dvhiYs`{oxdRo|sdpw,5/6i2zycjQiumn\pmtb{aUj~k}t)3*5d=wzfmTjxbc_ujqavnXizyn~y&=)0c8twi`Wog`Rzgrdqk[dutm{~#?$?n;qplcZ`rdeUdk|h^cpw`ts =#:m6~}of]eqijX|axneQnsrgqp-3.9h1{~biPftno[qnumzbTm~}jru*5-4ga:rqkbYa}efTxe|jsi]bwvcu|!3"=n5rne\bpjkW}byi~fParqfvq:>294:m6~}of]eqijX|axneQaefcwa-6.9h1{~biPftno[qnumzbTbhintd*2-4g'>a:rqkbYa}efTxe|jsi]mabgsm!>"=l5rne\bpjkW}byi~fPndebp`.2!8k0|ah_gwohZrozlycSckhaug+2,7f3yxdkRhzlm]wlwct`Vdnklzj(6+2e>vugnUmyabPtipfwmYimnki%6&1`9svjaXn|fgSyf}erj\j`af|l"2%4re]geqgXkfex%=&119q`Zbf|hUhcx`{(5+24>tcWmkmRm`uov+1,773{nThlzn_bmvjq.1!8:0~iQkauc\gjsi|!="==5}d^fbpdYdg|d$5'>0:pg[agsiVidycz30?31?wbXlh~jSnaznu>;>5823{nTic84re]qwq5uu{}>0x{j9:wm``tadf}>7{ocie48swYfkb<0{Qllj33?rtXlh~jSnaznu*3-46<{UomyoPcnwmp-7.991|~Rjnt`]`kphs ;#:<6y}_ecweZeh}g~#?$??;vp\`drfWje~by&;)028swYci}kTob{at)7*55=pzVnjxlQlotlw,3/682}ySio{a^alqkr/? ;;7z|Pd`vb[firf}"3%<>4ws]geqgXkfex%7&139tvZbf|hUhcx`{<883:0=pzVoe:6y}_sqwyEFwjj<0LMv>:G87>4}T=80?5;48:011f3ef2:2<9>ua40795>h39?0?7):>3;63`>{T5\13590<`=83;8>o8la;1;303<[=l184h50;306g0di393;8;4d5;:>5<628qX9<4;9784>455j?ij6>68529uP4>2290:6<4>94yP14<31?0<6<==b7ab>6>0=:1/8=9513:8R1732;q~=><51:w276<73t.:;i4>9:`7=<<72:o1?7=j{I631>\3>38p=:4>0;'5=g=<030(9?=:5;;?l2bm3:17d;?3;29?j2>l3:17b:67;29?l2a?3:17b:>8;29?l2a83:17b:9a;29 41a2=2o7c?8e;28?j2113:1(<9i:5:g?k70m3;07b:98;29 41a2=2o7c?8e;08?j21?3:1(<9i:5:g?k70m3907b:96;29 41a2=2o7c?8e;68?j21=3:1(<9i:5:g?k70m3?07b:93;29 41a2=2o7c?8e;48?j21:3:1(<9i:5:g?k70m3=07b:91;29 41a2=2o7c?8e;:8?j2183:1(<9i:5:g?k70m3307b::f;29 41a2=2o7c?8e;c8?j22m3:1(<9i:5:g?k70m3h07b::d;29 41a2=2o7c?8e;a8?j22k3:1(<9i:5:g?k70m3n07b::b;29 41a2=2o7c?8e;g8?j22i3:1(<9i:5:g?k70m3l07b::8;29 41a2=2o7c?8e;33?>i3=>0;6)?8f;6;`>h6?l0:=65`44494?"6?o0?4i5a16g957=6=4+16d90=b4?:%34b?2?l2d:;h4>5:9l004=83.:;k4;8e9m52c=9?10c9;>:18'52`=<1n0b<9j:058?j2283:1(<9i:5:g?k70m3;376a;4g83>!70n3>3h6`>7d82=>=h<>:1<7*>7g87o1=l54o54e>5<#9>l185j4n05f>4d<3f>=i7>5$05e>1>c3g;i3=00;6)?8f;6;`>h6?l09=65`45g94?"6?o0?4i5a16g967=o6=4+16d90=b8<7>5$05e>1253g;9i7>5$05e>1253g;9o7>5$05e>1253g;9m7>5$05e>1253g;<3`>847>5$05e>1253g;8:7>5$05e>1253g;887>5$05e>1253g;8>7>5$05e>1253g;54?:%34b?23:2d:;h4>1:9j0`4=831i8=850;394?6|@=:>7)?7a;632>i6?j0;66smd583>4<729qC8=;4$0:b>a2\3>3;=w?l5d;0g>gx"60h0?5n5+1369`7=#=1=:l4i5ge>5<5<5<5<#9>l18o;4n05f>5=5<#9>l18o;4n05f>7=54i5`3>5<#9>l18o;4n05f>1=5<#9>l18o;4n05f>3=5<#9>l18o;4n05f>==5<5<#9>l19=<4n05f>4=5<#9>l19=<4n05f>6=5<#9>l19=<4n05f>0=5<#9>l19=<4n05f>2=5<#9>l19=<4n05f><=5<#9>l18hj4n05f>4=5<#9>l18hj4n05f>6=5<#9>l18hj4n05f>0=6=4+16d90`b5<#9>l18hj4n05f>2=5<#9>l18h?4n05f>5=5<#9>l18h?4n05f>7=54i5f`>5<#9>l18h?4n05f>1=5<#9>l18h?4n05f>3=5<#9>l18h?4n05f>==5<6=4+16d90705<#9>l18?84n05f>4=5<#9>l18?84n05f>6=5<#9>l18?84n05f>0=5<#9>l18?84n05f>2=5<#9>l18?84n05f><=5<5<#9>l18nl4n05f>4=5<#9>l18nl4n05f>6=5<#9>l18nl4n05f>0=5<#9>l18nl4n05f>2=5<#9>l18nl4n05f><=5<5<5<5<5<#9>l185j4n05f>5=5<#9>l185j4n05f>7=54o545>5<#9>l185j4n05f>1=6=4+16d90=b5<#9>l185j4n05f>3=5<#9>l185j4n05f>==5<#9>l185j4n05f>d=5<#9>l185j4n05f>f=5<#9>l185j4n05f>`=5<#9>l185j4n05f>46<3f>>;7>5$05e>1>c3g;;:m713<72-;07b::3;29 41a2=2o7c?8e;36?>i3=;0;6)?8f;6;`>h6?l0::65`44394?"6?o0?4i5a16g952=32e?;=4?:%34b?2?l2d:;h4>a:9l03`=83.:;k4;8e9m52c=9k10c98j:18'52`=<1n0b<9j:0a8?j21l3:1(<9i:5:g?k70m3;o76a;6b83>!70n3>3h6`>7d82a>=h7g87o1=k54o547>5<#9>l185j4n05f>76<3f>>57>5$05e>1>c3g;;:m70`<72-;:18'52`=<=80b<9j:198m157290/=:h54508j41b2810e910e9=6:18'52`=<=80b<9j:998m15?290/=:h54508j41b2010e9=8:18'52`=<=80b<9j:`98m151290/=:h54508j41b2k10e9=::18'52`=<=80b<9j:b98m153290/=:h54508j41b2m10e9=<:18'52`=<=80b<9j:d98m155290/=:h54508j41b2o10e9<6:18'52`=<=80b<9j:028?l2503:1(<9i:561?k70m3;:76g;1883>>o3l<0;6)?8f;6g2>h6?l0;76g;d583>!70n3>o:6`>7d82?>o3l:0;6)?8f;6g2>h6?l0976g;d383>!70n3>o:6`>7d80?>o3l80;6)?8f;6g2>h6?l0?76g;d183>!70n3>o:6`>7d86?>o3ko0;6)?8f;6g2>h6?l0=76g;cd83>!70n3>o:6`>7d84?>o3km0;6)?8f;6g2>h6?l0376g;cb83>!70n3>o:6`>7d8:?>o3jl0;6)?8f;6ab>h6?l0;76g;be83>!70n3>ij6`>7d82?>o3jj0;6)?8f;6ab>h6?l0976g;bc83>!70n3>ij6`>7d80?>o3jh0;6)?8f;6ab>h6?l0?76g;b883>!70n3>ij6`>7d86?>o3j10;6)?8f;6ab>h6?l0=76g;b683>!70n3>ij6`>7d84?>o3j?0;6)?8f;6ab>h6?l0376a;a083>>i3:>0;66g;e383>>d3990;6<4?:1y'5=g=l=1C8=h4H526?jb42900qo:>1;295?6=8r.:4l4;079K05`<@=:>7b?8c;29?xd4n;0;6>4?:1y'5=g=km1C8=h4H526?M243-;8<7:i3:&f5?4>i6080;66sm3gf94?5=83:p(<6n:bf8L16a3A>;96F;3:&275<3n:1/i<4=;h64>5<>54g18 `7=:2c?;7>5;h71>5<8`8g5>N38o1C8=;4H518 4572=l87)k>:39j02<722c?57>5;h71>5<5<53;294~"60h0hh6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k66?6=3f;3=7>5;|`0b5<72<0;6=u+19c9`4=O<9l0D9>:;I60?!7483>m?6*j1;08m11=831b844?::k66?6=3`;3<7>5;n3;5?6=3th8jl4?:583>5}#91k1h=5G41d8L1623-o:6?5f4683>>o2:3:17d?70;29?j7?93:17pl1<729q/=5o5d19K05`<@=:>7)k>:39j02<722c>>7>5;h3;4?6=3f;3=7>5;|`0b=<72=0;6=u+19c9`5=O<9l0D9>:;%g2>7=n<>0;66g:2;29?l7?83:17b?71;29?xd38:0;694?:1y'5=g=l91C8=h4H526?!c62;1b8:4?::k66?6=3`;3<7>5;n3;5?6=3th?5}#91k1h=5G41d8L1623-o:6?5f4683>>o2:3:17d?70;29?j7?93:17pl=9`83>1<729q/=5o5d19K05`<@=:>7)k>:79j02<722c>>7>5;h3;4?6=3f;3=7>5;|`063<72=0;6=u+19c9g`=O<9l0D9>:;%g2>7=n<>0;66g;e;29?l352900c<6>:188yg5583:197>50z&25;h6:>5<>i6080;66sm33;94?2=83:p(<6n:e28L16a3A>;96*j1;08m11=831b9?4?::k2<5<722e:4<4?::a773=83>1<7>t$0:b>fc<@=:m7E:?5:&f5?4>o2:3:17b?71;29?xd5?h0;694?:1y'5=g=9:;0D9>i;I631>o3j3:17d;<:188m4>42900c<9n:188yg4013:187>50z&24?::k2<6<722e:;l4?::a621=83>1<7>t$0:b>4563A>;j6F;049j0g<722c>?7>5;h3;7?6=3f;5;|`133<72=0;6=u+19c9567<@=:m7E:?5:k7f?6=3`?86=44i0:0>5<8`8274=O<9l0D9>:;h6a>5<k1<75rb3:`>5<3290;w)?7a;305>N38o1C8=;4i5`94?=n=:0;66g>8283>>i6?h0;66sm29`94?2=83:p(<6n:012?M27n2B?<85f4c83>>o2;3:17d?73;29?j70i3:17pl=8`83>1<729q/=5o51238L16a3A>;96g;b;29?l342900e<6<:188k41f2900qo<79;290?6=8r.:4l4>309K05`<@=:>7d:m:188m05=831b=5=50;9l52g=831vn?kl:187>5<7s-;3m7?<1:J74c=O<9?0e9l50;9j16<722c:4>4?::m23d<722wi>hl50;694?6|,82j6<=>;I63b>N38<1b8o4?::k67?6=3`;3?7>5;n34e?6=3th9il4?:583>5}#91k1=>?4H52e?M27=2c?n7>5;h70>5<5<54;294~"60h0:?<5G41d8L1623`>i6=44i4194?=n9191<75`16c94?=zj;o36=4;:183!7?i3;8=6F;0g9K053>o60:0;66a>7`83>>{e:ol1<7:50;2x 4>f289:7E:?f:J740=ni;I631>o3j3:17d;<:188m4>42900c<9n:188yg4al3:187>50z&24?::k2<6<722e:;l4?::a6cd=83>1<7>t$0:b>4563A>;j6F;049j0g<722c>?7>5;h3;7?6=3f;5;|`050<72=0;6=u+19c9567<@=:m7E:?5:k7f?6=3`?86=44i0:0>5<8`8274=O<9l0D9>:;h6a>5<k1<75rb230>5<3290;w)?7a;305>N38o1C8=;4i5`94?=n=:0;66g>8283>>i6?h0;66sm30094?2=83:p(<6n:012?M27n2B?<85f4c83>>o2;3:17d?73;29?j70i3:17pl<1083>1<729q/=5o51238L16a3A>;96g;b;29?l342900e<6<:188k41f2900qon6=44i4094?=h91;1<75rb32f>5<3290;w)?7a;af?M27n2B?<85+e081?l202900e9k50;9j17<722e:4<4?::a65b=83>1<7>t$0:b>fc<@=:m7E:?5:&f5?4>o2:3:17b?71;29?xd58j0;694?:1y'5=g=kl1C8=h4H526?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<,l;1>6g;7;29?l2b2900e8<50;9l5=7=831vn?>n:187>5<7s-;3m7mj;I63b>N38<1/i<4=;h64>5<>i6080;66sm21;94?2=83:p(<6n:bg8L16a3A>;96*j1;08m11=831b8h4?::k66?6=3f;3=7>5;|`14=<72=0;6=u+19c9g`=O<9l0D9>:;%g2>7=n<>0;66g;e;29?l352900c<6>:188yg47?3:187>50z&25;h6f>5<ac83>1<729q/=5o5cd9K05`<@=:>7)k>:39j02<722c?i7>5;h71>5<8`8`a>N38o1C8=;4$d396>o3?3:17d:j:188m04=831d=5?50;9~f4g>290?6=4?{%3;e?eb3A>;j6F;049'a4<53`><6=44i5g94?=n=;0;66a>8083>>{e9h21<7:50;2x 4>f2jo0D9>i;I631>"b9380e9950;9j0`<722c>>7>5;n3;5?6=3th:m:4?:583>5}#91k1oh5G41d8L1623-o:6?5f4683>>o3m3:17d;=:188k4>62900qo?n6;290?6=8r.:4l4le:J74c=O<9?0(h?52:k73?6=3`>n6=44i4094?=h91;1<75rb0c6>5<3290;w)?7a;af?M27n2B?<85+e081?l202900e9k50;9j17<722e:4<4?::a60d=83>1<7>t$0:b>fc<@=:m7E:?5:&f5?4>o2:3:17b?71;29?xd5=h0;694?:1y'5=g=kl1C8=h4H526?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<57>54;294~"60h0hi6F;0g9K053<,l;1>6g;7;29?l2b2900e8<50;9l5=7=831vn?;7:187>5<7s-;3m7mj;I63b>N38<1/i<4=;h64>5<>i6080;66sm24594?2=83:p(<6n:bg8L16a3A>;96*j1;08m11=831b8h4?::k66?6=3f;3=7>5;|`113<72=0;6=u+19c9g`=O<9l0D9>:;%g2>7=n<>0;66g;e;29?l352900c<6>:188yg42=3:187>50z&25;h6f>5<8=50;694?6|,82j6nk4H52e?M27=2.n=7<4i5594?=nf483>1<729q/=5o5cd9K05`<@=:>7)k>:39j02<722c?i7>5;h71>5<8`8`a>N38o1C8=;4$d396>o3?3:17d:j:188m04=831d=5?50;9~f4`4290?6=4?{%3;e?eb3A>;j6F;049'a4<53`><6=44i5g94?=n=;0;66a>8083>>{e9o81<7:50;2x 4>f2jo0D9>i;I631>"b9380e9950;9j0`<722c>>7>5;n3;5?6=3th:j<4?:583>5}#91k1oh5G41d8L1623-o:6?5f4683>>o3m3:17d;=:188k4>62900qo?i0;290?6=8r.:4l4le:J74c=O<9?0(h?52:k73?6=3`>n6=44i4094?=h91;1<75rb0ge>5<3290;w)?7a;af?M27n2B?<85+e081?l202900e9k50;9j17<722e:4<4?::a5`c=83>1<7>t$0:b>fc<@=:m7E:?5:&f5?4>o2:3:17b?71;29?xd6mm0;694?:1y'5=g=kl1C8=h4H526?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<7>54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<7>54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<@=90(<=?:5d0?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<,l;1>6g;7;29?l2b2900e8<50;9l5=7=831vn5<7s-;3m7mj;I63b>N38<1/i<4=;h64>5<>i6080;66sm1bd94?2=83:p(<6n:bg8L16a3A>;96*j1;08m11=831b8h4?::k66?6=3f;3=7>5;|`2g`<72=0;6=u+19c9g`=O<9l0D9>:;%g2>7=n<>0;66g;e;29?l352900c<6>:188yg7dl3:187>50z&25;h6f>5<c`83>1<729q/=5o5cd9K05`<@=:>7)k>:39j02<722c?i7>5;h71>5<8`8`a>N38o1C8=;4$d396>o3?3:17d:j:188m04=831d=5?50;9~f752290?6=4?{%3;e?eb3A>;j6F;049'a4<53`><6=44i5g94?=n=;0;66a>8083>>{e::>1<7:50;2x 4>f2jo0D9>i;I631>"b9380e9950;9j0`<722c>>7>5;n3;5?6=3th9?>4?:583>5}#91k1oh5G41d8L1623-o:6?5f4683>>o3m3:17d;=:188k4>62900qo<<2;290?6=8r.:4l4le:J74c=O<9?0(h?52:k73?6=3`>n6=44i4094?=h91;1<75rb312>5<3290;w)?7a;af?M27n2B?<85+e081?l202900e9k50;9j17<722e:4<4?::a666=83>1<7>t$0:b>fc<@=:m7E:?5:&f5?4>o2:3:17b?71;29?xd5:o0;694?:1y'5=g=kl1C8=h4H526?!c62;1b8:4?::k7a?6=3`?96=44o0:2>5<54;294~"60h0hi6F;0g9K053<,l;1>6g;7;29?l2b2900e8<50;9l5=7=831vn?5<7s-;3m7mj;I63b>N38<1/i<4=;h64>5<>i6080;66sm23a94?2=83:p(<6n:bg8L16a3A>;96*j1;08m11=831b8h4?::k66?6=3f;3=7>5;|`1`4<72<0;6=u+19c9gc=O<9l0D9>:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn?j?:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd5ko0;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb3af>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th9oi4?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f7ed290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<t$0:b>f`<@=:m7E:?5:&f5?4>o3m3:17d;=:188k4>62900qo7d:m:188m4422900c<9n:188yg4el3:1?7>50z&2309K05`<@=:>7d:m:188m05=831b=5=50;9l52g=831vn?ll:180>5<7s-;3m7:?e:J74c=O<9?0e9l50;9j573=831d=:o50;9~f7d5290?6=4?{%3;e?7492B?4?::k2<6<722e:;l4?::a6gd=8391<7>t$0:b>16b3A>;j6F;049j0g<722c:>84?::m23d<722wi>o>50;694?6|,82j6<=>;I63b>N38<1b8o4?::k67?6=3`;3?7>5;n34e?6=3th9nl4?:283>5}#91k18=k4H52e?M27=2c?n7>5;h311?6=3f;5;|`1e`<72=0;6=u+19c9567<@=:m7E:?5:k7f?6=3`?86=44i0:0>5<8`874`=O<9l0D9>:;h6a>5<6=44o05b>5<54;294~"60h0:?<5G41d8L1623`>i6=44i4194?=n9191<75`16c94?=zj;h36=4<:183!7?i3>;i6F;0g9K053k1<75rb3cb>5<3290;w)?7a;305>N38o1C8=;4i5`94?=n=:0;66g>8283>>i6?h0;66sm2c594?5=83:p(<6n:52f?M27n2B?<85f4c83>>o6:<0;66a>7`83>>{e:h21<7:50;2x 4>f289:7E:?f:J740=n4?:1y'5=g=<9o0D9>i;I631>o3j3:17d?=5;29?j70i3:17pl=a783>1<729q/=5o51238L16a3A>;96g;b;29?l342900e<6<:188k41f2900qo26=44i5g94?=n=;0;66a>8083>>{e:l81<7;50;2x 4>f2jl0D9>i;I631>"b9380e9950;9j0<<722c?i7>5;h71>5<8`8`b>N38o1C8=;4$d396>o3?3:17d:6:188m1c=831b9?4?::m2<4<722wi>h>50;794?6|,82j6nh4H52e?M27=2.n=7<4i5594?=n<00;66g;e;29?l352900c<6>:188yg4cn3:197>50z&25;h6:>5<>i6080;66sm2eg94?3=83:p(<6n:bd8L16a3A>;96*j1;08m11=831b844?::k7a?6=3`?96=44o0:2>5<55;294~"60h0hj6F;0g9K053<,l;1>6g;7;29?l2>2900e9k50;9j17<722e:4<4?::a6ae=83?1<7>t$0:b>f`<@=:m7E:?5:&f5?4>o3m3:17d;=:188k4>62900qo26=44i5g94?=n=;0;66a>8083>>{e:?h1<7:50;2x 4>f2jo0D9>i;I631>"b9380e9950;9j0`<722c>>7>5;n3;5?6=3th9:54?:583>5}#91k1oh5G41d8L1623-o:6?5f4683>>o3m3:17d;=:188k4>62900qo<9f;290?6=8r.:4l4k0:J74c=O<9?0(h?56:k73?6=3`?96=44i0:3>5<8`8g4>N38o1C8=;4$d392>o3?3:17d;=:188m4>72900c<6>:188yg51=3:197>50z&25;h6:>5<>i6080;66sm37694?3=83:p(<6n:bd8L16a3A>;96*j1;08m11=831b844?::k7a?6=3`?96=44o0:2>5<7>55;294~"60h0hj6F;0g9K053<,l;1>6g;7;29?l2>2900e9k50;9j17<722e:4<4?::a737=83?1<7>t$0:b>f`<@=:m7E:?5:&f5?4>o3m3:17d;=:188k4>62900qo=93;291?6=8r.:4l4lf:J74c=O<9?0(h?52:k73?6=3`>26=44i5g94?=n=;0;66a>8083>>{e;?:1<7;50;2x 4>f2jl0D9>i;I631>"b9380e9950;9j0<<722c?i7>5;h71>5<8`8`b>N38o1C8=;4$d396>o3?3:17d:6:188m1c=831b9?4?::m2<4<722wi?8j50;794?6|,82j6i?4H52e?M27=2.n=784i5594?=n<00;66g:2;29?l7?83:17b?71;29?xd4=j0;684?:1y'5=g=l81C8=h4H526?!c62?1b8:4?::k7=?6=3`?96=44i0:3>5<8`8`b>N38o1C8=;4$d396>o3?3:17d:6:188m1c=831b9?4?::m2<4<722wi?8>50;194?6|,82j69>j;I63b>N38<1b8o4?::k260<722e:;l4?::a71`=8391<7>t$0:b>16b3A>;j6F;049j0g<722c:>84?::m23d<722wi?9;50;694?6|,82j6<=>;I63b>N38<1b8o4?::k67?6=3`;3?7>5;n34e?6=3th88h4?:283>5}#91k18=k4H52e?M27=2c?n7>5;h311?6=3f;5;|`006<72=0;6=u+19c9567<@=:m7E:?5:k7f?6=3`?86=44i0:0>5<8`874`=O<9l0D9>:;h6a>5<6=44o05b>5<54;294~"60h0:?<5G41d8L1623`>i6=44i4194?=n9191<75`16c94?=zj:>h6=4<:183!7?i3>;i6F;0g9K053k1<75rb21e>5<3290;w)?7a;305>N38o1C8=;4i5`94?=n=:0;66g>8283>>i6?h0;66sm35`94?5=83:p(<6n:52f?M27n2B?<85f4c83>>o6:<0;66a>7`83>>{e;:n1<7:50;2x 4>f289:7E:?f:J740=n4?:1y'5=g=<9o0D9>i;I631>o3j3:17d?=5;29?j70i3:17pl<3c83>1<729q/=5o51238L16a3A>;96g;b;29?l342900e<6<:188k41f2900qo=;9;297?6=8r.:4l4;0d9K05`<@=:>7d:m:188m4422900c<9n:188yg5413:187>50z&2=8:187>5<7s-;3m7?<1:J74c=O<9?0e9l50;9j16<722c:4>4?::m23d<722wi?9950;194?6|,82j69>j;I63b>N38<1b8o4?::k260<722e:;l4?::a763=83>1<7>t$0:b>4563A>;j6F;049j0g<722c>?7>5;h3;7?6=3f;5;|`037<72<0;6=u+19c9gc=O<9l0D9>:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn>9?:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd4?80;684?:1y'5=g=l81C8=h4H526?!c62?1b8:4?::k7=?6=3`?96=44i0:3>5<8`8`b>N38o1C8=;4$d396>o3?3:17d:6:188m1c=831b9?4?::m2<4<722wi?::50;794?6|,82j6nh4H52e?M27=2.n=7<4i5594?=n<00;66g;e;29?l352900c<6>:188yg50?3:197>50z&25;h6:>5<>i6080;66sm36794?3=83:p(<6n:bd8L16a3A>;96*j1;08m11=831b844?::k7a?6=3`?96=44o0:2>5<55;294~"60h0hj6F;0g9K053<,l;1>6g;7;29?l2>2900e9k50;9j17<722e:4<4?::a72>=83?1<7>t$0:b>f`<@=:m7E:?5:&f5?4>o3m3:17d;=:188k4>62900qo=89;291?6=8r.:4l4lf:J74c=O<9?0(h?52:k73?6=3`>26=44i5g94?=n=;0;66a>8083>>{e;1<1<7;50;2x 4>f2jl0D9>i;I631>"b9380e9950;9j0<<722c?i7>5;h71>5<8`8g5>N38o1C8=;4$d392>o3?3:17d:6:188m04=831b=5>50;9l5=7=831vn>6::186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd40>0;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb2:;>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th84o4?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f6>>290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<5;|`0:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn>o>:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd4i90;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb2;e>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th85h4?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f6?c290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<5;|`0=d<72<0;6=u+19c9gc=O<9l0D9>:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn>76:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd4110;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb2`e>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th8nh4?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f6dc290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<5;|`0fd<72<0;6=u+19c9gc=O<9l0D9>:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn>l7:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd4j>0;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb2`5>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th8n84?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f6d3290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<5;|`0f4<72<0;6=u+19c9gc=O<9l0D9>:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn>l?:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd4io0;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb2cg>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th8mn4?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f6ge290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<5;|`0e=<72<0;6=u+19c9gc=O<9l0D9>:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn>o8:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd4i?0;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb2c6>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th8m94?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f6e2290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<5;|`0g7<72<0;6=u+19c9gc=O<9l0D9>:;%g2>7=n<>0;66g;9;29?l2b2900e8<50;9l5=7=831vn>m>:186>5<7s-;3m7mi;I63b>N38<1/i<4=;h64>5<>o2:3:17b?71;29?xd4k90;684?:1y'5=g=ko1C8=h4H526?!c62;1b8:4?::k7=?6=3`>n6=44i4094?=h91;1<75rb2`:>5<2290;w)?7a;ae?M27n2B?<85+e081?l202900e9750;9j0`<722c>>7>5;n3;5?6=3th8mh4?:483>5}#91k1ok5G41d8L1623-o:6?5f4683>>o313:17d:j:188m04=831d=5?50;9~f6g4290>6=4?{%3;e?ea3A>;j6F;049'a4<53`><6=44i5;94?=n0<729q/=5o5cg9K05`<@=:>7)k>:39j02<722c?57>5;h6f>5<>oc>3:17b?8a;29?xd4n=0;6>4?:1y'5=g=9;k0D9>i;I631>"b93;j7dj::188ma0=831d=:o50;9~f77629086=4?{%3;e?75i2B?5;|`2ec<72:0;6=u+19c957g<@=:m7E:?5:&f5?7a3`n>6=44ie494?=h9>k1<75rb0;a>5<4290;w)?7a;31e>N38o1C8=;4$d395c=nl<0;66gk6;29?j70i3:17pl>9`83>6<729q/=5o513c8L16a3A>;96*j1;3e?lb22900ei850;9l52g=831vn<76:180>5<7s-;3m7?=a:J74c=O<9?0(h?51g9j`0<722co:7>5;n34e?6=3th:554?:283>5}#91k1=?o4H52e?M27=2.n=7?i;hf6>5<>oc>3:17b?8a;29?xd61?0;6>4?:1y'5=g=9;k0D9>i;I631>"b93;m7dj::188ma0=831d=:o50;9~f4?229086=4?{%3;e?75i2B?5;|`2=1<72:0;6=u+19c957g<@=:m7E:?5:&f5?7a3`n>6=44ie494?=h9>k1<75rb0;0>5<4290;w)?7a;31e>N38o1C8=;4$d395c=nl<0;66gk6;29?j70i3:17pl>9383>6<729q/=5o513c8L16a3A>;96*j1;3e?lb22900ei850;9l52g=831vn<7>:180>5<7s-;3m7?=a:J74c=O<9?0(h?51g9j`0<722co:7>5;n34e?6=3th:5=4?:283>5}#91k1=?o4H52e?M27=2.n=7?i;hf6>5<>oc>3:17b?8a;29?xd60l0;6>4?:1y'5=g=9;k0D9>i;I631>"b93;m7dj::188ma0=831d=:o50;9~f4>c29086=4?{%3;e?75i2B?5;|`26=44ie494?=h9>k1<75rb0:a>5<4290;w)?7a;31e>N38o1C8=;4$d395c=nl<0;66gk6;29?j70i3:17pl=1283>1<729q/=5o513a8L16a3A>;96*j1;04?lb22900ei850;9j`2<722e:;l4?::a5g7=83>1<7>t$0:b>44d3A>;j6F;049'a4<5?2co97>5;hf5>5<>5fd483>>oc>3:17dj8:188k41f2900qo<>5;291?6=8r.:4l4>2d9K05`<@=:>7)k>:338ma3=831bh;4?::kg3?6=3`n36=44o05b>5<55;294~"60h0:>h5G41d8L1623-o:6??4ie794?=nl?0;66gk7;29?lb?2900c<9n:188yg4093:197>50z&25;hf;>5<8`826`=O<9l0D9>:;%g2>74>oc?3:17dj7:188k41f2900qo==4;297?6=8r.:4l4>2`9K05`<@=:>7)k>:568ma3=831bh;4?::m23d<722wi>;950;694?6|,82j6<N38<1/i<4>8:kg1?6=3`n=6=44ie594?=h9>k1<75rb20b>5<4290;w)?7a;31e>N38o1C8=;4$d3954=nl<0;66gk6;29?j70i3:17pl=1683>6<729q/=5o513c8L16a3A>;96*j1;3e?lb22900ei850;9l52g=831vn5<7s-;3m7?=a:J74c=O<9?0(h?51g9j`0<722co:7>5;n34e?6=3th9=44?:583>5}#91k1=?m4H52e?M27=2.n=7<8;hf6>5<>i6?h0;66sm1c594?2=83:p(<6n:00`?M27n2B?<85+e0813>oc=3:17dj9:188ma1=831d=:o50;9~f77e290>6=4?{%3;e?75m2B?k1<75rb0`:>5<2290;w)?7a;31a>N38o1C8=;4$d3964=nl<0;66gk6;29?lb02900ei650;9l52g=831vn>kl:180>5<7s-;3m7?=a:J74c=O<9?0(h?5c99j`0<722co:7>5;n34e?6=3th95:4?:283>5}#91k1=?o4H52e?M27=2.n=7<:;hf6>5<85fd483>>oc>3:17b?8a;29?xd49o0;684?:1y'5=g=9;o0D9>i;I631>"b938=7dj::188ma0=831bh:4?::kg5;|`04<<72<0;6=u+19c957c<@=:m7E:?5:&f5?413`n>6=44ie494?=nl>0;66gk8;29?j70i3:17pl=f783>0<729q/=5o513g8L16a3A>;96*j1;05?lb22900ei850;9j`2<722co47>5;n34e?6=3th8=h4?:483>5}#91k1=?k4H52e?M27=2.n=7<9;hf6>5<>oc03:17b?8a;29?xd4810;684?:1y'5=g=9;o0D9>i;I631>"b938=7dj::188ma0=831bh:4?::kg5;|`1b0<72<0;6=u+19c957c<@=:m7E:?5:&f5?413`n>6=44ie494?=nl>0;66gk8;29?j70i3:17pl=9783>0<729q/=5o513g8L16a3A>;96*j1;07?lb22900ei850;9j`2<722co47>5;n34e?6=3th94>4?:483>5}#91k1=?k4H52e?M27=2.n=7<;;hf6>5<>oc03:17b?8a;29?xd49m0;684?:1y'5=g=9;o0D9>i;I631>"b938=7dj::188ma0=831bh:4?::kg5;|`042<72<0;6=u+19c957c<@=:m7E:?5:&f5?413`n>6=44ie494?=nl>0;66gk8;29?j70i3:17pl=f583>0<729q/=5o513g8L16a3A>;96*j1;05?lb22900ei850;9j`2<722co47>5;n34e?6=3th9584?:483>5}#91k1=?k4H52e?M27=2.n=7<;;hf6>5<>oc03:17b?8a;29?xd50;0;684?:1y'5=g=9;o0D9>i;I631>"b938?7dj::188ma0=831bh:4?::kg5;|`05f<72<0;6=u+19c957c<@=:m7E:?5:&f5?413`n>6=44ie494?=nl>0;66gk8;29?j70i3:17pl<0783>0<729q/=5o513g8L16a3A>;96*j1;05?lb22900ei850;9j`2<722co47>5;n34e?6=3th9j>4?:483>5}#91k1=?k4H52e?M27=2.n=7<9;hf6>5<>oc03:17b?8a;29?xd51=0;684?:1y'5=g=9;o0D9>i;I631>"b938?7dj::188ma0=831bh:4?::kg5;|`1<4<72<0;6=u+19c957c<@=:m7E:?5:&f5?433`n>6=44ie494?=nl>0;66gk8;29?j70i3:17pl=9b83>1<729q/=5o513a8L16a3A>;96*j1;a`?lb22900ei850;9j`2<722e:;l4?::a74d=83>1<7>t$0:b>44d3A>;j6F;049'a4<6j2co97>5;hf5>5<6=4;:183!7?i3;9o6F;0g9K053<,l;1=o5fd483>>oc>3:17dj8:188k41f2900qo2b9K05`<@=:>7)k>:0`8ma3=831bh;4?::kg3?6=3f;5;|`067<72<0;6=u+19c957c<@=:m7E:?5:&f5?7b3`n>6=44ie494?=nl>0;66gk8;29?j70i3:17pl=9283>0<729q/=5o513g8L16a3A>;96*j1;07?lb22900ei850;9j`2<722co47>5;n34e?6=3th94=4?:483>5}#91k1=?k4H52e?M27=2.n=7<;;hf6>5<>oc03:17b?8a;29?xd5j<0;6?4?:1y'5=g=9;30D9>i;I631>"b93;:7dj::188k41f2900qo289K05`<@=:>7)k>:038ma3=831d=:o50;9~f7d629096=4?{%3;e?7512B?lh50;094?6|,82j6<<6;I63b>N38<1/i<4>1:kg1?6=3f;5;|`1ea<72;0;6=u+19c957?<@=:m7E:?5:&f5?763`n>6=44o05b>5<52;294~"60h0:>45G41d8L1623-o:6k1<75rb3c:>5<5290;w)?7a;31=>N38o1C8=;4$d3954=nl<0;66a>7`83>>{e:h=1<7<50;2x 4>f28827E:?f:J740=#m80:=6gk5;29?j70i3:17pl<4783>7<729q/=5o513;8L16a3A>;96*j1;32?lb22900c<9n:188yg53<3:1>7>50z&2:=:181>5<7s-;3m7?=9:J74c=O<9?0(h?5109j`0<722e:;l4?::a716=8381<7>t$0:b>44>3A>;j6F;049'a4<692co97>5;n34e?6=3th8?h4?:383>5}#91k1=?74H52e?M27=2.n=7?>;hf6>5<8`826<=O<9l0D9>:;%g2>47>i6?h0;66sm32:94?4=83:p(<6n:00:?M27n2B?<85+e0825>oc=3:17b?8a;29?xd4;?0;6?4?:1y'5=g=9;30D9>i;I631>"b93;:7dj::188k41f2900qo289K05`<@=:>7)k>:038ma3=831d=:o50;9~f63629096=4?{%3;e?7512B?N38<1/i<4=1:kg1?6=3`n=6=44ie594?=nl10;66a>7`83>>{e9kl1<7;50;2x 4>f288n7E:?f:J740=#m80946gk5;29?lb12900ei950;9j`=<722e:;l4?::a64`=83?1<7>t$0:b>44b3A>;j6F;049'a4<592co97>5;hf5>5<>i6?h0;66sm23394?3=83:p(<6n:00f?M27n2B?<85+e081<>oc=3:17dj9:188ma1=831bh54?::m23d<722wi??650;794?6|,82j6<N38<1/i<4lb:kg1?6=3`n=6=44ie594?=nl10;66a>7`83>>{e:?<1<7;50;2x 4>f288n7E:?f:J740=#m80::6gk5;29?lb12900ei950;9j`=<722e:;l4?::a7`g=832<6=4?{%3;e?7?:2B?44j:06957<6k3l1=>4>5;3g>x"6:90>7)?=1;78 a?==2.om7;4$e`91>"ck3?0(ij55:&ga?3<,82=6>5+19590>"b:3?0(h=55:&f0?3<,l?196*j6;78 `1==2.n47;4$d;91>"bi3?0(hl55:&fg?3<,ln196*je;78 ``==2.m<7;4$g391>"a:3?0(k=55:&e0?3<,o?196*i6;78 c1==2.m47;4$g;91>"ai3?0(kl55:&eg?3<,on196*ie;78 c`==2.:<=4:;%335?3<,8:9685+11191>"68=0>7)??5;78 4612<1/==955:&24=<23-;;57;4$02b>0=#99h196*>0b86?!77l3?0(<>j:49'55`==2.:==4:;%325?3<,8;9685+10191>"69=0>7)?>5;78 4712<1/=<955:&25=<23-;:57;4$03b>0=#98h196*>1b86?!76l3?0(16f3-o;685f4b83>>o3l3:17dm6:188mfg=831b=5650;9j5=?=831b8=650;9j05?=831b?54?:%34b?503g;4;h15>5<#9>l1?:5a16g95>=n;<0;6)?8f;14?k70m3807d=;:18'52`=;>1e=:k53:9j76<72-;o1965f3083>!70n39<7c?8e;48?l57290/=:h5369m52c=?21b>k4?:%34b?503g;5<#9>l1?:5a16g9=>=n<;0;6)?8f;62?k70m3:07d:?:18'52`=<81e=:k51:9j7c<72-;;o34a?4<3`9n6=4+16d904=i9>o1?65f3e83>!70n3>:7c?8e;68?l5d290/=:h5409m52c==21b?o4?:%34b?263g;5<#9>l18<5a16g93>=n;00;6)?8f;62?k70m3207d;m:18'52`==h1e=:k50:9j1<<72-;o1>65f5683>!70n3?j7c?8e;18?l31290/=:h55`9m52c=<21b984?:%34b?3f3g;5<#9>l19l5a16g92>=n>:0;6)?8f;7b?k70m3=07d8=:18'52`==h1e=:k58:9j24<72-;o1m65f5g83>!70n3?j7c?8e;`8?l3b290/=:h55`9m52c=k21b9i4?:%34b?3f3g;5<#9>l19l5a16g9a>=n==0;6)?8f;7b?k70m3l07d9j:18'52`=?m1e=:k50:9j3f<72-;o1>65f7883>!70n3=o7c?8e;18?l1?290/=:h57e9m52c=<21b;:4?:%34b?1c3g;5<#9>l1;i5a16g92>=n?<0;6)?8f;5g?k70m3=07d9;:18'52`=?m1e=:k58:9j36<72-;o1m65f7083>!70n3=o7c?8e;`8?l0a290/=:h57e9m52c=k21b:h4?:%34b?1c3g;5<#9>l1;i5a16g9a>=n>j0;6)?8f;5g?k70m3l07d8m:18'52`=?m1e=:k51198m3g=83.:;k48d:l23`<6921b:44?:%34b?1c3g;45<3`<<6=4+16d93a=i9>o1=954i7494?"6?o07d821>=n0<0;6)?8f;5g?k70m3;=76g74;29 41a2>n0b<9j:058?l>4290/=:h57e9m52c=9110e5<50;&23c<0l2d:;h4>9:9j<4<72-;5$05e>2b5<#9>l1;i5a16g95f=
h1<7*>7g84`>h6?l0:h65f7183>!70n3=o7c?8e;3f?>o1=3:1(<9i:6f8j41b28l07d67:18'52`=0>1e=:k50:9j<3<72-;o1<65f8c83>!70n32h7c?8e;38?l>f290/=:h58b9m52c=:21b444?:%34b?>d3g;5<#9>l1595a16g94>=h1:0;6)?8f;;7?k70m3;07b7=:18'52`=1=1e=:k52:9l=4<72-;o1865`8g83>!70n33?7c?8e;78?j?b290/=:h5959m52c=>21d5i4?:%34b??33g;5<#9>l1595a16g9<>=h1k0;6)?8f;;7?k70m3307b7n:18'52`=1=1e=:k5a:9l=<<72-;o1o65`9683>!70n33?7c?8e;f8?j?1290/=:h5959m52c=m21d4h4?:%34b??33g;5<#9>l1o<5a16g94>=hk90;6)?8f;a2?k70m3;07bl7:18'52`=j>1e=:k50:9lf3<72-;o1>65`b283>!70n3h<7c?8e;18?jd5290/=:h5b69m52c=<21dn<4?:%34b?d03g;5<#9>l1n:5a16g92>=hio0;6)?8f;`4?k70m3=07boj:18'52`=j>1e=:k58:9lea<72-;o1m65`ac83>!70n3h<7c?8e;`8?jg>290/=:h5b69m52c=k21dm54?:%34b?d03g;5<#9>l1n:5a16g9a>=hi?0;6)?8f;`4?k70m3l07bo::18'52`=j>1e=:k51198kd2=83.:;k4m7:l23`<6921dm>4?:%34b?d03g;45<3fk:6=4+16d9f2=i9>o1=954o`294?"6?o0i;6`>7d821>=hjo0;6)?8f;`4?k70m3;=76ame;29 41a2k=0b<9j:058?jdc290/=:h5b69m52c=9110com50;&23c9:9lfg<72-;5$05e>g15<#9>l1n:5a16g95f=7g8a3>h6?l0:h65`a`83>!70n3h<7c?8e;3f?>i>n3:1(<9i:c58j41b28l07bm8:18'52`=k?1e=:k50:9lg0<72-;o1>65`c283>!70n3i=7c?8e;18?xd5><0;684?:1y'5=g=9;l0D9>i;I631>"b93;=7dj::188ma0=831bh:4?::kg5;|`2fg<72:0;6=u+19c957d<@=:m7E:?5:&f5?7a3`n>6=44ie494?=h9;<1<75rb0``>5<3290;w)?7a;31`>N38o1C8=;4$d3965=nl<0;66gk6;29?lb02900c<<9:188yg46l3:1?7>50z&2;4?::a64c=83>1<7>t$0:b>44c3A>;j6F;049'a4<582co97>5;hf5>5<;5>h0o;63=708g<>;5>m0o463=668g1>;5>?0o963=648g1>{tX3n?1U8k:4^534?[2a92T?m=5Q4g78Z1g63W>h<6P;249]072X39m1U8mo6P;fc9]0cgX3m>1U8h84^5g6?[2b<2T?i>524029`6=:;oh19?523g2917=:;ok19?523g;917=:;o219?52411917=:<9819?5233;917=::>k19>5226;916=::>219>52265916=::><19>5229f916=::1i19>5229`916=::1k19>5229;916=::li19>522d`916=::lk19>522d;916=::l219>522gd916=::oo19>522gf916=::oi19>522g`916=:;8?19>52306916=:;8919>52300916=:;8;19>522c6916=::k819>522c2916=::ho19>522`a916=::hk19>522`:916=::h<19>52357916=:;=919>52353916=:;:l19>5232f916=:;:h19>5232;916=:;:=19>52327916=:;lk1=564=2gb>16>349nm79j;<1fe?1d349nm79n;<1fe?1>349nm797;<1fe?10349nm799;<1fe?12349nm79;;<1fe?14349nm79=;<1fe?16349nm78i;<1fe?0b349nm78k;<1fe?0d349nm78m;<1fe?0f349nm786;<1fe?0?349nm788;<1fe?01349nm76:;<1fe?>3349nm76<;<1fe?>5349nm76>;<1fe?>7349nm79i;<1fe?1e349nm79?;<1fe?02349nm76k;<1fe?>e349nm76n;<1fe?>>3ty?=54?:3y]04><5:8;6<6>;|q7b5<72:qU8k>4=2da>4>7349m<7?70:p0<1=838pR978;<05b?7?92wx9==50;1xZ0643499m7j:;<117:8;<1e5?20349m<7:8;<1ee?20349m57:8;<1en7:8;<06e?20348>57:8;<06;7:8;<062?20348>97:8;<060?20348>?7:8;<07=?20348?47:8;<073?20348?:7:8;<071?20348?87:8;<077?20348?>7:8;<075?20348?<7:8;<3g5?2034;o<7:8;<3`b?2034;hi7:8;<3``?2034;ho7:8;<3`f?2034;hm7:8;<3`=?20348o=7:8;<0g4?20348hj7:8;<0`a?20348hh7:8;<0`g?20348hm7:8;<0`=?20348hn7:8;<0f7?20348n>7:8;<0f5?20348n<7:8;<0gb?20348oi7:8;<0g`?20348oo7:8;<0gf?20348=n7:8;<057:8;<1a5?20349i<7:8;<1bb?20349jh7:8;<1bg?20349jn7:8;<1be?20349j57:8;<1b4>63ty?j:4?:4:xZ1`0349mh7:8;<1ef?20349mo7:8;<637?2034>;>7:8;<112?203499<7:8;<11=?20349997:8;<3b`?2034;jo7:8;<3bf?2034;jm7:8;<3b=?2034;j47:8;<3b3?2034;j:7:8;<3b1?2034;m97:8;<3e0?2034;m?7:8;<3e6?2034;m=7:8;<3e4?2034;nj7:8;<3fa?2034;nh7:8;<3f7?2034;n>7:8;<3f5?2034;n<7:8;<3gb?2034;oi7:8;<3g`?2034;oo7:8;<3gf?20348897:8;<000?203488?7:8;<006?203488=7:8;<004?203489j7:8;<01a?203489h7:8;<01g?20349=97:8;<150?20349=>7:8;<155?20349=?7:8;<154?20349>j7:8;<16`?20349>o7:8;<16a?20349<>7:8;<144?20349<=7:8;<147?20349<87:8;<143?20349<97:8;<142?20349<47:8;<14=?203493:7:8;<1;0?20349397:8;<1;3?20349347:8;<1;f?20349357:8;<1;e?203493o7:8;<1;`?20349j=7:8;<1b4?203492j7:8;<1:a?203492h7:8;<1:g?203492n7:8;<1:e?20349257:8;<1:4>63ty?4n4?:3y]03?<5:kj6<6>;|q74>63ty?4l4?:3y]031<5:k36<6>;|q7<<<72;qU8;84=2c4>4>63ty?454?:3y]033<5:k=6<6>;|q7<3<72;qU8;=4=2c6>4>63ty?484?:3y]034<5:k?6<6>;|q7<1<72;qU8;?4=2a6>4>63ty?4>4?:3y]036<5:i?6<6>;|q7<7<72;qU88h4=2a0>4>63ty?4<4?:3y]00c<5:i96<6>;|q7<5<72;qU88j4=2a2>4>63ty?;k4?:3y]00e<5:i;6<6>;|q73`<72;qU88l4=2`:>4>63ty?;i4?:3y]00g<5:kn6<6>;|q73g<72;qU8864=2c0>4>63ty?;l4?:3y]001<5:k96<6>;|q73<<72;qU8884=2`e>4>63ty?;54?:3y]003<5:hn6<6>;|q732<72;qU88:4=2`g>4>63ty?;;4?:3y]005<5:hh6<6>;|q730<72;qU88<4=2`a>4>63ty?;94?:3y]007<5:hj6<6>;|q736<72;qU88>4=2`;>4>63ty?;?4?:3y]01`<5:h<6<6>;|q7=0<72;qU8:>4=2`5>4>63ty?594?:3y]03`<5:h>6<6>;|q7=6<72;qU8;k4=2`7>4>63ty?5?4?:3y]03b<5:h86<6>;|q7=4<72;qU8;m4=2`1>4>63ty?5=4?:3y]03d<5:h:6<6>;|q74>63ty?4:4?:3y]00?<5:km6<6>;|q73f<72;qU89k4=2cg>4>63ty?;<4?:3y]01b<5:kh6<6>;|q706<72;qU8>?4=2gb>=>?=7>52z\775=:;lk19o5rs563>5<5sW>9j63{t<:l1<77}Y<;n01>kn:458yv24l3:1>vP;2b9>7`g==?1v9=l:181[25j278il4:5:p06d=838pR9j6=4={_603>;4mh0=>6s|45;94?4|V=9=70=ja;42?xu3<10;6?uQ427896cf2?:0q~:;7;296~X3;=16?ho55g9~w1212909wS:<3:?0ad<2m2wx89;50;0xZ155349nm7;k;|q701<72;qU8?74=2gb>0e8m7>52z\76==:;lk1995rs017>5:=7?8c:?133<3j279444;b:?1a=<3j279jo4;b:?054<3j279n;4;b:?1e3<3j2788:4;b:?070<3j278il4l9:p7c7=839p1>h=:40896`6282:70=i0;6:?xu4n;0;6?u23g095=7<5:l?6i;4}r1eg?6=;r78ji4:2:?0bg<31278jn4>809~w6`c2909w0=id;3;5>;4no0o96s|3g294?5|5:l:68<4=2d3>4>6349m87j9;|q0bg<72:q6?kl5193896`d2<801>hi:e48yv5a;3:18v34=2d;>4>7349m87?8a:p7c1=83;3w0=ia;3;5>;51h0:4=522e390`=::m:18h522bd90`=::jo18h522bf90`=::ji18h522bc90`=::j31=5>4=3aa>1c<5;o869k4=3g1>1c<5;o:69k4=3g3>1c<5;nm69k4=3ff>1c<5;no69k4=3f`>1c<5;ni69k4=34a>1c<5;<369k4=34e>4>7348=i7?70:p7c0=838=w0=i9;3;5>;58o0?i63=0d87a>;58m0?i63=0b87a>;58k0?i63=0`87a>;5800?i63=0987a>;58>0?i63=5c87a>;5=h0?i63=5887a>;5=10?i63=5687a>;5=?0?i63=5487a>;5==0?i63=5287a>;5<00?i63=4987a>;5<>0?i63=4787a>;5<<0?i63=4587a>;5<:0?i63=4387a>;5<80?i63=4187a>;6l80?i63>d187a>;6ko0?i63>cd87a>;6km0?i63>cb87a>;6kk0?i63>c`87a>;6k00?i6s|3g794?40s49m47?71:?0fc<3m278nh4;e:?0fa<3m278nn4;e:?0fg<3m278nl4;e:?0f=<3m278n:4;e:?0f3<3m278n84;e:?0f1<3m278n>4;e:?0f7<3m278n<4;e:?0f5<3m278mk4;e:?0ea<3m278mn4;e:?0eg<3m278ml4;e:?0e<<3m278m54;e:?0e2<3m278m;4;e:?0e0<3m278m94;e:?0g0<3m278o94;e:?0g6<3m278o?4;e:?0g4<3m278o=4;e:?0f<<3m278mh4;e:?0e6<3m278m?4;e:?0af889~w6`b2908w0:?3;3;4>;38;0:4=523gd952g;=7>52ey>055=91;01><9:5g896472=o01><6:0:3?855=3>n70=95;6f?851<3>n70=92;6f?85193>n70=93;6f?85183>n70=:f;6f?852l3;3<63<5b82<5=:;:18h5236395=6<5:=869k4=257>1c<5:=<69k4=256>1c<5:==69k4=25;>1c<5:=269k4=2:5>1c<5:2?6<6?;<1;1?2b3493;7:j;<1;=:0:2?87fl3>n70?nc;6f?87fj3>n70?na;6f?87f13>n70?n8;6f?87f?3>n70?n6;6f?87f=3>n70?i5;6f?87a<3>n70?i3;6f?87a:3>n70?i1;6f?87a83>n70?jf;6f?87bm3>n70?jd;6f?87b;3>n70?j2;6f?87b93>n70?j0;6f?87cn3>n70?ke;6f?87cl3>n70?kc;6f?87cj3>n70<<5;6f?844<3>n70<<3;6f?844:3>n70<<1;6f?84483>n70<=f;6f?845m3>n70<=d;6f?845k3>n7p}=9c83>7}::0k19?5228a952g54z?1=d<60816>;j5d49>630=l?16>;;5d79~w6402908w0==6;71?855=3?970==8;34e>{t;;91<71?<5:8?6<9n;|q064<72;q6??>5539>774=9>k0q~==9;297~;4:00:4<523369`0=:;;81h85rs206>5<3s49997?71:?061278>l4k6:?06=2wx>:;50;0x971f2=h01?96:05b?xu5?o0;6?u226c95=5<5;2?6<9n;|q1==<72;q6>:o516c897?d2m=0q~<84;296~;5?00?n63=79823d=z{;=n6=4={<04=?7?;2794>4>7`9~w7142909w0<88;6a?840?3;:<50;0x97102=h01?99:05b?xu5?j0;6?u226595=5<5;2:6<9n;|q13g<72;q6>:85191897>728=j7p}=8983>7}::1n18o5229a952g7>52z?149516c8yv4>13:1>v3=8e823d=::0i1h;5rs3:4>5<5s483o7:m;<0;f?70i2wx>4?50;0x97>d282870<66;34e>{t:1<1<71d<5;2j6<9n;|q1=5<72;q6>5l5191897?228=j7p}=8483>7}::1k18o5229;952g52z?14:516c8yv4?m3:1>v3=8882<6=::091=:o4}r0f3?6=:r79in4;b:?1ag<6?h1v?h>:18184bk3;3?63=f7823d=z{::j6=4={<0fg?70i278>54k7:p6`0=838p1?km:5`897cf28=j7p}=f183>7}::lh1=5=4=3d6>41f3ty9i84?:3y>6`g=h7516c8yv4bn3:1>v3=e`82<6=::o>1=:o4}r0f0?6=:r79i44;b:?1a=<6?h1v?kj:18184b13;3?63=f2823d=z{;oo6=4={<0f7`9~w7`f2909w07}::oo18o522gf952g52z?1b`<60:16?=6516c8yv4a03:1>v3=fe87f>;5nj0:;l5rs221>5<5s48mh7?73:?042<6?h1v?h8:18184ak3>i70{t;9;1<74>4349;:7?8a:p756=838p1?hm:0:0?857=3;69l4=237>41f3ty8=l4?:3y>743=91901>?i:05b?xu48j0;6?u2307952g<5:896i84}r13b?6=:r78=94;b:?056<6?h1v>?6:181856<3;3?63<1d823d=z{::n6=4={<127?2e349:>7?8a:p74>=838p1>?<:0:0?856l3;41f3ty8=:4?:3y>744=91901>?l:05b?xu49?0;6?u230395=5<5:;i6<9n;|q117<72=h5539>60d=91;01??>:e4897742m?01??::e58yv47>3:1?v3=0g82<4=::0=1h8522969`0=z{;;;6=4={<03a?35348:=7?8a:p653=839p1?>j:0:2?84>>3n=70<73;f5?xu59;0;6?u221f917=::891=:o4}r030?6=;r79809>6<0=l<16>5=5d49~w773290;5900o963=1c8g3>;59o0o963=208g1>{t:991<7=t=32`>4>6348297j9;<0;6?b13ty9=;4?:3y>65d==;16><9516c8yv47:3:1?v3=0c82<4=::0?1h8522909`0=z{;;36=4={<03e?35348:57?8a:p657=839p1?>n:0:2?84><3n=70<71;f5?xu59h0;6?u221;917=::8h1=:o4}r034?6=;r79<44>809>6<2=l<16>5?5d49~w77d2909w0;<0:7?b13483<7j9;|q165<72;q6>=95539>677=9>k0q~?ie;297~;58>0:4<522819`0=::1:1h85rs0g`>5<2s4;jh7;=;<3e1?7?927:mk4k6:?2f44k7:p5d2=83>p13n=7p}>ad83>7}:9hi19?521`d952g54z?2ef<60816?75?=l116>k85d99~w4d72909w0?nb;71?87e93;;<12a?b1349;47j9;<0e1?b13ty:n?4?:6y>5dg==;16=o=516c894d22m<012m=01p1b783>7}:9h219?521c5952g54z?2e=<60816?751=l116>k:5d99~w4d?2909w0?n7;71?87e13;;<12g?b1349;:7j9;<0e7?b13ty:nl4?:3y>5d0==;16=oj516c8yv7>l3:18v3>a782<4=:;8i1h5523149`==::o91h55rs0`f>5<5s4;j97;=;<3ab?70i2wx=4m50;6x94g2282:70=>b;f4?857=3n<70:187842i3;3=63=108g1>;59:0o:63=148g<>{t::n1<704<5;><6<6>;|q115<72:q6>875193897742m=01??::e78yv44k3:1>v3=59866>;55<5s48>47?71:?1502wx>>l50;0x97302<801?:::0:2?xu5a0<5;;i6i64=33e>a0<5;8:6i84}r00e?6=:r799;4:2:?101<6081v?:k:186842>3;3=63=188g3>;59k0o963=1g8g3>;5:80o;6s|22;94?4|5;?>68<4=360>4>63ty98n4?:5y>603=91;01??m:e48977c2m?01??j:e78yv4403:1>v3=55866>;5<;0:4<5rs36a>5<4s48>87?71:?15a279=h4k6:p661=838p1?;<:4089726282:7p}=4`83>7}::<91=5?4=33f>a152z?2b0<2:27:i>4>809~w4b>2909w0?i4;71?87b:3;3=6s|1d`94?2|58l?6<6>;<3bb?b234;i=7j9;<3a7?b?3ty:h54?:3y>5c5==;16=h?51938yv7bi3:1?v3>f282<4=:9k;1h:521c19`0=z{8n<6=4={<3e6?3534;n<7?71:p5`?=838p1d783>7}:9o;19?521ed95=756z?2b4<60816=o;5d49>5g1=l?16=o75d99>5gb=l?16=oh5d79~w4b22909w0?i0;71?87cm3;3=6s|1d594?3|58l;6<6>;<3a3?b034;i57j:;<3a`?b034;ij7j8;|q2`1<72;q6=hh5539>5ab=91;0q~?j6;290~;6mo0:4<521c;9`3=:9kh1h8521ca9`0=z{8n86=4={<3fa?3534;oo7?71:p5`3=839p1809>5ge=l>1v?{t:;k1<704<5;9?6<6>;|q16<<72;q6>995539>665=91;0q~<=8;296~;5>63=3382<4=z{;8<6=4={<071?353488=7?71:p670=838p1?:;:4089757282:7p}=2483>7}::=919?5223d95=752z?107<2:279>h4>809~w7442909w0<;1;71?845l3;3=6s|23094?4|5;>;68<4=30`>4>63ty9?;4?:0y>616=91;0q~?l8;296~;6m:0>>63>d082<4=z{8i<6=4={<3f6?3534;o<7?71:p5f0=838p1:40894ea282:7p}>c483>7}:9l:19?521bg95=752z?2`c<2:27:oi4>809~w4e42909w0?ke;71?87dk3;3=6s|1b094?4|58no68<4=0aa>4>63ty:o<4?:3y>5ae==;16=no51938yv7d83:1>v3>dc866>;6k00:4<5rs3fb>5<2s4;o=7;=;<0f7?7?927:4o4k5:?1<1278il4;2:p5c0=838p1e28=j7p}>f683>7}:9jl19?5219a952g52z?2g`<2:27:4i4>7`9~w4`>2909w0?ld;71?87?m3;41f3ty:jo4?:3y>5fd==;16=4>516c8yv7ak3:1>v3>c`866>;6180:;l5rs0dg>5<5s4;h57;=;<3:6?70i2wx?4950;6x97522<801>o>:0:2?87>;3n>70=ja;1;?xu5=j0;6?u2226917=:9091=:o4}r06`?6=:r79?>4:2:?2=1<6?h1v?;j:181844:3?970?65;34e>{t:04<583=6<9n;|q125<72;q6>>>5539>5<1=9>k0q~<91;296~;5:o0>>63>99823d=z{;<96=4={<01a?3534;257?8a:p635=838p1?7}::;i19?5218`952g515y>6a7=<016>i>5489>6f`=<016>nk5489>6fb=<016>nm5489>6fg=<016>n75489>6fd=<016>h=5489>6`4=<016>h?5489>6`6=<016>ih5489>6ac=<016>ij5489>6ae=<016>il5489>7`e=l?16>;8516c8yv4f=3:1>v3=d0866>;5jl0:;l5rs3a;>5<3s48o=7?71:?1a6<2:2795:4k6:?1fcl:50;0x97b72<801?lk:05b?xu5k>0;69u22e295=7<5;o968<4=3;5>a><5;h>6i;4}r0b7?6=:r79ok4:2:?1ff<6?h1v?m9:18784dn3;3=63=e0866>;51?0o;63=b28g1>{t:h81<704<5;hi6<9n;|q1g0<72=q6>nk5193897c72<801?7::e:897d62m?0q~>63=b`823d=z{;i?6=4;{<0``?7?9279hk4:2:?1=028=j7p}=c283>1}::ji1=5?4=3ff>04<5;3?6i64=3cg>a352z?1gd<2:279n:4>7`9~w7e6290?w0;5lj0>>63=928g<>;5i00o96s|28f94?4|5;i268<4=3`5>41f3ty9o=4?:5y>6f?=91;01?jm:40897?42m=01?o8:e78yv4>n3:1>v3=cc866>;5j10:;l5rs3a1>5<3s48hn7?71:?1`a<2:279594k7:?1ego:50;0x97db2=h01?l;:05b?xu5jo0;6?u22cg9573<5;hm6<9n;|q1f7<72:q6>oj54c9>6g2=o<516c8yv4e=3:1?v3=be8260=::k>1=5=4=3`6>41f3ty9n=4?:2y>6ge=o<54c9>6g6=9>k0q~8522c095=5<5;h86<9n;|q1e`<72:q6>ol54c9>6g6=lk516c8yv4e93:1?v3=bc8260=::k:1=5=4=3`2>41f3ty9mn4?:2y>6gg=lk54c9>6de=9>k0q~8522`g95=5<5;km6<9n;|q1ed<72:q6>o754c9>6de=lo516c8yv4fl3:1?v3=b88260=::hi1=5=4=3cg>41f3ty9m54?:2y>6g>=lo54c9>6d>=9>k0q~8522`c95=5<5;ki6<9n;|q1e3<72:q6>o954c9>6d>=l8516c8yv4f13:1?v3=b68260=::h21=5=4=3c:>41f3ty9m:4?:2y>6g0=9;?01?o9:0:0?84f?3;;<3;g?b234;3n7j9;<0;7?b?349nm7:?;|q1`=<72h?5193894>c2m?01<6l:e4897>42m=01>kn:2d8yv4c?3:19v3=e182<4=:91o1h85219f9`3=::181h5523dc97`=z{;n=6=4:{<0gb?7?927:4k4k5:?2<`2794?4k7:?0ad<4l2wx>i;50;7x97bb282:70?60;f6?87?n3n=70<71;f;?85bi39h7p}=d583>0}::mn1=5?4=0;2>a3<583;6i84=3:2>a1<5:oj6>l4}r0g7?6==r79hn4>809>5<4=l<16=4?5d79>6=6=l116?ho53`9~w7b5290?w0;61;0o:63=818g3>;4mh0856s|27a94?4|5;41f3ty9:o4?:6y>63d=91;01?8n:e4897162m=01?8k:e5897002m=01?89:e:897022m20q~<99;296~;5>10>>63=6`823d=z{;<36=48{<05279:i4k6:?122279:;4k7:?120:>50;1x970a2<801?8j:408971628=j7p}=6d83>7}::?o1=5?4=352>a352cy>733=<016?;:5489>734=<016?;?5489>735=<016?;>5489>70`=<016?8j5489>70e=<016?8k5489>724=<016?:>5489>727=<016?:=5489>722=<016?:95489>723=<016?:85489>72>=<016?:75489>7=0=<016?5:5489>7=3=<016?595489>7=>=<016?5l5489>7=?=<016?5o5489>7=e=<016?5j5489>7d7=<016?l>5489>7<`=<016?4k5489>77777g=9>k01><=:e:896cf2=:37p}<3583>7}:;??19?52342952gn7>54z?020<60816?:75539>74`=l<16?8?5d49~w6542909w0=94;71?853n3;;<14734==;16?9j516c8yv5203:18v3<6382<4=:;><19?5230g9`2=:;=81h85rs213>5<5s49==7;=;<17g?70i2wx?8950;6x9606282:70=85;71?856l3n>70=;0;f6?xu4;;0;6?u2371917=:;=o1=:o4}r16=?6=4>809>721==;16?712=l<1v>{t;<<1<7:t=243>4>6349<87;=;<12`?b03498i7j:;|q06`<72;q6?8h5539>71g=9>k0q~=:5;290~;4=o0:4<52361917=:;8i1h85232a9`0=z{:8h6=4={<16`?35349?47?8a:p705=83>p1>;k:0:2?85093?970=>b;f5?85403n>7p}<2c83>7}:;>7>54z?01f<60816?:>5539>74d=l<16?>85d49~w64c2909w0=:e;71?85313;;<146?35349:o7j8;<10e?b23ty8884?:3y>706=v3<518260=:;<;1=:o4}r177?6=;r788k4;b:?000<3j2788>4>7`9~w6212908w0=;f;311>;4<<0:4>52354952g53z?00`<3j2788>4;b:?004<6?h1v>:;:180853m3;9963<4282<6=:;=>1=:o4}r10b?6=;r788i4;b:?004<3j278?k4>7`9~w6252908w0=;d;311>;4<80:4>52350952g53z?00f<3j278?k4;b:?07a<6?h1v>:?:180853k3;9963<3g82<6=:;=:1=:o4}r10f?6=;r788o4;b:?07a<3j278?o4>7`9~w65b2908w0=;b;311>;4;m0:4>5232g952g53z?00d<3j278?o4;b:?07<<6?h1v>=l:180853i3;9963<3c82<6=:;:i1=:o4}r103?6=;r78844;b:?07<<3j278?:4>7`9~w65f2908w0=;9;311>;4;00:4>5232c952g53z?00=<3j278?:4;b:?070<6?h1v>=7:18085303;9963<3682<6=:;:21=:o4}r102?6=;r788:4>249>763=91901>=9:05b?xu4>10;6>u236095=7<5:2=68<4=225>a153z?035<60816?5:5539>753=l<1v>88:18085093;3=63<84866>;48<0o:6s|37;94?5|5:=86<6>;<1;3?35349;:7j:;|q02d<72:q6?::5193896>?2<801>>8:e58yv51l3:1?v3<7682<4=:;1h19?5231:9`0=z{:6}:;>21=5?4=2:`>04<5::26i94}r15b?6=;r78;44>809>7=b==;16?=75d49~w61d2908w0=76;3;5>;41h0>>63=f28g3>{t;>k1<7=t=2:7>4>6349247;=;<0e6?b23ty8;o4?:2y>7=3=91;01>76:40897`52m<0q~=8d;297~;40>0:4<5238`917=::o91h85rs25f>5<4s49347?71:?0=f<2:279j94k7:p7=7=839p1>6m:0:2?85>n3?970u239;95=7<5:3o68<4=3d7>a353z?06c3=l>1v>6=:18085?k3;3=63;5n?0o;6s|39194?5|5:2o6<6>;<1b5?35348m:7j:;|q0=3<72=q6?l>5193894?32m?01<7<:e4896cf2:<0q~=65;290~;41o0:4<521879`0=:90>1h;523dc970=z{:3?6=4;{<1:a?7?927:5;4k5:?2=0278il4<4:p7<5=83>p1>7k:0:2?87>?3n>70?66;f5?85bi3987p}<9383>1}:;0i1=5?4=0;;>a3<583<6i84=2gb>6454z?0=g<60816=475d49>5<>=l?16?ho5309~w6?7290?w0=6a;3;5>;61h0o963>988g2>;4mh08<6s|39d94?2|5:326<6>;<3:f?b234;2m7j9;<1fe?4a3ty84h4?:2y>7<>=91;01<7m:e4896cf2;o0q~=je;2960}:;kl184523cg90<=:;kn184523ca90<=:;kh184523cc90<=:;k2184523c590<=:;k<184523c790<=:;k>184523c190<=:;k8184523c390<=:;k:184523`d90<=:;hn184523`a90<=:;hh184523`c90<=:;h3184523`:90<=:;h=184523`490<=:;h?184523`690<=:;j?184523b690<=:;j9184523b090<=:;j;184523b290<=:;k3184523`g90<=:;h9184523`090<=::?=1=:o4}r1f6?6=:r78nk4:2:?0adkn:c:8yv5b83:1>v3;4mh0i:6s|3ed94?4|5:hh68<4=2gb>g252z?0fg<2:278il4m3:p7ab=838p1>ln:40896cf2k80q~=kb;296~;4j10>>63{t;mk1<704<5:oj6o>4}r1g=?6=:r78n;4:2:?0adkn:b78yv5c?3:1>v3;4mh0ji6s|3e494?4|5:h868<4=2gb>db52z?0f7<2:278il4nc:p7a2=838p1>l>:40896cf2hh0q~=k3;296~;4j90>>63{t;m81<704<5:oj6l64}r1g4?6=:r78mi4:2:?0adkn:`48yv5dm3:1>v3;4mh0h86s|3bf94?4|5:kj68<4=2gb>d352z?0e<<2:278il4n4:p7fd=838p1>o7:40896cf2h90q~=la;296~;4i>0>>63{t;j31<704<5:oj6l?4}r1`kn:cd8yv5b13:1>v3;4mh0ii6s|3d:94?4|5:i?68<4=2gb>f552z?0g6<2:278il4md:p7`0=838p1>m=:40896cf2ki0q~=j5;296~;4k80>>63{t;l>1<704<5:oj6oo4}r1f7?6=:r78n44:2:?0adkn:c78yv5c93:1>v3;4mh0jm6s|3b494?4|5:k968<4=2gb><`52z?0af<6?h16?ho5c`9~w6cc2909w0<6c;f6?841=3;9:6s|17;94?4|58ho6i64=0`a>4413ty::l4?:3y>5g`=l116=om51348yv71j3:1>v3=1g8g<>;59m0:>;5rs04`>5<5s489=7j7;<02a?75>2wv9:<:181[24927?97:<1:&741<6>m1v9:>:181[24827?97:<0:&741<6>l1v9:?:181[25n27?97:=f:&741<6>o1v9=i:181[25m27?97:=e:&741<6?<1v9=j:181[25l27?97:=d:&741<6;<1v9=k:181[25k27?97:=c:&741<6;o1v9=l:181[25j27?97:=b:&741<691v9:n:181[24?27?97:<7:&741<6>81v9:6:181[24>27?97:<6:&741<6>;1v9:7:181[24=27?97:<5:&741<6>:1v9:8:181[24<27?97:<4:&741<6>=1v9:9:181[24;27?97:<3:&741<6><1v9:::181[24:27?97:<2:&741<6>?1v9:;:181[25127?97:=9:&741<6>>1v9=n:181[25027?97:=8:&741<6>11v9k=:181[2b:27?97:j2:&741<6?91v9kj:181[2bm27?97:je:&741<6?81v9h?:181[2a827?97:i0:&741<6?;1v9h8:181[2a?27?97:i7:&741<6?:1v8><:181[37;27?97;?3:&741<6?=1v9?7:181[26027?97:>8:&741<6??1v96j:181[21i27?97:9a:&741<6;?1v96l:181[21127?97:99:&741<6;>1v96m:181[21027?97:98:&741<6;11v96n:181[21?27?97:97:&741<6;01v966:181[21>27?97:96:&741<6;h1v967:181[21=27?97:95:&741<6;k1v969:181[21;27?97:93:&741<6;j1v96::181[21:27?97:92:&741<6;m1v96;:181[21927?97:91:&741<6;l1v96<:181[21827?97:90:&741<6<91v96=:181[22n27?97::f:&741<6<81v96>:181[22m27?97::e:&741<6<;1v96?:181[22l27?97::d:&741<6<:1v99i:181[22k27?97::c:&741<6<=1v99j:181[22j27?97::b:&741<6<<1v99k:181[22i27?97::a:&741<61v99n:181[22?27?97::7:&741<6<11v996:181[22>27?97::6:&741<6<01v997:181[22=27?97::5:&741<6:181[21k27?97:9c:&741<6=>1v97?:181[21j27?97:9b:&741<6=11v96i:181[21<27?97:94:&741<6=01v968:181[22127?97::9:&741<6=h1v99l:181[23m27?97:;e:&741<6=k1v99>:181[23l27?97:;d:&741<6=j1v978:181[2>?27?97:67:&741<6=m1v97k:181[2>l27?97:6d:&741<6=l1vqc7i3;296~N38<1vb4h;:181M27=2we5k;50;0xL1623td2j;4?:3yK05352zJ740=zf0l36=4={I631>{i1o31<7nh0;6?uG4178yk?aj3:1>vF;049~j<`d2909wE:?5:m=cb=838pD9>:;|l:b`<72;qC8=;4}o;eb?6=:rB?<85rn`23>5<5sA>;96saa1394?4|@=:>7p`n0383>7}O<9?0qco?3;296~N38<1vbl>;:181M27=2wem=;50;0xL1623tdj<;4?:3yK05352zJ740=zfh:36=4={I631>{ii931<7vF;049~jd6d2909wE:?5:me5b=838pD9>:;|lb4`<72;qC8=;4}oc3b?6=:rB?<85rn`33>5<5sA>;96saa0394?4|@=:>7p`n1383>7}O<9?0qco>3;296~N38<1vbl?;:181M27=2wem<;50;0xL1623tdj=;4?:3yK05352zJ740=zfh;36=4={I631>{ii831<7vF;049~jd7d2909wE:?5:me4b=838pD9>:;|lb5`<72;qC8=;4}oc2b?6=:rB?<85rn`03>5<5sA>;96saa3394?4|@=:>7p`n2383>7}O<9?0qco=3;296~N38<1vbl<;:181M27=2wem?;50;0xL1623tdj>;4?:3yK05352zJ740=zfh836=4={I631>{ii;31<7vF;049~jd4d2909wE:?5:me7b=838pD9>:;|lb6`<72;qC8=;4}oc1b?6=:rB?<85rn`13>5<5sA>;96sa84d94?7|@=:>7p`79e83>4}O<9?0qc66e;295~N38<1vb57i:182M27=2we4l>50;3xL1623td3m<4?:0yK0537>51zJ740=zf1k86=4>{I631>{i0h>1<7?tH526?xh?i<0;6f>3:1=vF;049~j=g0290:wE:?5:m=83;pD9>:;|l;e<<728qC8=;4}o:be?6=9rB?<85rn9ca>5<6sA>;96sa8`a94?7|@=:>7p`7ae83>4}O<9?0qc6ne;295~N38<1vb5oi:182M27=2we4o>50;3xL1623td3n<4?:0yK0537>51zJ740=zf1h86=4>{I631>{i0k>1<7?tH526?xh?j<0;6e>3:1=vF;049~j=d0290:wE:?5:m=83;pD9>:;|l;f<<728qC8=;4}o:ae?6=9rB?<85rn9`a>5<6sA>;96sa8ca94?7|@=:>7p`7be83>4}O<9?0qc6me;295~N38<1vb5li:182M27=2we4n>50;3xL1623td3o<4?:0yK0537>51zJ740=zf1i86=4>{I631>{i0j>1<7?tH526?xh?k<0;6d>3:1=vF;049~j=e0290:wE:?5:m=83;pD9>:;|l;g<<728qC8=;4}o:`e?6=9rB?<85rn9aa>5<6sA>;96sa8ba94?7|@=:>7p`7ce83>4}O<9?0qc6le;295~N38<1vb5mi:182M27=2we4i>50;3xL1623td3h<4?:0yK0537>51zJ740=zf1n86=4>{I631>{i0m>1<7?tH526?xh?l<0;6c>3:1=vF;049~j=b0290:wE:?5:m=83;pD9>:;|l;`<<728qC8=;4}o:ge?6=9rB?<85rn9fa>5<6sA>;96sa8ea94?7|@=:>7p`7de83>4}O<9?0qc6ke;295~N38<1vb5ji:182M27=2we4h>50;3xL1623td3i<4?:0yK0537>51zJ740=zf1o86=4>{I631>{i0l>1<7?tH526?xh?m<0;6b>3:1=vF;049~j=c0290:wE:?5:m<`>=83;pD9>:;|l;a<<728qC8=;4}o:fe?6=9rB?<85rn9ga>5<6sA>;96sa8da94?7|@=:>7p`7ee83>4}O<9?0qc6je;295~N38<1vb5ki:182M27=2we4k>50;3xL1623td3j<4?:0yK0537>51zJ740=zf1l86=4>{I631>{i0o>1<7?tH526?xh?n<0;6a>3:1=vF;049~j=`0290:wE:?5:m=83;pD9>:;|l;b<<728qC8=;4}o:ee?6=9rB?<85rn9da>5<6sA>;96sa8ga94?7|@=:>7p`7fe83>4}O<9?0qc6ie;295~N38<1vb5hi:182M27=2we5=>50;3xL1623td2<<4?:0yK0537>51zJ740=zf0:86=4>{I631>{i19>1<7?tH526?xh>8<0;63:1=vF;049~j<60290:wE:?5:m=5>=83;pD9>:;|l:4<<728qC8=;4}o;3e?6=9rB?<85rn82a>5<6sA>;96sa91a94?7|@=:>7p`60e83>4}O<9?0qc7?e;295~N38<1vb4>i:182M27=2we5<>50;3xL1623td2=<4?:0yK0537>51zJ740=zf0;86=4>{I631>{i18>1<7?tH526?xh>9<0;63:1=vF;049~j<70290:wE:?5:m=4>=83;pD9>:;|l:5<<728qC8=;4}o;2e?6=9rB?<85rn83a>5<6sA>;96sa90a94?7|@=:>7p`61e83>4}O<9?0qc7>e;295~N38<1vb4?i:182M27=2we5?>50;3xL1623td2><4?:0yK0537>51zJ740=zf0886=4>{I631>{i1;>1<7?tH526?xh>:<0;63:1=vF;049~j<40290:wE:?5:m=7>=83;pD9>:;|l:6<<728qC8=;4}o;1e?6=9rB?<85rn80a>5<6sA>;96sa93a94?7|@=:>7p`62e83>4}O<9?0qc7=e;295~N38<1vb4>50;3xL1623td2?<4?:0yK0537>51zJ740=zf0986=4>{I631>{i1:>1<7?tH526?xh>;<0;63:1=vF;049~j<50290:wE:?5:m=6>=83;pD9>:;|l:7<<728qC8=;4}o;0e?6=9rB?<85rn81a>5<6sA>;96sa92a94?7|@=:>7p`63e83>4}O<9?0qc750;3xL1623td28<4?:0yK0537>51zJ740=zf0>86=4>{I631>{i1=>1<7?tH526?xh><<0;63:1=vF;049~j<20290:wE:?5:m=1>=83;pD9>:;|l:0<<728qC8=;4}o;7e?6=9rB?<85rn86a>5<6sA>;96sa95a94?7|@=:>7p`64e83>4}O<9?0qc7;e;295~N38<1vb4:i:182M27=2we58>50;3xL1623td29<4?:0yK053>7>51zJ740=zf0?86=4>{I631>{i1<>1<7?tH526?xh>=<0;63:1=vF;049~j<30290:wE:?5:m=0>=83;pD9>:;|l:1<<728qC8=;4}o;6e?6=9rB?<85rn87a>5<6sA>;96sa94a94?7|@=:>7p`65e83>4}O<9?0qc7:e;295~N38<1vb4;i:182M27=2we5;>50;3xL1623td2:<4?:0yK0537>51zJ740=zf0<86=4>{I631>{i1?>1<7?tH526?xh>><0;63:1=vF;049~j<00290:wE:?5:m=3>=83;pD9>:;|l:2<<728qC8=;4}o;5e?6=9rB?<85rn84a>5<6sA>;96sa97a94?7|@=:>7p`66e83>4}O<9?0qc79e;295~N38<1vb48i:182M27=2we5:>50;3xL1623td2;<4?:0yK0537>51zJ740=zf0=86=4>{I631>{i1>>1<7?tH526?xh>?<0;63:1=vF;049~j<10290:wE:?5:m=2>=83;pD9>:;|l:3<<728qC8=;4}o;4e?6=9rB?<85rn85a>5<6sA>;96sa96a94?7|@=:>7p`67e83>4}O<9?0qc78e;295~N38<1vb49i:182M27=2we55>50;3xL1623td24<4?:0yK0537>51zJ740=zf0286=4>{I631>{i11>1<7?tH526?xh>0<0;63:1=vF;049~j<>0290:wE:?5:m==>=83;pD9>:;|l:<<<728qC8=;4}o;;e?6=9rB?<85rn8:a>5<6sA>;96sa99a94?7|@=:>7p`68e83>4}O<9?0qc77e;295~N38<1vb46i:182M27=2we54>50;3xL1623td25<4?:0yK0537>51zJ740=zf0386=4>{I631>{i10>1<7?tH526?xh>1<0;6>3:1=vF;049~j=83;pD9>:;|l:=<<728qC8=;4}o;:e?6=9rB?<85rn8;a>5<6sA>;96sa98a94?7|@=:>7p`69e83>4}O<9?0qc76e;295~N38<1vb47i:182M27=2we5l>50;3xL1623td2m<4?:0yK0537>51zJ740=zf0k86=4>{I631>{i1h>1<7?tH526?xh>i<0;63:1=vF;049~j=83;pD9>:;|l:e<<728qC8=;4}o;be?6=9rB?<85rn8ca>5<6sA>;96sa9`a94?7|@=:>7p`6ae83>4}O<9?0qc7ne;295~N38<1vb4oi:182M27=2we5o>50;3xL1623td2n<4?:0yK0537>51zJ740=zf0h86=4>{I631>{i1k>1<7?tH526?xh>j<0;63:1=vF;049~j=83;pD9>:;|l:f<<728qC8=;4}o;ae?6=9rB?<85rn8`a>5<6sA>;96sa9ca94?7|@=:>7p`6be83>4}O<9?0qc7me;295~N38<1vb4li:182M27=2we5n>50;3xL1623td2o<4?:0yK0537>51zJ740=zf0i86=4>{I631>{i1j>1<7?tH526?xh>k<0;63:1=vF;049~j=83;pD9>:;|l:g<<728qC8=;4}o;`e?6=9rB?<85rn8aa>5<6sA>;96sa9ba94?7|@=:>7p`6ce83>4}O<9?0qc7le;295~N38<1vb4mi:182M27=2we5i>50;3xL1623td2h<4?:0yK0537>51zJ740=zf0n86=4>{I631>{i1m>1<7?tH526?xh>l<0;63:1=vF;049~j=83;pD9>:;|l:`<<728qC8=;4}o;ge?6=9rB?<85rn8fa>5<6sA>;96sa9ea94?7|@=:>7p`6de83>4}O<9?0qc7ke;295~N38<1vb4ji:182M27=2we5h>50;3xL1623td2i<4?:0yK0537>51zJ740=zf0o86=4>{I631>{i1l>1<7?tH526?xh>m<0;63:1=vF;049~j=83;pD9>:;|l:a<<728qC8=;4}o;fe?6=9rB?<85rn8ga>5<6sA>;96sa9da94?7|@=:>7p`6ee83>4}O<9?0qc7je;295~N38<1vb4ki:182M27=2we5k>50;3xL1623td2j<4?:0yK0537>51zJ740=zutwKLNumc78;2d33k=9vLMLt0|BCT~{GH \ No newline at end of file +XILINX-XDM V1.6e +$45540<,[o}e~g`n;"2*726&;$:,)<6;.vnt*Ydo&lbjbQwloz\144;?U9oaeP19vl73(iof;0<85?0123=>6789:;<=>;0:23456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?01084<7<9:1:"=?<;029MKVR\3KOH_O39;2=5`=683CE\XZ5psmd[cskdV~c~h}g<883:73<990BB][[:qplcZ`rdeUdk|h^cpw`ts400;2?;4118JJUSS2yxdkRhzlm]wlwct`Vdnklzj<883:4?<990DYY^ZT;fbpdYdg|d044?>0a855113922?OIX\^1HDO31483:45<9?0DYY^ZT;FLE972294:>6?7:HLSQQ11:07?754;8;0>7GAPTV9@LVF480;2<<42;MVPUSS2ME[M1?50?31?64=AGZ^X7JFB=12>586;2996B[[PTV9@JD;;80;2<:4378LQQVR\3ndyy2<5;2=`>5t:9:;jj::6,72?12<<9LM=<5;:HLSQQ11397>JSSX\^1HB^M<283:4=1:2<286869768<567<22N4L?4959:45?530;>585=231EC^ZT;rqkbYbey~rSyf}erj\evubz}636=0=5:;9MKVR\3zycjQjmqvz[qnumzbTbhintd>;>586j231CXZ_UU8q`Zbf|hUhcx`{<983:7=F:11JHI\N<1<;?DBCZH6:255NDEPB878?3HNO^L2<>99B@ATF4=437LJKR@>6:==FLMXJ0;07;@FGVD:0611JHI\N<9611JHI\M<1<;?DBCZK6:255NDEPA878?3HNO^O2<>99B@ATE4=437LJKRC>6:==FLMXI0;07;@FGVG:06h1JHI\M<983:==FLMXI050<;@NO=>GTQGIT^HI<;CW1<>DR[VCEJB?4C39@A44EKCK90OA\6;BMNILRSMM;?7NA]E^EFJ@TF\@EESD@IO69@V@GSMM;0H?5KC39GM3=CAH6;2:5KI@>24;169GMD:6<730HDO31483:2=CAH6:9384DHC?5;0384DHC?7;01OEO2>3?58@LD;9=4<7IGM<07=3>BNJ5;=2:5KIC>23;12NBN1?17:FJF9476>1OEO2=1?58@LD;:;4<7IGM<31=3>BNJ58?2:5KIC>11;1;08;EKA8719?2NBN1<7>69GMG:517<0HDL32?58@LD;;9427IGM<2394;119:FJTD:6294<7IG_A=3=3>BNXK6;2:5KIQ@?5;1BHI5;:2:5KO@>26;108;EMB842912NDM1?::1<4?AIF48?5:6J@A=3=2>BHI585:6J@A=1=2>BHI5>5:6J@A=7=2>BHI5<5:6J@A=5=2>BHI525:6J@A=;=3>BHIVXNK;5KOC>3:2=CGK6:<394DN@?54803MEI0<<17:FLF9746>1OCO2>4?58@JD;9<4<7IAM<04=3>BHJ5;<2:5KOC>2<;117:FLF9466>1OCO2=2?58@JD;::4<7IAM<36=3>BHJ58>2:5KOC>12;1:08;EMA87>9?2NDN1<6>79GKG:56>1OCO2<0?;8@JD;;80;2:5KOC>05;019:FLTD:6294<7IA_A=3=3>BHXK6;2:5KOQ@?5;16H75:DBHVC53ON87KJL4:DGG@56G>2:K16>O402CEEY^P01:8MKOSXV::46GAIUR\47><8:KMMQVX8=20ECG[P^26<>OIA]ZT<;64IOKWTZ6012CEEY][AUG4?LHN\V:;;6GAIU]352=NF@^T;7:KMMQY7=>1BBDZP0758MKOSW9=<7D@FT^2;3>OIA]U;5:5FNHV\4D11BBDZP1758MKOSW8=<7D@FT^3;3>OIA]U:5:5FNHV\5D1D69JJLRX9L=0ECG[_0D4?LHN\V8;;6GAIU]152=NF@^T>?94IOKW[7503@DBXR<;7:KMMQY5=>1BBDZP2758MKOSW;=<7D@FT^0;3>OIA]U95:5FNHV\6D11BBDZP3758MKOSW:=<7D@FT^1;3>OIA]U85:5FNHV\7D1L8;HLJPZ5D?2CEEYQ6B@6:NLEACC?2FDKDMNL59OQQ733E__>95CUU17?ISS0168J466<2D:H68=>0B<>:4:L24320968J46>;2D:=95A1027?K769=1E=<<;;O3271=I98>?7C?>559M54033G;:;95A10:7?K761:1E=?:4N0030>H6:8>0B<<=4:L26622468J441<2D:>::4N00;7>H6;=1E=>?<;O377>H6=:1E=;:4N0477>H6?:1E=5=4N0;1?K443G8;?6@=129M675H51;1E?>5A3108J0480B4=4N830?K?5;2D2?>5A9518J<343G3=?6@6729M==56^Q2h1YILJPFHPPPf=UMHNT[DJ[H^C`?WCFLV]BHYFPB09P56=TADUHCABFSHMM[FNBKB<0_B[]CD58WWPFDVK<7^\YAM]A0>UTZH>0_^\M4:VZT@553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?012\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4566W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;>R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?02]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3452XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:>S_k|umv277=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwY`kVrd~=>?6^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\vaYwf}xTknQwos2342YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt789:T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=>>_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1236ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678:UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=:PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^uq[uhszVmhSua}0126[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYpzVzexQhc^zlv567>VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT{Qnup\cfYg{:;<:Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_vp\tkruWniTtb|?01:\V`urd};9=6[?/fpe*w`(ojr%oaew/sf\tkruWkce0=0=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<0<15>S7'nxm"h gbz-gim'{nT|cz}_ckm878592_;#j|i.sd,cf~)keas#jPpovq[goi4:49=6[?/fpe*w`(ojr%oaew/sf\tkruWkce090=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<4<15>S7'nxm"h gbz-gim'{nT|cz}_ckm838592_;#j|i.sd,cf~)keas#jPpovq[goi4>49=6[?/fpe*w`(ojr%oaew/sf\tkruWkce050=0:W3+bta&{l$knv!cmi{+wbXxg~ySoga_103?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\576<]9%l~k }f.e`|+ekcq%yhR~ats]amkY5:91^<"i}f/pe+be&jf`t"|k_qlwvZdnfV99<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS9 gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?01213>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:;=?84U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos2344403\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=?>279V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567:;=0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?03312>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:8>:5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r12377413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=:=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45639;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0404?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789?:>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r12327><]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<;?>269V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567>;8i7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?014\fab7:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?7358Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678>;9<6[?/fpe*w`(ojr%oaew/sf\tkruWni7<3>328Q5)`zo$yj"ilx/aoo})ulVzexQhc=0=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`868582_;#j|i.sd,cf~)keas#jPpovq[be;<78;7X> gsd-vc)`kq$h`fv re]sjqtXoj6>2?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo181219V4*aun'xm#jmw.bnh|*tcWyd~Ril<6<14>S7'nxm"h gbz-gim'{nT|cz}_fa?<;7a3\:$kh!rg-dg}(ddbr$~iQnup\cfY79o1^<"i}f/pe+be&jf`t"|k_qlwvZadW8;m7X> gsd-vc)`kq$h`fv re]sjqtXojU9=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS>?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ;1g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_43e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]55c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[27a3\:$kh!rg-dg}(ddbr$~iQnup\cfY?:?1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyij2?>348Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;978=7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh<3<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo595>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>7:70<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlm793<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8385>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk191279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:?6;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP0378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX9;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP2378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX;;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP4378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX=;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP6378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX?;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP83;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86;2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:66;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>1:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<2<>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86?2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:26;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>5:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<28>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8632?64U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4Y7:11^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1^31<>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:S?<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X;;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]76==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R;=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W?837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\37><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh>249V4*aun'xm#jmw.bnh|*tcWyd~Ril_ymq4565:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWqey<=><249V4*aun'xm#jmw.bnh|*tcWyd~Ril_ymq4563:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWqey<=>:249V4*aun'xm#jmw.bnh|*tcWyd~Ril_ymq4561:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWqey<=>8209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=3=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj949:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf595><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb1:1209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=7=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj909:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf5=5><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb161209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=;=65=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ7582_;#j|i.sd,cf~)keas#z|Ppovq[goiW;8;7X> gsd-vc)`kq$h`fv ws]sjqtXj`dT??>4U1-dvc(un&mht#mcky-tvZvi|{UiecQ;219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^714>S7'nxm"h gbz-gim'~xT|cz}_ckm[3473\:$kh!rg-dg}(ddbr${Qnup\flhX?;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU3>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR7=6:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq4567:>1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?0005?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt789;9;6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}0122570<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;?3358Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678:89:6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012762=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;8<<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34535?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>:1348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678?837X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?0142571<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<;<=b:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq4561Wkno219V4*aun'xm#jmw.bnh|*quWyd~Ril<1<14>S7'nxm"h gbz-gim'~xT|cz}_fa?5;473\:$kh!rg-dg}(ddbr${Qnup\cf:56;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k595>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh090=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm35?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>5:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg919:91^<"i}f/pe+be&jf`t"y}_qlwvZad4149<6[?/fpe*w`(ojr%oaew/vp\tkruWni753?i;T2,cw`)zo%lou lljz,swYwf}xTknQ?1g9V4*aun'xm#jmw.bnh|*quWyd~Ril_03e?P6(o{l%~k!hcy,`hn~({U{by|Pgb]15c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[67a3\:$kh!rg-dg}(ddbr${Qnup\cfY39o1^<"i}f/pe+be&jf`t"y}_qlwvZadW<;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU==k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS:?i;T2,cw`)zo%lou lljz,swYwf}xTknQ71g9V4*aun'xm#jmw.bnh|*quWyd~Ril_805?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4949:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=3=63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn692?84U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde?7;413\:$kh!rg-dg}(ddbr${Qnup\cfYf{{ol090=6:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfc939:?1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyij29>348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;?78=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<9<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo535>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]360=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU:>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]160=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU8>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]760=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU>>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]560=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU<>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef];60=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU2>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5979:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=0=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1=1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95>5>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5939:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=4=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=191289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9525>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g59?9:11^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1^31<>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S?<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X;;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]76==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R;=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W?837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\37><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmThS7'nxm"h gbz-gim'~xT|cz}_fa\|jt789;996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01011>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt7899996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01611>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt789?996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01411>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt789=996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01:04>S7'nxm"h gm2-va)`z8$yjzh{/Lov|ZTFEVXOSH@PFVDW644a3\:$kh!rg-dh5(ul&my=#|iwgv,IhsW[KFS_KHOTV\AK76:m1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwa969:m1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwa979:j1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwaZ65k2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[4523\:$kh!rg-dh5(ul&my=#|iwgv,gptuWo}mxR}{aug\ip~789;7<3=9;T2,cw`)zo%l`= }d.eq5+tao~$ox|}_guepZusi}oTaxv?013?4;74=2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[hs89::0<0<6:W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nS`{w01228486:11^<"i}f/pe+bj7&{n$k?!rguep*cjx}sTjzh{_g`13>S7'nxm"h gm2-va)`z8$yjzh{/dosp|Yao~Te?h4U1-dvc(un&mg<#|k/fp2*w`pn}%na}zv_guepZoXe|r;<=><0:W3+bta&{l$ka>!re-dv4(un~l#hctx]escrXaVg~t=>?000:?P6(o{l%~k!hl1,q`*auiz$yy} c1-`ewt~fl~7<3<6;T2,cw`)zo%l`= }d.eqev(u{}y$o=!laspzj`r;97827X> gsd-vc)`d9$yh"i}ar,qwqu(k9%hm|vndv?6;4>3\:$kh!rg-dh5(ul&mym~ }suq,g5)di{xrbhz33?0e?P6(o{l%~k!hl1,q`*auiz$yy} c1-dip~)odQ;Q#ib1/o26c=R8&myj#|i/fn3*wb(o{kx"}{s.a3+bkrp'mfW gsd-vc)`d9$yh"i}ar,qwqu(k9%laxv!glY7Y+aj{'gx>>5Z0.eqb+ta'nf;"j gscp*wus{&i;#{?30?00?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5979::1^<"i}f/pe+bj7&{n$ko|.sqww*e7';7>3<<;T2,cw`)zo%l`= }d.eqev(u{}y$o=!y1=1=66=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7;<78i7X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=R>Paof34566:k1^<"i}f/pe+bj7&{n$ko|.sqww*e7';T=Road123444e3\:$kh!rg-dh5(ul&mym~ }suq,g5)q9V8Tmcj?01226g=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7X;Vkeh=>?000a?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5Z2Xff~;<=>>289V4*aun'xm#jb?.sf,cwgt&{y"m>/bcqv|hb|5:5>45Z0.eqb+ta'nf;"j gscp*wus{&i:#no}rxlfp979:01^<"i}f/pe+bj7&{n$ko|.sqww*e6'jky~t`jt=0=6<=R8&myj#|i/fn3*wb(o{kx"}{s.a2+fguzpdnx1=12g9V4*aun'xm#jb?.sf,cwgt&{y"m>/fov|+ajS9W%k`?!m00e?P6(o{l%~k!hl1,q`*auiz$yy} c0-dip~)odQ:Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a2+bkrp'mfW?S!glq-iv4a3\:$kh!rg-dh5(ul&mym~ }suq,g4)`e|r%k`U<]/enw+kt:o1^<"i}f/pe+bj7&{n$ko|.sqww*e6'ng~t#ib[5_-chu)ez887X> gsd-vc)`d9$yh"i}ar,qwqu(k8%}=1>1229V4*aun'xm#jb?.sf,cwgt&{y"m>/w3?5;443\:$kh!rg-dh5(ul&mym~ }suq,g4)q9585>>5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?33?00?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5929:k1^<"i}f/pe+bj7&{n$ko|.sqww*e6';T?000a?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5Z5Xign;<=>>2c9V4*aun'xm#jb?.sf,cwgt&{y"m>/w3\0Zhh|9:;<<S7'nxm"h gm2-va)`zhy%~~z|/scn[`kw|pUmnRgPos234575;2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex?:4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov261=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}8986[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at207?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphs<;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz:259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq05<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex:<;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw<7?<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2?>3a8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6;2R|{289V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5;5>n5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}979W{~956[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az8785k2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<3<\vq4>3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw33?0`?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7?3Q}t3;8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6?2?m4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:36Vx>45Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}939:j1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=7=[wr512_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<7<1g>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0;0Pru0:?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7;3 gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8485i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=0=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc2<>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx7834:7g<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|38?0g?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWqey050Pru3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=2=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?5;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9499o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;;7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5>5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~793?i;T2,cw`)zo%l`= }d.psjqt(kfex1811g9V4*aun'xm#jb?.sf,vuhsz&idycz37?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=:=5`=R8&myj#|i/fn3*wb(zyd~"m`uov\44c<]9%l~k }f.eo4+tc'{zex!lotlw[47b3\:$kh!rg-dh5(ul&x{by| cnwmpZ46m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY49l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX<8o0Y=!hrg,qb*ak8'xo#~ats-`kphsW<;n7X> gsd-vc)`d9$yh"|nup,gjsi|V<:i6[?/fpe*w`(oe:%~i!}povq+firf}U<=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T4?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?30?01?P6(o{l%~k!hl1,q`*twf}x$ob{at^f28485:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc9585>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<2<>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?0;453\:$kh!rg-dh5(ul&x{by| cnwmpZb64<49>6[?/fpe*w`(oe:%~i!}povq+firf}Uo=181239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>4:74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;078:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S=<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_002?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[7463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W:8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S9<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_402?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[3463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W>8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S5<;;T2,cw`)zo%l`= }d.psjqt(kfexR``t12356`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8584n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:66:l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Ze~4;48j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xkp682>h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir090!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:Tot2:>2d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>4:6`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8=84n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:>6=;0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5;;29>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vf~x1?1479V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Sa{{<0<\MKPX8=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5858=5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567We0>0;0:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:T`xz34?63?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,IdbcWmcmjR~ats]seaYflm:;<=Qcuu>6:16<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp909<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[iss4>4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xd|~743:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Ugyy26>538Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?0^zlv979<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[}iu4;4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xpfx7?3:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Usc2;>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?_ymq838382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\|jt;?7>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yg{6329>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vrd~171319V4*aun'xm#jb?.vp,crgt&nzm"z|f.fjbcYwf}xT|lj311<1b>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae>2:7`<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg8785n2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]sea:46;l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugc4=49j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwim6>2?h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWyko0;0=f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{mi28>3d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok<9<1b>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae>::7c<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[44a3\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(l`lmS}`{r^rb`Z77:l1^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&nbjkQnup\tdbX:;o0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcW:8n7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$hdhi_qlwvZvflV>9i6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimU>>h5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"jffg]sjqtXxhnT:?k4U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWykoS:!ws-dsdu)oyl%{~i/ekebZvi|{U{miQ6399V4*aun'xm#jb?.vp,crgt&nzm"z|f.fjbcYwf}xT|ljPaef3456;9948;6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimUjhi>?01>2:61<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[dbc89:;0?0<7:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{miQnde2345:46:=0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcWhno<=>?<5<03>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae]b`a67896>2>94U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWykoSljk01238384?2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaYflm:;<=28>258Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok_`fg45674148;6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimUjhi>?01>::7g<]9%l~k }f.eo4+qu'n}j#if/uqtc)wzfmTjxbc_h11?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,twi`Wog`RgPmtz34554<2_;#j|i.sd,ci6){%l{l}!gqd-swva'yxdkRhzlm]j[hs89:8=8=;;T2,cw`)zo%l`= xr.etev(`xo$|~}h psmd[cskdVcTaxv?0112<6><]9%l~k }f.eo4+qu'n}j#if/uqtc)wzfmTjxbc_h]nq}678:;3S^Y?339V4*aun'xm#jb?.vp,crgt&nzm"z|f.rqkbYa}efTeR``t12357?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2?>3;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6:2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:56;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>0:7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV>R.fo2*h75n2_;#j|i.sd,ci6){%l{l}!wrvp+f7(ods"jcT1\,div(j{;l0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&mfyu hmZ0^*bkt&dy9j6[?/fpe*w`(oe:%{!hw`q-svrt'j;$k`{w.foX7X(`ez$f?h4U1-dvc(un&mg<#y}/fubw+qt|z%h="ibuy,di^2Z&ngx"`}=3:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0>3:75<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p64849?6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z<2=>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28685;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~86?2?l4U1-dvc(un&mg<#y}/fubw+qt|z%h="x>_1]bja6789;9n6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z_`lg45679;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S?Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U8Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W=Ujbi>?0131=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0=0=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs484956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw878512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<2<1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP

"x><1<17>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4:66;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0?0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>0:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64=49n6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y3Whdo<=>?1328Q5)`zo$yj"ic0/uq+bqf{'}xx~!lolr265=R8&myj#|i/fn3*rt(o~kx"z}{s.aliu4582_;#j|i.sd,ci6){%l{l}!wrvp+fijx:8o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;878o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;978o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;:78o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;;7987X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!hmtz-ch]7U'mf=#c>329V4*aun'xm#jb?.vp,crgt&~y"inf/a0+bkrp'mfW5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m1^<"i}f/pe+bj7&~x$kzo|.vqww*afn'i8#{?30?04?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q95;5>:5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m gsd-vc)`d9$|~"ixar,twqu(ohl%o>!y1^2\ekb789::>k5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m>2g9V4*aun'xm#jb?.vp,crgt&~y"inf/a0+s7X;Vkeh=>?000e?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q9V>Tmcj?01226f=R8&myj#|i/fn3*rt(o~kx"z}{s.pbiZgkefySk{cl^k00>S7'nxm"h gm2-sw)`hy%{~z|/scn[djjgz~Tjxbc_h]nq}67899>7X> gsd-vc)`d9$|~"ixar,twqu(zhgTmac`su]eqijXaVg~t=>?001a?P6(o{l%~k!hl1,tv*apiz$|y} r`o\eikh{}UmyabPi^llp56798UBB[Q?299V4*aun'xm#jb?.vp,crgt&~y"|nm^dvhiYajVc996[?/fpe*w`(oe:%{!hw`q-svrt'{kfSk{cl^k1`>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVcTaxv?0121a>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVcTaxv?01225a=R8&myj#|i/fn3*rt(zhgT{Qjn^k25c=R8&myj#|i/fn3*rt(zhgT{Qjn^k2[4443\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d>95Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu310>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|;8?7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{3368Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkr3:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by;=4:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp3433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d;?:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov;61=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}3956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8585k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<1<\vq4>3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw31?0`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7=3Q}t3;8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp692?m4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\g|:56Vx>45Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}959:j1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=1=[wr512_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<5<1g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir090Pru0:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7935:Zts:01^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=5=6f=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu191_sv1=>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir050=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~414T~y1:7g<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|33?0b?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey090=a:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZ~hz5?5>l5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]{kw:16;k0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPxnp?3;4f3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSua}<9<1e>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vrd~1712e9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{622R|{1g9V4*aun'xm#jb?.vp,suhsz&idycz30?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=3=5c=R8&myj#|i/fn3*rt(yd~"m`uov?6;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9599o1^<"i}f/pe+bj7&~x${}`{r.alqkr;<7;m7X> gsd-vc)`d9$|~"ynup,gjsi|5?5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~7:3?i;T2,cw`)zo%l`= xr.usjqt(kfex1911g9V4*aun'xm#jb?.vp,suhsz&idycz38?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=;=5`=R8&myj#|i/fn3*rt(yd~"m`uov\44c<]9%l~k }f.eo4+qu'~zex!lotlw[47b3\:$kh!rg-dh5(pz&}{by| cnwmpZ46m2_;#j|i.sd,ci6){%||cz}/bmvjqY49l1^<"i}f/pe+bj7&~x${}`{r.alqkrX<8o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW<;n7X> gsd-vc)`d9$|~"ynup,gjsi|V<:i6[?/fpe*w`(oe:%{!xpovq+firf}U<=h5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T4<1<16>S7'nxm"h gm2-sw)pxg~y#naznu]g5979:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl8692?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?33?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28185:2_;#j|i.sd,ci6){%||cz}/bmvjqYc95?5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<29>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3?3;453\:$kh!rg-dh5(pz&}{by| cnwmpZb64149>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=171209V4*aun'xm#jb?.vp,suhsz&idyczPd0]364=R8&myj#|i/fn3*rt(yd~"m`uov\`4Y6:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl8U9><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;6;2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<31?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f18785:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:595>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?2;>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?1;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54?49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>191239V4*aun'xm#jb?.vp,suhsz&idyczPd3>;:74<]9%l~k }f.eo4+qu'~zex!lotlw[a4;178:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S=<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_002?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[7463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W:8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S9<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_402?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[3463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W>8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S5<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_801?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f08585:2_;#j|i.sd,ci6){%||cz}/bmvjqYc;5;5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>2=>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1?7;453\:$kh!rg-dh5(pz&}{by| cnwmpZb44=49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo?1;1239V4*aun'xm#jb?.vp,suhsz&idyczPd2>5:74<]9%l~k }f.eo4+qu'~zex!lotlw[a5;?7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn8050=2:W3+bta&{l$ka>!ws-ttkru'je~byQk3=;=64=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y7:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U:><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q=209V4*aun'xm#jb?.vp,suhsz&idyczPd2]064=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y3:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U>><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q9209V4*aun'xm#jb?.vp,suhsz&idyczPd2]464=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y?:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U2>95Z0.eqb+ta'nf;"z| wqlwv*eh}g~Tbbz?01323>S7'nxm"h mdo,`jssW`6;2<64U1-dvc(un&gna"j`uu]j8469911^<"i}f/pe+hcj'me~xRg310<2<>S7'nxm"h mdo,`jssW`6:>3?7;T2,cw`)zo%fi`!kotv\m9746820Y=!hrg,qb*kbe&ndyyQf<06=5==R8&myj#|i/lgn+air|Vc7=80>8:W3+bta&{l$ahc dnww[l:6>7;37X> gsd-vc)jmd%ocxzPi=34:4><]9%l~k }f.ofi*bh}}Ub0<61199V4*aun'xm#`kb/emvpZo;904:;6[?/fpe*w`(elg$hb{{_h>2:4><]9%l~k }f.ofi*bh}}Ub0?>1199V4*aun'xm#`kb/emvpZo;:84:46[?/fpe*w`(elg$hb{{_h>16;7?3\:$kh!rg-nah)cg|~Te1<<>0:8Q5)`zo$yj"cjm.flqqYn4;>5=55Z0.eqb+ta'dof#iazt^k?608602_;#j|i.sd,i`k(lfSd2=6?3;?P6(o{l%~k!bel-gkprXa58<2<64U1-dvc(un&gna"j`uu]j87>9911^<"i}f/pe+hcj'me~xRg328<23>S7'nxm"h mdo,`jssW`692<64U1-dvc(un&gna"j`uu]j8669911^<"i}f/pe+hcj'me~xRg330<2<>S7'nxm"h mdo,`jssW`68>3?7;T2,cw`)zo%fi`!kotv\m9546820Y=!hrg,qb*kbe&ndyyQf<26=5==R8&myj#|i/lgn+air|Vc7?80>7:W3+bta&{l$ahc dnww[l:468=0Y=!hrg,qb*kbe&ndyyQf<5<23>S7'nxm"h mdo,`jssW`6>2<94U1-dvc(un&gna"j`uu]j8386?2_;#j|i.sd,i`k(lfSd28>058Q5)`zo$yj"cjm.flqqYn414:;6[?/fpe*w`(elg$hb{{_h>::40<]9%l~k }f.ofi*bh}}UbS=?9;T2,cw`)zo%fi`!kotv\mZ76?2_;#j|i.sd,i`k(lfSdQ>0058Q5)`zo$yj"cjm.flqqYnW8;:;6[?/fpe*w`(elg$hb{{_h]2641<]9%l~k }f.ofi*bh}}UbS<=>7:W3+bta&{l$ahc dnww[lY6<8=0Y=!hrg,qb*kbe&ndyyQf_0723>S7'nxm"h mdo,`jssW`U::<94U1-dvc(un&gna"j`uu]j[416?2_;#j|i.sd,i`k(lfSdQ>8058Q5)`zo$yj"cjm.flqqYnW83::6[?/fpe*w`(elg$hb{{_h]152=R8&myj#|i/lgn+air|VcT>=?8;T2,cw`)zo%fi`!kotv\mZ469>1^<"i}f/pe+hcj'me~xRgP2334?P6(o{l%~k!bel-gkprXaV88=:5Z0.eqb+ta'dof#iazt^k\61703\:$kh!rg-nah)cg|~TeR<:169V4*aun'xm#`kb/emvpZoX:?;<7X> gsd-vc)jmd%ocxzPi^0452=R8&myj#|i/lgn+air|VcT>5?8;T2,cw`)zo%fi`!kotv\mZ4>9?1^<"i}f/pe+hcj'me~xRgP3058Q5)`zo$yj"cjm.flqqYnW:::;6[?/fpe*w`(elg$hb{{_h]0541<]9%l~k }f.ofi*bh}}UbS><>7:W3+bta&{l$ahc dnww[lY4;8=0Y=!hrg,qb*kbe&ndyyQf_2623>S7'nxm"h mdo,`jssW`U89<84U1-dvc(un&gna"j`uu]j[1713\:$kh!rg-nah)cg|~TeR;>6:W3+bta&{l$ahc dnww[lY19?1^<"i}f/pe+hcj'me~xRgP7048Q5)`zo$yj"cjm.flqqYnW1;=7X> gsd-vc)jmd%ocxzPi^;2=>S7'nxm"h mdo,`jssWdof0=0>a:W3+bta&{l$ahc dnww[hcj48:5=l5Z0.eqb+ta'dof#iazt^ofi97668k0Y=!hrg,qb*kbe&ndyyQbel>26;7f3\:$kh!rg-nah)cg|~Tahc312<2e>S7'nxm"h mdo,`jssWdof0<:11`9V4*aun'xm#`kb/emvpZkbe5;>27;j7X> gsd-vc)jmd%ocxzPmdo?5286i2_;#j|i.sd,i`k(lfS`kb<0:=5d=R8&myj#|i/lgn+air|Vgna1?6>0;8Q5)`zo$yj"cjm.flqqYjmd6:2 gsd-vc)jmd%ocxzPmdo?6486i2_;#j|i.sd,i`k(lfS`kb<30=5d=R8&myj#|i/lgn+air|Vgna1<<>0c8Q5)`zo$yj"cjm.flqqYjmd6983?n;T2,cw`)zo%fi`!kotv\i`k;:<4:m6[?/fpe*w`(elg$hb{{_lgn87099h1^<"i}f/pe+hcj'me~xRcjm=04:4g<]9%l~k }f.ofi*bh}}Ufi`2=8?3b?P6(o{l%~k!bel-gkprXelg7>40>9:W3+bta&{l$ahc dnww[hcj4;4:m6[?/fpe*w`(elg$hb{{_lgn86699h1^<"i}f/pe+hcj'me~xRcjm=12:4g<]9%l~k }f.ofi*bh}}Ufi`2<2?3b?P6(o{l%~k!bel-gkprXelg7?>0>a:W3+bta&{l$ahc dnww[hcj4:>5=l5Z0.eqb+ta'dof#iazt^ofi9526830Y=!hrg,qb*kbe&ndyyQbel>0:4?<]9%l~k }f.ofi*bh}}Ufi`2;>0;8Q5)`zo$yj"cjm.flqqYjmd6>2<74U1-dvc(un&gna"j`uu]nah:16830Y=!hrg,qb*kbe&ndyyQbel>4:4?<]9%l~k }f.ofi*bh}}Ufi`27>0;8Q5)`zo$yj"cjm.flqqYjmd622::4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'kgei lsup,vdkkgfzP

1d9V4*aun'xm#}{bmi,vaYu{}Uyij2?>0g8Q5)`zo$yj"||tcnh+wbXzz~T~hi31?3f?P6(o{l%~k!}su`oo*tcW{ySkh<3<2`>S7'nxm"h rrvahn)ulVxxxR|jg^22`>S7'nxm"h rrvahn)ulVxxxR|jg^32`>S7'nxm"h rrvahn)ulVxxxR|jg^02`>S7'nxm"h rrvahn)pzVxxxRo|rde14>S7'nxm"h rrvahn)pzVxxxRo|rde\`4473\:$kh!rg-qwqdkc&}yS}{_`qqabYc:8i0Y=!hrg,qb*tt|kf`#z|Prrv\gjke9m1^<"i}f/pe+wusjea${Q}su]`khd69l1^<"i}f/pe+wusjea${Q}su]qab:768o0Y=!hrg,qb*tt|kf`#z|Prrv\v`a;97;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W9;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W8k0Y^K]_@NJEVe<]ZOYS[G\ICNF7>PDK01]EHYPTXRF7>QBI:1\IOm4WSKWAZKHLLUJo6Y]IUG\IJBBWKn0[_G[E^UJ@QNXIm1\^DZJ_VKGPMYE9m1SEAGAX,ZGF%6)9)Y_YO.?.0"BWFON=2RD^NW9;YQWHLD03QY_SJ@K7:ZPPZPDKk1SSNA]E^KMBJ00:ZgiZKfbfx]i}foo33?]bjWDcecXjrrkljf=fddexxRkbpu{a?djjgz~Tjxbc6:`bgnswl2hjof{_lcqo`t43jf`h6jnt`]`kphs 9#o7io{a^alqkr/9 n0hlzn_bmvjq.5!m1omyoPcnwmp-5.l2njxlQlotlw,1/c3mkmRm`uov+1,bbf|hUhcx`{(9+g?agsiVidycz'9(d8`drfWje~by26:1<4?adn|lxy:6jfn)2*2>bnf!;";6jfn)33-2=cag":=$94dhl+57/03mce$<=&7:fjj-73!>1oec&>5(58`lh/9?#<7iga(05*2>bnf!8":6jfn)1*2>bnf!>":6jfn)7*2>bnf!<":6jfn)5*2>bnf!2":6jfn);*2>bnf5:5;6jfn=33:2=cag6:=394dhl?57803mce0<=17:fjj9736>1oec2>5?58`lh;9?427iga<0594;1&7:flqq.6!11ocxz'11+;?air|!;:%55kotv+57/?3me~x%?<)99gkpr/9=#37iazt)36-==cg|~#=;'7;emvp-70!11ocxz'19+;?air|!;2%:5kotv+6,>&8:flqq.59 20hb{{(30*<>bh}}"9?$64dnww,72.02ndyy&=5(:8`jss ;<"46j`uu*13,> =0hb{{(6+4?air|!2";6j`uu*:-2=cg|~7<364dnww846902ndyy2>1?:8`jss488546j`uu>27;>bh}}6:;364dnww84>902ndyy2>9?58`jss48437iazt=03:==cg|~7><07;emvp945611ocxz322<;?air|58?255kotv?608?3me~x1<9>99gkpr;:>437iazt=0;:==cg|~7>408;emvp94902ndyy2<0?:8`jss4:;546j`uu>06;>=18:flqq:4<7k0hb{{<2794;>;17:flqq:46>1ocxz34?58`jss4<4<7iazt=4=3>bh}}6<2:5kotv?<;12y15[7ekcV;3xb=9,gkekZabflxjxb|Pv7]2(KIIM%DDBH:?3:djbjYdgrT9<,b]kevYulVnjxlQlotlw95*dWmceSzgkti?2<)eX`hyT{Qkauc\gjsi|4:'oRhzlm]ehdatW{yS{oc=1.`[lkwdlgnbyo{inl\p|vb5;&hSx}j_doaaabblVxnk0>#c^uq[ctby4;'oR{|e^flqqYu{}7: nQznegqbiipWee|1="l_icp[jpbzofd{0>#c^rqaiiflVfjxh`ly<2/gZbh}}U|eizg=24/gZktofdTzlb21-a\vaYcmy~c18?=,b]fvwiuW`dainzfoo]w}uc:8%iTdl}Puoffvcjh4:'oRfns^coijusWog`0?#c^jbwZtt|4;'oRjnt`]`kphsW~coxe3>0-a\lduX{Ujof3?,b]vw`Ybkj7; nQlololjZekgja65)eXlfS}{_wco95*dWakxSio{a^alqkr:8%iT|ah_gwohZrozlycSckhaug\rdj:99;= nQxr^fftqn:998? nQrne\ahvsqV~c~h}g_ogdeqcX~hf69!mPpsmd[`kw|pUdk|h^cpw`tsWkg19"l_icp[sgkam7; nQrne\bpjkW}byi~fParqfvqYqie7:<<9#cnoskkci|Vdjah3iigm\|ihW<;9t>8P2bnh[4>sg:<'oRxnlhf\hjq:8%iT|gb_gkekZr~xl7:gu?7,b]svjaXn|fgSywe<3/gZkbefxrSywe<3/y60oiblihog{espg?lhmmj~xndzjrs58mkrXkea37cilbtko`==h~lxm`byn;qplcZcjx}s:86~}of]fiur~W}byi~f'0(37?uthoVof|ywPtipfwm.6!8>0|ah_dosp|Ys`{oxd%<&159svjaXmdzuRzgrdqk,6/6<2zycjQjmqvz[qnumzb#8$?;;qplcZcjx}sTxe|jsi*6-42vugnUna}zv_ujqavn/0 ;=7}|`g^gntqX|axne27:1<2f>vugnUna}zv_ujqavnXizyn~y&?)0`8twi`Wlg{xtQ{hsgplZgt{lx$<'>b:rqkbYbey~rSyf}erj\evubz}"9%vugnUna}zv_ujqavnXizyn~y&7)0f8twi`Wlg{xtQ{hsgplZgt{lx054?>0`8twi`Wlg{xtQ{hsgplZhboh~n$='>b:rqkbYbey~rSyf}erj\j`af|l":%vugnUna}zv_ujqavnXflmjxh&8)0`8twi`Wlg{xtQ{hsgplZhboh~n$5'>d:rqkbYbey~rSyf}erj\j`af|l636=06;qplcZ`rde;87}|`g^dvhiYs`{oxd%>&129svjaXn|fgSyf}erj+5,743yxdkRhzlm]wlwct`!8"=>5rne\bpjkW}byi~f'3(30?uthoVl~`aQ{hsgpl-2.9:1{~biPftno[qnumzb#9$?<;qplcZ`rdeUdk|h)4*56=wzfmTjxbc_ujqavn/? ;87}|`g^dvhiYs`{oxd%6&129svjaXn|fgSyf}erj+=,723yxdkRhzlm]wlwct`531<3?n;qplcZ`rdeUdk|h^cpw`ts 9#:m6~}of]eqijX|axneQnsrgqp-7.9h1{~biPftno[qnumzbTm~}jru*1-4ga:rqkbYa}efTxe|jsi]bwvcu|!?"=l5rne\bpjkW}byi~fParqfvq.1!8k0|ah_gwohZrozlycSl}|esv+3,7f3yxdkRhzlm]wlwct`Vkxh|{(9+2e>vugnUmyabPtipfwmYf{zoyx%7&1b9svjaXn|fgSyf}erj\evubz}626=0>a:rqkbYa}efTxe|jsi]mabgsm!:"=l5rne\bpjkW}byi~fPndebp`.6!8k0|ah_gwohZrozlycSckhaug+6,7f3yxdkRhzlm]wlwct`Vdnklzj(2+2e>vugnUmyabPtipfwmYimnki%:&1`9svjaXn|fgSyf}erj\j`af|l">% ;j7}|`g^dvhiYs`{oxdR`jg`vf,2/6i2zycjQiumn\pmtb{aUeijo{e):*5d=wzfmTjxbc_ujqavnXflmjxh&6)0a8twi`Wog`Rzgrdqk[kc`i}o757>16:pg[fjl991yhRjnt`]`kphs 9#:<6|k_ecweZeh}g~#=$??;sf\`drfWje~by&=)028vaYci}kTob{at)1*55=ulVnjxlQlotlw,1/682xoSio{a^alqkr/= ;;7jPd`vb[firf}"=%<>4re]geqgXkfex%9&119q`Zbf|hUhcx`{(9+24>tcWmkmRm`uov?4;753{nThlzn_bmvjq:?294>7jPeo48vaYu{}90~~z8;r`jp`tu<2yyy:4tswf=>sillxm`by:;wcoma0<{Ujof84ws]`hn773~xThlzn_bmvjq.7!8:0{Qkauc\gjsi|!;"==5xr^fbpdYdg|d$?'>0:uq[agsiVidycz'3(33?rtXlh~jSnaznu*7-46<{UomyoPcnwmp-3.991|~Rjnt`]`kphs ?#:<6y}_ecweZeh}g~#;$??;vp\`drfWje~by&7)028swYci}kTob{at);*57=pzVnjxlQlotlw8<<76<1|~Rka6:uq[wusuIJ{oi64@Az2>C<328qX8k4:048;>455j?ih6:69czl7<1<63g>39784$5:1>11d3tY?h7;?5;:9564e>ji1;58l;R31g?3683:1=>o68??:18277d1kj0<4;j4d42;>5<628qX8k4:048;>455j?ih6:69c:tW5=e=83;1=7?l0zQ7b?37=321=><97?=d:T7<6<5s|;8:7?4u014>5=z,82;6<74b42;>5<4n391?kuG4618^13=:r;36=831b9;?50;9l0a?=83.:4?4;fb9m5=7=821d8i650;&2<7<3nj1e=5?51:9l0a1=83.:4?4;fb9m5=7=:21d8i850;&2<7<3nj1e=5?53:9l0a3=83.:4?4;fb9m5=7=<21d8i:50;&2<7<3nj1e=5?55:9l0a4=83.:4?4;fb9m5=7=>21d8i?50;&2<7<3nj1e=5?57:9l0a6=83.:4?4;fb9m5=7=021d8nh50;&2<7<3nj1e=5?59:9l0fc=83.:4?4;fb9m5=7=i21d8nj50;&2<7<3nj1e=5?5b:9l0fe=83.:4?4;fb9m5=7=k21d8nl50;&2<7<3nj1e=5?5d:9l0fg=83.:4?4;fb9m5=7=m21d8n750;&2<7<3nj1e=5?5f:9l0f1=83.:4?4;fb9m5=7=9910c9m9:18'5=4=:038?j2d=3:1(<6=:5d`?k7?93;976a;c583>!7?:3>mo6`>80827>=h8387bf=i91;1=954o5a1>5<#91818km4n0:2>43<3f>h=7>5$0:1>1`d3g;3=7?9;:m7g5<72-;3>7:ic:l2<4<6?21d8oh50;&2<7<3nj1e=5?51998k1db290/=5<54ga8j4>628307b:kf;29 4>52=lh7c?71;3b?>i3ll0;6)?72;6eg>h6080:n65`4ef94?"60;0?jn5a19395f=f:9l0a5=83.:4?4;fb9m5=7=:910c9m7:18'5=4=:338?j2el3:1(<6=:5d`?k7?938976a;bb83>!7?:3>mo6`>80817>=n8387f4=i91;1<65f48d94?"60;0?n<5a19395>=n<0o1<7*>8387f4=i91;1>65f48f94?"60;0?n<5a19397>=n<0i1<7*>8387f4=i91;1865f48`94?"60;0?n<5a19391>=n<0k1<7*>8387f4=i91;1:65f48;94?"60;0?n<5a19393>=n8387f4=i91;1465f4`594?"60;0?n<5a1939=>=n8387f4=i91;1m65f4`794?"60;0?n<5a1939f>=n1<7*>8387f4=i91;1o65f4`194?"60;0?n<5a1939`>=n8387f4=i91;1i65f4`394?"60;0?n<5a1939b>=n<021<7*>8387f4=i91;1==54i5;4>5<#91818o?4n0:2>47<3`?>?7>5;c640?6=93:1>0c<9i:188ygb?290:6=4?{I647>"6180o46ak7;29?xd3<3:1m;4>8582g5}O<>90V9;517y1=?4?2;k1h7o5b;a95=<6938i6h4k:d827g=:10v(<7>:42a?!2?2<:27):j:42b?!70j3;!7?:3?9:6`>8083?>o2:=0;6)?72;712>h6080:76g:2283>!7?:3?9:6`>8081?>o2:;0;6)?72;712>h6080876g:2083>!7?:3?9:6`>8087?>o2:90;6)?72;712>h6080>76g:1g83>!7?:3?9:6`>8085?>o29l0;6)?72;712>h6080<76g:1e83>!7?:3?9:6`>808;?>o28l0;66g:6183>>o2>:0;66a:6783>>o29k0;6)?72;72g>h6080;76g:1`83>!7?:3?:o6`>8082?>o2900;6)?72;72g>h6080976g:1983>!7?:3?:o6`>8080?>o29>0;6)?72;72g>h6080?76g:1783>!7?:3?:o6`>8086?>o29<0;6)?72;72g>h6080=76g:1583>!7?:3?:o6`>8084?>o29:0;6)?72;72g>h6080376g:5g83>>i2980;66g:2g83>!7?:3?8<6`>8083?>o2:l0;6)?72;704>h6080:76g:2e83>!7?:3?8<6`>8081?>o2:j0;6)?72;704>h6080876g:2c83>!7?:3?8<6`>8087?>o2:h0;6)?72;704>h6080>76g:2883>!7?:3?8<6`>8085?>o2:10;6)?72;704>h6080<76g:2683>!7?:3?8<6`>808;?>i30>0;66a;9583>!7?:3>296`>8083?>i31:0;6)?72;6:1>h6080:76a;9383>!7?:3>296`>8081?>i3180;6)?72;6:1>h6080876a;9183>!7?:3>296`>8087?>i30o0;6)?72;6:1>h6080>76a;8d83>!7?:3>296`>8085?>i30m0;6)?72;6:1>h6080<76a;8b83>!7?:3>296`>808;?>i30k0;6)?72;6:1>h6080276a:3083>>o2?=0;66g:3c83>!7?:3?8o6`>8083?>o2;h0;6)?72;70g>h6080:76g:3883>!7?:3?8o6`>8081?>o2;10;6)?72;70g>h6080876g:3683>!7?:3?8o6`>8087?>o2;?0;6)?72;70g>h6080>76g:3483>!7?:3?8o6`>8085?>o2;=0;6)?72;70g>h6080<76g:3283>!7?:3?8o6`>808;?>o2;;0;6)?72;70g>h6080276a:0b83>>i28?0;66g:6983>>o3000;66g:4783>!7?:3??;6`>8083?>o2<<0;6)?72;773>h6080:76g:4583>!7?:3??;6`>8081?>o2<:0;6)?72;773>h6080876g:4383>!7?:3??;6`>8087?>o2<80;6)?72;773>h6080>76g:4183>!7?:3??;6`>8085?>o2;o0;6)?72;773>h6080<76g:3d83>!7?:3??;6`>808;?>o2;m0;6)?72;773>h6080276g:5083>!7?:3?>>6`>8083?>o2=90;6)?72;766>h6080:76g:4g83>!7?:3?>>6`>8081?>o2h6080876g:4e83>!7?:3?>>6`>8087?>o2h6080>76g:4c83>!7?:3?>>6`>8085?>o2h6080<76g:4883>!7?:3?>>6`>808;?>o2<10;6)?72;766>h6080276a;8783>>o28o0;66g;8`83>>o2?<0;66a:6383>>i2>>0;66g:6083>>i3l00;6)?72;6eg>h6080;76a;d983>!7?:3>mo6`>8082?>i3l>0;6)?72;6eg>h6080976a;d783>!7?:3>mo6`>8080?>i3l<0;6)?72;6eg>h6080?76a;d583>!7?:3>mo6`>8086?>i3l;0;6)?72;6eg>h6080=76a;d083>!7?:3>mo6`>8084?>i3l90;6)?72;6eg>h6080376a;cg83>!7?:3>mo6`>808:?>i3kl0;6)?72;6eg>h6080j76a;ce83>!7?:3>mo6`>808a?>i3kj0;6)?72;6eg>h6080h76a;cc83>!7?:3>mo6`>808g?>i3kh0;6)?72;6eg>h6080n76a;c883>!7?:3>mo6`>808e?>i3k>0;6)?72;6eg>h6080:<65`4b494?"60;0?jn5a193954=6=4+19090ce4?:%3;6?2ak2d:4<4>4:9l0f4=83.:4?4;fb9m5=7=9<10c9m>:18'5=4=:048?j2d83:1(<6=:5d`?k7?93;<76a;bg83>!7?:3>mo6`>8082<>=h8387bf=i91;1=454o5fe>5<#91818km4n0:2>4g<3f>oi7>5$0:1>1`d3g;3=7?m;:m7`a<72-;3>7:ic:l2<4<6k21d8im50;&2<7<3nj1e=5?51e98k1be290/=5<54ga8j4>628o07b:ka;29 4>52=lh7c?71;3e?>i3l:0;6)?72;6eg>h60809<65`4b:94?"60;0?jn5a193964=7:m1:l2<4<632c?5h4?:%3;6?2e92d:4<4=;:k7=a<72-;3>7:m1:l2<4<432c?5n4?:%3;6?2e92d:4<4;;:k7=g<72-;3>7:m1:l2<4<232c?5l4?:%3;6?2e92d:4<49;:k7=<<72-;3>7:m1:l2<4<032c?m54?:%3;6?2e92d:4<47;:k7e2<72-;3>7:m1:l2<4<>32c?m;4?:%3;6?2e92d:4<4n;:k7e0<72-;3>7:m1:l2<47:m1:l2<47:m1:l2<40:9j0<1=83.:4?4;b09m5=7=9810e967:188k03d290/=5<554g8j4>62910c8;m:18'5=4==:098k03f290/=5<554g8j4>62;10c8;6:18'5=4==:298k03?290/=5<554g8j4>62=10c8;8:18'5=4==:498k031290/=5<554g8j4>62?10c8;::18'5=4==:698k033290/=5<554g8j4>62110c89=:18'5=4==>90b<6>:198k016290/=5<55618j4>62810c89?:18'5=4==>90b<6>:398k00a290/=5<55618j4>62:10c88j:18'5=4==>90b<6>:598k00c290/=5<55618j4>62<10c88l:18'5=4==>90b<6>:798k00e290/=5<55618j4>62>10c88n:18'5=4==>90b<6>:998k00>290/=5<55618j4>62010c8?=:188m06c2900c979:188m0342900c88::188f11a290:6=4?{%3:5?b?3A>50;394?6|,83:699;;I64a>N3?:1d=:h50;9~f7g5290?6=4?{%3:5?b43A>=6=44i4294?=n9191<75`19694?=zj=<;6=4<:183!7>93n;7E:8e:J736=O<:1/=>:55768 `0=:2c?:7>5;h73>5<908g4>N3?l1C8:=4H518 4532<<7>5;n3;0?6=3th?9k4?:283>5}#90;1h=5G46g8L1143A>87)?<4;750>"b>380e9850;9j15<722e:494?::a03?=83?1<7>t$0;2>a2<@==n7E:83:J77>"6;=0>:95f4783>>o3?3:17d;?:188m4>42900c<6;:188yg21i3:1?7>50z&2=47=n0<729q/=4?5d59K02c<@==87E:<;%300?31<2c?:7>5;h64>5<1<75rb54;>5<3290;w)?61;f0?M20m2B?;>5+e784?l212900e8>50;9j5=5=831d=5:50;9~f100290?6=4?{%3:5?b43A>=6=44i4294?=n9191<75`19694?=zj=<=6=4;:183!7>93n87E:8e:J736=#m?0<7d:9:188m06=831b=5=50;9l5=2=831vn99>:187>5<7s-;2=7j<;I64a>N3?:1/i;48;h65>5<1<75rb553>5<3290;w)?61;f0?M20m2B?;>5+e784?l212900e8>50;9j5=5=831d=5:50;9~f771290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e:8?1<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th9=94?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo<>3;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb331>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a647=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd5990;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn?>j:187>5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm1c694?2=83:p(<7>:e38L11b3A>5;|`2f6<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi=o>50;694?6|,83:6i?4H55f?M20;2.n:7<4i5494?=nag83>1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f4gc290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e9hi1<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th9:?4?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo<91;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb343>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a60`=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd5=l0;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<h7>54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn?;l:187>5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm24`94?2=83:p(<7>:e38L11b3A>5;|`11d<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi=ko50;694?6|,83:6i?4H55f?M20;2.n:7<4i5494?=nf883>1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f4`0290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e9o<1<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th:j84?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo?i4;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb373>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36e>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36f>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36g>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36`>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36a>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36b>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36:>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36;>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb364>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0gb>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g:>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g;>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g4>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g5>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g6>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g7>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g0>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g1>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0f;>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a5a1=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd6l?0;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm1e194?2=83:p(<7>:e38L11b3A>5;|`2`7<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi>>m50;694?6|,83:6i?4H55f?M20;2.n:7<4i5494?=n1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f75>290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e::21<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th9?:4?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo<<6;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb316>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a662=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd5;:0;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<55;294~"6180o>6F;7d9K025<,l<1>6g;6;29?l202900e9m50;9j15<722e:494?::a6a>=83?1<7>t$0;2>a4<@==n7E:83:&f2?4>o3k3:17d;?:188k4>32900qo90(h852:k72?6=3`><6=44i5a94?=n=90;66a>8583>>{e:m<1<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi>i:50;794?6|,83:6i<4H55f?M20;2.n:7<4i5494?=n<>0;66g;c;29?l372900c<6;:188yg4c:3:197>50z&2=45;h64>5<>i60=0;66sm2e394?3=83:p(<7>:e68L11b3A>5;n3;0?6=3th9h>4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f7e129086=4?{%3:5?20l2B?;h5G4618m1?=831b=?o50;9l52b=831vn?m::180>5<7s-;2=7:8d:J73`=O<>90e9750;9j57g=831d=:j50;9~f7dd290?6=4?{%3:5?74=2B?;h5G4618m1?=831b9?4?::k2t$0;2>11c3A>l4?::m23a<722wi>oo50;694?6|,83:6<=:;I64a>N3?:1b844?::k66?6=3`;3m7>5;n34`?6=3th9o>4?:283>5}#90;18:j4H55f?M20;2c?57>5;h31e?6=3f;5;|`1f=<72=0;6=u+1839563<@==n7E:83:k7=?6=3`?96=44i0:b>5<90873a=O<>o0D99<;h6:>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj;i:6=4<:183!7>93>n1<75rb3`7>5<3290;w)?61;301>N3?l1C8:=4i5;94?=n=;0;66g>8`83>>i6?m0;66sm2b294?5=83:p(<7>:55g?M20m2B?;>5f4883>>o6:h0;66a>7e83>>{e:k81<7:50;2x 4?6289>7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd5jo0;6>4?:1y'5<7=<>n0D99j;I647>o313:17d?=a;29?j70l3:17pl=b183>1<729q/=4?51278L11b3A>50z&2=4<6;<1C8:k4H550?l2>2900e8<50;9j5=g=831d=:j50;9~f7ce290>6=4?{%3:5?b53A>=6=44i5594?=n0<729q/=4?5d39K02c<@==87)k9:39j03<722c?;7>5;h6`>5<93n97E:8e:J736=#m?097d:9:188m11=831b8n4?::k64?6=3f;387>5;|`1a=<72<0;6=u+1839`7=O<>o0D99<;%g5>7=n50;9l5=2=831vn?k8:186>5<7s-;2=7j=;I64a>N3?:1/i;4=;h65>5<>o283:17b?74;29?xd5m?0;684?:1y'5<7=l;1C8:k4H550?!c12;1b8;4?::k73?6=3`>h6=44i4294?=h91>1<75rb3g6>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th9i94?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f7c4290>6=4?{%3:5?b53A>=6=44i5594?=n1<729q/=4?5d29K02c<@==87)k9:69j03<722c><7>5;h3;7?6=3f;387>5;|`132<72=0;6=u+1839`6=O<>o0D99<;%g5>2=n5<54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn>>=:180>5<7s-;2=7:8d:J73`=O<>90e9750;9j57g=831d=:j50;9~f66e29086=4?{%3:5?20l2B?;h5G4618m1?=831b=?o50;9l52b=831vn?h9:187>5<7s-;2=7?<5:J73`=O<>90e9750;9j17<722c:4l4?::m23a<722wi?=o50;194?6|,83:699k;I64a>N3?:1b844?::k26d<722e:;i4?::a6c3=83>1<7>t$0;2>4523A>>7>5;h3;e?6=3f;5;|`04<<72:0;6=u+183902b<@==n7E:83:k7=?6=3`;9m7>5;n34`?6=3th9j94?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<53;294~"6180?;i5G46g8L1143`>26=44i00b>5<908270=O<>o0D99<;h6:>5<n1<75rb224>5<4290;w)?61;64`>N3?l1C8:=4i5;94?=n9;k1<75`16f94?=zj;l96=4;:183!7>93;896F;7d9K025>o60h0;66a>7e83>>{e;9<1<7=50;2x 4?62==o7E:8e:J736=n<00;66g>2`83>>i6?m0;66sm2g394?2=83:p(<7>:016?M20m2B?;>5f4883>>o2:3:17d?7a;29?j70l3:17pl<0483>6<729q/=4?546f8L11b3A>o313:17d;=:188m4>f2900c<9k:188yg57<3:1?7>50z&2=4<3?m1C8:k4H550?l2>2900e<349K02c<@==87d:6:188m04=831b=5o50;9l52b=831vn>><:180>5<7s-;2=7:8d:J73`=O<>90e9750;9j57g=831d=:j50;9~f7cb290?6=4?{%3:5?74=2B?;h5G4618m1?=831b9?4?::k21<7>t$0;2>4523A>>7>5;h3;e?6=3f;5;|`052<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi?1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f67f290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e;831<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th8=54?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo=>6;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb20b>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th9584?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj;386=4;:183!7>93;896F;7d9K025>o60h0;66a>7e83>>{e:081<7:50;2x 4?6289>7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd5180;694?:1y'5<7=9:?0D99j;I647>o313:17d;=:188m4>f2900c<9k:188yg4?:3:187>50z&2=4<6;<1C8:k4H550?l2>2900e8<50;9j5=g=831d=:j50;9~f7>6290?6=4?{%3:5?74=2B?;h5G4618m1?=831b9?4?::k21<7>t$0;2>4523A>>7>5;h3;e?6=3f;5;|`13c<72=0;6=u+1839563<@==n7E:83:k7=?6=3`?96=44i0:b>5<908270=O<>o0D99<;h6:>5<n1<75rb2`g>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th8no4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f6dd290>6=4?{%3:5?b33A>=6=44i5594?=n=90;66g>8283>>i60=0;66sm3cg94?3=83:p(<7>:e08L11b3A>5<55;294~"6180o>6F;7d9K025<,l<1>6g;6;29?l202900e9m50;9j15<722e:494?::a7f4=83?1<7>t$0;2>a4<@==n7E:83:&f2?4>o3k3:17d;?:188k4>32900qo=l0;291?6=8r.:5<4k2:J73`=O<>90(h852:k72?6=3`><6=44i5a94?=n=90;66a>8583>>{e;j;1<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi?n:50;794?6|,83:6i<4H55f?M20;2.n:7<4i5494?=n<>0;66g;c;29?l372900c<6;:188yg5c93:197>50z&2=45;h64>5<>i60=0;66sm3bd94?3=83:p(<7>:e68L11b3A>5;n3;0?6=3th8h=4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f6b5290>6=4?{%3:5?b53A>=6=44i5594?=n0<729q/=4?5d39K02c<@==87)k9:39j03<722c?;7>5;h6`>5<93n97E:8e:J736=#m?097d:9:188m11=831b8n4?::k64?6=3f;387>5;|`0`1<72<0;6=u+1839`7=O<>o0D99<;%g5>7=n50;9l5=2=831vn>j::186>5<7s-;2=7j=;I64a>N3?:1/i;4=;h65>5<>o283:17b?74;29?xd4l>0;684?:1y'5<7=l;1C8:k4H550?!c12;1b8;4?::k73?6=3`>h6=44i4294?=h91>1<75rb2f;>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th8mk4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f6gb290>6=4?{%3:5?b53A>=6=44i5594?=n0<729q/=4?5d39K02c<@==87)k9:39j03<722c?;7>5;h6`>5<93n97E:8e:J736=#m?097d:9:188m11=831b8n4?::k64?6=3f;387>5;|`0eg<72<0;6=u+1839`7=O<>o0D99<;%g5>7=n50;9l5=2=831vn>ok:186>5<7s-;2=7j=;I64a>N3?:1/i;4=;h65>5<>o283:17b?74;29?xd4i00;684?:1y'5<7=l;1C8:k4H550?!c12;1b8;4?::k73?6=3`>h6=44i4294?=h91>1<75rb2c;>5<2290;w)?61;f7?M20m2B?;>5+e784?l212900e9950;9j15<722c:4>4?::m2<1<722wi?lo50;794?6|,83:6i<4H55f?M20;2.n:7<4i5494?=n<>0;66g;c;29?l372900c<6;:188yg5f?3:197>50z&2=45;h64>5<1<75rb2;a>5<4290;w)?61;64`>N3?l1C8:=4i5;94?=n9;k1<75`16f94?=zj:3j6=4<:183!7>93>n1<75rb2;3>5<3290;w)?61;301>N3?l1C8:=4i5;94?=n=;0;66g>8`83>>i6?m0;66sm38;94?5=83:p(<7>:55g?M20m2B?;>5f4883>>o6:h0;66a>7e83>>{e;1o1<7:50;2x 4?6289>7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd4110;6>4?:1y'5<7=<>n0D99j;I647>o313:17d?=a;29?j70l3:17pl<8b83>1<729q/=4?51278L11b3A>50z&2=4<6;<1C8:k4H550?l2>2900e8<50;9j5=g=831d=:j50;9~f6?129086=4?{%3:5?20l2B?;h5G4618m1?=831b=?o50;9l52b=831vn>67:187>5<7s-;2=7?<5:J73`=O<>90e9750;9j17<722c:4l4?::m23a<722wi?4;50;194?6|,83:699k;I64a>N3?:1b844?::k26d<722e:;i4?::a7=0=83>1<7>t$0;2>4523A>>7>5;h3;e?6=3f;5;|`0=1<72:0;6=u+183902b<@==n7E:83:k7=?6=3`;9m7>5;n34`?6=3th8494?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<53;294~"6180?;i5G46g8L1143`>26=44i00b>5<908270=O<>o0D99<;h6:>5<n1<75rb2;1>5<4290;w)?61;64`>N3?l1C8:=4i5;94?=n9;k1<75`16f94?=zj:2;6=4;:183!7>93;896F;7d9K025>o60h0;66a>7e83>>{e;li1<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi?ho50;794?6|,83:6i<4H55f?M20;2.n:7<4i5494?=n<>0;66g;c;29?l372900c<6;:188yg5b13:197>50z&2=45;h64>5<>i60=0;66sm3d:94?3=83:p(<7>:e08L11b3A>5<55;294~"6180o>6F;7d9K025<,l<1>6g;6;29?l202900e9m50;9j15<722e:494?::a7`0=83?1<7>t$0;2>a4<@==n7E:83:&f2?4>o3k3:17d;?:188k4>32900qo=j5;291?6=8r.:5<4k2:J73`=O<>90(h852:k72?6=3`><6=44i5a94?=n=90;66a>8583>>{e;l>1<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi?>:50;694?6|,83:6<=:;I64a>N3?:1b844?::k66?6=3`;3m7>5;n34`?6=3th8?84?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj:9<6=4;:183!7>93;896F;7d9K025>o60h0;66a>7e83>>{e;:21<7:50;2x 4?6289>7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd4<>0;694?:1y'5<7=9:?0D99j;I647>o313:17d;=:188m4>f2900c<9k:188yg5303:187>50z&2=4<6;<1C8:k4H550?l2>2900e8<50;9j5=g=831d=:j50;9~f62>290?6=4?{%3:5?74=2B?;h5G4618m1?=831b9?4?::k21<7>t$0;2>4523A>>7>5;h3;e?6=3f;5;|`00g<72=0;6=u+1839563<@==n7E:83:k7=?6=3`?96=44i0:b>5<908270=O<>o0D99<;h6:>5<n1<75rb27f>5<3290;w)?61;301>N3?l1C8:=4i5;94?=n=;0;66g>8`83>>i6?m0;66sm34d94?2=83:p(<7>:016?M20m2B?;>5f4883>>o2:3:17d?7a;29?j70l3:17pl<6183>1<729q/=4?51278L11b3A>349K02c<@==87d:6:188m04=831b=5o50;9l52b=831vn>9?:187>5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm36394?2=83:p(<7>:e38L11b3A>5;|`02f<72<0;6=u+1839`7=O<>o0D99<;%g5>7=n50;9l5=2=831vn95<7s-;2=7j:;I64a>N3?:1/i;4=;h65>5<>o60<0;66a>8583>>{e<;o1<7;50;2x 4?62m?0D99j;I647>"b>380e9850;9j02<722c><7>5;h3;1?6=3f;387>5;|`76a<72<0;6=u+1839`0=O<>o0D99<;%g5>7=n32900qo:=c;291?6=8r.:5<4k5:J73`=O<>90(h852:k72?6=3`><6=44i4294?=n91?1<75`19694?=zj=8i6=4::183!7>93n>7E:8e:J736=#m?097d:9:188m11=831b9=4?::k2<0<722e:494?::a07g=83?1<7>t$0;2>a3<@==n7E:83:&f2?4>o283:17d?75;29?j7?<3:17pl;2983>0<729q/=4?5d49K02c<@==87)k9:39j03<722c?;7>5;h73>5<6=44o0:7>5<9;7>55;294~"6180o96F;7d9K025<,l<1>6g;6;29?l202900e8>50;9j5=3=831d=5:50;9~f141290>6=4?{%3:5?b23A>=6=44i5594?=n=90;66g>8483>>i60=0;66sm43794?3=83:p(<7>:e78L11b3A>5;n3;0?6=3th?>94?:483>5}#90;1h85G46g8L1143-o=6?5f4783>>o3?3:17d;?:188m4>22900c<6;:188yg25;3:197>50z&2=45;h64>5<1<75rb501>5<2290;w)?61;f6?M20m2B?;>5+e781?l212900e9950;9j15<722c:484?::m2<1<722wi8??50;794?6|,83:6i;4H55f?M20;2.n:7<4i5494?=n<>0;66g:0;29?l7?=3:17b?74;29?xd3:90;684?:1y'5<7=l<1C8:k4H550?!c12;1b8;4?::k73?6=3`?;6=44i0:6>5<908g1>N3?l1C8:=4$d496>o3>3:17d:8:188m06=831b=5;50;9l5=2=831vn9?k:186>5<7s-;2=7j:;I64a>N3?:1/i;4=;h65>5<>o60<0;66a>8583>>{e<8i1<7;50;2x 4?62m?0D99j;I647>"b>380e9850;9j02<722c><7>5;h3;1?6=3f;387>5;|`75g<72<0;6=u+1839`0=O<>o0D99<;%g5>7=n32900qo:>a;291?6=8r.:5<4k5:J73`=O<>90(h852:k72?6=3`><6=44i4294?=n91?1<75`19694?=zj=;26=4::183!7>93n>7E:8e:J736=#m?097d:9:188m11=831b9=4?::k2<0<722e:494?::a04>=83?1<7>t$0;2>a3<@==n7E:83:&f2?4>o283:17d?75;29?j7?<3:17pl;1683>0<729q/=4?5d49K02c<@==87)k9:39j03<722c?;7>5;h73>5<6=44o0:7>5<::7>55;294~"6180o96F;7d9K025<,l<1>6g;6;29?l202900e8>50;9j5=3=831d=5:50;9~f172290>6=4?{%3:5?b23A>=6=44i5594?=n=90;66g>8483>>i60=0;66sm40694?3=83:p(<7>:e78L11b3A>5;n3;0?6=3th??84?:483>5}#90;1h85G46g8L1143-o=6?5f4783>>o3?3:17d;?:188m4>22900c<6;:188yg24<3:197>50z&2=45;h64>5<1<75rb510>5<2290;w)?61;f6?M20m2B?;>5+e781?l212900e9950;9j15<722c:484?::m2<1<722wi8><50;794?6|,83:6i;4H55f?M20;2.n:7<4i5494?=n<>0;66g:0;29?l7?=3:17b?74;29?xd3;80;684?:1y'5<7=l<1C8:k4H550?!c12;1b8;4?::k73?6=3`?;6=44i0:6>5<908g1>N3?l1C8:=4$d496>o3>3:17d:8:188m06=831b=5;50;9l5=2=831vn9<6:186>5<7s-;2=7j:;I64a>N3?:1/i;4=;h65>5<>o60<0;66a>8583>>{e<8o1<7;50;2x 4?62m?0D99j;I647>"b>380e9850;9j02<722c><7>5;h3;1?6=3f;387>5;|`756<72<0;6=u+1839`0=O<>o0D99<;%g5>7=n32900qo:>2;291?6=8r.:5<4k5:J73`=O<>90(h852:k72?6=3`><6=44i4294?=n91?1<75`19694?=zj=93;9j6F;7d9K025<,l<1=l5fd`83>>ocj3:17b?8d;29?xd3>;0;6>4?:1y'5<7=9;l0D99j;I647>"b>3;j7djn:188mad=831d=:j50;9~f77?29086=4?{%3:5?75n2B?;h5G4618 `0=9l1bhl4?::kgf?6=3f;5;|`2f3<72:0;6=u+183957`<@==n7E:83:&f2?7b3`nj6=44ie`94?=h9>n1<75rb0c1>5<4290;w)?61;31b>N3?l1C8:=4$d495`=nlh0;66gkb;29?j70l3:17pl>a083>6<729q/=4?513d8L11b3A>5<7s-;2=7?=f:J73`=O<>90(h851d9j`d<722con7>5;n34`?6=3th:5k4?:283>5}#90;1=?h4H55f?M20;2.n:7?j;hfb>5<93;9j6F;7d9K025<,l<1=h5fd`83>>ocj3:17b?8d;29?xd61m0;6>4?:1y'5<7=9;l0D99j;I647>"b>3;n7djn:188mad=831d=:j50;9~f4?d29086=4?{%3:5?75n2B?;h5G4618 `0=9l1bhl4?::kgf?6=3f;5;|`2=g<72:0;6=u+183957`<@==n7E:83:&f2?7b3`nj6=44ie`94?=h9>n1<75rb0;b>5<4290;w)?61;31b>N3?l1C8:=4$d495`=nlh0;66gkb;29?j70l3:17pl>9883>6<729q/=4?513d8L11b3A>5<7s-;2=7?=f:J73`=O<>90(h851d9j`d<722con7>5;n34`?6=3th:5:4?:283>5}#90;1=?h4H55f?M20;2.n:7?j;hfb>5<93;9j6F;7d9K025<,l<1=h5fd`83>>ocj3:17b?8d;29?xd61<0;6>4?:1y'5<7=9;l0D99j;I647>"b>3;n7djn:188mad=831d=:j50;9~f4?329086=4?{%3:5?75n2B?;h5G4618 `0=9l1bhl4?::kgf?6=3f;5;|`2=6<72:0;6=u+183957`<@==n7E:83:&f2?7b3`nj6=44ie`94?=h9>n1<75rb0;1>5<4290;w)?61;31b>N3?l1C8:=4$d495`=nlh0;66gkb;29?j70l3:17pl=7483>1<729q/=4?51228L11b3A>1<7>t$0;2>4573A>5;hfa>5<93;8<6F;7d9K025<,l<1>85fd`83>>ocj3:17djl:188k41c2900qo<83;291?6=8r.:5<4>309K02c<@==87)k9:0`8mag=831bho4?::kgg?6=3`no6=44o05g>5<55;294~"6180:?<5G46g8L1143-o=6?>4iec94?=nlk0;66gkc;29?lbc2900c<9k:188yg7ei3:197>50z&2=4<6;81C8:k4H550?!c12;:0eio50;9j`g<722coo7>5;hfg>5<908274=O<>o0D99<;%g5>74>ock3:17djk:188k41c2900qo<9d;290?6=8r.:5<4>319K02c<@==87)k9:3a8mag=831bho4?::kgg?6=3f;5;|`15`<72:0;6=u+183957`<@==n7E:83:&f2?7b3`nj6=44ie`94?=h9>n1<75rb0``>5<4290;w)?61;31b>N3?l1C8:=4$d495`=nlh0;66gkb;29?j70l3:17pl=2183>1<729q/=4?51228L11b3A>1<7>t$0;2>4573A>5;hfa>5<93;8=6F;7d9K025<,l<1>=5fd`83>>ocj3:17djl:188mab=831d=:j50;9~f4e7290>6=4?{%3:5?7492B?;h5G4618 `0=:91bhl4?::kgf?6=3`nh6=44ief94?=h9>n1<75rb57`>5<3290;w)?61;304>N3?l1C8:=4$d4914=nlh0;66gkb;29?lbd2900c<9k:188yg41k3:197>50z&2=4<6;81C8:k4H550?!c12890eio50;9j`g<722coo7>5;hfg>5<90826c=O<>o0D99<;%g5>75>i6?m0;66sm29a94?5=83:p(<7>:00e?M20m2B?;>5+e7817>oci3:17djm:188k41c2900qo=9b;291?6=8r.:5<4>309K02c<@==87)k9:368mag=831bho4?::kgg?6=3`no6=44o05g>5<97>55;294~"6180:?<5G46g8L1143-o=6?:4iec94?=nlk0;66gkc;29?lbc2900c<9k:188yg53:3:197>50z&2=4<6;81C8:k4H550?!c12;>0eio50;9j`g<722coo7>5;hfg>5<908274=O<>o0D99<;%g5>72>ock3:17djk:188k41c2900qo=:4;291?6=8r.:5<4>309K02c<@==87)k9:368mag=831bho4?::kgg?6=3`no6=44o05g>5<55;294~"6180:?<5G46g8L1143-o=6?:4iec94?=nlk0;66gkc;29?lbc2900c<9k:188yg4>m3:197>50z&2=4<6;81C8:k4H550?!c12;>0eio50;9j`g<722coo7>5;hfg>5<908274=O<>o0D99<;%g5>72>ock3:17djk:188k41c2900qo=99;291?6=8r.:5<4>309K02c<@==87)k9:368mag=831bho4?::kgg?6=3`no6=44o05g>5<?7>55;294~"6180:?<5G46g8L1143-o=6?:4iec94?=nlk0;66gkc;29?lbc2900c<9k:188yg5383:197>50z&2=4<6;81C8:k4H550?!c12;>0eio50;9j`g<722coo7>5;hfg>5<908274=O<>o0D99<;%g5>72>ock3:17djk:188k41c2900qo<7a;291?6=8r.:5<4>309K02c<@==87)k9:368mag=831bho4?::kgg?6=3`no6=44o05g>5<55;294~"6180:?<5G46g8L1143-o=6?:4iec94?=nlk0;66gkc;29?lbc2900c<9k:188yg52:3:197>50z&2=4<6;81C8:k4H550?!c12;>0eio50;9j`g<722coo7>5;hfg>5<908274=O<>o0D99<;%g5>72>ock3:17djk:188k41c2900qo<6c;291?6=8r.:5<4>309K02c<@==87)k9:368mag=831bho4?::kgg?6=3`no6=44o05g>5<55;294~"6180:?<5G46g8L1143-o=6?:4iec94?=nlk0;66gkc;29?lbc2900c<9k:188yg50;3:187>50z&2=4<6;91C8:k4H550?!c12jo0eio50;9j`g<722coo7>5;n34`?6=3th8:h4?:583>5}#90;1=>>4H55f?M20;2.n:7mj;hfb>5<>i6?m0;66sm2`694?2=83:p(<7>:013?M20m2B?;>5+e78`a>oci3:17djm:188mae=831d=:j50;9~f600290?6=4?{%3:5?7482B?;h5G4618 `0=>2com7>5;hfa>5<93;8<6F;7d9K025<,l<1:6gka;29?lbe2900eim50;9l52b=831vn>=j:187>5<7s-;2=7?<0:J73`=O<>90(h856:kge?6=3`ni6=44iea94?=h9>n1<75rb3;a>5<2290;w)?61;305>N3?l1C8:=4$d4961=nlh0;66gkb;29?lbd2900eij50;9l52b=831vn?67:186>5<7s-;2=7?<1:J73`=O<>90(h85259j`d<722con7>5;hf`>5<6=4<:183!7>93;9j6F;7d9K025<,l<1>>5fd`83>>ocj3:17b?8d;29?xd6k:0;6>4?:1y'5<7=9;l0D99j;I647>"b>3887djn:188mad=831d=:j50;9~f74?290?6=4?{%3:5?7482B?;h5G4618 `0=9o1bhl4?::kgf?6=3`nh6=44o05g>5<54;294~"6180:?=5G46g8L1143-o=66<729q/=4?513d8L11b3A>5<7s-;2=7?=e:J73`=O<>90(h85139j`d<722e:;i4?::a6gd=8381<7>t$0;2>44b3A>5;n34`?6=3th9n44?:383>5}#90;1=?k4H55f?M20;2.n:7?=;hfb>5<90826`=O<>o0D99<;%g5>446=4=:183!7>93;9i6F;7d9K025<,l<1=?5fd`83>>i6?m0;66sm2c194?4=83:p(<7>:00f?M20m2B?;>5+e7826>oci3:17b?8d;29?xd5j80;6?4?:1y'5<7=9;o0D99j;I647>"b>3;97djn:188k41c2900qo2d9K02c<@==87)k9:008mag=831d=:j50;9~f6?629096=4?{%3:5?75m2B?;h5G4618 `0=9;1bhl4?::m23a<722wi?5h50;094?6|,83:6<N3?:1/i;4>2:kge?6=3f;5;|`05<52;294~"6180:>h5G46g8L1143-o=6<<4iec94?=h9>n1<75rb2::>5<5290;w)?61;31a>N3?l1C8:=4$d4957=nlh0;66a>7e83>>{e;1=1<7<50;2x 4?6288n7E:8e:J736=#m?0:>6gka;29?j70l3:17pl<8483>7<729q/=4?513g8L11b3A>7>50z&2=4<6:l1C8:k4H550?!c12880eio50;9l52b=831vn>6>:181>5<7s-;2=7?=e:J73`=O<>90(h85139j`d<722e:;i4?::a6f1=8381<7>t$0;2>44b3A>5;n34`?6=3th85n4?:383>5}#90;1=?k4H55f?M20;2.n:7?=;hfb>5<90826c=O<>o0D99<;%g5>75>i6?m0;66sm2g`94?5=83:p(<7>:00e?M20m2B?;>5+e7817>oci3:17djm:188k41c2900qo2g9K02c<@==87)k9:318mag=831bho4?::m23a<722wi>kj50;194?6|,83:6<N3?:1/i;4=3:kge?6=3`ni6=44o05g>5<53;294~"6180:>k5G46g8L1143-o=6?=4iec94?=nlk0;66a>7e83>>{e:ol1<7=50;2x 4?6288m7E:8e:J736=#m?09?6gka;29?lbe2900c<9k:188yg5783:1?7>50z&2=4<6:o1C8:k4H550?!c12;90eio50;9j`g<722e:;i4?::a757=8391<7>t$0;2>44a3A>5;hfa>5<90826c=O<>o0D99<;%g5>75>i6?m0;66sm33g94?3=83:p(<7>:012?M20m2B?;>5+e78g2>oci3:17djm:188mae=831bhi4?::m23a<722wi??j50;794?6|,83:6<=>;I64a>N3?:1/i;4=1:kge?6=3`ni6=44iea94?=nlm0;66a>7e83>>{e;>?1<7=50;2x 4?6288m7E:8e:J736=#m?0:>6gka;29?lbe2900c<9k:188yg4a13:1>7>50z&2=4<6:01C8:k4H550?lb>2900c<9k:188yg51n3:1>7>50z&2=4<6:01C8:k4H550?lb>2900c<9k:188yg55k3:197>50z&2=4<6;:1C8:k4H550?!c12;;0eio50;9j`g<722coo7>5;hfg>5<3:1908277=O<>o0D99<;%g5>70>ock3:17djk:188k44e2900c<9k:188yg7d:3:1:7>50z&2=4<6;;1C8:k4H550?!c12;<0eio50;9j`g<722coo7>5;hfg>5<5<>m7>58683>5}O<>90(<7>:0:5?_222hq26?95f;35>42=9j0:<7?8:0795a0=#m;0>7)k<:49'a1<23-ii6nh4$d591>"b03?0(h755:&fe?3<,lh196*jc;78 `b==2.ni7;4$dd91>"a83?0(k?55:&e6?3<,o9196*i4;78 c3==2.m:7;4$g591>"a03?0(k755:&ee?3<,oh196*ic;78 cb==2.mi7;4$gd91>"6890>7)??1;78 4652<1/===55:&241<23-;;97;4$025>0=#99=196*>0986?!7713?0(<>n:49'55d==2.:"6990>7)?>1;78 4752<1/=<=55:&251<23-;:97;4$035>0=#98=196*>1986?!7613?0("6:90>7)?=1;78 4452<1/=?=55:&261<23-;997;4$005>0=#9;=1?6*>8c876>"b=3?0(<6k:29'02>=91=0(996:0:4?k?b291eo=4?;o3;f`<,82n695f4`83>>o3j3:17d:86;29?lef2900e5650;&2<75$0:1>608082?>o4<3:1(<6=:248j4>62;10e>=50;&2<7<4>2d:4<4<;:k06?6=,8296>84n0:2>1=83802>h6080>76g<0;29 4>52:<0b<6>:798m7`=83.:4?4<6:l2<4<032c9i7>5$0:1>60808:?>o393:1(<6=:528j4>62910e>h50;&2<7<382d:4<4>;:k0a?6=,82969>4n0:2>7=83874>h6080876g52=:0b<6>:598m6d=83.:4?4;0:l2<4<232c8m7>5$0:1>168084?>o403:1(<6=:528j4>62110e8o50;&2<7<212d:4<4?;:k64=8386=>h6080976g:6;29 4>52<30b<6>:298m03=83.:4?4:9:l2<4<332c>87>5$0:1>0?56`>8085?>o1:3:1(<6=:4;8j4>62>10e;?50;&2<7<212d:4<47;:k54?6=,8296874n0:2><=8386=>h6080j76g:e;29 4>52<30b<6>:c98m0b=83.:4?4:9:l2<4o7>5$0:1>0?56`>808f?>o2;3:1(<6=:4;8j4>62o10e5950;&2<72d:4<4?;:k;1?6=,8296584n0:2>4=838a3>h6080;76am6;29 4>52k=0b<6>:098kg2=83.:4?4m7:l2<4<532ei?7>5$0:1>g154oc094?"60;0i;6`>8087?>ie93:1(<6=:c58j4>62<10co>50;&2<72=838a3>h6080376and;29 4>52k=0b<6>:898kde=83.:4?4m7:l2<45$0:1>g1808`?>if03:1(<6=:c58j4>62m10cl950;&2<7c=838a3>h6080:<65`a583>!7?:3h<7c?71;32?>if;3:1(<6=:c58j4>628807bo=:18'5=4=j>1e=5?51298kd7=83.:4?4m7:l2<4<6<21dm=4?:%3;6?d03g;3=7?:;:mab?6=,8296o94n0:2>40<3fhn6=4+1909f2=i91;1=:54ocf94?"60;0i;6`>8082<>=hjj0;6)?72;`4?k7?93;276amb;29 4>52k=0b<6>:0c8?jdf290/=5<5b69m5=7=9k10co750;&2<7c:9lf0<72-;3>7l8;o3;5?7c32ejm7>5$0:1>g15<#9181n:5a19395c=838`3>h6080;76al6;29 4>52j=0b<6>:098kf3=83.:4?4l7:l2<4<532eh87>5$0:1>f154ib;94?=n91l1<75f46594?=n?m0;6)?72;5`?k7?93:07d9m:18'5=4=?j1e=5?51:9j3<<72-;3>79l;o3;5?4<3`=36=4+19093f=i91;1?65f7683>!7?:3=h7c?71;68?l11290/=5<57b9m5=7==21b;84?:%3;6?1d3g;3=784;h57>5<#9181;n5a19393>=n?:0;6)?72;5`?k7?93207d9=:18'5=4=?j1e=5?59:9j34<72-;3>79l;o3;5?g<3`=;6=4+19093f=i91;1n65f6d83>!7?:3=h7c?71;a8?l0c290/=5<57b9m5=7=l21b:n4?:%3;6?1d3g;3=7k4;h4a>5<#9181;n5a1939b>=n>h0;6)?72;5`?k7?93;;76g99;29 4>52>i0b<6>:038?l0?290/=5<57b9m5=7=9;10e;950;&2<7<0k2d:4<4>3:9j23<72-;3>79l;o3;5?7332c=97>5$0:1>2e5<#9181;n5a193953=8384g>h6080:;65f8383>!7?:3=h7c?71;3;?>o?93:1(<6=:6a8j4>628307d6?:18'5=4=?j1e=5?51`98m2`=83.:4?48c:l2<4<6j21b;h4?:%3;6?1d3g;3=7?l;:k4e?6=,8296:m4n0:2>4b<3`8082b>=n0j0;6)?72;:a?k7?93:07d6n:18'5=4=0k1e=5?51:9j<<<72-;3>76m;o3;5?4<3f3?6=4+1909=6=i91;1<65`9383>!7?:3387c?71;38?j?6290/=5<5929m5=7=:21d5=4?:%3;6??43g;3=7=4;n:e>5<#91815>5a19390>=h0l0;6)?72;;0?k7?93?07b7k:18'5=4=1:1e=5?56:9l=f<72-;3>77<;o3;5?1<3f3i6=4+1909=6=i91;1465`9`83>!7?:3387c?71;;8?j?>290/=5<5929m5=7=i21d554?:%3;6??43g;3=7l4;n;4>5<#91815>5a1939g>=h1?0;6)?72;;0?k7?93n07b7::18'5=4=1:1e=5?5e:9l77<;o3;5?`<3fi86=4+1909g7=i91;1<65`c083>!7?:3i97c?71;38?xu2=o0;6;uQ54d897122mh01?9<:ec8971>2mn01?8k:ea8970d2mk0q~;:d;293`}Y<0<0R888;_751>X30?1U9;<4^432?[31>2T>=?5Q4868Z1?43W>2>6P;909]0<6X2?81U9:>4^44e?[31m2T>:i5Q57a8Z00e3W?=m6P:689]10eX2=<1U98:4=55e>a1<5=<268>4=57f>06<5=<368>4=544>06<5=<=68>4=552>06<5==;68>4=3``>04<5;hj68<4=3`;>04<5;h=68<4=3`7>04<5;h968<4=3`3>04<5;kn68<4=3gg>4>f348297;=;<0:0?353482?7;=;<0:6?353482=7;=;<0;6?353483=7;=;<0;4?35348i7;=;<16b?35349=<7;=;<155?3534>>m767;<66e?7?n27?9l4;769>00g=?m1688o57c9>00g=?01688o5799>00g=?>1688o5779>00g=?<1688o5759>00g=?:1688o5739>00g=?81688o5719>00g=>l1688o56e9>00g=>j1688o56c9>00g=>h1688o5689>00g=>11688o5669>00g=>?1688o5649>00g=0=1688o5829>00g=0;1688o5809>00g=091688o57g9>00g=?l1688o57`9>00g=>o1688o5659>00g=0j1688o58`9>00g=001v>8l:181[2??278:n4>859~w0062908wS;91:?72<<60:1688k51918yv40?3:1>vP:079>621=91>0q~;84;297~X2?=16?::5d`9>723=lh1v8;<:185<~X2=:16>l<5479>036=00c=031=640=<;5479>642=<=5479>644=646==h5479>65c=;<5479>637=;>5479>60`=8k5479>60b=8m5479>60d=8o5479>606=9h5479>61c=9j5479>61e=9l5479>61g=975479>61>=995479>5a>=5a0=5a2=5a4=5a6=i75479>6a>=i95479>6a0=i;5479>6a2=i<5479>6a7=i=5479>6`d=ho5479>6`?=h65479>6`1=h85479>6`3=h:5479>6`5=:85479>621=:?5479>626=07c=07e=07g=071=073=075=077=5479>04`=04e=04g=04>=040=042=;5479>062==5479>064=?5479>066=04c=044=1168;l5479>03?=027=5479>5g2=5g4=5g6=5dc=5de=5cd=5c?=5c1=5c3=5`g=5`>=5`0=5`2=5`4=>m5479>66d=>o5479>66?=>65479>661=>85479>663=>:5479>665=74`=74b=74d=74?=740=7gb=7ge=7g`=7f6=7f5=7a7=7a6=7a5=7a2=7a1=7d`=7g6=7dd=7d?=7dg=7`e=7`g=7`>=7`0=7`2=726=73e=h9:181[2c127?=o4>859~w6`22909wS:k8:?75d<60=1v>h;:181[2c?27?=44>859~w6`42909wS:k6:?75=<60=1v>h=:181[2c=27?=:4>859~w6`62909wS:k4:?753<60=1v>h?:181[2c:27?=84>859~w6ca2909wS:k1:?751<60=1v9?>:181[2c827??84>859~w1772909wS:lf:?771<60=1v9>i:181[2dm27??>4>859~w16b2909wS:ld:?777<60=1v9>k:181[2dk27??<4>859~w16d2909wS:lb:?775<60=1v9>m:181[2di27?>44>859~w1632909wS:l9:?75`<60=1v>h6:181[2d?27?=>4>859~w6cb2909wS:l6:?757<60=1v9>n:181[2d=27?>k4>859~w16>2909wS:l4:?76`<60=1v9>7:181[2d;27?>i4>859~w1602909wS:l2:?76f<60=1v9>9:181[2d927?>o4>859~w1622909wS:l0:?76d<60=1v9><:181[2en27?>54>859~w1652909wS:me:?762<60=1v9>>:181[2cn27?>;4>859~w1672909wS:ke:?760<60=1v>hi:181[2cl27?>94>859~w6`b2909wS:kc:?766<60=1v>hk:181[2cj27?>?4>859~w6`d2909wS:ka:?764<60=1v>hm:181[2c;27?>=4>859~w6`f2909wS:l8:?75c<60=1v>h7:181[2el27?=i4>859~w6`02909wS:mc:?75f<60=1v9l=:181[2f827?9l477:p0g6=838pR97i;<66e?3f3ty?mk4?:3y]0;3=h0>:6s|4`a94?4|V=3i70::a;76?xu3ik0;6?uQ48c8913f2<>0q~:na;296~X3101688o5629~w1de2909wS:n8:?71d<1:2wx8oo50;0xZ1g034>>m76:;|q7f<<72;qU8l84=57b>37i47>52z\7e0=:<5<5sW>j863;5`86b>{t7}YvP;a09>00g==j1v9l<:181[2>027?9l4:b:p0d?=838pR978;<66e?343ty:?44?:by>0=6=9>l01?lj:5;897gb2=301?kj:40897cc2=301?7>:5;8971b2=301>7=:5;896>72=301>=;:5;896202=301>;k:5;8yv4f;3:1>v3=a3864>;5i=0:;i5rs546>5<60r79m?4>829>03>=91>01?j6:5a897b?2=i01?j8:5a897b12=i01?j::5a897b32=i01?j=:5a897b6282870h70h70h70h70h70<86;3;7>;5?>0:4>5226390f=::>:18n5rs3c1>5<3s48j>7?74:?136<7p};6183>7}:ag=m7>53z?72g<2827?:44;7:?72d<60=1v98m:181821j3;3863;6e8ge>{t<06<5=?n6<6;;<656?be3ty?:44?:2y>03?=91>0198n:428910c2mh0q~:91;290~;3>10:4>5247595=5<5=<=6<6<;<656?70l2wx8;:50;05821?3;3863=1787g>;59<0?o63=1587g>;59:0?o63=1387g>;5980?o63=1187g>;58o0?o63=0d87g>;5>;0?o63=6087g>;5>90?o63=5g87g>;5=l0?o63=5e87g>;5=j0?o63=5c87g>;5=h0?o63=5187g>;5;5;5;5<00?o63=4987g>;5<>0?o63>d987g>;6l>0?o63>d787g>;6l<0?o63>d587g>;6l:0?o63>d387g>;6l80?o63>d187g>{tk4>849>07c=91?0194>234>9;7?75:?763<60<168?;519789143282>70:=3;3;1>;3:;0:485243395=3<5=8;6<6:;<62b?7?=27?=i4>849>04e=91?019?m:0:6?826i3;3963;1882<0=:<821=5;4=534>4>234>::7?75:?750<60<168<:519789152282>70:<4;3;1>;3;:0:485242095=3<5=9:6<6:;<604?7?=27?>44>849>04c=91?019?<:0:6?826:3;3963;5b8gf>;3=h0:5=5rs54`>5<4s4><=7?73:?735<60:168;j516f8yv21n3:1?>u246395=2<5:;<69m4=23e>1e<5:;n69m4=23g>1e<5:;h69m4=23a>1e<5:;j69m4=23:>1e<5:;369m4=235>1e<5:ho69m4=2`a>1e<5:hh6<6<;<1aa?2d349ij7:l;<1`6?2d349h<7:l;<1`5?2d349h?7:l;<1`0?2d349o=7:l;<1`b?7?;278h=4;c:?0`7<3k278h>4;c:?0`3<3k278h94;c:?0`0<3k278h:4;c:?0`=<3k278mk4;c:?0e`<3k278n=4;c:?0ef<3k278mo4;c:?0ea<3k278m44;c:?0e=<60:16?lo54b9>7d1=91901>kl:5a896ce2=i01>kn:5a896c>2=i01>k7:5a896c02=i01>k9:5a896c22=i01>k;:5a896c42=i0q~:9e;296d}:<>:1=5:4=0`7>1e<58h869m4=0`1>1e<58h:69m4=0`3>1e<58km69m4=0cf>1e<58ko69m4=0c`>1e<58lh69m4=0da>1e<58lj69m4=0d:>1e<58l369m4=0d4>1e<58l=69m4=0d6>1e<58l?69m4=0gb>1e<58o269m4=0g;>1e<58o<69m4=0g5>1e<58o>69m4=0g7>1e<58o869m4=0g1>1e<5;9h69m4=31a>1e<5;9j69m4=31:>1e<5;9369m4=314>1e<5;9=69m4=316>1e<5;9?69m4=310>1e<5:8j69m4=253>1e<5:=:69m4=24`>1e57>55z?153<28279:?4>859>64>=lk16>64e=lm1v?>k:180846>3;3863=9g8ge>;50j0om6s|20594?4|5;;>68>4=33;>41c3ty9643=91>01?7j:e`897>e2mh0q~<>9;296~;59=0><63=1`823a=z{;:i6=4<{<020?7?<2795h4kd:?1u220195=2<5;3o6il4=3:b>ad52z?157<28279=h4>7e9~w76>2908w0<>2;3;0>;51m0oh63=8`8g`>{t:8l1<706<5;8;6<9k;|q14=<72:q6>v3=11864>;5:;0:;i5rs324>5<4s48:<7?74:?1=fi:428974228=o7p}=0783>6}::9l1=5:4=3;a>ad<5;236il4}r013?6=:r79::180847m3;3863=9c8g`>;5010oh6s|1g194?3|58h?68>4=0d`>4>334;i:7jm;<3a;::ec896252mk01?h8:e`8yv7e=3:1>v3>b2864>;6j?0:;i5rs0cb>5<2s4;i?7?74:?02ga883>0}:9k81=5:4=24b>ag<5:??6io4=262>ag<5::;6il4}r3a=?6=>r7:n<4:0:?2fd<6?m16=om5dc9>5gc=lh16=n>5db9>5f4=lm1v;4==0oo63<408gg>;5no0on6s|1c`94?4|58h;68>4=0``>41c3ty:m:4?:4y>5g6=91>01>86:ec896342mk01>:?:ec897`b2mh0q~?md;296~;6io0><63>bd823a=z{8k=6=4:{<3bb?7?<278:44kc:?016ag<5:9m6io4=3d`>ad52z?2ea<2827:o>4>7e9~w4g3290>w0?nd;3;0>;4>10oo63<538gg>;4;o0oo63=fc8gf>{t9j?1<706<58i=6<9k;|q2e6<72;>:ec8965b2mk01?hn:e`8yv43>3:1>v3=63864>;5=90:495rs366>5<5s48==7;?;<07b?7?<2wx>8650;6x9706282?70<>8;fb?846i3ni70<>c;f`?xu5<=0;6?u2272915=::=o1=5:4}r063?6=;r79:=4>859>64g=lj16>60c==916>9m51968yv42=3:19v3=5d82<1=::8o1hl522329`g=::;81hi522369`f=z{;>:6=4={<06`?37348?n7?74:p602=83>p1?;k:0:7?84583nh70<=2;fb?845<3ni7p}=4183>7}::?7>53z?11f<60=16>?<5dc9>672=lh1v?=i:181842j3?;70<;9;3;0>{t:<81<7=t=37a>4>3348997jn;<0160g==916>9651968yv4293:1>v3=5`82<1=::;21hl5rs0g2>5<5s4;mo7;?;<3fe?7?<2wx=h>50;0x94`e2<:01ad<58hj6im4}r3gb?6=:r7:jl4:0:?2a=<60=1v:18087ai3;3863>b98gg>;6jh0on6s|1eg94?4|58l268>4=0g4>4>33ty:j=4?:3y>5c?=91>01v3>f9864>;6m?0:495rs0ge>5<2s4;m47?74:?2ffed83>1}:9o=1=5:4=0`f>ae<58i;6io4=0a1>ad52z?2b3<2827:i94>859~w4cc2908w0?i6;3;0>;6k90on63>c38ge>{t9mk1<706<58o86<6;;|q2af<72:q6=k;5196894e42mk01v3>f5864>;6m;0:495rs0ga>5<5s4;m87?74:?2g3><50;0x97372<:01?=l:0:7?xu5;80;6?u225d915=:::h1=5:4}r004?6=:r798h4:0:?17d<60=1v?{t:;o1<706<5;936<6;;|q16a<72;q6>9l5519>661=91>0q~<=c;296~;5<63=3782<1=z{;8i6=4={<07=?37348897?74:p67g=838p1?:7:4289753282?7p}=2883>7}::==19=5222195=251z?102<60=1v{t9jo1<706<58n<6<6;;|q2ga<72;q6=h65519>5a0=91>0q~?lc;296~;6m>0><63>d482<1=z{8ii6=4={<3f2?3734;o87?74:p5fg=838p1c883>7}:9l>19=521e095=252z?2a6<2827:h<4>859~w4e02909w0?j2;73?87c83;386s|2d094?3|58n368>4=3ga>4>334;2>7jn;<0;g?be34>>m7:>;|q2ba<72;q6=i95519>5<4=9>n0q~?ie;296~;6l?0><63>92823a=z{8lm6=4={<3g1?3734;287?8d:p656=838p17}:9m919=52184952b7>52z?2`7<2827:5:4>7e9~w7642909w0?k1;73?87>03;4=0;:>41c3ty8i?4?:5y>66e==916?hm5196894?f2mk019;n:258yv41;3:1>v3=3c864>;61h0:;i5rs347>5<5s488m7;?;<3:f?70l2wx>;;50;0x975>2<:01<7l:05g?xu5>?0;6?u222:915=:90n1=:j4}r053?6=:r79?:4:0:?2=`<6?m1v?87:181844>3?;70?6f;34`>{t:?31<706<58k;6<9k;|q12d<72;q6>>:5519>5d7=9>n0q~<9b;296~;5;:0><63>a3823a=z{;oh6=4>5z?1`<<3?279h54;7:?1`2<3?279h;4;7:?1`0<3?279h94;7:?1`7<3?279h<4;7:?1`6<3?279io4;7:?1ad<3?279i44;7:?1a=<3?279i:4;7:?1a3<3?279i84;7:?1a1<3?279i>4;7:?71f7e9>6d2=lk1v?ok:18184c13?;70{t:m:1<7:t=3f:>4>3348nn7;?;<0:b?be348h;7jn;|q1ef<72;q6>i65519>6f3=9>n0q~p1?j8:0:7?84b13?;70<6e;f`?84ej3nj7p}=a`83>7}::m<19=522b1952b54z?1`3<60=16>h65519>6o75d`9~w7g>2909w06<6;;<0f3?373482h7jl;<0a3?bf3ty9m54?:3y>6a2==916>n?516f8yv4dj3:18v3=d582<1=::l<19=5228a9`d=::k?1hl5rs3c5>5<5s48o>7;?;<0ab?70l2wx>n750;6x97b5282?70j3nj70859>6`5==916>4l5db9>6d`=lh1v?o8:18184c;3?;70{t:jk1<7:t=3f0>4>3348n97;?;<0:g?bd348i?7jn;|q1ff<72;q6>n85489>6ge=9>n0q~l522b5952b53z?1g0<31279nn4;9:?1fd<6?m1v?lk:18084d=3;9m63=bb827e9~w7de2908w0;5jh0:4l522c`952b53z?1g6<31279n54;9:?1f3<6?m1v?l6:18084d;3;9m63=b9827e9~w7d02908w0;5j?0:4l522c5952b7>53z?1g4<31279n94;9:?1f7<6?m1v?l::18084d93;9m63=b5827e9~w7d42908w0;5j;0:4l522c1952b53z?1fc<31279n=4;9:?1e`<6?m1v?l>:18084en3;9m63=b1822`9>6dc=91k01?oi:05g?xu5m80;68u22dc95=2<58386io4=0;1>ad<5;2i6io4=57b>6`55z?1a<<60=16=4:5d`9>5<5=lk16>5l5db9>00g=;l1v?ji:18684b03;3863>948ge>;61=0on63=8`8ge>;3=h08h6s|2eg94?3|5;o<6<6;;<3:2?bf34;297jm;<0;e?bd34>>m7=l;|q1`a<72h85196894?02mk01<79:e`897>>2mk019;n:2`8yv4ck3:19v3=e482<1=:9021hl521859`g=::131hn5244c97d=z{;ni6=4:{<0f0?7?<27:544ka:?2==io50;6x97c4282?70?69;fa?84?03nh70::a;1;?xu5?10;6>u2264915=::>=19=5226;952b52z?133<60=16>:75d`9~w7152909w0<81;73?840;3;626==916>:;516f8yv41m3:1:v3=7182<1=::>?1hl522619`g=::>31ho5227f9`g=::?i1hn5rs3d5>5<5s49;>7:6;<0e2?70l2wx>k950;0x9665288j70{t;;:1<741c349:;7;?;|q1b0<72:q6?=l5489>6c0=<016>k;516f8yv5793:1?v3<0c826d=::o<1=5o4=222>41c3ty8>44?:3y>75d=9>n01>?i:428yv5dl3:19v3=f7866>;4l>0:49523d`915=:;=81hi523139`d=z{;l?6=4<{<13e?2>348m97:6;<0e0?70l2wx?=>50;1x966f288j70;4890:;i5rs20;>5<5s49;m7?8d:?05`<282wx?nm50;7x97`22<801>j9:0:7?85bi3?;70=;1;fa?85783nj7p}=f283>6}:;93184522g690<=::o91=:j4}r0eb?6=;r78<44>2`9>6c2=91k01?hi:05g?xu4:>0;6?u231;952b<5:;o68>4}r1`f?6==r79j94:2:?0`0<60=16?h75519>717=lm16>kh5d`9~w7`52908w0=?8;6:?84a;3>270{t:oo1<7=t=22;>44f348m?7?7a:?1b`<6?m1v><9:18185703;{t;jk1<7;t=3d0>04<5:n?6<6;;<1f751=<016>k<5489>6c7=9>n0q~0:>l522g095=g<5;lo6<9k;|q060<72;q6?=9516f8967e2<:0q~=l9;291~;5n;0>>635<4s49;:7:6;<0e5?2>348m<7?8d:p6ce=839p1>>9:00b?84a93;3m63=fb823a=z{:8?6=4={<132?70l278=l4:0:p7f>=83?p1?h>:40896b5282?70=j6;73?854n3ni70u231790<=::o:184522dd952b53z?040<6:h16>k>519c897`e28=o7p}<2283>7}:;9?1=:j4=23:>0655z?1b5<2:278h<4>859>7`3==916?>h5de9>6cd=lh1v?kj:180857<3>2707e9~w6452909w0=?4;34`>;4910><6s|3b494?3|5;om68<4=2f3>4>3349n87;?;<10a?be348mm7jn;|q1aa<72:q6?==5489>6`c=<016>hj516f8yv4a03:1?v3<02826d=::lo1=5o4=3d:>41c3ty8><4?:3y>755=9>n01>?9:428yv50<3:1>lu22df917=:;kn18:523c`902=:;ki18:523cg902=:;kl18:523b0902=:;j:18:523b3902=:;j918:523b6902=:;m;18:523bd902=:;m:18:523e0902=:;m918:523e4902=:;m>18:523e7902=:;m=18:523e:902=:;hl18:523`g902=:;k:18:523`a902=:;hh18:523`f902=:;h318:523`:902=:;hk18:523`5902=:;li18:523d`902=:;lk18:523d;902=:;l218:523d5902=:;l<18:523d7902=:;l>18:523d1902=:;>?1=:j4}r13g?6=:r78=:4>859>77b=lh1v>?::181856n3;3863<2e8gg>{t;8>1<74>33499o7jk;|q056<72;q6?2;296~;49j0:495233a9`g=z{:;:6=4={<12f?7?<278>n4ka:p746=838p1>?n:0:7?855l3ni7p}<0g83>7}:;831=5:4=20f>ag52z?05=<60=16??k5dc9~w66c2909w0=>6;3;0>;4:l0oo6s|33d94?5|5:8j6994=24`>11<5:77b=9>n0q~<60;296~;51<0?563=95823a=z{;3j6=4={<0:1?7?i2795k4>7e9~w7g62909w0<65;34`>;5i=0om6s|29d94?4|5;3?6974=3;0>41c3ty9544?:3y>6<2=91k01?7j:05g?xu50l0;6?u228190<=::081=:j4}r0:4>8`9>6n0q~<7d;296~;51;0?563=90823a=z{;3<6=4={<0:6?7?i2795n4>7e9~w7?12909w0<61;3;e>;51k0:;i5rs35g>5<5s483>7:6;<0;5?70l2wx>5950;0x97>5282j70<7c;34`>{t:h:1<741c348j87jl;|q13f<72;q6>5?5489>6=6=9>n0q~<76;296~;5080:4l5229`952b52z?1<5<31279;k4>7e9~w7>22909w0<70;3;e>;50h0:;i5rs35b>5<5s485:50;0x971a282j70<79;34`>{t:191<74>f348347?8d:p7<`=83>p1>lk:42896g>282?70=98;fg?85?=3nj7p}6}:;kn1=5:4=2f2>06<5:?96ij4}r1:`?6=7=7=lh1v>l>:18085ej3;3863;4=80oo6s|38g94?2|5:hh68>4=2c;>4>3349=;7jm;<1;7?bf3ty8n?4?:2y>7ge=91>01>j?:42896362mh0q~=n0;290~;4jl0><63om:0:7?85113no70=79;fb?xu4j<0;6>u23cd95=2<5:n868>4=270>ab54z?0g7<28278mh4>859>73g=lk16?5h5d`9~w6d?2908w0=l2;3;0>;4l?0><63<558gf>{t;h81<7:t=2a3>06<5:kh6<6;;<15=?be3493n7jn;|q0f3<72:q6?n>5196896b32<:01>;<:e`8yv5f;3:18v3;4im0:495237c9`a=:;1n1hl5rs2`4>5<4s49h=7?74:?0`0<28278994kd:p7d3=83>p1>m<:42896ga282?70=9b;fg?85>93nj7p}6}:;j91=5:4=2f4>06<5:?>6ij4}r1b2?6=7ln:18085d<3;3863;4=<0on6s|3b794?2|5:im6<6;;<1f7?373498i7jl;<0e=?b>3ty8oh4?:5y>7a>=91>01>kl:42896252mh01?h8:ec8yv50m3:1>v3;41h0:;i5rs25g>5<5s49ji7;?;<1:=?70l2wx?:h50;0x96d72<:01>7m:05g?xu4?k0;6?u23`a915=:;0=1=:j4}r14e?6=:r78mo4:0:?0=3<6?m1v>9l:18185fl3?;70=68;34`>{t;>21<706<5:3?6<9k;|q032<72;q6?l65519>7<5=9>n0q~=89;296~;4ih0><63<94823a=z{:==6=4={<1b3?373492>7?8d:p7<6=838p1>7m:5;896?728=o7p}<9b83>7}:;0h1=?o4=2;`>41c3ty84h4?:2y>75489>7=c=9>n0q~=61;297~;41h0:>l5238295=g<5:3:6<9k;|q07=c=<016?5m516f8yv5?n3:1?v3<98826d=:;1o1=5o4=2:e>41c3ty84l4?:2y>7<>=<016?5m5489>7=g=9>n0q~=7d;297~;4110:>l5239a95=g<5:2o6<9k;|q0<=<72:q6?495489>7=g=<016?56516f8yv5?j3:1?v3<96826d=:;1k1=5o4=2:a>41c3ty84;4?:2y>7<0=<016?565489>7=0=9>n0q~=79;297~;41?0:>l5239:95=g<5:226<9k;|q0<1<72:q6?4;5489>7=0=<016?5:516f8yv5??3:1?v3<94826d=:;1<1=5o4=2:4>41c3ty84?4?:2y>7<2=<016?5:5489>7=4=9>n0q~=75;297~;41=0:>l5239695=g<5:2>6<9k;|q0<5<72:q6?4=5489>7=4=<016?5>516f8yv5?;3:1?v3<92826d=:;181=5o4=2:0>41c3ty84<4?:2y>7<4=9;k01>6?:0:b?85?93;7`g=91>01<7l:ec894?e2mh019;n:268yv5cn3:18v35rs2ff>5<3s49n47?74:?2=`m3ni70::a;12?xu4lj0;69u23d495=2<58k;6io4=0;e>ad<5=?j6>>4}r1gf?6=859>5d7=lh16=l>5dc9>00g=:o1v>jn:18785b<3;3863>a38ge>;6i80on63;5`81a>{t;m31<7=t=2g0>4>334;j>7jm;<66e?4c3ty8?44?:3y>762=91k01>=j:05g?xu4;90;6?u2326952b<5:9>6974}r10e?6=:r78?84>8`9>76`=9>n0q~=<1;296~;4;<0:;i5232490<=z{:9i6=4={<102?7?i2788=4>7e9~w6552909w0=<6;34`>;4;>0?56s|32a94?4|5:9<6<6n;<175?70l2wx?>=50;0x965028=o70=<8;6:?xu4;m0;6?u232:95=g<5:>96<9k;|q013<72;q6?>6516f896142mi0q~=;c;296~;4<>0:4l52343952b52z?002<6?m16?965489~w62c2909w0=;8;3;e>;4=;0:;i5rs267>5<5s49?47?8d:?00<<312wx?9k50;0x962>282j70=:3;34`>{t;=?1<741c349?m7:6;|q00c<72;q6?9o519c8963328=o7p}<4783>7}:;=k1=:j4=26a>1?<7>52z?00g<60h16?8;516f8yv52?3:1?v3<4c823a=:;>91hl5237g9`f=z{:<96=4={<16`?7?i278::4>7e9~w63>2909w0=:d;34`>;4=l0?56s|37194?4|5:?n6<6n;<15=0;6?u234d95=g<5:<26<9k;|q01g<72;q6?8h516f896072=30q~=95;296~;4>90:4l5237c952bo7>52z?025<6?m16?;?5489~w6012909w0=91;3;e>;4>k0:;i5rs27;>5<5s49==7?8d:?02`9>:428961428=o7p}<7183>1}:;>:1=5:4=257>ad<5:=>6il4=24e>a?52z?02f<28278:h4>7e9~w13c29099v3;2g873>;3:l0?;63;2e873>;3:j0?;63;2c873>;3:h0?;63;29873>;3:>0?;63;27873>;3:<0?;63;25873>;3::0?;63;23873>;3:80?;63;21873>;39o0?;63;1e873>;39j0?;63;1c873>;39h0?;63;18873>;3910?;63;16873>;39?0?;63;14873>;39=0?;63;34873>;3;=0?;63;32873>;3;;0?;63;30873>;3;90?;63;28873>;39l0?;63;12873>;39;0?;63=6e823a=z{=?96=4={<61b?3734>>m7m7;|q714<72;q68?k5519>00g=j11v9;?:181825l3?;70::a;`5?xu35<5s4>9n7;?;<66e?d43ty?8i4?:3y>07g==91688o5b39~w12e2909w0:=8;73?822i3h:7p};4`83>7}:<;=19=5244c9f5=z{=>26=4={<612?3734>>m7oi;|q70=<72;q68?;5519>00g=k?1v9:8:181825<3?;70::a;cf?xu35<5s4>9>7;?;<66e?gd3ty?894?:3y>077==91688o5ac9~w1242909w0:=0;73?822i3k27p};4383>7}:<8l19=5244c9e==z{=>;6=4={<62`?3734>>m7o8;|q77c<72;q6800g=i?1v9=j:181826j3?;70::a;a6?xu3;m0;6?u240c915=:<5<5s4>:57;?;<66e?g33ty??o4?:3y>04>==91688o5a29~w15f2909w0:>7;73?822i3k97p};3883>7}:<8<19=5244c9e4=z{=936=4={<621?3734>>m7o?;|q772<72;q68<:5519>00g=jo1v9;6:181824=3?;70::a;`f?xu3=10;6?u2426915=:<5<5s4>8?7;?;<66e?dc3ty?9;4?:3y>064==91688o5bb9~w1322909w0:<1;73?822i3hi7p};5583>7}:<::19=5244c9fd=z{=?86=4={<61=?3734>>m7l6;|q70f<72;q6800g=j<1v9:>:181826;3?;70::a;cb?xu3;?0;6?u2400915=:<5<5s4>>o7?8d:?71d8j:e`8961328=o70::a;642>;3=h0h56s|17094?4|5;8>6il4=307>44e3ty::i4?:3y>5f5=lk16=n<513`8yv45>3:1>v3=298gg>;5:=0:;i5rs0a7>5<5s4;h:7jl;<3`6?70l2wx??m50;0x964b2mn01><,==96<9?;|q616<72;qU98=4=569105<,==96<9>;|q7f7<72;qU8l>4=5690d6<,==96<:;;|q7f5<72;qU84h4=5690<`<,==96<:i;|q7ec<72;qU84k4=5690<,==96<8>;|q7fd<72;qU8l94=5690d1<,==96<8<;|q7f<<72;qU8l84=5690d0<,==96<8;;|q7f=<72;qU8l;4=5690d3<,==96<8:;|q7f2<72;qU8l:4=5690d2<,==96<89;|q7f3<72;qU8l=4=5690d5<,==96<88;|q7f0<72;qU8l<4=5690d4<,==96<87;|q7f1<72;qU8l?4=5690d7<,==96<86;|q7f6<72;qU8464=5690<><,==96<8n;|q7e<<72;qU8494=5690<1<,==96<8m;|q631<72;qU9::4=569122<,==96<8l;|q61c<72;qU98h4=56910`<,==96<8j;|q7ba<72;qU8i74=5690a?<,==96<9=;|q7bg<72;qU8i64=5690a><,==96<9<;|q7bd<72;qU8i94=5690a1<,==96<9;;|q7b<<72;qU8i84=5690a0<,==96<9:;|q7b=<72;qU8i;4=5690a3<,==96<99;|q7b2<72;qU8i:4=5690a2<,==96<98;|q7b0<72;qU8i<4=5690a4<,==96<97;|q7b1<72;qU8i?4=5690a7<,==96<96;|q7b6<72;qU8i>4=5690a6<,==96<9n;|q7b7<72;qU8nh4=5690f`<,==96<=n;|q7b4<72;qU8nk4=5690fc<,==96<=m;|q7b5<72;qU8nj4=5690fb<,==96<=l;|q7ac<72;qU8nm4=5690fe<,==96<=k;|q7a`<72;qU8nl4=5690fd<,==96<=j;|q7aa<72;qU8no4=5690fg<,==96<=i;|q7af<72;qU8n74=5690f?<,==96<:?;|q7ad<72;qU8n94=5690f1<,==96<:>;|q7a<<72;qU8n84=5690f0<,==96<:=;|q7a=<72;qU8n;4=5690f3<,==96<:<;|q7a2<72;qU8n:4=5690f2<,==96<::;|q7a3<72;qU8n=4=5690f5<,==96<:9;|q7a0<72;qU8n<4=5690f4<,==96<:8;|q7a1<72;qU8n?4=5690f7<,==96<:7;|q7a6<72;qU8n>4=5690f6<,==96<:6;|q7a7<72;qU8oh4=5690g`<,==96<:n;|q7a4<72;qU8ok4=5690gc<,==96<:m;|q641<72;qU8ih4=5690a`<,==96<:l;|q646<72;qU8ik4=5690ac<,==96<:k;|q647<72;qU8ij4=5690ab<,==96<:j;|q644<72;qU8im4=5690ae<,==96<;?;|q645<72;qU8il4=5690ad<,==96<;>;|q7bc<72;qU8io4=5690ag<,==96<;=;|q7b`<72;qU8i=4=5690a5<,==96<;<;|q7b3<72;qU8n64=5690f><,==96<;;;|q7ag<72;qU8oj4=5690gb<,==96<;:;|q7a5<72;qU8om4=5690ge<,==96<;9;|q64f<72;qU9=m4=56915e<,==96<;8;|q7<2<72;qU8594=5690=1<,==96<;7;|q643<72;qU9=84=569150<,==96<;n;|q674<72;qU9>?4=569167<,==96<;j;|mea?=838pD99<;|lb`d<72;qC8:=4}ocgf?6=:rB?;>5rn`f`>5<5sA>7}O<>90qcokf;296~N3?:1vblk?:181M20;2wemh?50;0xL1143tdji?4?:3yK02552zJ736=zfho?6=4={I647>{iil?1<7vF;729~jdc?2909wE:83:me`?=838pD99<;|lbad<72;qC8:=4}ocff?6=:rB?;>5rn`g`>5<5sA>7}O<>90qcojf;296~N3?:1vblh?:181M20;2wemk?50;0xL1143tdjj?4?:3yK02552zJ736=zfhl?6=4={I647>{iio?1<7vF;729~jd`?2909wE:83:mec?=838pD99<;|lbbd<72;qC8:=4}ocef?6=:rB?;>5rn`d`>5<5sA>7}O<>90qcoif;296~N3?:1vbo>?:181M20;2wen=?50;0xL1143tdi52zJ736=zfk:?6=4={I647>{ij9?1<7vF;729~jg6?2909wE:83:mf5?=838pD99<;|la4d<72;qC8:=4}o`3f?6=:rB?;>5rnc2`>5<5sA>7}O<>90qcl?f;296~N3?:1vbo??:181M20;2wen52zJ736=zfk;?6=4={I647>{ij8?1<7vF;729~j<7f290:wE:83:m=0?=83;pD99<;|l:1d<728qC8:=4}o;6f?6=9rB?;>5rn87`>5<6sA>4}O<>90qc7:f;295~N3?:1vb48?:182M20;2we5;?50;3xL1143td2:?4?:0yK02551zJ736=zf0{I647>{i1??1<7?tH550?xh>>?0;65rn84`>5<6sA>4}O<>90qc79f;295~N3?:1vb49?:182M20;2we5:?50;3xL1143td2;?4?:0yK02551zJ736=zf0=?6=4>{I647>{i1>?1<7?tH550?xh>??0;65rn85`>5<6sA>4}O<>90qc78f;295~N3?:1vb46?:182M20;2we55?50;3xL1143td24?4?:0yK02551zJ736=zf02?6=4>{I647>{i11?1<7?tH550?xh>0?0;6?290:wE:83:m==?=83;pD99<;|l:5rn8:`>5<6sA>4}O<>90qc77f;295~N3?:1vb47?:182M20;2we54?50;3xL1143td25?4?:0yK02551zJ736=zf03?6=4>{I647>{i10?1<7?tH550?xh>1?0;6?3:1=vF;729~j5rn8;`>5<6sA>4}O<>90qc76f;295~N3?:1vb4o?:182M20;2we5l?50;3xL1143td2m?4?:0yK02551zJ736=zf0k?6=4>{I647>{i1h?1<7?tH550?xh>i?0;65rn8c`>5<6sA>4}O<>90qc7nf;295~N3?:1vb4l?:182M20;2we5o?50;3xL1143td2n?4?:0yK02551zJ736=zf0h?6=4>{I647>{i1k?1<7?tH550?xh>j?0;65rn8``>5<6sA>4}O<>90qc7mf;295~N3?:1vb4m?:182M20;2we5n?50;3xL1143td2o?4?:0yK02551zJ736=zf0i?6=4>{I647>{i1j?1<7?tH550?xh>k?0;65rn8a`>5<6sA>4}O<>90qc7lf;295~N3?:1vb4j?:182M20;2we5i?50;3xL1143td2h?4?:0yK02551zJ736=zf0n?6=4>{I647>{i1m?1<7?tH550?xh>l?0;65rn8f`>5<6sA>4}O<>90qc7kf;295~N3?:1vb4k?:182M20;2we5h?50;3xL1143td2i?4?:0yK02551zJ736=zf0o?6=4>{I647>{i1l?1<7?tH550?xh>m?0;65rn8g`>5<6sA>4}O<>90qc7jf;295~N3?:1vb4h?:182M20;2we5k?50;3xL1143td2j?4?:0yK02551zJ736=zf0l?6=4>{I647>{i1o?1<7?tH550?xh>n?0;65rn8d`>5<6sA>4}O<>90qc7if;295~N3?:1vbl>?:182M20;2wem=?50;3xL1143tdj51zJ736=zfh:?6=4>{I647>{ii9?1<7?tH550?xhf8?0;65rn`2`>5<6sA>4}O<>90qco?f;295~N3?:1vbl??:182M20;2wem51zJ736=zfh;?6=4>{I647>{ii8?1<7?tH550?xhf9?0;65rn`3`>5<6sA>4}O<>90qco>f;295~N3?:1vbl?4?:0yK02551zJ736=zfh8?6=4>{I647>{ii;?1<7?tH550?xhf:?0;65rn`0`>5<6sA>4}O<>90qco=f;295~N3?:1vbl=?:182M20;2wem>?50;3xL1143tdj??4?:0yK02551zJ736=zfh9?6=4>{I647>{ii:?1<7?tH550?xhf;?0;65rn`1`>5<6sA>4}O<>90qco51zJ736=zfh>?6=4>{I647>{ii=?1<7?tH550?xhf5rn`6`>5<6sA>4}O<>90qco;f;295~N3?:1vbl;?:182M20;2wem8?50;3xL1143tdj9?4?:0yK025?7>51zJ736=zfh??6=4>{I647>{ii5rn`7`>5<6sA>4}O<>90qco:f;295~N3?:1vbl8?:182M20;2wem;?50;3xL1143tdj:?4?:0yK02551zJ736=zfh{I647>{ii??1<7?tH550?xhf>?0;65rn`4`>5<6sA>4}O<>90qco9f;295~N3?:1vbl9?:182M20;2wem:?50;3xL1143tdj;?4?:0yK02551zJ736=zfh=?6=4>{I647>{ii>?1<7?tH550?xhf??0;65rn`5`>5<6sA>4}O<>90qco8f;295~N3?:1vbl6?:182M20;2wem5?50;3xL1143tdj4?4?:0yK02551zJ736=zfh2?6=4>{I647>{ii1?1<7?tH550?xhf0?0;6?290:wE:83:me=?=83;pD99<;|lb5rn`:`>5<6sA>4}O<>90qco7f;295~N3?:1vbl7?:182M20;2wem4?50;3xL1143tdj5?4?:0yK02551zJ736=zfh3?6=4>{I647>{ii0?1<7?tH550?xhf1?0;6?3:1=vF;729~jd??290:wE:83:me5rn`;`>5<6sA>4}O<>90qco6f;295~N3?:1vblo?:182M20;2weml?50;3xL1143tdjm?4?:0yK02551zJ736=zfhk?6=4>{I647>{iih?1<7?tH550?xhfi?0;65rn`c`>5<6sA>4}O<>90qconf;295~N3?:1vbll?:182M20;2wemo?50;3xL1143tdjn?4?:0yK02551zJ736=zfhh?6=4>{I647>{iik?1<7?tH550?xhfj?0;65rn```>5<6sA>4}O<>90qcomf;295~N3?:1vblm?:182M20;2wemn?50;3xL1143tdjo?4?:0yK02551zJ736=zfhi?6=4>{I647>{iij?1<7?tH550?xhfk?0;65rn`a`>5<6sA>4}O<>90qcolf;295~N3?:1vblj?:182M20;2wemi?50;3xL1143tdjh?4?:0yK02551zJ736=zfhn?6=4>{I647>{iim?1<7?tH550?xhfl?0;6"9 > %0:?*rjx&Uhk"hffn]{hk~X=88s?;Q=cmi\73rh91$ekb?40493456712:;<=>?01274>6789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123454<80;0=>5>.130?46=AGZ^X7OKDSC?=?699o1:<7GAPTV9twi`Wlg{xtQ{hsgpl9?=878=7<>5IORVP?vugnUna}zv_ujqavnXizyn~y26:1<12>772@D[YY4rne\ahvsqV~c~h}g_ogdeqc;13:5=n5>0;MVPUSS2{nThlzn_bmvjq:>294:>6?9:HLSQQ112922?IR\Y__6IAN<0794;733821CXZ_UU8gkpr;9>0;2<5=2:0254=52@D[YY4KIQC?5?699;196B[[PTV9@JVF480;2<<4338JJUSS2MCI0>?50?30?64=G\^[YY4KOC>05?69<298>>?=;249MKVR\3nbb1=::1<1?6>c3:y9<=>ig575)07<<8;087GAPTV9@LVE4:0;2<<44;MVPUSS2ME[N1=50?3827=11=1=548;;7;B57=1M=138??>;868=56>:23=86796831?<;>586l231EC^ZT;rqkbYa}efTxe|jsi>;>585<231EC^ZT;rqkbYa}efTxe|jsi]bwvcu|521<3<;;88JJUSS2yxdkRhzlm]wlwct`Vdnklzj<983:4><13E^X][[:ecweZeh}g~747>11c9:>JSSX\^1{Qkauc\gjsi|521<364AEFQE96902KOH_O31?:8EABUI58546OKDSC?7;>GCL[K7;364AEFQE9>9i2KOH_O39;2=<>GCL[K75364AEFQF96902KOH_L31?:8EABUJ58546OKDS@?7;>GCL[H7;3o4AEFQF9>=8720MIJ]B=:==>GTQGIT^HI<;CW1<>DR[VCEJB?4C59@E=G53JO:>6MGEBI\HLEBFZOTXT^J2:AJ0>EKCH>0OAEM3:AOV<=DGDGBXYKK159@KWCXOLDN^LZFOO]JJCI03JXNMYKK1:F1?AO13MCJ0=08;EKB8469?2NBM1?>>69GMD:6:7=0HDO312<4?AOF48>556JFA=36>5803MCJ0<;16:FJE979>2NBM1<16:FJE959>2NBM1:16:FJE939>2NBM1816:FJE919>2NBM1616:FJE9?9>2NBN1>17:FJF9776>1OEO2>1?58@LD;9;4<7IGM<01=3>BNJ5;?2:5KIC>21;169GMG:617<0HDL31?58@LD;:94<7IGM<33=3>BNJ5892:5KIC>17;1908;EKA8739?2NBN1<9>69GMG:5?7=0HDL329<4?AOE4;35:6JFB=0=3>BNJ59;245KIC>05?69?2NBN1=>>79GMG:46?1OEO2;>79GMG:26?1OEO29>79GMG:06?1OEO27>79GMG:>6>1OE]O30?;8@LVF480;2:5KIQC?5;189GMUD;;3:5;6JFPC>0:3=CGH6;2:5KO@>24;169GKD:6<730HBO31483:2=CGH6:9384DNC?5;0384DNC?7;01OCO2>3?58@JD;9=4<7IAM<07=3>BHJ5;=2:5KOC>23;12NDN1?17:FLF9476>1OCO2=1?58@JD;:;4<7IAM<31=3>BHJ58?2:5KOC>11;1;08;EMA8719?2NDN1<7>69GKG:517<0HBL32?58@JD;;9427IAM<2394;119:FLTD:6294<7IA_A=3=3>BHXK6;2:5KOQ@?5;1@fdzo:7J=4GOF1?L653@;97D<=;H1;?LHN\YU;<55FNHVS[57?3@DBX]Q?299JJLRWW9937D@FTQ]30==NF@^[S=;7;HLJPUY7>11BBDZ__15:?LHN\Z^JXH94IOKW[5603@DBXR>>7:KMMQY7:>1BBDZP0258MKOSW9><7D@FT^263>OIA]U;::5FNHV\421?2CEEYQ?A69JJLRX8K=0ECG[_1A4?LHN\V:O;6GAIU]3A2=NF@^T7:KMMQY6:>1BBDZP1258MKOSW8><7D@FT^363>OIA]U:::5FNHV\521?2CEEYQ>A69JJLRX9K=0ECG[_0A4?LHN\V;O;6GAIU]2A2=NF@^T=K94IOKW[7603@DBXR<>7:KMMQY5:>1BBDZP2258MKOSW;><7D@FT^063>OIA]U9::5FNHV\621?2CEEYQ=A69JJLRX:K=0ECG[_3A4?LHN\V8O;6GAIU]1A2=NF@^T>K94IOKW[6603@DBXR=>7:KMMQY4:>1BBDZP3258MKOSW:><7D@FT^163>OIA]U8::5FNHV\72168;HLJPZ5>?2CEEYQ2F^X?QC4:NVP60JR\=UG96C\GNL6?HS_KPi0Ald`rWgqwliik2Gbbb|Yesqjkk4;;O3341=I998?7C??459M55343G;:86@>1968J47>;2D:>95A1327?K759=1E=?<;;O3171=I9;>?7C?=559M57033G;9;95A13:7?K751:1E=>:4N0130>H6;8>0B<==4:L27623468J451<2D:?:=4N060?K72;2D::>5A1618J4>43G;2?6@=029M645H50:1E>4=4N220?K56;2D8>>5A3218J6243G9>?6@<629M725;N08KN7UNEVID@AG\INL\GMCDC?1XCX\LE69PVSGKWH=0__XNL^@7?VUUI=1X__L;;U[SA64<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?01]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3457XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:9S_k|umv277=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwY`kVrd~=>?3^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\vaYwf}xTknQwos2341YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW{nT|cz}_fa\|jt789?T^h}zlu306>S7'nxm"h gbz-gim'Drd~R|k_qlwvZadWqey<=>9_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]q`Zvi|{UloRv`r1233ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtXzmU{by|Pgb]{kw6781UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=>PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^uq[uhszVmhSua}0122[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYpzVzexQhc^zlv567:VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT{Qnup\cfYg{:;<>Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_vp\tkruWniTtb|?016\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZquWyd~Ril_ymq4562W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{U|~R~ats]dgZ~hz9:;:R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pws]sjqtXojUsc>?06]Qavsk|88:7X> gsd-vc)`kq$h`fv re]sjqtXj`d7=3<>;T2,cw`)zo%lou lljz,vaYwf}xTnd`32?02?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl?7;463\:$kh!rg-dg}(ddbr$~iQnup\flh;<78:7X> gsd-vc)`kq$h`fv re]sjqtXj`d793<>;T2,cw`)zo%lou lljz,vaYwf}xTnd`36?02?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl?3;463\:$kh!rg-dg}(ddbr$~iQnup\flh;078:7X> gsd-vc)`kq$h`fv re]sjqtXj`d753 gsd-vc)`kq$h`fv re]sjqtXj`dT9?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ9219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^514>S7'nxm"h gbz-gim'{nT|cz}_ckm[=473\:$kh!rg-dg}(ddbr$~iQnup\flhX1;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0104?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789::>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123571<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?2005?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt78999;6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0120670<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<9<8;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34526:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?5358Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678<;9:6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}01256f=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;:S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:==;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123371<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<:?=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm30?03?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb>2:76<]9%l~k }f.e`|+ekcq%yhR~ats]dg949:91^<"i}f/pe+be&jf`t"|k_qlwvZad4:49<6[?/fpe*w`(ojr%oaew/sf\tkruWni783328Q5)`zo$yj"ilx/aoo})ulVzexQhc=4=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`828582_;#j|i.sd,cf~)keas#jPpovq[be;078;7X> gsd-vc)`kq$h`fv re]sjqtXoj622>f:W3+bta&{l$knv!cmi{+wbXxg~ySjmP10d8Q5)`zo$yj"ilx/aoo})ulVzexQhc^02b>S7'nxm"h gbz-gim'{nT|cz}_fa\74`<]9%l~k }f.e`|+ekcq%yhR~ats]dgZ26n2_;#j|i.sd,cf~)keas#jPpovq[beX=8l0Y=!hrg,qb*adp'iggu!}d^rmpwY`kV<:j6[?/fpe*w`(ojr%oaew/sf\tkruWniT;f:W3+bta&{l$knv!cmi{+wbXxg~ySjmP9348Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;878=7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh<0<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo585>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>0:70<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlm783<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8085>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk181279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:06;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi38?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`404996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^211>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV;996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^011>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV9996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^611>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV?996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^411>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV=996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^:11>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV3956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2848512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><3<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0>0=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb64=4956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2808512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><7<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0:0=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6414956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f28<8502_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj>_00;?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;T>?64U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4Y4:11^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1^61<>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:S8<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X>;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]46==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R6=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W08>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0106?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw67888>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0306?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw678:8>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0506?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw678<8>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0706?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw678>8>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0902?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?4;463\:$kh!rg-dg}(ddbr${Qnup\flh;978:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d7>3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`33?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?0;463\:$kh!rg-dg}(ddbr${Qnup\flh;=78:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d7:3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`37?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?<;473\:$kh!rg-dg}(ddbr${Qnup\flhX8;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU:>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR<=0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_203?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\076<]9%l~k }f.e`|+ekcq%|~R~ats]amkY2:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV<9<6[?/fpe*w`(ojr%oaew/vp\tkruWkceS: gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?012263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;=?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234475>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>=269V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567:88=7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01113>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:8>?84U1-dvc(un&mht#mcky-tvZvi|{UiecQwos2341403\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=:>279V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567=;=0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?04312>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:=>n5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r123247X[^:9o6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012554YT_88<7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?014163=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;;?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos23427582_;#j|i.sd,cf~)keas#z|Ppovq[be;878;7X> gsd-vc)`kq$h`fv ws]sjqtXoj6:2?>4U1-dvc(un&mht#mcky-tvZvi|{Ulo1<1219V4*aun'xm#jmw.bnh|*quWyd~Ril<2<14>S7'nxm"h gbz-gim'~xT|cz}_fa?0;473\:$kh!rg-dg}(ddbr${Qnup\cf:26;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k5<5>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh0:0=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm38?3e?P6(o{l%~k!hcy,`hn~({U{by|Pgb]35c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[47a3\:$kh!rg-dg}(ddbr${Qnup\cfY59o1^<"i}f/pe+be&jf`t"y}_qlwvZadW:;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU?=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS8?i;T2,cw`)zo%lou lljz,swYwf}xTknQ91g9V4*aun'xm#jmw.bnh|*quWyd~Ril_63e?P6(o{l%~k!hcy,`hn~({U{by|Pgb];63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn6;2?84U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde?5;413\:$kh!rg-dg}(ddbr${Qnup\cfYf{{ol0?0=6:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfc959:?1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyij2;>348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;=78=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<7<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo5=5>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>;:73<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\773<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT8?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\173<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT:?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\373<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT4?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:76;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>2:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2=>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8682?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:36;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>6:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<29>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86<2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:?6;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]36==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012360=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89::>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012160=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:8>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012760=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:>>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012560=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:<>l5Z0.eqb+ta'nf;"j gs3-vcqa|&XJAR\K_DL\BR@S9;i0Y=!hrg,qb*ak8'xo#j|>.sdtbq)UIDUYHRKA_GUEP4Y6:j1^<"i}f/pe+bj7&{n$k?!rguep*TFEVXOSH@PFVDW5Z4512_;#j|i.sd,ci6)zm%l~< }fvdw+WGJW[OLCXZPEO307>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_GQN[C@c9:<0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`YA[DUMJi?"Io1;?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykPFRO\BCb6%@d:=>=4U1-dvc(un&mg<#|k/fp2*w`pn}%hy|Pfvdw[vrf|lUM_@QIFe002>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_GQN[C@c:$Ce?55Z0.eqb+ta'nf;"j gs3-vcqa|&i~~Qiwgv\wqgsmVLXARHId3/Jj47502_;#j|i.sd,ci6)zm%l~< }fvdw+`kw|pUm{kzPfc04?P6(o{l%~k!hl1,q`*au9'xm{kz elrw}Z`pn}Ub>h5Z0.eqb+ta'nf;"j gs3-vcqa|&of|ywPfvdw[lYhz9:;!re-dvdu)zz~x#n> c`pq}kcs494956[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$ol|}yogw848512_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(khxyuck{<3<1=>S7'nxm"h gm2-va)`zhy%~~z|/b2,gdtuqgo0>0=f:W3+bta&{l$ka>!re-dvdu)zz~x#n> glw{*bk\8T$la< b13d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.enq}(`eR;V"jc|.lq1b>S7'nxm"h gm2-va)`zhy%~~z|/b2,chs&ngP>P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`4*aj}q$laV=R.fop*hu5n2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(ods"jcT4\,div(j{;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&|:0=0=3:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0>2:75<]9%l~k }f.eo4+tc'nxj#||tr-`4*p64;49?6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$z<2<>318Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.t28185j2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(~8U;Sl`k012357d<]9%l~k }f.eo4+tc'nxj#||tr-`4*p6W8Ujbi>?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4Y5Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.t2[6Yffm:;<=?=b:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0]7[dhc89:;=?74U1-dvc(un&mg<#|k/fpbw+tt|z%h="mnrs{maq:76;30Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&ij~waeu>2:7?<]9%l~k }f.eo4+tc'nxj#||tr-`5*efz{seiy2=>3;8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.abvwim}682?h4U1-dvc(un&mg<#|k/fpbw+tt|z%h="ibuy,di^6Z&ng:"`?=f:W3+bta&{l$ka>!re-dvdu)zz~x#n? glw{*bk\9T$la~ bs3d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.enq}(`eR8V"jc|.lq1b>S7'nxm"h gm2-va)`zhy%~~z|/b3,chs&ngP?P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`5*aj}q$laV:R.fop*hu5;2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~86;2?=4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x><0<17>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4:56;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&|:0>0=3:W3+bta&{l$ka>!re-dvdu)zz~x#n? v0>7:7d<]9%l~k }f.eo4+tc'nxj#||tr-`5*p6W9Ujbi>?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4Y6Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t2[7Yffm:;<=?=b:W3+bta&{l$ka>!re-dvdu)zz~x#n? v0]0[dhc89:;=?l4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x>_5]bja6789;9<6[?/fpe*w`(oe:%~i!hr`q-vvrt'jef|=>4U1-dvc(un&mg<#|k/fpbw+tt|z%ym`Qjmqvz[cdXaVey<=>?309V4*aun'xm#jb?.sf,cwgt&{y"|nm^gntqXnkUbSb|?012266=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}8?7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{1368Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkr5:=1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by==4:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmp1433\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d9?:4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov561=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}=986[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at907?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphs1;30Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>3:7e<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2?>^pw6<=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1?12b9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5;5Sz=9:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4;49o6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az878Xz}827X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?7;4d3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw33?]qp7?<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2;>3a8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6?2R|{289V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5?5>n5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}939W{~956[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az8385k2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<7<\vq4>3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw37?0`?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7;3Q}t3;8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp632?m4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:?6Vx>l5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]{kw:76;k0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?5;4f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSua}<3<1e>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1=12`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{6?2?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;=78j7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8385i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=5=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc27>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx75311g9V4*aun'xm#jb?.sf,vuhsz&idycz31?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=0=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?7;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9299o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;=7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5<5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~7;3?i;T2,cw`)zo%l`= }d.psjqt(kfex1611g9V4*aun'xm#jb?.sf,vuhsz&idycz39?3f?P6(o{l%~k!hl1,q`*twf}x$ob{at^22a>S7'nxm"h gm2-va)uxg~y#naznu]25`=R8&myj#|i/fn3*wb(zyd~"m`uov\64c<]9%l~k }f.eo4+tc'{zex!lotlw[67b3\:$kh!rg-dh5(ul&x{by| cnwmpZ26m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY29l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX>8o0Y=!hrg,qb*ak8'xo#~ats-`kphsW>;n7X> gsd-vc)`d9$yh"|nup,gjsi|V2:i6[?/fpe*w`(oe:%~i!}povq+firf}U2>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<2?>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?5;453\:$kh!rg-dh5(ul&x{by| cnwmpZb64;49>6[?/fpe*w`(oe:%~i!}povq+firf}Uo=1=1239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>7:74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;=7897X> gsd-vc)`d9$yh"|nup,gjsi|Vn:0;0=2:W3+bta&{l$ka>!re-qtkru'je~byQk1=5=67=R8&myj#|i/fn3*wb(zyd~"m`uov\`4:?6;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;753<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_102?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[4463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W;8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S><>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_502?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[0463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W?8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S:<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_902?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[<4>3\:$kh!rg-dh5(pz&m|m~ xsuq,g4)di{xrbhz30?0:?P6(o{l%~k!hl1,tv*apiz$|y} c0-`ewt~fl~7=3<6;T2,cw`)zo%l`= xr.etev(p{}y$o gsd-vc)`d9$|~"ixar,twqu(k8%hm|vndv?7;4a3\:$kh!rg-dh5(pz&m|m~ xsuq,g4)`e|r%k`U?]/en5+k6:o1^<"i}f/pe+bj7&~x$kzo|.vqww*e6'ng~t#ib[0_-chu)ez8m7X> gsd-vc)`d9$|~"ixar,twqu(k8%laxv!glY1Y+aj{'gx>k5Z0.eqb+ta'nf;"z| gvcp*rus{&i:#jczx/en_6[)ody%a~/w3?4;443\:$kh!rg-dh5(pz&m|m~ xsuq,g4)q95;5>>5Z0.eqb+ta'nf;"z| gvcp*rus{&i:#{?32?00?P6(o{l%~k!hl1,tv*apiz$|y} c0-u5959::1^<"i}f/pe+bj7&~x$kzo|.vqww*e6';783o5Z0.eqb+ta'nf;"z| gvcp*rus{&i:#{?P1^cm`567888i7X> gsd-vc)`d9$|~"ixar,twqu(k8%}=RTbbz?01226<=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+fguzpdnx1>1289V4*aun'xm#jb?.vp,crgt&~y"m=/bcqv|hb|5;5>45Z0.eqb+ta'nf;"z| gvcp*rus{&i9#no}rxlfp949:01^<"i}f/pe+bj7&~x$kzo|.vqww*e5'jky~t`jt=1=6c=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+bkrp'mfW=S!gl3-i44a3\:$kh!rg-dh5(pz&m|m~ xsuq,g7)`e|r%k`U>]/enw+kt:o1^<"i}f/pe+bj7&~x$kzo|.vqww*e5'ng~t#ib[3_-chu)ez8m7X> gsd-vc)`d9$|~"ixar,twqu(k;%laxv!glY0Y+aj{'gx>k5Z0.eqb+ta'nf;"z| gvcp*rus{&i9#jczx/en_1[)ody%a~<<;T2,cw`)zo%l`= xr.etev(p{}y$o?!y1=2=66=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+s7;97887X> gsd-vc)`d9$|~"ixar,twqu(k;%}=1<1229V4*aun'xm#jb?.vp,crgt&~y"m=/w3?7;443\:$kh!rg-dh5(pz&m|m~ xsuq,g7)q95>5>o5Z0.eqb+ta'nf;"z| gvcp*rus{&i9#{?P0^cm`567888i7X> gsd-vc)`d9$|~"ixar,twqu(k;%}=R?Paof34566:k1^<"i}f/pe+bj7&~x$kzo|.vqww*e5';T>Road123444e3\:$kh!rg-dh5(pz&m|m~ xsuq,g7)q9V9Tmcj?01226g=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+s7X?0003?P6(o{l%~k!hl1,tv*apiz$|y} cnos576<]9%l~k }f.eo4+qu'n}j#y|tr-`khv5:11^<"i}f/pe+bj7&~x$kzo|.vqww*tfeVl~`aQib^k11>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVc9o6[?/fpe*w`(oe:%{!hw`q-svrt'{kfSk{cl^k\kw67898o7X> gsd-vc)`d9$|~"ixar,twqu(zhgTjxbc_h]lv56788;o7X> gsd-vc)`d9$|~"|nm^uq[`hXa8887X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq75<2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex?<;;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw772<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~?>95Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu710>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|?8?7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{7368Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkr?:01^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=2=6f=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1>1_sv1=>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir0<0=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~484T~y<6;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;:78h7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?6;Yu|;30Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPcx>0:7e<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2<>^pw6<=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1:12b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5>5Sz=9:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4<49o6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az808Xz}827X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?2;4d3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw36?]qp7?<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot28>3a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6<2R|{2`9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{6;2?o4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\|jt;978j7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8785i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=1=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc2;>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx793;:7b<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|38?]qp4`<]9%l~k }f.eo4+qu'~zex!lotlw8586n2_;#j|i.sd,ci6){%||cz}/bmvjq:668l0Y=!hrg,qb*ak8'}y#z~ats-`kphs4;4:j6[?/fpe*w`(oe:%{!xpovq+firf}682f:W3+bta&{l$ka>!ws-ttkru'je~by2:>0d8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{<7<2b>S7'nxm"h gm2-sw)pxg~y#naznu>4:4`<]9%l~k }f.eo4+qu'~zex!lotlw8=86m2_;#j|i.sd,ci6){%||cz}/bmvjqY79l1^<"i}f/pe+bj7&~x${}`{r.alqkrX98o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW;;n7X> gsd-vc)`d9$|~"ynup,gjsi|V9:i6[?/fpe*w`(oe:%{!xpovq+firf}U?=h5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T9e:W3+bta&{l$ka>!ws-ttkru'je~byQ7239V4*aun'xm#jb?.vp,suhsz&idyczPd0>3:74<]9%l~k }f.eo4+qu'~zex!lotlw[a7;97897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:0?0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=1=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:36;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;793<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><7<16>S7'nxm"h gm2-sw)pxg~y#naznu]g5919:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl8632??4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?P0338Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3\577<]9%l~k }f.eo4+qu'~zex!lotlw[a7X:;;0Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;T???4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?P4338Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3\177<]9%l~k }f.eo4+qu'~zex!lotlw[a7X>;;0Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;T;??4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?P8308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?4;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54849>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>1<1239V4*aun'xm#jb?.vp,suhsz&idyczPd3>0:74<]9%l~k }f.eo4+qu'~zex!lotlw[a4;<7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn9080=2:W3+bta&{l$ka>!ws-ttkru'je~byQk2=4=67=R8&myj#|i/fn3*rt(yd~"m`uov\`7:06;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm8743<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_102?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[4463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W;8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S><>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_502?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[0463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W?8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S:<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_935?P6(o{l%~k!bel-gkprXaV:::6[?/fpe*w`(elg$hb{{_h]252=R8&myj#|i/lgn+air|VcT==?8;T2,cw`)zo%fi`!kotv\mZ769>1^<"i}f/pe+hcj'me~xRgP1334?P6(o{l%~k!bel-gkprXaV;8=:5Z0.eqb+ta'dof#iazt^k\51703\:$kh!rg-nah)cg|~TeR?:169V4*aun'xm#`kb/emvpZoX9?;<7X> gsd-vc)jmd%ocxzPi^3453=R8&myj#|i/lgn+air|VcT><84U1-dvc(un&gna"j`uu]j[6713\:$kh!rg-nah)cg|~TeR:>6:W3+bta&{l$ahc dnww[lY29?1^<"i}f/pe+hcj'me~xRgP6048Q5)`zo$yj"cjm.flqqYnW>;=7X> gsd-vc)jmd%ocxzPi^:22>S7'nxm"h mdo,`jssW`U2=45Z0.eqb+ta'dof#iazt^ofi9699h1^<"i}f/pe+hcj'me~xRcjm=33:4g<]9%l~k }f.ofi*bh}}Ufi`2>1?3b?P6(o{l%~k!bel-gkprXelg7=?0>a:W3+bta&{l$ahc dnww[hcj4895=l5Z0.eqb+ta'dof#iazt^ofi97368k0Y=!hrg,qb*kbe&ndyyQbel>21;7f3\:$kh!rg-nah)cg|~Tahc317<2e>S7'nxm"h mdo,`jssWdof0<91189V4*aun'xm#`kb/emvpZkbe5;5=45Z0.eqb+ta'dof#iazt^ofi949901^<"i}f/pe+hcj'me~xRcjm=1=5<=R8&myj#|i/lgn+air|Vgna1:1189V4*aun'xm#`kb/emvpZkbe5?5=45Z0.eqb+ta'dof#iazt^ofi909901^<"i}f/pe+hcj'me~xRcjm=5=5<=R8&myj#|i/lgn+air|Vgna161189V4*aun'xm#`kb/emvpZkbe535:h5Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(~hfbh#m|ts-qehjhgyQ;Q#|nm/p,r7Yig`dbx#|nm.fs73~60'xja gsd-vc)uidUyhRka169V4*aun'xm#ob_sgdkprXmg;87X> gsd-vc)uidU|~Rka1e9V4*aun'xm#}{bmi,vaYu{}Ujkh219V4*aun'xm#}{bmi,vaYu{}Ujkh_e314>S7'nxm"h rrvahn)ulVxxxRo|rde\`77d3\:$kh!rg-qwqdkc&xoS}{_bmnf4b<]9%l~k }f.pppgjl'{nT~~zPcnoa54c<]9%l~k }f.pppgjl'{nT~~zPrde?4;7b3\:$kh!rg-qwqdkc&xoS}{_sgd8486m2_;#j|i.sd,vvredb%yhR||t^pfc9499m1^<"i}f/pe+wusjea$~iQ}su]qabY79m1^<"i}f/pe+wusjea$~iQ}su]qabY69m1^<"i}f/pe+wusjea$~iQ}su]qabY59m1^<"i}f/pe+wusjea${Q}su]bwwc`:91^<"i}f/pe+wusjea${Q}su]bwwc`Wm;9<6[?/fpe*w`(zz~i`f!xr^pppZgtzlmTh??l;T2,cw`)zo%yylck.uq[wusWjefnd:W3+bta&{l$~~zmlj-tvZtt|VxnkR>>d:W3+bta&{l$~~zmlj-tvZtt|VxnkR?n;TQFVZGKAHYh7X]JR^TJWLDKM:1]ON74VHGT[Q_WM:1\IL=4WD@a?RTN\LUME_][c:UQMQCXEFNNSLm4WSKWAZKHLLUI=i5WIMKM\(^CJ):%=-][UC"3*4&F[JCB96V@RB[5?]USD@H<7U][_FLG3>^T\V\HOo5W_BMQAZOINF<0TilPIed8\anXX{cfZh||inl24>^ceVGjfb|Yesqjkk773QnfS@gaosTfvvohfj1j``a|t^gntqe3hffc~zPftno2>dfkb{h6lncjws[hguclx87nbdd:fbpdYdg|d$='k;ecweZeh}g~#=$j4d`vb[firf}"9%i5kauc\gjsi|!9"h6jnt`]`kphs =#o7io{a^alqkr/= n0hlzn_bmvjq.1!m1omyoPcnwmp-1.l2njxlQlotlw,=/a3mkmRm`uov?)69gmk.68 =0hd`'10+4?aoi 88";6jfn)30-2=cag":8$94dhl+50/03mce$<8&7:fjj-70!>1oec&>8(58`lh/90#=7iga(3+4?aoi ;:";6jfn)02-2=cag"9>$94dhl+66/03mce$?:&7:fjj-42!>1oec&=6(58`lh/:>#<7iga(3:*3>bnf!82%;5kio*0-2=cag"8<$94dhl+74/03mce$><&7:fjj-54!>1oec&<4(58`lh/;<#=7iga(5+5?aoi <#=7iga(7+5?aoi >#=7iga(9+5?aoi 0#=7iga<1<4?aoi48:5;6jfn=32:2=cag6:>394dhl?56803mce0<:17:fjj9726>1oec2>6?58`lh;9>4<7iga<0:=3>bnf5;22;5kio>2:2=cag69<394dhl?64803mce0?<17:fjj9446>1oec2=4?58`lh;:<4<7iga<34=3>bnf58<2:5kio>1<;1409;ekm87803mce0>>17:fjj9566>1oec2<2?58`lh;;:4<7iga<26==>bnf59>6=08;ekm8639>2nbb1=16:fjj929>2nbb1;16:fjj909>2nbb1916:fjj9>9>2nbb1717:flqq.7!>1ocxz'1(:8`jss 8:"46j`uu*25,>bh}}":9$64dnww,40.02ndyy&>7(58`jss ;#<7iazt)1*3>bh}}"?%:5kotv+1,199gkpr;9:437iazt=37:==cg|~7=807;emvp9716h1ocxz31683:==cg|~7=:08;emvp979?2ndyy2=>69gkpr;;7=0hb{{<5<4?air|5?5;6j`uu>5:2=cg|~7;394dnww8=803me~x1718:ggmc4iom?0i`~{y208bl`hWnoeio{os]u0Z5+(Qcgecv/CNPF$Bcim{kc.>0/3-467d3ocmcRvcny]657~4>V8h`fQ<6um2<6g`nnfUs`cvP500{73Y5keaT?;z`19.emciXoldn~lz`r^t7[6*|kVbjRgat^aoo86+kVbjR}}su?3(fYulVlyi|3>,b]kevYulVnjxlQlotlw95*dWmceSzgkti?02)eX`hyT{Qkauc\gjsi|4:'oRhzlm]ehdatW{yS{oc=1.`[lkwdlgnbyo{inl\p|vb5;&hSx}j_doaaabblVxnk0>#c^uq[ctby4;'oR{|e^flqqYu{}7: nQznegqbiipWee|1="l_icp[jpbzofd{0>#c^rqaiiflVfjxh`ly<2/gZbh}}U|eizg=0:/gZktofdTzlb21-a\vaYcmy~c1<>=4-a\lduX}gnn~kb`w<2/gZnf{Vkgab}{_gwoh86+kVbjR||t<3/gZbf|hUhcx`{_vkgpm;>$jUcm~Qxr^c`o86+kVxiRklc<2/gZehedeeSnb`cj?3(fYpzVkhgRb`w<2/gZtcWyd~Ryfduj>55*dW|ynSkyit^fbpdYdg|d1="l_icp[djjgz~Ti`~{y<2/gZtcWmkmRm`uov\slbs`4;; nQ`vdpehjqXdf}62-a\twi`Wlg{xtQ{hsgplZhboh~nS{oc=4.`[uthoVof|ywPtipfwmYf{zoyxRxnl<6/gZnf{V|j`dj20-a\twi`Wog`Rzgrdqk[dutm{~Tzlb251;/gjkwggoexR`nmd?emciXpedsS8?=x24\6fjlW:<c<6#c^tbhlbXdf}6T?Rv|t^37?cskd>1bbyQllj:8jbee}`fo46ayesdokrg0|ah_dosp|Ys`{oxd%?&159svjaXmdzuRzgrdqk,7/6<2zycjQjmqvz[qnumzb#?$?;;qplcZcjx}sTxe|jsi*7-42vugnUna}zv_ujqavn/? ;?7}|`g^gntqX|axne&7)068twi`Wlg{xtQ{hsgpl-?.9?1{~biPelrw}Zrozlyc044?>0`8twi`Wlg{xtQ{hsgplZgt{lx$='>b:rqkbYbey~rSyf}erj\evubz}":%vugnUna}zv_ujqavnXizyn~y&8)0`8twi`Wlg{xtQ{hsgplZgt{lx$5'>b:rqkbYbey~rSyf}erj\evubz}"2%vugnUna}zv_ujqavnXflmjxh&:)0`8twi`Wlg{xtQ{hsgplZhboh~n$;'>b:rqkbYbey~rSyf}erj\j`af|l"<%!8n0|ah_dosp|Ys`{oxdR`jg`vf8<<7601{~biPftno56=wzfmTjxbc_ujqavn/8 ;87}|`g^dvhiYs`{oxd%?&129svjaXn|fgSyf}erj+6,743yxdkRhzlm]wlwct`!9"=>5rne\bpjkW}byi~f'4(30?uthoVl~`aQ{hsgpl-3.9:1{~biPftno[qnumzb#:$?<;qplcZ`rdeUdk|h)5*56=wzfmTjxbc_ujqavn/0 ;>7}|`g^dvhiYs`{oxd1650?3b?uthoVl~`aQ{hsgplZgt{lx$='>a:rqkbYa}efTxe|jsi]bwvcu|!;"=l5rne\bpjkW}byi~fParqfvq.5!8k0|ah_gwohZrozlycSl}|esv+7,7f3yxdkRhzlm]wlwct`Vkxh|{(5+2e>vugnUmyabPtipfwmYf{zoyx%;&1`9svjaXn|fgSyf}erj\evubz}"=%vugnUmyabPtipfwmYimnki%?&1`9svjaXn|fgSyf}erj\j`af|l"9%=87<0~iQllj33?wbXlh~jSnaznu*3-464re]geqgXkfex%7&119q`Zbf|hUhcx`{<1<26>tcWmkmRm`uov?=?69=2xoSh`9;sf\vvr43{y;6}miugqv1=tzz~?7y|ze89vjacunee|96xnlhf5?rtXija=7z|Pcmi24>quWmkmRm`uov+4,773~xThlzn_bmvjq.6!8:0{Qkauc\gjsi|!8"==5xr^fbpdYdg|d$>'>0:uq[agsiVidycz'4(33?rtXlh~jSnaznu*6-46<{UomyoPcnwmp-0.991|~Rjnt`]`kphs >#:<6y}_ecweZeh}g~#4$?=;vp\`drfWje~by27:1<6?rtXmg<0{Q}suCDug0k2JKt<4I:582V372=9h654>33`5gd<40?;2wc=mc;38j6dc2=1/?oo53c68yV2b2=9h654>33`5gd<40?;27^?=6;671?6=9:8i:no53942f>U3m3>?97>5120a2fg=;1<:n6j;3g83>4<6sZ?;69=l:98277d1kh084;?6;wV23c<7280:6<8m{R73>15d210:??l9c`80<37>3-9ji7?=7:T0fg<5s|;8=7?4u011>5=z,8=<65<4l391?iuG3`a8^13=:r;;6<65}%3;0?24n2.8n44;3d9j0<3=831b8l750;9l015=831d8>j50;9j0=821d8=:21d8=<21d8=>21d8<750;&23<<3;81e=:657:9l07>=83.:;44;309m52>=021d8?950;&23<<3;81e=:659:9l070=83.:;44;309m52>=i21d8?;50;&23<<3;81e=:65b:9l072=83.:;44;309m52>=k21d8?=50;&23<<3;81e=:65d:9l074=83.:;44;309m52>=m21d8??50;&23<<3;81e=:65f:9l04>=83.:;44;309m52>=9910c9?8:18'52?=<:;0b<97:038?l5bj3:1(<96:52f?k7003:07d=ja;29 41>2=:n7c?88;38?l5b13:1(<96:52f?k7003807d=j8;29 41>2=:n7c?88;18?l5b?3:1(<96:52f?k7003>07d=j6;29 41>2=:n7c?88;78?l5b<3:1(<96:52f?k7003<07d=j3;29 41>2=:n7c?88;58?l5b:3:1(<96:52f?k7003207d=j1;29 41>2=:n7c?88;;8?l5b83:1(<96:52f?k7003k07d=kf;29 41>2=:n7c?88;`8?l5cm3:1(<96:52f?k7003i07d=kd;29 41>2=:n7c?88;f8?l5ck3:1(<96:52f?k7003o07d=kb;29 41>2=:n7c?88;d8?l5c13:1(<96:52f?k7003;;76g!7013>;i6`>79825>=n;m=1<7*>78874`=i9>21=?54i2f5>5<#9>318=k4n05;>45<3`9o97>5$05:>16b3g;<47?;;:k0`1<72-;<57:?e:l23=<6=21b?i=50;&23<<38l1e=:651798m6b5290/=:7541g8j41?28=07d=k1;29 41>2=:n7c?88;3;?>o4l90;6)?89;63a>h6?10:565f3g394?"6?00?j;o34d:9j7`b=83.:;44;0d9m52>=9l10e>kl:18'52?=<9o0b<97:0d8?l5b=3:1(<96:52f?k70038;76g!7013>;i6`>79815>=n;jl1<7*>78874`=i9>21>?54i2af>5<#9>318=k4n05;>75<3`>347>5;c1b`?6=93:1"60=0o?6ak2;29?xd3<3:1m>4>30822g}O;hi0V9;517ya>7b=l38i6?m528824?g=9109m7m52b81`?772m0i6<652c81e?4>2j0j6p*>858707=#9;91h<5+488705=#5<5<5<5<#9>3188j4n05;>4=5<#9>3188j4n05;>6=5<#9>3188j4n05;>0=5<#9>3188j4n05;>2=5<#9>3188j4n05;><=6=44o565>5<5<#9>318l64n05;>4=6=4+16;90d>5<#9>318l64n05;>6=5<#9>318l64n05;>0=5<#9>318l64n05;>2=5<#9>3184:4n05;>5=5<#9>3184:4n05;>7=54o5:f>5<#9>3184:4n05;>1=5<#9>3184:4n05;>3=5<#9>3184:4n05;>==5<#9>318594n05;>5=6=4+16;90=15<#9>318594n05;>7=54i5:1>5<#9>318594n05;>1=5<#9>318594n05;>3=5<#9>318594n05;>==5<#9>31?nm4n05;>5=5<#9>31?nm4n05;>7=54o2a4>5<#9>31?nm4n05;>1=5<#9>31?nm4n05;>3=5<#9>31?nm4n05;>==86=44o51g>5<5<#9>318:=4n05;>4=5<#9>318:=4n05;>6=5<#9>318:=4n05;>0=5<#9>318:=4n05;>2=5<?6=44i2a1>5<5<5<5<5<#9>318>?4n05;>4=5<#9>318>?4n05;>6=5<#9>318>?4n05;>0=5<#9>318>?4n05;>2=5<#9>318>?4n05;><=5<#9>318>?4n05;>g=5<#9>318>?4n05;>a=5<#9>318>?4n05;>c=4;n623?6=,8=269=>;o3432c8io4?:%34=?27m2d:;54?;:k0ad<72-;<57:?e:l23=<632c8i44?:%34=?27m2d:;54=;:k0a=<72-;<57:?e:l23=<432c8i:4?:%34=?27m2d:;54;;:k0a3<72-;<57:?e:l23=<232c8i94?:%34=?27m2d:;549;:k0a6<72-;<57:?e:l23=<032c8i?4?:%34=?27m2d:;547;:k0a4<72-;<57:?e:l23=<>32c8i=4?:%34=?27m2d:;54n;:k0`c<72-;<57:?e:l23=0:9j7a>=83.:;44;0d9m52>=9810e>j8:18'52?=<9o0b<97:008?l5c>3:1(<96:52f?k7003;876g!7013>;i6`>79820>=n;m>1<7*>78874`=i9>21=854i2f0>5<#9>318=k4n05;>40<3`9o>7>5$05:>16b3g;<47?8;:k0`4<72-;<57:?e:l23=<6021b?i>50;&23<<38l1e=:651898m6`6290/=:7541g8j41?28k07d=i0;29 41>2=:n7c?88;3a?>o4mo0;6)?89;63a>h6?10:o65f3dg94?"6?00?j;o34=:810e>mi:18'52?=<9o0b<97:308?l5dm3:1(<96:52f?k70038876g>o3?j0;6)?89;64`>h6?10;76g;7c83>!7013>7982?>o3?h0;6)?89;64`>h6?10976g;7883>!7013>7980?>o3?10;6)?89;64`>h6?10?76g;7683>!7013>7986?>o3??0;6)?89;64`>h6?10=76g;7483>!7013>7984?>o3?=0;6)?89;64`>h6?10376g;6683>!7013>=46`>7983?>o3>?0;6)?89;65<>h6?10:76g;6483>!7013>=46`>7981?>o3>=0;6)?89;65<>h6?10876g;6283>!7013>=46`>7987?>o3>;0;6)?89;65<>h6?10>76g;6083>!7013>=46`>7985?>o3>90;6)?89;65<>h6?10<76g;5g83>!7013>=46`>798;?>o3=l0;6)?89;65<>h6?10276a;4683>>i4km0;66g;8983>>d4j>0;6<4?:1y'5=2=l:1C?o84H2c`?jb52900qo=m8;295?6=8r.:4944?:1y'5=2=kj1C?o84H2c`?M243-;9j7:6a:&f4?4>i6?k0;66sm3`694?5=83:p(<6;:ba8L6d13A9jo6F;3:&26c<31h1/i=4=;h65>5<5;h72>5<858g4>N4j?1C?lm4H518 44a2=3j7)k?:39j03<722c?47>5;h72>5<5<53;294~"60=0ho6F5;|`0=2<72<0;6=u+1969`5=O;k<0D>ol;I60?!75n3>2m6*j0;08m10=831b854?::k65?6=3`;5;n34f?6=3th8m<4?:583>5}#91>1ok5G3c48L6gd3-o;6?5f4783>>o293:17d?8a;29?j70j3:17pl1<729q/=5:5cg9K7g0<@:kh7)k?:39j03<722c>=7>5;h34e?6=3f;5;|`0=c<72=0;6=u+1969gc=O;k<0D>ol;%g3>7=n5;n34f?6=3th8m44?:583>5}#91>1ok5G3c48L6gd3-o;6?5f4783>>o293:17d?8a;29?j70j3:17pl=9483>1<729q/=5:5cg9K7g0<@:kh7)k?:69j03<722c>=7>5;h34e?6=3f;5;|`055<72=0;6=u+1969ga=O;k<0D>ol;%g3>7=n50z&2<15;h6g>5<6=4;:183!7?<3;8<6F>o6?m0;66a>7583>>{e:>>1<7:50;2x 4>3289;7E=m6:J0ef=nl9;I1bg>o3i3:17d;=:188m41c2900c<9;:188yg40:3:187>50z&2<1<6;91C?o84H2c`?l2f2900e8<50;9j52b=831d=::50;9~f716290?6=4?{%3;0?7482B8n;5G3`a8m1g=831b9?4?::k23a<722e:;94?::a6=>=83>1<7>t$0:7>4573A9i:6F>7>5;h34`?6=3f;<87>5;|`1<2<72=0;6=u+1969566<@:h=7E=nc:k7e?6=3`?96=44i05g>5<858275=O;k<0D>ol;h6b>5<>1<75rb3:6>5<3290;w)?74;304>N4j?1C?lm4i5c94?=n=;0;66g>7e83>>i6?=0;66sm29694?2=83:p(<6;:013?M5e>2B8mn5f4`83>>o2:3:17d?8d;29?j70<3:17pl=eg83>1<729q/=5:51228L6d13A9jo6g;a;29?l352900e<9k:188k4132900qo319K7g0<@:kh7d:n:188m04=831b=:j50;9l522=831vn?kk:187>5<7s-;387?<0:J0f3=O;hi0e9o50;9j17<722c:;i4?::m231<722wi>hm50;694?6|,82?6<=?;I1a2>N4ij1b8l4?::k66?6=3`;5;n340?6=3th9io4?:583>5}#91>1=>>4H2`5?M5fk2c?m7>5;h71>5<5<7>54;294~"60=0:?=5G3c48L6gd3`>j6=44i4094?=n9>n1<75`16694?=zj:::6=4;:183!7?<3;8<6F>o6?m0;66a>7583>>{e;9:1<7:50;2x 4>3289;7E=m6:J0ef=nl9;I1bg>o3i3:17d;=:188m41c2900c<9;:188yg4am3:187>50z&2<1<6;91C?o84H2c`?l2f2900e8<50;9j52b=831d=::50;9~f4g0290?6=4?{%3;0?ec3A9i:6F=6=44i5f94?=n=80;66a>7c83>>{e9h<1<7:50;2x 4>32jn0D>l9;I1bg>"b8380e9850;9j0a<722c>=7>5;n34f?6=3th:m84?:583>5}#91>1oi5G3c48L6gd3-o;6?5f4783>>o3l3:17d;>:188k41e2900qo?n4;290?6=8r.:494ld:J0f3=O;hi0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0c0>5<3290;w)?74;ag?M5e>2B8mn5+e181?l212900e9j50;9j14<722e:;o4?::a5d4=83>1<7>t$0:7>fb<@:h=7E=nc:&f4?4>o293:17b?8b;29?xd6i80;694?:1y'5=2=km1C?o84H2c`?!c72;1b8;4?::k7`?6=3`?:6=44o05a>5<54;294~"60=0hh6F6g;6;29?l2c2900e8?50;9l52d=831vn<7i:187>5<7s-;387mk;I1a2>N4ij1/i=4=;h65>5<>i6?k0;66sm21g94?2=83:p(<6;:bf8L6d13A9jo6*j0;08m10=831b8i4?::k65?6=3f;5;|`14a<72=0;6=u+1969ga=O;k<0D>ol;%g3>7=n50z&2<15;h6g>5<=o50;694?6|,82?6nj4H2`5?M5fk2.n<7<4i5494?=n1<729q/=5:5ce9K7g0<@:kh7)k?:39j03<722c?h7>5;h72>5<858``>N4j?1C?lm4$d296>o3>3:17d:k:188m07=831d=:l50;9~f760290?6=4?{%3;0?ec3A9i:6F=6=44i5f94?=n=80;66a>7c83>>{e:9<1<7:50;2x 4>32jn0D>l9;I1bg>"b8380e9850;9j0a<722c>=7>5;n34f?6=3th99;4?:583>5}#91>1oi5G3c48L6gd3-o;6?5f4783>>o3l3:17d;>:188k41e2900qo<:5;290?6=8r.:494ld:J0f3=O;hi0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb377>5<3290;w)?74;ag?M5e>2B8mn5+e181?l212900e9j50;9j14<722e:;o4?::a605=83>1<7>t$0:7>fb<@:h=7E=nc:&f4?4>o293:17b?8b;29?xd5=;0;694?:1y'5=2=km1C?o84H2c`?!c72;1b8;4?::k7`?6=3`?:6=44o05a>5<=7>54;294~"60=0hh6F6g;6;29?l2c2900e8?50;9l52d=831vn?;?:187>5<7s-;387mk;I1a2>N4ij1/i=4=;h65>5<>i6?k0;66sm25d94?2=83:p(<6;:bf8L6d13A9jo6*j0;08m10=831b8i4?::k65?6=3f;5;|`10`<72=0;6=u+1969ga=O;k<0D>ol;%g3>7=n50z&2<15;h6g>5<f183>1<729q/=5:5ce9K7g0<@:kh7)k?:39j03<722c?h7>5;h72>5<858``>N4j?1C?lm4$d296>o3>3:17d:k:188m07=831d=:l50;9~f4cb290?6=4?{%3;0?ec3A9i:6F=6=44i5f94?=n=80;66a>7c83>>{e9ln1<7:50;2x 4>32jn0D>l9;I1bg>"b8380e9850;9j0a<722c>=7>5;n34f?6=3th:in4?:583>5}#91>1oi5G3c48L6gd3-o;6?5f4783>>o3l3:17d;>:188k41e2900qo?jb;290?6=8r.:494ld:J0f3=O;hi0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb367>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb360>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb361>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb362>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb363>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb31e>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb31f>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb31g>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb31`>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0g2>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0g3>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0fe>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0ff>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0fg>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0f`>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0fa>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0fb>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0f:>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0f;>5<3290;w)?74;ag?M5e>2B8mn5G429'57`=<0k0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb0ag>5<3290;w)?74;ag?M5e>2B8mn5+e181?l212900e9j50;9j14<722e:;o4?::a5fe=83>1<7>t$0:7>fb<@:h=7E=nc:&f4?4>o293:17b?8b;29?xd6kk0;694?:1y'5=2=km1C?o84H2c`?!c72;1b8;4?::k7`?6=3`?:6=44o05a>5<54;294~"60=0hh6F6g;6;29?l2c2900e8?50;9l52d=831vn5<7s-;387mk;I1a2>N4ij1/i=4=;h65>5<>i6?k0;66sm1b:94?2=83:p(<6;:bf8L6d13A9jo6*j0;08m10=831b8i4?::k65?6=3f;5;|`2g2<72=0;6=u+1969ga=O;k<0D>ol;%g3>7=n3:187>50z&2<15;h6g>5<6=4;:183!7?<3io7E=m6:J0ef=#m9097d:9:188m1b=831b9<4?::m23g<722wi=n:50;694?6|,82?6nj4H2`5?M5fk2.n<7<4i5494?=n1<729q/=5:5ce9K7g0<@:kh7)k?:39j03<722c?h7>5;h72>5<858``>N4j?1C?lm4$d296>o3>3:17d:k:188m07=831d=:l50;9~f757290?6=4?{%3;0?ec3A9i:6F=6=44i5f94?=n=80;66a>7c83>>{e:;l1<7:50;2x 4>32jn0D>l9;I1bg>"b8380e9850;9j0a<722c>=7>5;n34f?6=3th9>h4?:583>5}#91>1oi5G3c48L6gd3-o;6?5f4783>>o3l3:17d;>:188k41e2900qo<=d;290?6=8r.:494ld:J0f3=O;hi0(h>52:k72?6=3`>o6=44i4394?=h9>h1<75rb30`>5<3290;w)?74;ag?M5e>2B8mn5+e181?l212900e9j50;9j14<722e:;o4?::a67d=83>1<7>t$0:7>fb<@:h=7E=nc:&f4?4>o293:17b?8b;29?xd5:h0;694?:1y'5=2=km1C?o84H2c`?!c72;1b8;4?::k7`?6=3`?:6=44o05a>5<7>55;294~"60=0hi6F6g;6;29?l2?2900e9j50;9j14<722e:;o4?::a6a7=83?1<7>t$0:7>fc<@:h=7E=nc:&f4?4>o3l3:17d;>:188k41e2900qo52:k72?6=3`>36=44i5f94?=n=80;66a>7c83>>{e:jo1<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi>nj50;794?6|,82?6nk4H2`5?M5fk2.n<7<4i5494?=n<10;66g;d;29?l362900c<9m:188yg4dk3:197>50z&2<15;h6;>5<>i6?k0;66sm2bc94?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0o<6F6=4?{%3;0?eb3A9i:6F=6=44i5:94?=n6<729q/=5:53c78L6d13A9jo6g;a;29?l75<3:17b?84;29?xd5jj0;6>4?:1y'5=2=;k?0D>l9;I1bg>o3i3:17d?=4;29?j70<3:17pl=b383>1<729q/=5:51228L6d13A9jo6g;a;29?l352900e<9k:188k4132900qo50z&2<1<6;91C?o84H2c`?l2f2900e8<50;9j52b=831d=::50;9~f7df29086=4?{%3;0?5e=2B8n;5G3`a8m1g=831b=?:50;9l522=831vn?oj:187>5<7s-;387?<0:J0f3=O;hi0e9o50;9j17<722c:;i4?::m231<722wi>o750;194?6|,82?6>l:;I1a2>N4ij1b8l4?::k261<722e:;94?::a6de=83>1<7>t$0:7>4573A9i:6F>7>5;h34`?6=3f;<87>5;|`1f=<72:0;6=u+19697g3<@:h=7E=nc:k7e?6=3`;987>5;n340?6=3th9ml4?:583>5}#91>1=>>4H2`5?M5fk2c?m7>5;h71>5<5<53;294~"60=08n85G3c48L6gd3`>j6=44i007>5<858275=O;k<0D>ol;h6b>5<>1<75rb3`5>5<4290;w)?74;1a1>N4j?1C?lm4i5c94?=n9;>1<75`16694?=zj;k=6=4;:183!7?<3;8<6F>o6?m0;66a>7583>>{e:k?1<7=50;2x 4>32:h>7E=m6:J0ef=n2583>>i6?=0;66sm2`694?2=83:p(<6;:013?M5e>2B8mn5f4`83>>o2:3:17d?8d;29?j70<3:17pl=b583>6<729q/=5:53c78L6d13A9jo6g;a;29?l75<3:17b?84;29?xd5i;0;694?:1y'5=2=9::0D>l9;I1bg>o3i3:17d;=:188m41c2900c<9;:188yg4b>3:197>50z&2<15;h6;>5<>i6?k0;66sm2d794?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;6;29?l2?2900e9j50;9j14<722e:;o4?::a6`5=83?1<7>t$0:7>fc<@:h=7E=nc:&f4?4>o3l3:17d;>:188k41e2900qo52:k72?6=3`>36=44i5f94?=n=80;66a>7c83>>{e:l;1<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi>ih50;794?6|,82?6nk4H2`5?M5fk2.n<7<4i5494?=n<10;66g;d;29?l362900c<9m:188yg4cm3:197>50z&2<15;h6;>5<>i6?k0;66sm2ef94?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<54;294~"60=0hh6F6g;6;29?l2c2900e8?50;9l52d=831vn?8<:187>5<7s-;387mk;I1a2>N4ij1/i=4=;h65>5<>i6?k0;66sm27c94?2=83:p(<6;:bd8L6d13A9jo6*j0;58m10=831b9<4?::k23d<722e:;o4?::a63?=83>1<7>t$0:7>f`<@:h=7E=nc:&f4?1>o6?h0;66a>7c83>>{e;=21<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi?9850;794?6|,82?6nk4H2`5?M5fk2.n<7<4i5494?=n<10;66g;d;29?l362900c<9m:188yg53=3:197>50z&2<15;h6;>5<>i6?k0;66sm35694?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;6;29?l2?2900e9j50;9j14<722e:;o4?::a717=83?1<7>t$0:7>a6<@:h=7E=nc:&f4?1>o293:17d?8a;29?j70j3:17pl<4183>0<729q/=5:5cd9K7g0<@:kh7)k?:39j03<722c?47>5;h6g>5<96=4::183!7?<3in7E=m6:J0ef=#m9097d:9:188m1>=831b8i4?::k65?6=3f;5;|`070<72:0;6=u+19697g3<@:h=7E=nc:k7e?6=3`;987>5;n340?6=3th8?94?:283>5}#91>1?o;4H2`5?M5fk2c?m7>5;h310?6=3f;<87>5;|`06g<72=0;6=u+1969566<@:h=7E=nc:k7e?6=3`?96=44i05g>5<8580f0=O;k<0D>ol;h6b>5<5<54;294~"60=0:?=5G3c48L6gd3`>j6=44i4094?=n9>n1<75`16694?=zj:996=4<:183!7?<39i96F>1<75rb204>5<3290;w)?74;304>N4j?1C?lm4i5c94?=n=;0;66g>7e83>>i6?=0;66sm32394?5=83:p(<6;:2`6?M5e>2B8mn5f4`83>>o6:=0;66a>7583>>{e;;?1<7:50;2x 4>3289;7E=m6:J0ef=n4?:1y'5=2=;k?0D>l9;I1bg>o3i3:17d?=4;29?j70<3:17pl<2283>1<729q/=5:51228L6d13A9jo6g;a;29?l352900e<9k:188k4132900qo==f;297?6=8r.:49450z&2<1<6;91C?o84H2c`?l2f2900e8<50;9j52b=831d=::50;9~f64b29086=4?{%3;0?5e=2B8n;5G3`a8m1g=831b=?:50;9l522=831vn>?i:187>5<7s-;387?<0:J0f3=O;hi0e9o50;9j17<722c:;i4?::m231<722wi??j50;194?6|,82?6>l:;I1a2>N4ij1b8l4?::k261<722e:;94?::a74b=83>1<7>t$0:7>4573A9i:6F>7>5;h34`?6=3f;<87>5;|`011<72<0;6=u+1969g`=O;k<0D>ol;%g3>7=n;=:186>5<7s-;387j?;I1a2>N4ij1/i=48;h65>5<>o6?h0;66a>7c83>>{e;<91<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi?8850;794?6|,82?6nk4H2`5?M5fk2.n<7<4i5494?=n<10;66g;d;29?l362900c<9m:188yg52?3:197>50z&2<15;h6;>5<>i6?k0;66sm34:94?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<57>55;294~"60=0hi6F6g;6;29?l2?2900e9j50;9j14<722e:;o4?::a70g=83?1<7>t$0:7>fc<@:h=7E=nc:&f4?4>o3l3:17d;>:188k41e2900qo=9c;291?6=8r.:494le:J0f3=O;hi0(h>52:k72?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;?h1<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi?;750;794?6|,82?6nk4H2`5?M5fk2.n<7<4i5494?=n<10;66g;d;29?l362900c<9m:188yg5103:197>50z&2<15;h6;>5<>i6?k0;66sm37594?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;6;29?l2?2900e9j50;9j14<722e:;o4?::a733=83?1<7>t$0:7>fc<@:h=7E=nc:&f4?4>o3l3:17d;>:188k41e2900qo=94;291?6=8r.:494le:J0f3=O;hi0(h>52:k72?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;><1<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi?::50;794?6|,82?6nk4H2`5?M5fk2.n<7<4i5494?=n<10;66g;d;29?l362900c<9m:188yg50;3:197>50z&2<15;h6;>5<>i6?k0;66sm36094?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;6;29?l2?2900e9j50;9j14<722e:;o4?::a726=83?1<7>t$0:7>fc<@:h=7E=nc:&f4?4>o3l3:17d;>:188k41e2900qo=9f;291?6=8r.:494le:J0f3=O;hi0(h>52:k72?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;>o1<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi?:m50;794?6|,82?6nk4H2`5?M5fk2.n<7<4i5494?=n<10;66g;d;29?l362900c<9m:188yg50j3:197>50z&2<15;h6;>5<>i6?k0;66sm36c94?3=83:p(<6;:bg8L6d13A9jo6*j0;08m10=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;6;29?l2?2900e9j50;9j14<722e:;o4?::a72>=83?1<7>t$0:7>fc<@:h=7E=nc:&f4?4>o3l3:17d;>:188k41e2900qo=87;291?6=8r.:494le:J0f3=O;hi0(h>52:k72?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;?o1<7;50;2x 4>32jo0D>l9;I1bg>"b8380e9850;9j0=<722c?h7>5;h72>5<858`a>N4j?1C?lm4$d296>o3>3:17d:7:188m1b=831b9<4?::m23g<722wi?l850;194?6|,82?6<<6;I1a2>N4ij1/i=4>b:kg0?6=3`n>6=44o057>5<53;294~"60=0:>45G3c48L6gd3-o;67583>>{e:8:1<7=50;2x 4>328827E=m6:J0ef=#m90:i6gk4;29?lb22900c<9;:188yg7f13:1?7>50z&2<1<6:01C?o84H2c`?!c728o0ei:50;9j`0<722e:;94?::a5<3=8391<7>t$0:7>44>3A9i:6F5;hf6>5<85826<=O;k<0D>ol;%g3>4c1<75fd483>>i6?=0;66sm18194?5=83:p(<6;:00:?M5e>2B8mn5+e182a>oc<3:17dj::188k4132900qo?62;297?6=8r.:494>289K7g0<@:kh7)k?:0g8ma2=831bh84?::m231<722wi=4?50;194?6|,82?6<<6;I1a2>N4ij1/i=4>e:kg0?6=3`n>6=44o057>5<53;294~"60=0:>45G3c48L6gd3-o;67583>>{e91l1<7=50;2x 4>328827E=m6:J0ef=#m90:i6gk4;29?lb22900c<9;:188yg7?m3:1?7>50z&2<1<6:01C?o84H2c`?!c728o0ei:50;9j`0<722e:;94?::a5=b=8391<7>t$0:7>44>3A9i:6F5;hf6>5<85826<=O;k<0D>ol;%g3>4c1<75fd483>>i6?=0;66sm19`94?5=83:p(<6;:00:?M5e>2B8mn5+e182a>oc<3:17dj::188k4132900qo?7a;297?6=8r.:494>289K7g0<@:kh7)k?:0g8ma2=831bh84?::m231<722wi=5750;194?6|,82?6<<6;I1a2>N4ij1/i=4>e:kg0?6=3`n>6=44o057>5<53;294~"60=0:>45G3c48L6gd3-o;67583>>{e91=1<7=50;2x 4>328827E=m6:J0ef=#m90:i6gk4;29?lb22900c<9;:188yg7?>3:1?7>50z&2<1<6:01C?o84H2c`?!c728o0ei:50;9j`0<722e:;94?::a5=3=8391<7>t$0:7>44>3A9i:6F5;hf6>5<85826g=O;k<0D>ol;%g3>701<75fd483>>oc>3:17b?84;29?xd6ik0;694?:1y'5=2=9;h0D>l9;I1bg>"b838=7dj;:188ma3=831bh;4?::m231<722wi>;;50;694?6|,82?6<N4ij1/i=4=2:kg0?6=3`n>6=44ie494?=h9>>1<75rb337>5<2290;w)?74;31`>N4j?1C?lm4$d2965=nl=0;66gk5;29?lb12900ei950;9l522=831vn5<7s-;387?=d:J0f3=O;hi0(h>5219j`1<722co97>5;hf5>5<>oc=3:17dj9:188ma1=831d=::50;9~f70?290>6=4?{%3;0?75l2B8n;5G3`a8 `6=:81bh94?::kg1?6=3`n=6=44ie594?=h9>>1<75rb230>5<4290;w)?74;31=>N4j?1C?lm4$d2954=nl=0;66gk5;29?j70<3:17pl=6383>1<729q/=5:513`8L6d13A9jo6*j0;3:?lb32900ei;50;9j`3<722e:;94?::a640=8391<7>t$0:7>44>3A9i:6F5;hf6>5<85826<=O;k<0D>ol;%g3>4c1<75fd483>>i6?=0;66sm20:94?2=83:p(<6;:00a?M5e>2B8mn5+e1812>oc<3:17dj::188ma0=831d=::50;9~f4d6290?6=4?{%3;0?75j2B8n;5G3`a8 `6=:?1bh94?::kg1?6=3`n=6=44o057>5<55;294~"60=0:>i5G3c48L6gd3-o;6?>4ie694?=nl<0;66gk6;29?lb02900c<9;:188yg7e;3:197>50z&2<1<6:m1C?o84H2c`?!c72;:0ei:50;9j`0<722co:7>5;hf4>5<85826<=O;k<0D>ol;%g3>f11<75fd483>>i6?=0;66sm31a94?5=83:p(<6;:00:?M5e>2B8mn5+e1810>oc<3:17dj::188k4132900qo289K7g0<@:kh7)k?:368ma2=831bh84?::m231<722wi>4<50;794?6|,82?6<N4ij1/i=4=3:kg0?6=3`n>6=44ie494?=nl>0;66a>7583>>{e:>l1<7;50;2x 4>3288o7E=m6:J0ef=#m909?6gk4;29?lb22900ei850;9j`2<722e:;94?::a75d=83?1<7>t$0:7>44c3A9i:6F5;hf6>5<>i6?=0;66sm2g:94?3=83:p(<6;:00g?M5e>2B8mn5+e1811>oc<3:17dj::188ma0=831bh:4?::m231<722wi>4?50;794?6|,82?6<N4ij1/i=4=3:kg0?6=3`n>6=44ie494?=nl>0;66a>7583>>{e:>o1<7;50;2x 4>3288o7E=m6:J0ef=#m909?6gk4;29?lb22900ei850;9j`2<722e:;94?::a75g=83?1<7>t$0:7>44c3A9i:6F5;hf6>5<>i6?=0;66sm2g594?3=83:p(<6;:00g?M5e>2B8mn5+e1811>oc<3:17dj::188ma0=831bh:4?::m231<722wi>4>50;794?6|,82?6<N4ij1/i=4=3:kg0?6=3`n>6=44ie494?=nl>0;66a>7583>>{e:>n1<7;50;2x 4>3288o7E=m6:J0ef=#m909?6gk4;29?lb22900ei850;9j`2<722e:;94?::a75?=83?1<7>t$0:7>44c3A9i:6F5;hf6>5<>i6?=0;66sm2g494?3=83:p(<6;:00g?M5e>2B8mn5+e1811>oc<3:17dj::188ma0=831bh:4?::m231<722wi>5h50;794?6|,82?6<N4ij1/i=4=3:kg0?6=3`n>6=44ie494?=nl>0;66a>7583>>{e:>i1<7;50;2x 4>3288o7E=m6:J0ef=#m909?6gk4;29?lb22900ei850;9j`2<722e:;94?::a6<1=83>1<7>t$0:7>44e3A9i:6F5;hf6>5<5<7s-;387?=b:J0f3=O;hi0(h>5139j`1<722co97>5;hf5>5<85826a=O;k<0D>ol;%g3>fg1<75fd483>>oc>3:17dj8:188k4132900qo=?8;291?6=8r.:494>2e9K7g0<@:kh7)k?:318ma2=831bh84?::kg2?6=3`n<6=44o057>5<55;294~"60=0:>i5G3c48L6gd3-o;6?;4ie694?=nl<0;66gk6;29?lb02900c<9;:188yg4e;3:1>7>50z&2<1<6:11C?o84H2c`?!c728;0ei:50;9l522=831vn?l>:181>5<7s-;387?=8:J0f3=O;hi0(h>5109j`1<722e:;94?::a6d`=8381<7>t$0:7>44?3A9i:6F5;n340?6=3th9mi4?:383>5}#91>1=?64H2`5?M5fk2.n<7?>;hf7>5<85826==O;k<0D>ol;%g3>471<75`16694?=zj;k26=4=:183!7?<3;946F>i6?=0;66sm2`594?4=83:p(<6;:00;?M5e>2B8mn5+e1825>oc<3:17b?84;29?xd5i<0;6?4?:1y'5=2=9;20D>l9;I1bg>"b83;:7dj;:188k4132900qo299K7g0<@:kh7)k?:038ma2=831d=::50;9~f64d29096=4?{%3;0?7502B8n;5G3`a8 `6=981bh94?::m231<722wi??o50;094?6|,82?6<<7;I1a2>N4ij1/i=4>1:kg0?6=3f;<87>5;|`06=<72;0;6=u+196957><@:h=7E=nc:&f4?763`n?6=44o057>5<52;294~"60=0:>55G3c48L6gd3-o;6>1<75rb207>5<5290;w)?74;31<>N4j?1C?lm4$d2954=nl=0;66a>7583>>{e;;81<7<50;2x 4>328837E=m6:J0ef=#m90:=6gk4;29?j70<3:17pl<2183>7<729q/=5:513:8L6d13A9jo6*j0;32?lb32900c<9;:188yg56m3:1>7>50z&2<1<6:11C?o84H2c`?!c728;0ei:50;9l522=831vn?lj:181>5<7s-;387?=8:J0f3=O;hi0(h>5109j`1<722e:;94?::a760=8381<7>t$0:7>44?3A9i:6F5;n340?6=3th:n:4?:483>5}#91>1=?j4H2`5?M5fk2.n<75<>oc?3:17b?84;29?xd6j00;684?:1y'5=2=9;n0D>l9;I1bg>"b838<7dj;:188ma3=831bh;4?::kg3?6=3f;<87>5;|`15`<72<0;6=u+196957b<@:h=7E=nc:&f4?473`n?6=44ie794?=nl?0;66gk7;29?j70<3:17pl=2183>0<729q/=5:513f8L6d13A9jo6*j0;04?lb32900ei;50;9j`3<722co;7>5;n340?6=3th9:<4?:483>5}#91>1=?j4H2`5?M5fk2.n<7?8;hf7>5<>oc?3:17b?84;29?xd4180;65950;2x 4>328=h7E=m6:J0ef=]<<0jw44=8;g950<6;3;h6k4>4;35>4b=u-;:j7;4$003>0=#l10>7)j6:49'`d<23-ni685+db86?!bc2<1/=5>53:&2<4<33-o:685+e386?!c42<1/i94:;%g6>0=#m?0>7)k8:49'a=<23-o2685+e`86?!ce2<1/in4:;%gg>0=#ml0>7)ki:49'b5<23-l:685+f386?!`42<1/j94:;%d6>0=#n?0>7)h8:49'b=<23-l2685+f`86?!`e2<1/jn4:;%dg>0=#nl0>7)hi:49'556==2.:<<4:;%336?3<,8:8685+11691>"68<0>7)??6;78 4602<1/==655:&24<<23-;;m7;4$02a>0=#99i196*>0e86?!77m3?0(<>i:49'546==2.:=<4:;%326?3<,8;8685+10691>"69<0>7)?>6;78 4702<1/=<655:&25<<23-;:m7;4$03a>0=#98i196*>1e86?!76m3?0(>l<:2`2?!bb2<1/=:k51618 4462:1/=?<54:&0f7<4j81/hk4:;h6a>5<>od13:17d?72;29?l7?;3:17d=nf;29?l5e83:17d=7:18'52?=;>1e=:650:9j73<72-;<57=8;o346=4+16;972=i9>21>65f3583>!70139<7c?88;18?l54290/=:75369m52>=<21b??4?:%34=?503g;<47;4;h12>5<#9>31?:5a16:92>=n;90;6)?89;14?k7003=07d1e=:658:9j6`<72-;<57=8;o3496=4+16;904=i9>21<65f4183>!7013>:7c?88;38?l5a290/=:75409m52>=:21b?h4?:%34=?263g;<47=4;h1g>5<#9>318<5a16:90>=n;j0;6)?89;62?k7003?07d=m:18'52?=<81e=:656:9j7d<72-;<57:>;o3421465f5`83>!7013?27c?88;28?l3?290/=:75589m52>=921b9:4?:%34=?3>3g;<47<4;h75>5<#9>31945a16:97>=n=<0;6)?89;7:?k7003>07d;;:18'52?==01e=:655:9j26<72-;<57;6;o3421;65f6083>!7013?27c?88;:8?l07290/=:75589m52>=121b9k4?:%34=?3>3g;<47o4;h7f>5<#9>31945a16:9f>=n=m0;6)?89;7:?k7003i07d;l:18'52?==01e=:65d:9j1g<72-;<57;6;o3421j65f7e83>!7013=h7c?88;28?l1e290/=:757b9m52>=921b;44?:%34=?1d3g;<47<4;h5;>5<#9>31;n5a16:97>=n?>0;6)?89;5`?k7003>07d99:18'52?=?j1e=:655:9j30<72-;<579l;o3421;65f7283>!7013=h7c?88;:8?l15290/=:757b9m52>=121b;<4?:%34=?1d3g;<47o4;h53>5<#9>31;n5a16:9f>=n>l0;6)?89;5`?k7003i07d8k:18'52?=?j1e=:65d:9j2f<72-;<579l;o3421j65f6`83>!7013=h7c?88;33?>o113:1(<96:6a8j41?28;07d87:18'52?=?j1e=:651398m31=83.:;448c:l23=<6;21b:;4?:%34=?1d3g;<47?;;:k51?6=,8=26:m4n05;>43<3`2?6=4+16;93f=i9>21=;54i9194?"6?0079823>=n0;0;6)?89;5`?k7003;376g71;29 41>2>i0b<97:0;8?l>7290/=:757b9m52>=9h10e:h50;&23<<0k2d:;54>b:9j3`<72-;<579l;o345$05:>2e5<#9>31;n5a16:95`=1<7*>7884g>h6?10:j65f8683>!70132=7c?88;28?l>2290/=:75879m52>=921b4n4?:%34=?>e3g;<47>4;h:b>5<#9>314o5a16:95>=n000;6)?89;:a?k7003807d67:18'52?=0k1e=:653:9l=1<72-;<577<;o3421=65`9083>!7013387c?88;08?j?7290/=:75929m52>=;21d4k4?:%34=??43g;<47:4;n:f>5<#9>315>5a16:91>=h1m0;6)?89;;0?k7003<07b7l:18'52?=1:1e=:657:9l=g<72-;<577<;o34<3f3j6=4+16;9=6=i9>21565`9883>!7013387c?88;c8?j??290/=:75929m52>=j21d5:4?:%34=??43g;<47m4;n;5>5<#9>315>5a16:9`>=h1<0;6)?89;;0?k7003o07b6k:18'52?=1:1e=:65f:9lg4<72-;<57m?;o3421=65`b683>!7013h=7c?88;28?jd2290/=:75b79m52>=921dn>4?:%34=?d13g;<47<4;n`1>5<#9>31n;5a16:97>=hj80;6)?89;`5?k7003>07bl?:18'52?=j?1e=:655:9lec<72-;<57l9;o3421;65`ae83>!7013h=7c?88;:8?jgd290/=:75b79m52>=121dmo4?:%34=?d13g;<47o4;ncb>5<#9>31n;5a16:9f>=hi10;6)?89;`5?k7003i07bo8:18'52?=j?1e=:65d:9le3<72-;<57l9;o346=4+16;9f3=i9>21j65`a583>!7013h=7c?88;33?>if;3:1(<96:c48j41?28;07bo=:18'52?=j?1e=:651398kd7=83.:;44m6:l23=<6;21dm=4?:%34=?d13g;<47?;;:m:b?6=,8=26o84n05;>43<3fhn6=4+16;9f3=i9>21=;54ocf94?"6?00i:6`>79823>=hjj0;6)?89;`5?k7003;376amb;29 41>2k<0b<97:0;8?jdf290/=:75b79m52>=9h10co750;&23<2d:;54>b:9lf=<72-;<57l9;o345$05:>g05<#9>31n;5a16:95`=788a2>h6?10:j65`c783>!7013i>7c?88;28?je3290/=:75c49m52>=921do>4?:%34=?e23g;<47<4;na1>5<#9>31o85a16:97>=zj;?m6=4::183!7?<3;9i6F>oc=3:17dj9:188ma1=831d=?;50;9~f4d229086=4?{%3;0?75i2B8n;5G3`a8 `6=9l1bh94?::kg1?6=3f;997>5;|`2f3<72=0;6=u+196957e<@:h=7E=nc:&f4?7a3`n?6=44ie794?=nl?0;66a>2483>>{e:8i1<7=50;2x 4>3288j7E=m6:J0ef=#m90:i6gk4;29?lb22900c<<::188yg46l3:187>50z&2<1<6:j1C?o84H2c`?!c728l0ei:50;9j`0<722co:7>5;n311?6=3th9:=4?:483>5}#91>1=?k4H2`5?M5fk2.n<7?8;hf7>5<>oc?3:17b?=5;29?xu31<0;65uQ487897022m<01?8l:e58970?2m=01?8=:e6897062m>01?;i:e6897072m>0q~:63;2922}Y;jn0R>li;_6:`>X31k1U?ok4^5;;?[23>2T?5n5Q4558Z10>3W9hn6Pm;;_1`7>X3i>1U8l84^5c6?[2f<2T?m>5Q4`08Z1g63W>j<6P;9g9]0<4X30k1U85o4^5::?85e?3n970=n2;72?85>?3?:70=n1;72?85f83?:70=6f;72?85fi3?:70=n9;72?840=3?970<84;71?840;3?970<82;71?84093?970<78;71?84??3?970<76;71?84?=3?970<74;71?84bn3?9703?970f;71?856l3?970=61;3;7>;41808mk5238391d=:;0;19552383912=:;0;19;52383910=:;0;19952383926=:;0;1:?52383924=:;0;1:=5238391c=:;0;19h5238391a=:;0;19n5238391g=:;0;19>523839<2=:;0;1485rs5;4>5<4sW>2;63j57>53z\7e<=:;891h9523009`1=z{=236=4:8z\7<==:;0318;5238:903=:;0=18;523`3903=:;h:18;5238d903=::0?18;5221g903=::9n18;5221a903=::9h18;5221c903=::9318;5221:903=::9=18;52214903=::<<18;52247903=::<>18;52241903=::<818;52243903=::<:18;5225d903=::=o18;52256903=::=918;52250903=::=;18;52252903=:::l18;5222g903=:::n18;5222a903=:9jn18;521ba903=:9jh18;521bc903=:9j318;521b:903=:9j=18;521b4903=:9j?18;521b6903=::m818;522e3903=::jl18;522bg903=::m:18;522bf903=::ji18;522bc903=::j318;522b`903=::l<18;522d7903=::l>18;522d1903=::l818;522d3903=::l:18;522ed903=::mo18;522ef903=::?<18;52271903=::?k18;5227;903=:;><18;52367903=:;>>18;52361903=:;>818;52363903=:;>:18;5237d903=:;>o18;5236f903=:;>i18;5236`903=:;>k18;5236;903=:;>218;52365903=:;?o18;5237f903=:;0;18o5rs560>5<5sW>??63<11823g=z{=3n6=4;9z\7=`=:;h>18;523`0903=:;h918;523`c903=:;h318;52302903=:;9l18;521`5903=:9h<18;521`7903=:9h>18;521`1903=:9h818;521`3903=:9h:18;5218d903=:9o918;521g0903=:9o;18;521g2903=:9ll18;521dg903=:9ln18;521da903=:9lh18;521d3903=:9l:18;521ed903=:9mo18;521ef903=:9mi18;521e`903=:9mk18;521e;903=:9m218;52220903=:::;18;52222903=::;l18;5223g903=::;n18;5223a903=::;h18;5223c903=:;=218;52355903=:;=<18;52357903=:;=>18;52351903=:;=;18;52352903=:;=818;52346903=:;<818;52341903=:;18;5238390f=z{=996=4={_614>;4??0:;o5rs513>5<5sW>:j63<74823g=z{=8m6=4={_62a>;4?=0:;o5rs50f>5<5sW>:h63<72823g=z{=8o6=4={_62g>;4?;0:;o5rs50`>5<5sW>:n63<70823g=z{=8i6=4={_62e>;4?90:;o5rs50b>5<5sW>:563<6g823g=z{=9i6=4={_61<>;4?l0:;o5rs51b>5<5sW>9;63<7e823g=z{=926=4={_612>;4?j0:;o5rs51;>5<5sW>9963<7c823g=z{=9<6=4={_610>;4?h0:;o5rs515>5<5sW>9?63<78823g=z{=9>6=4={_616>;4?10:;o5rs517>5<5sW>9=63<76823g=z{=986=4={_62<>;4>l0:;o5rs50:>5<5sW>:;63<6e823g=z{=:m6=4={_1ff>;4180356s|41f94?4|V:oj70=61;4b?xu38j0;6?uQ3d;896?62?30q~:?b;296~X4m116?4?5699~w16f2909wS=j7:?0=4<1?2wx8=750;0xZ6c13492=789;|q742<72;qU?h:4=2;2>33;:7>52z\0a6=:;0;1495rs526>5<5sW9n>63<908;7>{t<9>1<793237p};0283>7}Y;l:01>7>:908yv27:3:1>vP7<7=081v9>>:181[5cm2785<470:p056=838pR>jk;<1:5?1a3ty8jk4?:3y]7ae<5:3:6:k4}r1ea?6=:rT8ho5238393d=z{:lh6=4={_1g=>;4180=j6s|3g`94?4|V:n370=61;47?xu4nh0;6?uQ3e5896?621i0q~=i9;296~X4l?16?4?57e9~w6`?2909wS=k5:?0=4<0j2wx?k950;0xZ6b33492=796;|q0b3<72;qU?i=4=2;2>2>52z\0`7=:;0;1;:5rs2d7>5<5sW9o=63<90842>{t;o91<793=>7p};1783>7}Y;o;01>7>:668yv26=3:1>vP7<7=0h1v9?;:181[5bn2785<483:p045=838pR>kj;<1:5?153ty?=?4?:3y]7`b<5:3:6:?4}r625?6=:rT8in52383935=z{=;;6=4={_1f1>;4180=i6s|41:94?4|V:nj70=61;4g?xu4nm0;6?uQ3bd896?62?i0q~=i2;296~X4kl16?4?56c9~w454290jw0=m8;342>;5?80?m63=8587e>;5mk0?m63=fd87e>;5j=0?m63=a387e>;4:m0?m63<1e87e>;4180h56s|38:94?5|5:3268?4=2;;>41e3492;7:7;|q0=<<72;q6?47516`896?e2m>0q~=n3;297~;4i=0>=63;4i:0:;o5rs2c7>5<5s49j87?8b:?0e378:05a?85>j3n>7p}6}:;h81=:l4=2c0>07<5:k=6i;4}r1:e?6=7`9>7d6=9>k01>7i:05b?85>j3;<86s|38g94?7fs49j=7?8b:?1=0<6?h16>i<54e9>6a7=nh54e9>6fc=i>54e9>6fb=nm54e9>6fg=n7516c897ee2=n01?k9:5f897c22=n01?k;:5f897c42=n01?k=:5f897c62=n01?k?:5f897ba2=n01?jj:5f897bc2=n01?89:5f897042=n01?8n:05b?84113;4;d:?107<3l2798<4;d:?105<3l279?k4;d:?17`<3l279?i4;d:?17f<3l27:oi4;d:?2gf<3l27:oo4;d:?2gd<3l27:o44;d:?2g=<3l27:o:4;d:?2g3<3l27:o84;d:?2g1<3l2wx?4m50;3685>n3;;4?<0?h63<7587`>;4?:0?h63<7387`>;4?80?h63<7187`>;4>o0?h63<7d87`>;4?m0?h63<7b87`>;4?k0?h63<7`87`>;4?00?h63<7987`>;4?>0?h63<6d87`>;4>m0?h63<928g0>;4180:4?5rs2c6>5<4s49jm7?8a:?0e<<6?h16?l851668yv5f03:1=hu23`c952d<5:;;69j4=22e>1b<5:>369j4=264>1b<5:>=69j4=266>1b<5:>?69j4=260>1b<5:>:6<9n;<174?2c349?>7:k;<160?2c349>>7?8a:?016<3l278984;d:?013<3l2789:4;d:?01=<3l278944;d:?01d<3l278:n4;d:?02g<3l278:l4;d:?02<<3l278:54;d:?022<3l278:;4;d:?020<3l278:94;d:p7d1=838=w0=n9;34f>;6i>0?h63>a787`>;6i<0?h63>a587`>;6i:0?h63>a387`>;6i80?h63>a187`>;61o0?h63>f287`>;6n;0?h63>f087`>;6n90?h63>eg87`>;6ml0?h63>ee87`>;6mj0?h63>ec87`>;6m80?h63>e187`>;6lo0?h63>dd87`>;6lm0?h63>db87`>;6lk0?h63>d`87`>;6l00?h63>d987`>;5;;0?h63=3087`>;5;90?h63=2g87`>;5:l0?h63=2e87`>;5:j0?h63=2c87`>;5:h0?h6s|28494?4|5;3>68?4=3;4>4133ty9584?:4y>6<3=9>h01?87:e6897062m?01?;i:e7897072m?0q~=>1;297~;4990>=63<0g865>;49;0:;95rs22e>5<4s49;j7?8b:?0567}::>?1=:j4=35e>4133ty95>4?:3y>623=9>>01?78:e48yv41n3:1>v3=7587e>;5?:0:;95rs35:>5<5s48<87?8d:?13`<6?=1v?8j:181840;3>j70<82;340>{t:>21<741c3487}::>81=:j4=35`>4133ty9;;4?:3y>627=9>n01?9m:057?xu50:0;6?u229:90d=::1=1=::4}r0;`?6=:r79454>7e9>6<4=9>>0q~<64;296~;5010:;9522859`0=z{;296=4={<0;3?2f3483:7?84:p6=e=838p1?68:05g?84>93;<86s|29394?4|5;2=69o4=3:6>4133ty94o4?:3y>6=0=9>n01?7?:057?xu5090;6?u229790d=::1>1=::4}r0;e?6=:r79484>7e9>6=`=9>>0q~<79;296~;50=0:;i5229g952252z?1ac<3i279ih4>759~w7`32909w0;5n00:;95rs22g>5<5s48nj7?84:?0572wx>h750;0x97cb2=k01?kk:057?xu5n:0;6?u22dg952b<5;l36<9;;|q1a=<72;q6>hj54`9>6`e=9>>0q~52z?1af<3i279io4>759~w7`62909w0;5n?0:;95rs3d3>5<5s48nn7?8d:?1b0<6?=1v?hk:181857:3>j70=?1;340>{t;9=1<741c349;o7?84:p75c=838p1>>=:057?856:3n<7p}=fb83>7}:;9;18l52312952252z?044<6?m16?=l51668yv4aj3:1>v3<0187e>;5no0:;95rs226>5<5s49;<7?8d:?04d<6?=1v?hn:18184an3>j70{t;9>1<741c349;57?84:p755=838p1?hj:05g?85703;<86s|1dc94?3|58k<68?4=0d0>41e34;j57j:;<3bf?b334;jh7j8;|q2=`<72:q6=l9516`8966d2m>01?h6:e78yv7f03:1>v3>a7865>;6i00:;95rs0;g>5<4s4;j:7?8b:?04g9b83>6}:9h?1=:l4=22a>a2<5;l36i94}r3bg?6=?r7:m94:1:?2ea<6?=16=lh5d49>5g7=l?16=o=5d69>5g1=l>16=o75d69~w4?e2908w0?n4;34f>;48h0o963=f68g1>{t9ho1<707<58km6<9;;|q2=d<72:q6=l=516`8966f2m>01?h8:e58yv7e83:1>v3>a3865>;6j80:;95rs0;:>5<4s4;j>7?8b:?04<:43894d428=?7p}>9983>6}:9h;1=:l4=22:>a2<5;l=6i94}r3a0?6=:r7:m=4:1:?2f2<6?=1v<78:18087f83;;5n<0o96s|1c:94?4|583m68?4=0`:>4133ty:5;4?:2y>5<`=9>h01>>7:e6897`22m=0q~<;d;291~;58l0>=63=57823g=::8:1h8522009`1=::8>1h:5rs326>5<4s48;i7?8b:?1=7k:438977728=?7p}=0583>6}::9n1=:l4=3;1>a2<5;=m6i:4}r025?6=:r79<:180847k3;;5?l0o96s|20194?1|5;:i68?4=337>413348::7j:;<02=l516`897?62m>01?9j:e68yv46=3:1>v3=0`865>;59?0:;95rs322>5<4s48;m7?8b:?1=56:438977?28=?7p}=0183>6}::931=:l4=3;3>a2<5;=o6i:4}r02=?6=:r79<54:1:?15d<6?=1v;5?j0o96s|20`94?4|5;:<68?4=33f>4133ty:jh4?:2y>651=9>h01?6i:e68971d2m>0q~<>f;296~;58?0>=63=218231=z{8lo6=4<{<032?70j2794h4k4:?13g>l50;0x97312<;01?:;:05a?xu5;h0;6?u2247914=::=91=:l4}r07g?6=7c9>646=l=16><<5d49>642=l?1v?=6:181842<3?:70<;2;34f>{t:=h1<7=t=377>41e348:>7j9;<020?b23ty9?54?:3y>605==816>9?516`8yv43i3:1>v3=52823g=::8>1h95rs314>5<5s48>>7;>;<074?70j2wx>9750;4x973528=i70<>6;f7?84603n>70<>a;f5?846m3n>70<=0;f6?xu5;?0;6?u2243914=:::l1=:l4}r077c9>64>=l=16>64c=l=16>?>5d59~w7522909w0<:0;72?844m3;61`==816>>j516`8yv43>3:1?v3=4g823g=::8i1h85220f9`0=z{;986=4={<07a?363488o7?8b:p613=838p1?:j:05a?846l3n=7p}>d683>7}:9o919<521d3952d52z?2b7<2927:i=4>7c9~w4c>290?w0?i2;34f>;6i00o863>ac8g1>;6im0o:6s|1e794?4|58l:68?4=0fe>41e3ty:i54?:2y>5c7=9>h01=63>dd823g=z{8o<6=4={<3e4?70j27:mi4k4:p5a5=838p1e783>3}:9ll1=:l4=0ce>a2<58h:6i;4=0`0>a0<58h<6i;4=0`:>a37>52z?2a`<2927:hn4>7c9~w4c2290>w0?je;34f>;6j80o863>b28g1>;6j>0o863>b88g0>{t9m;1<707<58ni6<9m;|q2a1<72=q6=hj516`894d42m>010q~?k0;296~;6mj0>=63>d`823g=z{8o86=4<{<3fg?70j27:n84k5:?2f3{t:;=1<707<5;9;6<9m;|q163<72;q6>9?5509>67`=9>h0q~<=5;296~;5<90>=63=2d823g=z{;8?6=4={<00b?363489h7?8b:p675=838p1?=j:438974d28=i7p}=2383>7}:::n19<5223`952d52z?17f<29279>l4>7c9~w4e42909w0?j1;72?87dl3;41e3ty:o<4?:3y>5a`==816=nl516`8yv7d83:1>v3>dd865>;6kh0:;o5rs0`e>5<5s4;oh7;>;<3`=?70j2wx=ok50;0x94bd2<;01{t9kk1<707<58i?6<9m;|q2g`<728q6=i6516`8yv4ck3:19v3>ce865>;5m?0:;o521979`1=::>l1h:5238397==z{8l?6=4={<3`g?3634;397?84:p5c3=838p1128=?7p}>f783>7}:9jk19<52195952252z?2g<<2927:454>759~w4`?2909w0?l8;72?87?13;<86s|1g;94?4|58i<68?4=0:b>4133ty:jl4?:3y>5f0==816=5l51668yv7aj3:1>v3>c4865>;60j0:;95rs0d`>5<5s4;h87;>;<3;`?70<2wx?;=50;6x97552<;01>8l:05a?87?m3n?70=61;61?xu5=>0;6?u2223914=:91o1=::4}r06{t:07<583:6<9;;|q11g<72;q6>?j5509>5<4=9>>0q~<:c;296~;5:j0>=63>928231=z{;?o6=4={<01f?3634;287?84:p60c=838p1?43|5;n96964=3f2>1><5;im6964=3af>1><5;n;6964=3ag>1><5;ih6964=3ab>1><5;i26964=3aa>1><5;o=6964=3g6>1><5;o?6964=3g0>1><5;o96964=3g2>1><5;o;6964=3fe>1><5;nn6964=3fg>1><5;<:6<9;;|q1e4<72;q6>i<5509>6gb=9>>0q~p1?j>:05a?84b=3?:70<62;f5?84e;3n?7p}=9d83>7}::jl19<522cc952254z?1gc<6?k16>h=5509>6<7=l?16>lh5d59~w7?c2909w06a6==816>ol51668yv4d>3:18v3=d1823g=::l>19<522839`2=::k;1h95rs3;`>5<5s48hh7;>;<0an=50;6x97ec28=i7083n=707c9>6`6==816>5h5d69>6d?=l=1v?76:18184di3?:70{t:j:1<7:t=3ab>41e348oi7;>;<0;a?b2348j97j;;|q1==<72;q6>n75509>6g2=9>>0q~p1?mm:05a?84cn3?:70<7f;f5?84f?3n?7p}=b383>7}::kn18l522c0952252z?1fa<6:=16>ok51668yv4e83:1?v3=bb87e>;5j;0?m63=b18231=z{;h86=4<{<0ag?75<279n?4>7e9>6g5=9>>0q~;5il0:;95rs3`2>5<4s48in7?=4:?1f5<6?m16>o?51668yv4fk3:1?v3=b`87e>;5il0?m63=ab8231=z{;km6=4<{<0ae?75<279mh4>7e9>6d`=9>>0q~;5ih0:;95rs3cg>5<4s48i57?=4:?1ef<6?m16>lj51668yv4f03:1?v3=b987e>;5ih0?m63=a98231=z{;ki6=4<{<0a7e9>6dd=9>>0q~0?m63=a987e>;5i?0:;95rs3c:>5<4s48i;7?=4:?1e=<6?m16>l751668yv4f<3:1?v3=b787e>;5i?0?m63=a58231=z{;k<6=4<{<0a2?75<279m;4>7e9>6d1=9>>0q~;5i;0:;95rs3c6>5<4s48i97?=4:?1e1<6?m16>l;51668yv4f;3:1?v3=b58261=::h81=:j4=3c0>4133ty9ho4?:4y>6`3=9>h01<69:e6894>22m?01?9i:e4896?62:<0q~5<2s48n?7?8b:?2<=2785<4<4:p6a>=83?p1?k=:05a?87?13n?70?78;f6?840l3n<70=61;10?xu5l>0;68u22d3952d<582j6i:4=0::>a3<5;=o6i84=2;2>6455z?1a5<6?k16=5l5d59>5=g=l<16>:m5d69>7<7=;81v?j::18684cn3;8b8g0>;60k0o963=7b8g2>;41808<6s|2e694?3|5;nn6<9m;<3;`?b334;3o7j:;<04f?b13492=7ij516`894>c2m?01?9m:e7896?62;o0q~<97;296~;5>?0>=63=698231=z{;<=6=47{<052?70j279:84k5:?12f279:54k6:?127279:<4k7:?11c=}::?91=:l4=346>a2<5;a3<5;<96i;4=342>a0<5;?m6i84=343>a053z?12d<29279:44:1:?12f<6?=1v?86:18184113;{t;0<1<7?k{<1787:7;<166?2?349>?7:7;<161?2?349>:7:7;<163?2?349>47:7;<16=?2?349>m7:7;<15g?2?349=n7:7;<15e?2?349=57:7;<15?l:18185303?:70=<5;340>{t;:l1<7:t=26;>41e349>m7;>;<13g?b23498:7j;;|q05g<72;q6?995509>762=9>>0q~=0:;o5234;914=:;9h1h:5233a9`1=z{:;j6=4={<172?363498?7?84:p76b=83>p1>:9:05a?85203?:70=?b;f5?855i3n?7p}<1883>7}:;=?19<52320952254z?000<6?k16?895509>75g=l>16??65d59~w67?2909w0=;4;72?85493;<86s|32`94?2|5:>?6<9m;<162?36349;m7j9;<112?b33ty8=:4?:3y>715==816?>>51668yv54i3:18v3<42823g=:;1h95rs236>5<5s49?=7;>;<11a?70<2wx?>650;6x962628=i70=:3;72?85703n<70==0;f7?xu49=0;6?u2352914=:;;n1=::4}r103?6=7c9>704==816?=65d79>74c=l=1v>?9:181853:3?:70==f;340>{t;:31<7:t=261>41e349>87;>;<13=?b13499>7j;;|q06g<72;q6?>;54`9>77d=9>>0q~=<6;296~;4;<0:>952324952253z?071<3i278>o4;a:?06<<6?=1v>4;a:?06<<3i278>:4>759~w64f2908w0=<3;310>;4:00:;i5233c952253z?077<3i278>:4;a:?060<6?=1v><7:180854:3;9863<26823a=:;;21=::4}r117?6=;r78?<4;a:?060<3i278>>4>759~w6412908w0=<1;310>;4:<0:;i52334952253z?075<3i278>>4;a:?064<6?=1v><;:18085483;9863<22823a=:;;>1=::4}r12b?6=;r78>k4;a:?064<3i278=k4>759~w6452908w0==f;310>;4:80:;i52330952253z?06`<3i278=k4;a:?05a<6?=1v>i4>259>74b=9>n01>?j:057?xu4u2346952d<5:<=68?4=3d5>a053z?017<6?k16?;:5509>6c3=l?1v>:n:180852;3;;5n<0o86s|35a94?5|5:?>6<9m;<153?36348m:7j;;|q00a<72:q6?88516`8960?2<;01?h8:e48yv53m3:1?v3<56823g=:;?319<522g59`1=z{:>m6=4<{<162wx?8>50;1x963>28=i70=9b;72?84a03n?7p}<5083>6}:;07<5;l26i:4}r156?6=7c9>5=`=l=16=5k5d49>7<7=<91v>8>:187851i3;918g0>;60o0o963<9080b>{t;?:1<7:t=24:>41e34;2=7j;;<3:4?b23492=7=j;|q01c<72=q6?;6516`894?52m>01<7>:e7896?62:n0q~=:e;290~;4>>0:;o521819`1=:9081h85238397f=z{:?o6=4;{<152?70j27:594k4:?2=6p1>8::05a?87>=3n?70?64;f6?85>939j7p}<5c83>6}:;?>1=:l4=0;6>a3<5:3:6>74}r1:1?6=9:q6?:85499>723=<116?::5499>725=<116?:<5499>727=<116?:>5499>73`=<116?:k5499>72b=<116?:m5499>72d=<116?:o5499>72?=<116?:65499>721=<116?;k5499>73b=<116>;<51668yv5??3:1>v3<77865>;4180h=6s|39494?4|5:=>68?4=2;2><252z?031<292785<462:p7=2=838p1>9<:43896?620;0q~=73;296~;4?;0>=63<908:4>{t;181<707<5:3:65h4}r1;5?6=:r78;=4:1:?0=450;0x960a2<;01>7>:8f8yv5>83:1>v3<7d865>;41802o6s|39d94?4|5:=o68?4=2;2>g`52z?03f<292785<46b:p7=b=838p1>9m:43896?620k0q~=7c;296~;4?h0>=63<908:=>{t;1h1<707<5:3:6464}r1;e?6=:r78;54:1:?0=4<>?2wx?5750;0x96102<;01>7>:848yv5?03:1>v3<6d865>;4180296s|36d94?4|5:=bj7>52z?0=6249~w6?52909w0=63;340>;4180h46s|38694?4|5;3<6i:4=37e>4423ty::94?:3y>5g1=l?16=o;51378yv71>3:1>v3>b88g2>;6j?0:>85rs04;>5<5s48:i7j9;<02g?75=2wx=;o50;0x97472m<01??k:006?x{t<9l1<7{t<9n1<7{t<9i1<7{t<9h1<7{t<9k1<7{t<931<7{t<9=1<7{t<9<1<7{t<9?1<7{t<9>1<7{t<991<7{t<981<7{t<9;1<7{t<9:1<7{t;ol1<7{t;oo1<7{t;oi1<7{t;oh1<7{t;ok1<7{t;o31<7{t;o21<77)=nb;36g>{t;o=1<7{t;o<1<7{t;o?1<7{t;o>1<7{t;o91<7{t<8<1<7{t<8?1<7{t<8>1<7{t<891<7{t<881<7{t<8;1<7{t<8:1<77)=nb;35<>{t<921<7{t;on1<7{t;o81<7{t<121<7{t<0?1<77)=nb;301>{t<0=1<7{t<0o1<7{t{t<:81<7{t<::1<7{t<;l1<7{t<;o1<7{t<;n1<7{t<;i1<7{t<;h1<7{t<;k1<7{t<:h1<7{t<:k1<7{t<:31<7{t<:21<77)=nb;372>{t<:=1<7{t<:<1<7{t<:?1<7{t<:>1<7{t<:91<7{t<;31<7{t<:n1<7{t<=91<787)=nb;37b>{zf1n?6=4={I1bg>{i0m?1<7c?3:1>vFol;|l;`d<72;qC?lm4}o:gf?6=:rB8mn5rn9f`>5<5sA9jo6sa8ef94?4|@:kh7p`7dd83>7}O;hi0qc6kf;296~N4ij1vb5k?:181M5fk2we4h?50;0xL6gd3td3i?4?:3yK7de52zJ0ef=zf1o?6=4={I1bg>{i0l?1<7b?3:1>vFol;|l;ad<72;qC?lm4}o:ff?6=:rB8mn5rn9g`>5<5sA9jo6sa8df94?4|@:kh7p`7ed83>7}O;hi0qc6jf;296~N4ij1vb5h?:181M5fk2we4k?50;0xL6gd3td3j?4?:3yK7de52zJ0ef=zf1l?6=4={I1bg>{i0o?1<7a?3:1>vFol;|l;bd<72;qC?lm4}o:ef?6=:rB8mn5rn9d`>5<5sA9jo6sa8gf94?4|@:kh7p`7fd83>7}O;hi0qc6if;296~N4ij1vb4>?:181M5fk2we5=?50;0xL6gd3td252zJ0ef=zf0:?6=4={I1bg>{i19?1<78?0;6?uG3`a8yk?7?3:1>vFol;|l:4d<72;qC?lm4}o;3f?6=:rB8mn5rn82`>5<5sA9jo6sa91f94?4|@:kh7p`60d83>7}O;hi0qc7?f;296~N4ij1vb4??:181M5fk2we;;o50;3xL6gd3td51zJ0ef=zf>k26=4>{I1bg>{i?hk1<7?tH2c`?xh0ik0;6ol;|l4ec<728qC?lm4}o5a4?6=9rB8mn5rn6`2>5<6sA9jo6sa7c094?7|@:kh7p`8b283>4}O;hi0qc9m4;295~N4ij1vb:l::182M5fk2we;o850;3xL6gd3td51zJ0ef=zf>h26=4>{I1bg>{i?kk1<7?tH2c`?xh0jk0;6ol;|l4fc<728qC?lm4}o5`4?6=9rB8mn5rn6a2>5<6sA9jo6sa7b094?7|@:kh7p`8c283>4}O;hi0qc9l4;295~N4ij1vb:m::182M5fk2we;n850;3xL6gd3td51zJ0ef=zf>i26=4>{I1bg>{i?jk1<7?tH2c`?xh0kk0;6ol;|l4gc<728qC?lm4}o5g4?6=9rB8mn5rn6f2>5<6sA9jo6sa7e094?7|@:kh7p`8d283>4}O;hi0qc9k4;295~N4ij1vb:j::182M5fk2we;i850;3xL6gd3td51zJ0ef=zf>n26=4>{I1bg>{i?mk1<7?tH2c`?xh0lk0;6ol;|l4`c<728qC?lm4}o5f4?6=9rB8mn5rn6g2>5<6sA9jo6sa7d094?7|@:kh7p`8e283>4}O;hi0qc9j4;295~N4ij1vb:k::182M5fk2we;h850;3xL6gd3td51zJ0ef=zf>o26=4>{I1bg>{i?lk1<7?tH2c`?xh0mk0;6ol;|l4ac<728qC?lm4}o5e4?6=9rB8mn5rn6d2>5<6sA9jo6sa7g094?7|@:kh7p`8f283>4}O;hi0qc9i4;295~N4ij1vb:h::182M5fk2we;k850;3xL6gd3td51zJ0ef=zf>l26=4>{I1bg>{i?ok1<7?tH2c`?xh0nk0;6ol;|l4bc<728qC?lm4}o:34?6=9rB8mn5rn922>5<6sA9jo6sa81094?7|@:kh7p`70283>4}O;hi0qc6?4;295~N4ij1vb5>::182M5fk2we4=850;3xL6gd3td3<:4?:0yK7de51zJ0ef=zf1:26=4>{I1bg>{i09k1<7?tH2c`?xh?8k0;67k3:1=vFol;|l;4c<728qC?lm4}o:24?6=9rB8mn5rn932>5<6sA9jo6sa80094?7|@:kh7p`71283>4}O;hi0qc6>4;295~N4ij1vb5?::182M5fk2we4<850;3xL6gd3td3=:4?:0yK7de51zJ0ef=zf1;26=4>{I1bg>{i08k1<7?tH2c`?xh?9k0;66k3:1=vFol;|l;5c<728qC?lm4}o:14?6=9rB8mn5rn902>5<6sA9jo6sa83094?7|@:kh7p`72283>4}O;hi0qc6=4;295~N4ij1vb5<::182M5fk2we4?850;3xL6gd3td3>:4?:0yK7de51zJ0ef=zf1826=4>{I1bg>{i0;k1<7?tH2c`?xh?:k0;65k3:1=vFol;|l;6c<728qC?lm4}o:04?6=9rB8mn5rn912>5<6sA9jo6sa82094?7|@:kh7p`73283>4}O;hi0qc6<4;295~N4ij1vb5=::182M5fk2we4>850;3xL6gd3td3?:4?:0yK7de51zJ0ef=zf1926=4>{I1bg>{i0:k1<7?tH2c`?xh?;k0;64k3:1=vFol;|l;7c<728qC?lm4}o:74?6=9rB8mn5rn962>5<6sA9jo6sa85094?7|@:kh7p`74283>4}O;hi0qc6;4;295~N4ij1vb5:::182M5fk2we49850;3xL6gd3td38:4?:0yK7de51zJ0ef=zf1>26=4>{I1bg>{i0=k1<7?tH2c`?xh?3k3:1=vFol;|l;0c<728qC?lm4}o:64?6=9rB8mn5rn972>5<6sA9jo6sa84094?7|@:kh7p`75283>4}O;hi0qc6:4;295~N4ij1vb5;::182M5fk2we48850;3xL6gd3td39:4?:0yK7de47>51zJ0ef=zf1?26=4>{I1bg>{i02k3:1=vFol;|l;1c<728qC?lm4}o:54?6=9rB8mn5rn942>5<6sA9jo6sa87094?7|@:kh7p`76283>4}O;hi0qc694;295~N4ij1vb58::182M5fk2we4;850;3xL6gd3td3::4?:0yK7de51zJ0ef=zf1<26=4>{I1bg>{i0?k1<7?tH2c`?xh?>k0;61k3:1=vFol;|l;2c<728qC?lm4}o:44?6=9rB8mn5rn952>5<6sA9jo6sa86094?7|@:kh7p`77283>4}O;hi0qc684;295~N4ij1vb59::182M5fk2we4:850;3xL6gd3td3;:4?:0yK7de51zJ0ef=zf1=26=4>{I1bg>{i0>k1<7?tH2c`?xh??k0;60k3:1=vFol;|l;3c<728qC?lm4}o:;4?6=9rB8mn5rn9:2>5<6sA9jo6sa89094?7|@:kh7p`78283>4}O;hi0qc674;295~N4ij1vb56::182M5fk2we45850;3xL6gd3td34:4?:0yK7de51zJ0ef=zf1226=4>{I1bg>{i01k1<7?tH2c`?xh?0k0;6?k3:1=vFc290:wE=nc:m<=c=83;pD>ol;|l;5<6sA9jo6sa88094?7|@:kh7p`79283>4}O;hi0qc664;295~N4ij1vb57::182M5fk2we44850;3xL6gd3td35:4?:0yK7de51zJ0ef=zf1326=4>{I1bg>{i00k1<7?tH2c`?xh?1k0;6>k3:1=vFol;|l;=c<728qC?lm4}o:b4?6=9rB8mn5rn9c2>5<6sA9jo6sa8`094?7|@:kh7p`7a283>4}O;hi0qc6n4;295~N4ij1vb5o::182M5fk2we4l850;3xL6gd3td3m:4?:0yK7de51zJ0ef=zf1k26=4>{I1bg>{i0hk1<7?tH2c`?xh?ik0;6fk3:1=vFol;|l;ec<728qC?lm4}o:a4?6=9rB8mn5rn9`2>5<6sA9jo6sa8c094?7|@:kh7p`7b283>4}O;hi0qc6m4;295~N4ij1vb5l::182M5fk2we4o850;3xL6gd3td3n:4?:0yK7de51zJ0ef=zf1h26=4>{I1bg>{i0kk1<7?tH2c`?xh?jk0;6ek3:1=vFol;|l;fc<728qC?lm4}o:`4?6=9rB8mn5rn9a2>5<6sA9jo6sa8b094?7|@:kh7p`7c283>4}O;hi0qc6l4;295~N4ij1vb5m::182M5fk2we4n850;3xL6gd3td3o:4?:0yK7de51zJ0ef=zf1i26=4>{I1bg>{i0jk1<7?tH2c`?xh?kk0;6dk3:1=vFol;|l;gc<728qC?lm4}o:g4?6=9rB8mn5rn9f2>5<6sA9jo6sa8e094?7|@:kh7p`7d283>4}O;hi0qpsr@AAxe2e==ml>?i==}ABA5{GHYqvLM \ No newline at end of file +$5cg4g<,[o}e~g`n;"2*413&;$>"9 > %0:?*rjx&Uhk"hffn]{hk~X=88s?;Q=cmi\73rh91$ekb?40493456712:;<=>?01274>6789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123454<80;0=>5>.130?46=AGZ^X7OKDSC?=?699o1:<7GAPTV9twi`Wlg{xtQ{hsgpl9?=878=7<>5IORVP?vugnUna}zv_ujqavnXizyn~y26:1<12>772@D[YY4rne\ahvsqV~c~h}g_ogdeqc;13:5=n5>0;MVPUSS2{nThlzn_bmvjq:>294:>6?9:HLSQQ112922?IR\Y__6IAN<0794;733821CXZ_UU8gkpr;9>0;2<5=2:020>44;:;:7?4FNQWW>AOWI5;1<3?=;38LQQVR\3ND\L2>:1<26>552@D[YY4KIC>05?699:18>7AZTQWW>AIE4:;1<3?=;249MKVR\3nbb1=::1AIWJ591<3:45E765>053?3?7;76659;077331O3M<564:;34<4<1?>05;86139:>LHW]]0JHI\M<983:4b<13CE\XZ5psmd[cskdV~c~h}g<983:72<13CE\XZ5psmd[cskdV~c~h}g_`qpawr;03:5>956:HLSQQ?=G\^[YY4kauc\gjsi|521<3?m;88LQQVR\3}ySio{a^alqkr;03:546OKDSC?4;>GCL[K78364AEFQE93902KOH_O36?:8EABUI5=546OKDSC?<;gGCL[H78364AEFQF93902KOH_L36?:8EABUJ5=5m6OKDS@?E53JO:>6MGEBI\HLEBFZOTXT^J2:AJ0>EKCH>0OAEM3:AOV<=DGDGBXYKK159@KWCXOLDN^LZFOO]JJCI03JXNMYKK1:F1?AO13MCJ0=08;EKB8469?2NBM1?>>69GMD:6:7=0HDO312<4?AOF48>556JFA=36>5803MCJ0<;16:FJE979>2NBM1<16:FJE959>2NBM1:16:FJE939>2NBM1816:FJE919>2NBM1616:FJE9?9>2NBN1>17:FJF9776>1OEO2>1?58@LD;9;4<7IGM<01=3>BNJ5;?2:5KIC>21;169GMG:617<0HDL31?58@LD;:94<7IGM<33=3>BNJ5892:5KIC>17;1908;EKA8739?2NBN1<9>69GMG:5?7=0HDL329<4?AOE4;35:6JFB=0=3>BNJ59;245KIC>05?69?2NBN1=>>79GMG:46?1OEO2;>79GMG:26?1OEO29>79GMG:06?1OEO27>79GMG:>6>1OE]O30?;8@LVF480;2:5KIQC?5;189GMUD;;3:5;6JFPC>0:3=CGH6;2:5KO@>24;169GKD:6<730HBO31483:2=CGH6:9384DNC?5;0384DNC?7;01OCO2>3?58@JD;9=4<7IAM<07=3>BHJ5;=2:5KOC>23;12NDN1?17:FLF9476>1OCO2=1?58@JD;:;4<7IAM<31=3>BHJ58?2:5KOC>11;1;08;EMA8719?2NDN1<7>69GKG:517<0HBL32?58@JD;;9427IAM<2394;119:FLTD:6294<7IA_A=3=3>BHXK6;2:5KOQ@?5;1@fdzo:7J=4GOF1?L653@;97D<=;H1;?LHN\YU;<55FNHVS[57?3@DBX]Q?299JJLRWW9937D@FTQ]30==NF@^[S=;7;HLJPUY7>11BBDZ__15:?LHN\Z^JXH94IOKW[5603@DBXR>>7:KMMQY7:>1BBDZP0258MKOSW9><7D@FT^263>OIA]U;::5FNHV\421?2CEEYQ?A69JJLRX8K=0ECG[_1A4?LHN\V:O;6GAIU]3A2=NF@^T7:KMMQY6:>1BBDZP1258MKOSW8><7D@FT^363>OIA]U:::5FNHV\521?2CEEYQ>A69JJLRX9K=0ECG[_0A4?LHN\V;O;6GAIU]2A2=NF@^T=K94IOKW[7603@DBXR<>7:KMMQY5:>1BBDZP2258MKOSW;><7D@FT^063>OIA]U9::5FNHV\621?2CEEYQ=A69JJLRX:K=0ECG[_3A4?LHN\V8O;6GAIU]1A2=NF@^T>K94IOKW[6603@DBXR=>7:KMMQY4:>1BBDZP3258MKOSW:><7D@FT^163>OIA]U8::5FNHV\72168;HLJPZ5>?2CEEYQ2F^X?QC4:NVP60JR\=UG96C\GNL6?HS_KPi0Ald`rWgqwliik2Gbbb|Yesqjkk4;;O3341=I998?7C??459M55343G;:86@>1968J47>;2D:>95A1327?K759=1E=?<;;O3171=I9;>?7C?=559M57033G;9;95A13:7?K751:1E=>:4N0130>H6;8>0B<==4:L27623468J451<2D:?:=4N060?K72;2D::>5A1618J4>43G;2?6@=029M645H50:1E>4=4N220?K56;2D8>>5A3218J6243G9>?6@<629M725;N08KN7UNEVID@AG\INL\GMCDC?1XCX\LE69PVSGKWH=0__XNL^@7?VUUI=1X__L;;U[SA64<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?01]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3457XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:9S_k|umv277=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwY`kVrd~=>?3^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\vaYwf}xTknQwos2341YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW{nT|cz}_fa\|jt789?T^h}zlu306>S7'nxm"h gbz-gim'Drd~R|k_qlwvZadWqey<=>9_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]q`Zvi|{UloRv`r1233ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtXzmU{by|Pgb]{kw6781UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=>PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^uq[uhszVmhSua}0122[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYpzVzexQhc^zlv567:VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT{Qnup\cfYg{:;<>Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_vp\tkruWniTtb|?016\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZquWyd~Ril_ymq4562W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{U|~R~ats]dgZ~hz9:;:R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pws]sjqtXojUsc>?06]Qavsk|88:7X> gsd-vc)`kq$h`fv re]sjqtXj`d7=3<>;T2,cw`)zo%lou lljz,vaYwf}xTnd`32?02?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl?7;463\:$kh!rg-dg}(ddbr$~iQnup\flh;<78:7X> gsd-vc)`kq$h`fv re]sjqtXj`d793<>;T2,cw`)zo%lou lljz,vaYwf}xTnd`36?02?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl?3;463\:$kh!rg-dg}(ddbr$~iQnup\flh;078:7X> gsd-vc)`kq$h`fv re]sjqtXj`d753 gsd-vc)`kq$h`fv re]sjqtXj`dT9?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ9219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^514>S7'nxm"h gbz-gim'{nT|cz}_ckm[=473\:$kh!rg-dg}(ddbr$~iQnup\flhX1;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0104?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789::>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123571<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?2005?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt78999;6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0120670<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<9<8;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34526:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?5358Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678<;9:6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}01256f=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;:S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:==;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123371<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<:?=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm30?03?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb>2:76<]9%l~k }f.e`|+ekcq%yhR~ats]dg949:91^<"i}f/pe+be&jf`t"|k_qlwvZad4:49<6[?/fpe*w`(ojr%oaew/sf\tkruWni783328Q5)`zo$yj"ilx/aoo})ulVzexQhc=4=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`828582_;#j|i.sd,cf~)keas#jPpovq[be;078;7X> gsd-vc)`kq$h`fv re]sjqtXoj622>f:W3+bta&{l$knv!cmi{+wbXxg~ySjmP10d8Q5)`zo$yj"ilx/aoo})ulVzexQhc^02b>S7'nxm"h gbz-gim'{nT|cz}_fa\74`<]9%l~k }f.e`|+ekcq%yhR~ats]dgZ26n2_;#j|i.sd,cf~)keas#jPpovq[beX=8l0Y=!hrg,qb*adp'iggu!}d^rmpwY`kV<:j6[?/fpe*w`(ojr%oaew/sf\tkruWniT;f:W3+bta&{l$knv!cmi{+wbXxg~ySjmP9348Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;878=7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh<0<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo585>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>0:70<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlm783<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8085>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk181279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:06;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi38?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`404996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^211>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV;996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^011>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV9996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^611>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV?996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^411>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV=996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^:11>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV3956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2848512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><3<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0>0=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb64=4956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2808512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><7<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0:0=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6414956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f28<8502_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj>_00;?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;T>?64U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4Y4:11^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1^61<>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:S8<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X>;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]46==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R6=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W08>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0106?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw67888>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0306?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw678:8>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0506?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw678<8>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0706?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw678>8>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0902?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?4;463\:$kh!rg-dg}(ddbr${Qnup\flh;978:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d7>3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`33?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?0;463\:$kh!rg-dg}(ddbr${Qnup\flh;=78:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d7:3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`37?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?<;473\:$kh!rg-dg}(ddbr${Qnup\flhX8;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU:>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR<=0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_203?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\076<]9%l~k }f.e`|+ekcq%|~R~ats]amkY2:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV<9<6[?/fpe*w`(ojr%oaew/vp\tkruWkceS: gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?012263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;=?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234475>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>=269V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567:88=7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01113>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:8>?84U1-dvc(un&mht#mcky-tvZvi|{UiecQwos2341403\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=:>279V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567=;=0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?04312>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:=>n5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r123247X[^:9o6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012554YT_88<7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?014163=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;;?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos23427582_;#j|i.sd,cf~)keas#z|Ppovq[be;878;7X> gsd-vc)`kq$h`fv ws]sjqtXoj6:2?>4U1-dvc(un&mht#mcky-tvZvi|{Ulo1<1219V4*aun'xm#jmw.bnh|*quWyd~Ril<2<14>S7'nxm"h gbz-gim'~xT|cz}_fa?0;473\:$kh!rg-dg}(ddbr${Qnup\cf:26;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k5<5>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh0:0=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm38?3e?P6(o{l%~k!hcy,`hn~({U{by|Pgb]35c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[47a3\:$kh!rg-dg}(ddbr${Qnup\cfY59o1^<"i}f/pe+be&jf`t"y}_qlwvZadW:;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU?=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS8?i;T2,cw`)zo%lou lljz,swYwf}xTknQ91g9V4*aun'xm#jmw.bnh|*quWyd~Ril_63e?P6(o{l%~k!hcy,`hn~({U{by|Pgb];63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn6;2?84U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde?5;413\:$kh!rg-dg}(ddbr${Qnup\cfYf{{ol0?0=6:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfc959:?1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyij2;>348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;=78=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<7<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo5=5>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>;:73<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\773<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT8?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\173<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT:?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\373<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT4?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:76;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>2:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2=>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8682?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:36;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>6:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<29>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86<2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:?6;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]36==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012360=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89::>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012160=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:8>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012760=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:>>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012560=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:!re-dv4(un~l#@czx^PBIZTCWLDTJZH[10]277=R8&myj#|i/fn3*wb(o{;%~kyit.Onq}YUIDUYHRKA_GUEP47X:;l0Y=!hrg,qb*ak8'xo#j|>.sdtbq)Je|rT^LCPRDELQQYBF8;8=6[?/fpe*w`(oe:%~i!hr0,qbr`s'Dg~tR`jxu]escrX{}ki!re-dv4(un~l#@czx^lf|qYao~Tyo{e331`>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj<1<1`>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj<0<1g>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_10`?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykP13:8Q5)`zo$yj"ic0/pg+bt6&{l|jy!jmqvz[cqa|Vli>:5Z0.eqb+ta'nf;"j gs3-vcqa|&of|ywPfvdw[l4b3\:$kh!rg-dh5(ul&my=#|iwgv,ahvsqVl|jyQf_np34565n2_;#j|i.sd,ci6)zm%l~< }fvdw+`kw|pUm{kzPi^mq45679;n0Y=!hrg,qb*ak8'xo#j|>.sdtbq)imq~Tjzh{_rvbp`:76;n0Y=!hrg,qb*ak8'xo#j|>.sdtbq)imq~Tjzh{_rvbp`:66;30Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&ij~waeu>3:7?<]9%l~k }f.eo4+tc'nxj#||tr-`4*efz{seiy2>>3;8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.abvwim}692?74U1-dvc(un&mg<#|k/fpbw+tt|z%h<"mnrs{maq:46;l0Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&mfyu hmZ2^*bk6&d;9j6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$k`{w.foX5X(`ez$f?h4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"ibuy,di^4Z&ngx"`}=f:W3+bta&{l$ka>!re-dvdu)zz~x#n> glw{*bk\;T$la~ bs3d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.enq}(`eR>V"jc|.lq17>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4:76;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&|:0<0=3:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0>1:75<]9%l~k }f.eo4+tc'nxj#||tr-`4*p64:49?6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$z<2;>3`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.t2[5Yffm:;<=?=b:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0]2[dhc89:;=?l4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"x>_3]bja6789;9n6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$zS7'nxm"h gm2-va)`zhy%~~z|/b3,gdtuqgo0<0=9:W3+bta&{l$ka>!re-dvdu)zz~x#n? c`pq}kcs4;4956[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$ol|}yogw8685n2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(ods"jcT0\,di4(j9;l0Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&mfyu hmZ3^*bkt&dy9j6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$k`{w.foX6X(`ez$f?h4U1-dvc(un&mg<#|k/fpbw+tt|z%h="ibuy,di^5Z&ngx"`}=f:W3+bta&{l$ka>!re-dvdu)zz~x#n? glw{*bk\<3<17>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4:46;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&|:090=b:W3+bta&{l$ka>!re-dvdu)zz~x#n? v0]3[dhc89:;=?l4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x>_0]bja6789;9n6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$zQnne234575j2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~8U?Sl`k0123576<]9%l~k }f.eo4+tc'nxj#||tr-`khv7:91^<"i}f/pe+bj7&{n$ko|.sqww*ehey;956[?/fpe*w`(oe:%~i!hr`q-vvrt'{kfShctx]efZo482_;#j|i.sd,ci6)zm%l~l}!rrvp+wgjWlg{xtQib^k\kw67899:7X> gsd-vc)`d9$yh"i}ar,qwqu(zhgTi`~{y^da[lYhz9:;<<<<;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw61=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf};986[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at307?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphs;;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz;259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq35<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex;<;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw372<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~3>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu;1=>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0=0=c:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~494T~y<6;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[f;978h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?5;Yu|;30Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>1:7e<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2=>^pw6<=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1=12b9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq595Sz=9:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4=49o6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az818Xz}827X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?1;4d3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw35?]qp7?<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot29>3a8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6=2R|{289V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5=5>n5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}919W{~956[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az8=85k2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<9<\vq4f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSua}<1<1e>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1?12`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{692?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;;78j7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8185i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=7=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc29>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx7;3::Zts9o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;87;m7X> gsd-vc)`d9$yh"|nup,gjsi|5;5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~7>3?i;T2,cw`)zo%l`= }d.psjqt(kfex1=11g9V4*aun'xm#jb?.sf,vuhsz&idycz34?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=7=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?2;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9199o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;07;m7X> gsd-vc)`d9$yh"|nup,gjsi|535=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T<e:W3+bta&{l$ka>!re-qtkru'je~byQ<1d9V4*aun'xm#jb?.sf,vuhsz&idyczP40g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_43f?P6(o{l%~k!hl1,q`*twf}x$ob{at^42a>S7'nxm"h gm2-va)uxg~y#naznu]45`=R8&myj#|i/fn3*wb(zyd~"m`uov\<4c<]9%l~k }f.eo4+tc'{zex!lotlw[<453\:$kh!rg-dh5(ul&x{by| cnwmpZb64949>6[?/fpe*w`(oe:%~i!}povq+firf}Uo=1?1239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>1:74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;;7897X> gsd-vc)`d9$yh"|nup,gjsi|Vn:090=2:W3+bta&{l$ka>!re-qtkru'je~byQk1=7=67=R8&myj#|i/fn3*wb(zyd~"m`uov\`4:16;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;7;3<=;T2,cw`)zo%l`= }d.psjqt(kfexRj><9<16>S7'nxm"h gm2-va)uxg~y#naznu]g59?9:81^<"i}f/pe+bj7&{n$~}`{r.alqkrXl8U;><5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th209V4*aun'xm#jb?.sf,vuhsz&idyczPd0]164=R8&myj#|i/fn3*wb(zyd~"m`uov\`4Y4:81^<"i}f/pe+bj7&{n$~}`{r.alqkrXl8U?><5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th/bcqv|hb|5:5>45Z0.eqb+ta'nf;"z| gvcp*rus{&i:#no}rxlfp979:01^<"i}f/pe+bj7&~x$kzo|.vqww*e6'jky~t`jt=0=6<=R8&myj#|i/fn3*rt(o~kx"z}{s.a2+fguzpdnx1=12g9V4*aun'xm#jb?.vp,crgt&~y"m>/fov|+ajS9W%k`?!m00e?P6(o{l%~k!hl1,tv*apiz$|y} c0-dip~)odQ:Q#ibs/op6c=R8&myj#|i/fn3*rt(o~kx"z}{s.a2+bkrp'mfW?S!glq-iv4a3\:$kh!rg-dh5(pz&m|m~ xsuq,g4)`e|r%k`U<]/enw+kt:o1^<"i}f/pe+bj7&~x$kzo|.vqww*e6'ng~t#ib[5_-chu)ez887X> gsd-vc)`d9$|~"ixar,twqu(k8%}=1>1229V4*aun'xm#jb?.vp,crgt&~y"m>/w3?5;443\:$kh!rg-dh5(pz&m|m~ xsuq,g4)q9585>>5Z0.eqb+ta'nf;"z| gvcp*rus{&i:#{?33?00?P6(o{l%~k!hl1,tv*apiz$|y} c0-u5929:k1^<"i}f/pe+bj7&~x$kzo|.vqww*e6';T?000a?P6(o{l%~k!hl1,tv*apiz$|y} c0-u5Z5Xign;<=>>2c9V4*aun'xm#jb?.vp,crgt&~y"m>/w3\0Zhh|9:;<<<6;T2,cw`)zo%l`= xr.etev(p{}y$o?!laspzj`r;87827X> gsd-vc)`d9$|~"ixar,twqu(k;%hm|vndv?5;4>3\:$kh!rg-dh5(pz&m|m~ xsuq,g7)di{xrbhz32?0:?P6(o{l%~k!hl1,tv*apiz$|y} c3-`ewt~fl~7?32g9V4*aun'xm#jb?.vp,crgt&~y"m=/fov|+ajS8W%k`}!mr0e?P6(o{l%~k!hl1,tv*apiz$|y} c3-dip~)odQ9Q#ibs/op6c=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+bkrp'mfW>S!glq-iv4a3\:$kh!rg-dh5(pz&m|m~ xsuq,g7)`e|r%k`U;]/enw+kt::1^<"i}f/pe+bj7&~x$kzo|.vqww*e5';7<3<<;T2,cw`)zo%l`= xr.etev(p{}y$o?!y1=3=66=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+s7;:7887X> gsd-vc)`d9$|~"ixar,twqu(k;%}=1=1229V4*aun'xm#jb?.vp,crgt&~y"m=/w3?0;4e3\:$kh!rg-dh5(pz&m|m~ xsuq,g7)q9V:Tmcj?01226g=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+s7X9Vkeh=>?000a?P6(o{l%~k!hl1,tv*apiz$|y} c3-u5Z4Xign;<=>>2c9V4*aun'xm#jb?.vp,crgt&~y"m=/w3\7Zgil9:;<<=5Z0.eqb+ta'nf;"z| gvcp*rus{&ida}?=0:W3+bta&{l$ka>!ws-dsdu)z~x#nabp30;?P6(o{l%~k!hl1,tv*apiz$|y} r`o\bpjkWohTe?;4U1-dvc(un&mg<#y}/fubw+qt|z%ym`Qiumn\m7e<]9%l~k }f.eo4+qu'n}j#y|tr-qehYa}efTeRa}01236a=R8&myj#|i/fn3*rt(o~kx"z}{s.pbiZ`rdeUbSb|?01225a=R8&myj#|i/fn3*rt(zhgT{Qjn^k266=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}8?7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{1368Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkr5:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by==4:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp1433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d9?:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov561=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}=986[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at90:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7<32:Zts:01^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=0=6f=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1<1_sv1=>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir0>0=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4:4T~y<6;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;<78h7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?0;Yu|;30Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPcx>6:7e<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2:>^pw6<=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1812b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5<5Sz=9:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4>49o6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az828Xz}8j7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8585i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=3=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc2=>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7?35:7g<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|37?0b?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey050=d:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZ~hz525Sz>f:W3+bta&{l$ka>!ws-ttkru'je~by2?>0d8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{<0<2b>S7'nxm"h gm2-sw)pxg~y#naznu>1:4`<]9%l~k }f.eo4+qu'~zex!lotlw8686n2_;#j|i.sd,ci6){%||cz}/bmvjq:368l0Y=!hrg,qb*ak8'}y#z~ats-`kphs4<4:j6[?/fpe*w`(oe:%{!xpovq+firf}6=2f:W3+bta&{l$ka>!ws-ttkru'je~by27>0g8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_13f?P6(o{l%~k!hl1,tv*qwf}x$ob{at^32a>S7'nxm"h gm2-sw)pxg~y#naznu]15`=R8&myj#|i/fn3*rt(yd~"m`uov\74c<]9%l~k }f.eo4+qu'~zex!lotlw[17b3\:$kh!rg-dh5(pz&}{by| cnwmpZ36m2_;#j|i.sd,ci6){%||cz}/bmvjqY19l1^<"i}f/pe+bj7&~x${}`{r.alqkrX?8o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW1897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:0=0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=3=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:56;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7?3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><5<16>S7'nxm"h gm2-sw)pxg~y#naznu]g5939:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl86=2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?37?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28=8592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V:9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo=R?=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^015>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z5592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V>9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo=R;=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^415>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z1592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V29>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>1>1239V4*aun'xm#jb?.vp,suhsz&idyczPd3>2:74<]9%l~k }f.eo4+qu'~zex!lotlw[a4;:7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn90>0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk2=6=67=R8&myj#|i/fn3*rt(yd~"m`uov\`7:26;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm87:3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj=<6<16>S7'nxm"h gm2-sw)pxg~y#naznu]g69>9:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U;><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?Q>209V4*aun'xm#jb?.vp,suhsz&idyczPd3]164=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y4:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U?><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?Q:209V4*aun'xm#jb?.vp,suhsz&idyczPd3]564=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y0:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U3=;5Z0.eqb+ta'dof#iazt^k\440<]9%l~k }f.ofi*bh}}UbS1^<"i}f/pe+hcj'me~xRgP1034?P6(o{l%~k!bel-gkprXaV;9=:5Z0.eqb+ta'dof#iazt^k\56703\:$kh!rg-nah)cg|~TeR?;169V4*aun'xm#`kb/emvpZoX9<;<7X> gsd-vc)jmd%ocxzPi^3552=R8&myj#|i/lgn+air|VcT=:?9;T2,cw`)zo%fi`!kotv\mZ46>2_;#j|i.sd,i`k(lfSdQ<179V4*aun'xm#`kb/emvpZoX<8<0Y=!hrg,qb*kbe&ndyyQf_435?P6(o{l%~k!bel-gkprXaV<::6[?/fpe*w`(elg$hb{{_h]453=R8&myj#|i/lgn+air|VcT4<84U1-dvc(un&gna"j`uu]j[<7>3\:$kh!rg-nah)cg|~Tahc30?3b?P6(o{l%~k!bel-gkprXelg7==0>a:W3+bta&{l$ahc dnww[hcj48;5=l5Z0.eqb+ta'dof#iazt^ofi97568k0Y=!hrg,qb*kbe&ndyyQbel>27;7f3\:$kh!rg-nah)cg|~Tahc315<2e>S7'nxm"h mdo,`jssWdof0<;11`9V4*aun'xm#`kb/emvpZkbe5;=2 gsd-vc)jmd%ocxzPmdo?5;7>3\:$kh!rg-nah)cg|~Tahc32?3:?P6(o{l%~k!bel-gkprXelg7?3?6;T2,cw`)zo%fi`!kotv\i`k;<7;27X> gsd-vc)jmd%ocxzPmdo?1;7>3\:$kh!rg-nah)cg|~Tahc36?3:?P6(o{l%~k!bel-gkprXelg7;3?6;T2,cw`)zo%fi`!kotv\i`k;07;27X> gsd-vc)jmd%ocxzPmdo?=;0b3\:$kh!rg-nah)`jd$ln`i!gcode+h`mji%n`i bmi\i`kXoldn~lz`r.tbhlb)kz~y#oblnms_5[)zhg%~"x=_omjjlr)zhg$h}=9x0:-vdk6j2_;#j|i.sd,i`k(|dzT~lcPre]fj4e<]9%l~k }f.ofi*rjxVxjaR|k_dl256=R8&myj#|i/scn[wbXmg;<7X> gsd-vc)uidUyijazt^gm56=R8&myj#|i/scn[rtXmg;o7X> gsd-vc)u{}hgg"|k_sqw[duumn8;7X> gsd-vc)u{}hgg"|k_sqw[duumnUo=?>4U1-dvc(un&xxxobd/sf\vvrXizxnkRj=1b9V4*aun'xm#}{bmi,vaYu{}Uhc`l>d:W3+bta&{l$~~zmlj-q`Ztt|Vidao?>e:W3+bta&{l$~~zmlj-q`Ztt|Vxnk1>11d9V4*aun'xm#}{bmi,vaYu{}Uyij2>>0g8Q5)`zo$yj"||tcnh+wbXzz~T~hi32?3g?P6(o{l%~k!}su`oo*tcW{ySkh_13g?P6(o{l%~k!}su`oo*tcW{ySkh_03g?P6(o{l%~k!}su`oo*tcW{ySkh_33g?P6(o{l%~k!}su`oo*quW{ySl}}ef03?P6(o{l%~k!}su`oo*quW{ySl}}ef]g576<]9%l~k }f.pppgjl'~xT~~zParpfcZb59j1^<"i}f/pe+wusjea${Q}su]`khd6l2_;#j|i.sd,vvredb%|~R||t^alig76m2_;#j|i.sd,vvredb%|~R||t^pfc9699l1^<"i}f/pe+wusjea${Q}su]qab:668n0Y=!hrg,qb*tt|kf`#z|Prrv\v`aX88n0Y=!hrg,qb*tt|kf`#z|Prrv\v`aX9h1^_H\PAMKBWf=R[LXTZD]FBMG0?SED12\BIZQ[YQG0?RCF;2]NNo5XRHVF[COU[]i0[_G[E^OL@@YFk2]YEYKPMNFF[G7c3QCGECV"XE@#4+7'[]_I,= > @Q@ML3^cjVCoj6Vkh^RqmhPbzzcdb<>4Xeo\Idlhz_oydaa119[`hYJageyZh||inl`?djjgz~Ti`~{yc9bhhit|Vl~`a84b`ahqubbf|hUhcx`{(7+g?agsiVidycz'7(f8`drfWje~by&7)g9geqgXkfex1650?58`gosm{x=7iga(1+5?aoi 8#<7iga(02*3>bnf!;:%:5kio*26,1'8;ekm,42.?2nbb%?:)69gmk.6> =0hd`'16+4?aoi 82";6jfn)3:-3=cag"9%:5kio*14,1<'8;ekm,74.?2nbb%<<)69gmk.5< =0hd`'24+4?aoi ;<";6jfn)04-2=cag"94$94dhl+6'8;ekm,66.?2nbb%=>)69gmk.4: =0hd`'32+4?aoi :>";6jfn)16-3=cag"?%;5kio*6-3=cag"=%;5kio*4-3=cag"3%;5kio*:-3=cag6;2:5kio>24;169gmk:6<7=0hd`314<4?aoi48<5;6jfn=34:2=cag6:4394dhl?5<813mce0<08;ekm8769?2nbb1<>>69gmk:5:7=0hd`322<4?aoi4;>5;6jfn=06:2=cag69:394dhl?62803mce0?617:fjj94>6?1oec2=>69gmk:487=0hd`330<4?aoi4:85;6jfn=10:2=cag688374dhl?70<76>1oec2<5?48`lh;;7<0hd`34?48`lh;=7<0hd`36?48`lh;?7<0hd`38?48`lh;17=0hb{{(1+4?air|!;"46j`uu*24,>bh}}":8$64dnww,43.02ndyy&>6(:8`jss 8=";6j`uu*1-2=cg|~#?$94dnww,1/03me~x%;&7:flqq.1!>1ocxz'7(58`jss 1#<7iazt);*3>bh}}6;255kotv?558?3me~x1?>>99gkpr;9;437iazt=30:==cg|~7=907;emvp972611ocxz3171ocxz31?58`jss4;4<7iazt=1=3>bh}}6?2:5kotv?1;169gkpr;1720iigi2oeg1>cjx}s8:6hffn]dakcui}eyS{:P4-"[mioip)ID^H.Heogqeqiu(8:%=#><_hr05f=aaoeTta`w_431|60X:jf`S>8{o0:0e>`nnfUs`cvP500{73Y5keaT?;z`19.emciXoldn~lz`r^t7[1*IGGO'BB@J3e68bl`hWqfetR;>2y15[7ekcV9=xb?7,gkekZabflxjxb|Pv5]7(~eX`hyTeczPcmi>4)eX`hyT}{=1.`[wbXn{oz1<"l_icp[wbXlh~jSnaznu?3(fYcagU|eizg=24/gZnf{V}ySio{a^alqkr:8%iTjxbc_gnbcvYu{}U}ma3?,b]jiujbeldmyg`n^vzt`;5$jU~hQjmcgg``bXzlm68-a\ivahfV|j`0?#c^pg[acw|a7:4)eX`hyT~~z21-a\`drfWje~byQxievk9<*dWakxSz|Pabi>4)eX}zoTinm20-a\gjkjggUh`bmd=1.`[rtXijaT`by20-a\vaYwf}xT{dj{h<33(fYr{lUm{kzPd`vb[firf}7; nQgar]bhhit|Vof|yw20-a\vaYci}kTob{at^uj`qn:99&hSbxjrgnlsZjh4:'oRy}_qlwvZqnl}b65!mPpsmd[`kw|pUu}k20-a\swYci}kTob{at^uj`qn:1%iT|kco`f\v`at58&hSiazt^pppZpfd4:'oRfns^fbpdYdg|d1="l_qplcZ`rdeUdk|h^lfcdrbWkg18>7,b]tvZbbx}b69<<#c^rqkbYbey~rSyf}erj\j`af|lU}ma3:,b]svjaXmdzuRzgrdqk[dutm{~Tzlb24-a\lduX~hfbh0>#c^rqkbYa}efTxe|jsi]bwvcu|V|j`0;?9-aliuiimg~Tblcj=gkekZ~kfqU>=?v<6^0`hnY4>}e:4!mPv`nj`Zjh4:'oR~}il]emciX|pzn18?=x24/gZvugnUmyabPtxrf95*dWdofcwPtxrf94*z;?1mekaPxml{[075p:nbd_24wk4>Xn`ldSjkaescwkwYqTt~zP159eqij03`dSnbd8:ldggsndm20c{k}fmmte>vugnUna}zv159svjaXmdzuRzgrdqk,5/6<2zycjQjmqvz[qnumzb#=$?;;qplcZcjx}sTxe|jsi*1-42vugnUna}zv_ujqavn/= ;?7}|`g^gntqX|axne&9)068twi`Wlg{xtQ{hsgpl-1.9=1{~biPelrw}Zrozlyc$5'>4:rqkbYbey~rSyf}erj+=,713yxdkRkbpu{\pmtb{a626=0>b:rqkbYbey~rSyf}erj\evubz}";%vugnUna}zv_ujqavnXizyn~y&9)0`8twi`Wlg{xtQ{hsgplZgt{lx$:'>b:rqkbYbey~rSyf}erj\evubz}"3%294:n6~}of]fiur~W}byi~fPndebp`.7!8h0|ah_dosp|Ys`{oxdR`jg`vf,4/6j2zycjQjmqvz[qnumzbTbhintd*1-4dvugnUna}zv_ujqavnXflmjxh&;)0`8twi`Wlg{xtQ{hsgplZhboh~n$8'>b:rqkbYbey~rSyf}erj\j`af|l"=%#:n6~}of]fiur~W}byi~fPndebp`.?!8h0|ah_dosp|Ys`{oxdR`jg`vf,:>58>3yxdkRhzlm30?uthoVl~`aQ{hsgpl-6.9:1{~biPftno[qnumzb#=$?<;qplcZ`rdeUdk|h)0*56=wzfmTjxbc_ujqavn/; ;87}|`g^dvhiYs`{oxd%:&129svjaXn|fgSyf}erj+1,743yxdkRhzlm]wlwct`!<"=>5rne\bpjkW}byi~f'7(30?uthoVl~`aQ{hsgpl->.9<1{~biPftno[qnumzb747>11`9svjaXn|fgSyf}erj\evubz}";%a:rqkbYa}efTxe|jsi]mabgsm!="=l5rne\bpjkW}byi~fPndebp`.?!8i0|ah_gwohZrozlycSckhaug?2xoSnbd119q`Zbf|hUhcx`{(1+24>tcWmkmRm`uov+5,773{nThlzn_bmvjq.5!8:0~iQkauc\gjsi|!9"==5}d^fbpdYdg|d$9'>0:pg[agsiVidycz'5(33?wbXlh~jSnaznu*5-46008vaYci}kTob{at=;94;34ws]geqgXkfex%:&119tvZbf|hUhcx`{(4+24>quWmkmRm`uov+2,773~xThlzn_bmvjq.0!8:0{Qkauc\gjsi|!2"=?5xr^fbpdYdg|d054?>49tvZci>2}yS}{}ABse2e7e4<8qe?ok51:l0fc<33-9io7=m6:P0`<3;l036<==b75:>7e4<81X=?8545594?74:k<<57:182>4}T=90??h47:011f31>2;i88<5yT05e>5<6280::ou\51877`7}r9:;1=6{>3383?x"6?>0:56l;4083>6b=;39owE=ne:X72?4|990:47s+1969017<,:hi69:?;h6:3?6=3`>jn7>5;n671?6=3f>8j7>5;h6b4?6=3`>257>5;n616?6=,8=269=<;o349=7>5$05:>1543g;<47?4;n614?6=,8=269=<;o34:j7>5$05:>1543g;<47=4;n62a?6=,8=269=<;o34:h7>5$05:>1543g;<47;4;n62g?6=,8=269=<;o34:n7>5$05:>1543g;<4794;n61e?6=,8=269=<;o34<3f>957>5$05:>1543g;<4774;n619;7>5$05:>1543g;<47l4;n612?6=,8=269=<;o34997>5$05:>1543g;<47j4;n610?6=,8=269=<;o349?7>5$05:>1543g;<47h4;n62e?6=,8=269=<;o341:9j7`b=83.:;44;119m52>=821b?hm50;&23<<3991e=:651:9j7`d=83.:;44;119m52>=:21b?ho50;&23<<3991e=:653:9j7`?=83.:;44;119m52>=<21b?h650;&23<<3991e=:655:9j7`0=83.:;44;119m52>=>21b?h;50;&23<<3991e=:657:9j7`2=83.:;44;119m52>=021b?h=50;&23<<3991e=:659:9j7`4=83.:;44;119m52>=i21b?h?50;&23<<3991e=:65b:9j7`6=83.:;44;119m52>=k21b?ih50;&23<<3991e=:65d:9j7ac=83.:;44;119m52>=m21b?ij50;&23<<3991e=:65f:9j7ad=83.:;44;119m52>=9910e>jn:18'52?=<8:0b<97:038?l5c13:1(<96:533?k7003;976g!7013>:<6`>79827>=n;m=1<7*>788755=i9>21=954i2f5>5<#9>318<>4n05;>43<3`9o97>5$05:>1773g;<47?9;:k0`1<72-;<57:>0:l23=<6?21b?i=50;&23<<3991e=:651998m6b5290/=:754028j41?28307d=i3;29 41>2=;;7c?88;3b?>o4n;0;6)?89;624>h6?10:n65f3g394?"6?00?==5a16:95f=f:9j7`1=83.:;44;119m52>=:910e>jl:18'52?=<8:0b<97:338?l5c93:1(<96:533?k70038976g!7013>:<6`>79817>=n<1k1<75m3`d94?7=83:pD>oj;%3;0?5fn2e:;;4?::a`6<7280;6=uG3`g8 4>32m90ci<50;9~f13=83k86<=>:04aM5fm2P?:7?9{`81=?b=j38h6?65118287)?81;341>i4k90;66g;9983>>o3=:0;6)?89;660>h6?10;76g;5383>!7013>>86`>7982?>o3=80;6)?89;660>h6?10976g;5183>!7013>>86`>7980?>o3h6?10?76g;4d83>!7013>>86`>7986?>o3h6?10=76g;4b83>!7013>>86`>7984?>o3h6?10376g;4`83>!7013>>86`>798:?>i3>k0;66g;9c83>>i31l0;66g;7d83>!7013>7983?>o3?m0;6)?89;64b>h6?10:76g;7b83>!7013>7981?>o3?k0;6)?89;64b>h6?10876g;7`83>!7013>7987?>o3?00;6)?89;64b>h6?10>76g;7983>!7013>7985?>o3?>0;6)?89;64b>h6?10<76g;7783>!7013>798;?>o31>0;66a;4983>>i3<00;66g>i31=0;6)?89;6:2>h6?10;76a;9283>!7013>2:6`>7982?>i31;0;6)?89;6:2>h6?10976a;9083>!7013>2:6`>7980?>i3190;6)?89;6:2>h6?10?76a;8g83>!7013>2:6`>7986?>i30l0;6)?89;6:2>h6?10=76a;8e83>!7013>2:6`>7984?>i30j0;6)?89;6:2>h6?10376a;8c83>!7013>2:6`>798:?>o3=l0;6)?89;66b>h6?10;76g;5e83>!7013>>j6`>7982?>o3=j0;6)?89;66b>h6?10976g;5c83>!7013>>j6`>7980?>o3=h0;6)?89;66b>h6?10?76g;5883>!7013>>j6`>7986?>o3=10;6)?89;66b>h6?10=76g;5683>!7013>>j6`>7984?>o3=?0;6)?89;66b>h6?10376g;5483>!7013>>j6`>798:?>o3ik0;66a;a883>!7013>jm6`>7983?>i3i10;6)?89;6be>h6?10:76a;a683>!7013>jm6`>7981?>i3i?0;6)?89;6be>h6?10876a;a483>!7013>jm6`>7987?>i3i=0;6)?89;6be>h6?10>76a;a283>!7013>jm6`>7985?>i3i;0;6)?89;6be>h6?10<76a;a083>!7013>jm6`>798;?>i3<<0;66a;3g83>>o3?=0;6)?89;641>h6?10;76g;7283>!7013><96`>7982?>o3?;0;6)?89;641>h6?10976g;7083>!7013><96`>7980?>o3?90;6)?89;641>h6?10?76g;6g83>!7013><96`>7986?>o3>l0;6)?89;641>h6?10=76g;6e83>!7013><96`>7984?>o3>j0;6)?89;641>h6?10376g;a183>>o3>o3ij0;66a;9`83>>i31o0;66a;9e83>>o3100;66a;2383>!7013>8?6`>7983?>i3:80;6)?89;607>h6?10:76a;2183>!7013>8?6`>7981?>i39o0;6)?89;607>h6?10876a;1d83>!7013>8?6`>7987?>i39m0;6)?89;607>h6?10>76a;1b83>!7013>8?6`>7985?>i39k0;6)?89;607>h6?10<76a;2`83>!7013>8?6`>798;?>i3:00;6)?89;607>h6?10276a;2983>!7013>8?6`>798b?>i3:>0;6)?89;607>h6?10i76a;2783>!7013>8?6`>798`?>i3:<0;6)?89;607>h6?10o76a;2583>!7013>8?6`>798f?>i3::0;6)?89;607>h6?10m76a;1`83>!7013>8?6`>79824>=h<831<7*>788776=i9>21=<54i2gg>5<#9>318<>4n05;>5=5<#9>318<>4n05;>7=54i2g:>5<#9>318<>4n05;>1=5<#9>318<>4n05;>3=6=4+16;90465<#9>318<>4n05;>==5<#9>318<>4n05;>d=5<#9>318<>4n05;>f=5<#9>318<>4n05;>`=5<#9>318<>4n05;>46<3`9om7>5$05:>1773g;<47?>;:k0`<<72-;<57:>0:l23=<6:21b?i650;&23<<3991e=:651298m6b0290/=:754028j41?28>07d=k6;29 41>2=;;7c?88;36?>o4l<0;6)?89;624>h6?10::65f3e694?"6?00?==5a16:952=32c8j>4?:%34=?2682d:;54>a:9j7c4=83.:;44;119m52>=9k10e>h>:18'52?=<8:0b<97:0a8?l5a83:1(<96:533?k7003;o76g!7013>:<6`>7982a>=n;lo1<7*>788755=i9>21=k54i2g4>5<#9>318<>4n05;>76<3`9oo7>5$05:>1773g;<47<>;:k0`4<72-;<57:>0:l23=<5:21b?i>50;&23<<3991e=:652298k6e62900e>m=:188m1>?290/=:7549;8j41?2910e968:18'52?=<130b<97:098m1>1290/=:7549;8j41?2;10e96::18'52?=<130b<97:298m1>3290/=:7549;8j41?2=10e96<:18'52?=<130b<97:498m1>5290/=:7549;8j41?2?10e96>:18'52?=<130b<97:698m1>7290/=:7549;8j41?2110c>mk:18'52?=;jo0b<97:198k6ed290/=:753bg8j41?2810c>mm:18'52?=;jo0b<97:398k6ef290/=:753bg8j41?2:10c>m6:18'52?=;jo0b<97:598k6e?290/=:753bg8j41?2<10c>m8:18'52?=;jo0b<97:798k6e1290/=:753bg8j41?2>10c>m::18'52?=;jo0b<97:998m10>290/=:7547c8j41?2910e987:18'52?=290:6=4?{%3;0?b43A9i46Foi;I1a<>N4il1d=:850;9~f6?e29086=4?{%3;0?ed3A9i46Fo3?3:17d;>:188k41e2900qo=n6;297?6=8r.:494lc:J0f==O;ho0D9<4$00e>1?d3-o;6?5f4683>>o293:17b?8b;29?xd41h0;6>4?:1y'5=2=kj1C?o64H2cf?M253-;9j7:6c:&f4?4>i6?k0;66sm3`694?3=83:p(<6;:e28L6d?3A9ji6F;2:&26c<31j1/i=4=;h64>5<>o6?h0;66a>7c83>>{e;h?1<7=50;2x 4>32ji0D>l7;I1ba>N3:2.:>k4;9b9'a5<53`><6=44i4394?=h9>h1<75rb2;:>5<2290;w)?74;f3?M5e02B8mh5G439'57`=<0i0(h>52:k73?6=3`>36=44i4394?=n9>k1<75`16`94?=zj:k86=4;:183!7?<3im7E=m8:J0e`=#m9097d:8:188m07=831b=:o50;9l52d=831vn>o=:187>5<7s-;387mi;I1a<>N4il1/i=4=;h64>5<h1<75rb2c2>5<3290;w)?74;ae?M5e02B8mh5+e181?l202900e8?50;9j52g=831d=:l50;9~f6gd290?6=4?{%3;0?ea3A9i46F<6=44i4394?=n9>k1<75`16`94?=zj:ki6=4;:183!7?<3im7E=m8:J0e`=#m9097d:8:188m07=831b=:o50;9l52d=831vn?78:187>5<7s-;387mi;I1a<>N4il1/i=48;h64>5<h1<75rb231>5<3290;w)?74;ag?M5e02B8mh5+e181?l202900e9j50;9j14<722e:;o4?::a747=83>1<7>t$0:7>fb<@:h37E=ne:&f4?4>o293:17b?8b;29?xd5?>0;694?:1y'5=2=9::0D>l7;I1ba>o3i3:17d;=:188m41c2900c<9;:188yg40>3:187>50z&2<1<6;91C?o64H2cf?l2f2900e8<50;9j52b=831d=::50;9~f712290?6=4?{%3;0?7482B8n55G3`g8m1g=831b9?4?::k23a<722e:;94?::a622=83>1<7>t$0:7>4573A9i46F>7>5;h34`?6=3f;<87>5;|`136<72=0;6=u+1969566<@:h37E=ne:k7e?6=3`?96=44i05g>5<858275=O;k20D>oj;h6b>5<>1<75rb3::>5<3290;w)?74;304>N4j11C?lk4i5c94?=n=;0;66g>7e83>>i6?=0;66sm29:94?2=83:p(<6;:013?M5e02B8mh5f4`83>>o2:3:17d?8d;29?j70<3:17pl=8683>1<729q/=5:51228L6d?3A9ji6g;a;29?l352900e<9k:188k4132900qo<76;290?6=8r.:494>319K7g><@:kn7d:n:188m04=831b=:j50;9l522=831vn?h>:187>5<7s-;387?<0:J0f==O;ho0e9o50;9j17<722c:;i4?::m231<722wi>k>50;694?6|,82?6<=?;I1a<>N4il1b8l4?::k66?6=3`;5;n340?6=3th9ik4?:583>5}#91>1=>>4H2`;?M5fm2c?m7>5;h71>5<5<54;294~"60=0:?=5G3c:8L6gb3`>j6=44i4094?=n9>n1<75`16694?=zj;oo6=4;:183!7?<3;8<6F>o6?m0;66a>7583>>{e;9>1<7:50;2x 4>3289;7E=m8:J0e`=nl7;I1ba>o3i3:17d;=:188m41c2900c<9;:188yg57:3:187>50z&2<1<6;91C?o64H2cf?l2f2900e8<50;9j52b=831d=::50;9~f666290?6=4?{%3;0?7482B8n55G3`g8m1g=831b9?4?::k23a<722e:;94?::a756=83>1<7>t$0:7>4573A9i46F>7>5;h34`?6=3f;<87>5;|`2e2<72=0;6=u+1969ga=O;k20D>oj;%g3>7=n<>0;66g;d;29?l362900c<9m:188yg7f>3:187>50z&2<15;h6g>5<6=4;:183!7?<3io7E=m8:J0e`=#m9097d:8:188m1b=831b9<4?::m23g<722wi=l:50;694?6|,82?6nj4H2`;?M5fm2.n<7<4i5594?=na283>1<729q/=5:5ce9K7g><@:kn7)k?:39j02<722c?h7>5;h72>5<858``>N4j11C?lk4$d296>o3?3:17d:k:188m07=831d=:l50;9~f4g6290?6=4?{%3;0?ec3A9i46F<6=44i5f94?=n=80;66a>7c83>>{e9h:1<7:50;2x 4>32jn0D>l7;I1ba>"b8380e9950;9j0a<722c>=7>5;n34f?6=3th:5k4?:583>5}#91>1oi5G3c:8L6gb3-o;6?5f4683>>o3l3:17d;>:188k41e2900qo52:k73?6=3`>o6=44i4394?=h9>h1<75rb32g>5<3290;w)?74;ag?M5e02B8mh5+e181?l202900e9j50;9j14<722e:;o4?::a65e=83>1<7>t$0:7>fb<@:h37E=ne:&f4?4>o293:17b?8b;29?xd58k0;694?:1y'5=2=km1C?o64H2cf?!c72;1b8:4?::k7`?6=3`?:6=44o05a>5<54;294~"60=0hh6F6g;7;29?l2c2900e8?50;9l52d=831vn?>6:187>5<7s-;387mk;I1a<>N4il1/i=4=;h64>5<>i6?k0;66sm21:94?2=83:p(<6;:bf8L6d?3A9ji6*j0;08m11=831b8i4?::k65?6=3f;5;|`142<72=0;6=u+1969ga=O;k20D>oj;%g3>7=n<>0;66g;d;29?l362900c<9m:188yg47>3:187>50z&2<15;h6g>5<8;50;694?6|,82?6nj4H2`;?M5fm2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7)k?:39j02<722c?h7>5;h72>5<858``>N4j11C?lk4$d296>o3?3:17d:k:188m07=831d=:l50;9~f735290?6=4?{%3;0?ec3A9i46F<6=44i5f94?=n=80;66a>7c83>>{e:<;1<7:50;2x 4>32jn0D>l7;I1ba>"b8380e9950;9j0a<722c>=7>5;n34f?6=3th99=4?:583>5}#91>1oi5G3c:8L6gb3-o;6?5f4683>>o3l3:17d;>:188k41e2900qo<;f;290?6=8r.:494ld:J0f==O;ho0(h>52:k73?6=3`>o6=44i4394?=h9>h1<75rb36f>5<3290;w)?74;ag?M5e02B8mh5+e181?l202900e9j50;9j14<722e:;o4?::a5c5=83>1<7>t$0:7>fb<@:h37E=ne:&f4?4>o293:17b?8b;29?xd6n;0;694?:1y'5=2=km1C?o64H2cf?!c72;1b8:4?::k7`?6=3`?:6=44o05a>5<54;294~"60=0hh6F6g;7;29?l2c2900e8?50;9l52d=831vn5<7s-;387mk;I1a<>N4il1/i=4=;h64>5<>i6?k0;66sm1dd94?2=83:p(<6;:bf8L6d?3A9ji6*j0;08m11=831b8i4?::k65?6=3f;5;|`2a`<72=0;6=u+1969ga=O;k20D>oj;%g3>7=n<>0;66g;d;29?l362900c<9m:188yg7bl3:187>50z&2<15;h6g>5<1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=ne083>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=ne183>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=ndg83>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=ndd83>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=nde83>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=ndb83>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=ndc83>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=nd`83>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=nd883>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=nd983>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=nce83>1<729q/=5:5ce9K7g><@:kn7)k?:39j02<722c?h7>5;h72>5<858``>N4j11C?lk4$d296>o3?3:17d:k:188m07=831d=:l50;9~f4ee290?6=4?{%3;0?ec3A9i46F<6=44i5f94?=n=80;66a>7c83>>{e9jk1<7:50;2x 4>32jn0D>l7;I1ba>"b8380e9950;9j0a<722c>=7>5;n34f?6=3th:o44?:583>5}#91>1oi5G3c:8L6gb3-o;6?5f4683>>o3l3:17d;>:188k41e2900qo?l8;290?6=8r.:494ld:J0f==O;ho0(h>52:k73?6=3`>o6=44i4394?=h9>h1<75rb0a4>5<3290;w)?74;ag?M5e02B8mh5+e181?l202900e9j50;9j14<722e:;o4?::a5f0=83>1<7>t$0:7>fb<@:h37E=ne:&f4?4>o293:17b?8b;29?xd6k<0;694?:1y'5=2=km1C?o64H2cf?!c72;1b8:4?::k7`?6=3`?:6=44o05a>5<54;294~"60=0hh6F6g;7;29?l2c2900e8?50;9l52d=831vn?==:187>5<7s-;387mk;I1a<>N4il1/i=4=;h64>5<>i6?k0;66sm22394?2=83:p(<6;:bf8L6d?3A9ji6*j0;08m11=831b8i4?::k65?6=3f;5;|`175<72=0;6=u+1969ga=O;k20D>oj;%g3>7=n<>0;66g;d;29?l362900c<9m:188yg45n3:187>50z&2<15;h6g>5<?j50;694?6|,82?6nj4H2`;?M5fm2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7)k?:39j02<722c?h7>5;h72>5<858``>N4j11C?lk4$d296>o3?3:17d:k:188m07=831d=:l50;9~f74f290?6=4?{%3;0?ec3A9i46F<6=44i5f94?=n=80;66a>7c83>>{e:m>1<7;50;2x 4>32jo0D>l7;I1ba>"b8380e9950;9j0=<722c?h7>5;h72>5<858`a>N4j11C?lk4$d296>o3?3:17d:7:188m1b=831b9<4?::m23g<722wi>i?50;794?6|,82?6nk4H2`;?M5fm2.n<7<4i5594?=n<10;66g;d;29?l362900c<9m:188yg4c83:197>50z&2<15;h6;>5<>i6?k0;66sm2e094?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;7;29?l2?2900e9j50;9j14<722e:;o4?::a6fc=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e:jh1<7;50;2x 4>32m:0D>l7;I1ba>"b83=0e9950;9j0=<722c>=7>5;h34e?6=3f;5;|`1ga<72<0;6=u+1969g`=O;k20D>oj;%g3>7=n<>0;66g;8;29?l2c2900e8?50;9l52d=831vn?li:180>5<7s-;387=m7:J0f==O;ho0e9o50;9j572=831d=::50;9~f7db29086=4?{%3;0?5e?2B8n55G3`g8m1g=831b=?:50;9l522=831vn?l;:187>5<7s-;387?<0:J0f==O;ho0e9o50;9j17<722c:;i4?::m231<722wi>oj50;194?6|,82?6>l8;I1a<>N4il1b8l4?::k261<722e:;94?::a6g4=83>1<7>t$0:7>4573A9i46F>7>5;h34`?6=3f;<87>5;|`1ff<72:0;6=u+19697g1<@:h37E=ne:k7e?6=3`;987>5;n340?6=3th9n=4?:583>5}#91>1=>>4H2`;?M5fm2c?m7>5;h71>5<5<53;294~"60=08n:5G3c:8L6gb3`>j6=44i007>5<858275=O;k20D>oj;h6b>5<>1<75rb3`b>5<4290;w)?74;1a3>N4j11C?lk4i5c94?=n9;>1<75`16694?=zj;kh6=4;:183!7?<3;8<6F>o6?m0;66a>7583>>{e:k31<7=50;2x 4>32:h<7E=m8:J0e`=n2583>>i6?=0;66sm2`c94?2=83:p(<6;:013?M5e02B8mh5f4`83>>o2:3:17d?8d;29?j70<3:17pl=b983>6<729q/=5:53c58L6d?3A9ji6g;a;29?l75<3:17b?84;29?xd5i10;694?:1y'5=2=9::0D>l7;I1ba>o3i3:17d;=:188m41c2900c<9;:188yg4e?3:1?7>50z&2<1<4j>1C?o64H2cf?l2f2900e<<;:188k4132900qo319K7g><@:kn7d:n:188m04=831b=:j50;9l522=831vn?l9:180>5<7s-;387=m7:J0f==O;ho0e9o50;9j572=831d=::50;9~f7g3290?6=4?{%3;0?7482B8n55G3`g8m1g=831b9?4?::k23a<722e:;94?::a6`>=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e:l<1<7;50;2x 4>32jo0D>l7;I1ba>"b8380e9950;9j0=<722c?h7>5;h72>5<858`a>N4j11C?lk4$d296>o3?3:17d:7:188m1b=831b9<4?::m23g<722wi>h:50;794?6|,82?6nk4H2`;?M5fm2.n<7<4i5594?=n<10;66g;d;29?l362900c<9m:188yg4b;3:197>50z&2<15;h6;>5<>i6?k0;66sm2d094?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;7;29?l2?2900e9j50;9j14<722e:;o4?::a6`6=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e:?31<7:50;2x 4>32jl0D>l7;I1ba>"b83=0e9950;9j14<722c:;l4?::m23g<722wi>;o50;694?6|,82?6nh4H2`;?M5fm2.n<794i5594?=n=80;66g>7`83>>i6?k0;66sm27:94?2=83:p(<6;:bf8L6d?3A9ji6*j0;08m11=831b8i4?::k65?6=3f;5;|`122<72=0;6=u+1969ga=O;k20D>oj;%g3>7=n<>0;66g;d;29?l362900c<9m:188yg53i3:197>50z&2<15;h6;>5<>i6?k0;66sm35;94?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;7;29?l2?2900e9j50;9j14<722e:;o4?::a711=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo=;6;291?6=8r.:494le:J0f==O;ho0(h>52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;=?1<7;50;2x 4>32jo0D>l7;I1ba>"b8380e9950;9j0=<722c?h7>5;h72>5<858g4>N4j11C?lk4$d293>o3?3:17d:7:188m07=831b=:o50;9l52d=831vn>:=:186>5<7s-;387mj;I1a<>N4il1/i=4=;h64>5<>o293:17b?8b;29?xd4<=0;684?:1y'5=2=kl1C?o64H2cf?!c72;1b8:4?::k7o6=44i4394?=h9>h1<75rb214>5<4290;w)?74;1a3>N4j11C?lk4i5c94?=n9;>1<75`16694?=zj:9=6=4<:183!7?<39i;6F>1<75rb20g>5<3290;w)?74;304>N4j11C?lk4i5c94?=n=;0;66g>7e83>>i6?=0;66sm32794?5=83:p(<6;:2`4?M5e02B8mh5f4`83>>o6:=0;66a>7583>>{e;;h1<7:50;2x 4>3289;7E=m8:J0e`=n4?:1y'5=2=;k=0D>l7;I1ba>o3i3:17d?=4;29?j70<3:17pl<2883>1<729q/=5:51228L6d?3A9ji6g;a;29?l352900e<9k:188k4132900qo=<3;297?6=8r.:494<@:kn7d:n:188m4432900c<9;:188yg55?3:187>50z&2<1<6;91C?o64H2cf?l2f2900e8<50;9j52b=831d=::50;9~f65529086=4?{%3;0?5e?2B8n55G3`g8m1g=831b=?:50;9l522=831vn><::187>5<7s-;387?<0:J0f==O;ho0e9o50;9j17<722c:;i4?::m231<722wi?>?50;194?6|,82?6>l8;I1a<>N4il1b8l4?::k261<722e:;94?::a775=83>1<7>t$0:7>4573A9i46F>7>5;h34`?6=3f;<87>5;|`075<72:0;6=u+19697g1<@:h37E=ne:k7e?6=3`;987>5;n340?6=3th8><4?:583>5}#91>1=>>4H2`;?M5fm2c?m7>5;h71>5<5<53;294~"60=08n:5G3c:8L6gb3`>j6=44i007>5<858275=O;k20D>oj;h6b>5<>1<75rb275>5<2290;w)?74;af?M5e02B8mh5+e181?l202900e9650;9j0a<722c>=7>5;n34f?6=3th8994?:483>5}#91>1h=5G3c:8L6gb3-o;6:5f4683>>o303:17d;>:188m41f2900c<9m:188yg52=3:197>50z&2<15;h6;>5<>i6?k0;66sm34594?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<47>55;294~"60=0hi6F6g;7;29?l2?2900e9j50;9j14<722e:;o4?::a70?=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo=:a;291?6=8r.:494le:J0f==O;ho0(h>52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;32jo0D>l7;I1ba>"b8380e9950;9j0=<722c?h7>5;h72>5<858`a>N4j11C?lk4$d296>o3?3:17d:7:188m1b=831b9<4?::m23g<722wi?;k50;794?6|,82?6nk4H2`;?M5fm2.n<7<4i5594?=n<10;66g;d;29?l362900c<9m:188yg51l3:197>50z&2<15;h6;>5<>i6?k0;66sm37a94?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;7;29?l2?2900e9j50;9j14<722e:;o4?::a73g=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo=99;291?6=8r.:494le:J0f==O;ho0(h>52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;?21<7;50;2x 4>32jo0D>l7;I1ba>"b8380e9950;9j0=<722c?h7>5;h72>5<858`a>N4j11C?lk4$d296>o3?3:17d:7:188m1b=831b9<4?::m23g<722wi?;850;794?6|,82?6nk4H2`;?M5fm2.n<7<4i5594?=n<10;66g;d;29?l362900c<9m:188yg5003:197>50z&2<15;h6;>5<>i6?k0;66sm36594?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;7;29?l2?2900e9j50;9j14<722e:;o4?::a723=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo=84;291?6=8r.:494le:J0f==O;ho0(h>52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;>91<7;50;2x 4>32jo0D>l7;I1ba>"b8380e9950;9j0=<722c?h7>5;h72>5<858`a>N4j11C?lk4$d296>o3?3:17d:7:188m1b=831b9<4?::m23g<722wi?:?50;794?6|,82?6nk4H2`;?M5fm2.n<7<4i5594?=n<10;66g;d;29?l362900c<9m:188yg5?83:197>50z&2<15;h6;>5<>i6?k0;66sm36d94?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;7;29?l2?2900e9j50;9j14<722e:;o4?::a72b=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo=8c;291?6=8r.:494le:J0f==O;ho0(h>52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;>h1<7;50;2x 4>32jo0D>l7;I1ba>"b8380e9950;9j0=<722c?h7>5;h72>5<858`a>N4j11C?lk4$d296>o3?3:17d:7:188m1b=831b9<4?::m23g<722wi?:750;794?6|,82?6nk4H2`;?M5fm2.n<7<4i5594?=n<10;66g;d;29?l362900c<9m:188yg5083:197>50z&2<15;h6;>5<>i6?k0;66sm37d94?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<53;294~"60=0:>45G3c:8L6gb3-o;67583>>{e;0n1<7=50;2x 4>328827E=m8:J0e`=#m90:m6gk4;29?lb22900c<9;:188yg4683:1?7>50z&2<1<6:01C?o64H2cf?!c728o0ei:50;9j`0<722e:;94?::a5d?=8391<7>t$0:7>44>3A9i46F5;hf6>5<85826<=O;k20D>oj;%g3>4c1<75fd483>>i6?=0;66sm18694?5=83:p(<6;:00:?M5e02B8mh5+e182a>oc<3:17dj::188k4132900qo?63;297?6=8r.:494>289K7g><@:kn7)k?:0g8ma2=831bh84?::m231<722wi=4<50;194?6|,82?6<<6;I1a<>N4il1/i=4>e:kg0?6=3`n>6=44o057>5<53;294~"60=0:>45G3c:8L6gb3-o;67583>>{e90:1<7=50;2x 4>328827E=m8:J0e`=#m90:i6gk4;29?lb22900c<9;:188yg7?n3:1?7>50z&2<1<6:01C?o64H2cf?!c728o0ei:50;9j`0<722e:;94?::a5=c=8391<7>t$0:7>44>3A9i46F5;hf6>5<85826<=O;k20D>oj;%g3>4c1<75fd483>>i6?=0;66sm19a94?5=83:p(<6;:00:?M5e02B8mh5+e182a>oc<3:17dj::188k4132900qo?7b;297?6=8r.:494>289K7g><@:kn7)k?:0g8ma2=831bh84?::m231<722wi=5o50;194?6|,82?6<<6;I1a<>N4il1/i=4>e:kg0?6=3`n>6=44o057>5<53;294~"60=0:>45G3c:8L6gb3-o;67583>>{e9121<7=50;2x 4>328827E=m8:J0e`=#m90:i6gk4;29?lb22900c<9;:188yg7??3:1?7>50z&2<1<6:01C?o64H2cf?!c728o0ei:50;9j`0<722e:;94?::a5=0=8391<7>t$0:7>44>3A9i46F5;hf6>5<85826<=O;k20D>oj;%g3>4c1<75fd483>>i6?=0;66sm27194?2=83:p(<6;:00a?M5e02B8mh5+e1870>oc<3:17dj::188ma0=831d=::50;9~f775290?6=4?{%3;0?75j2B8n55G3`g8 `6=:<1bh94?::kg1?6=3`n=6=44o057>5<54;294~"60=0:>o5G3c:8L6gb3-o;6?;4ie694?=nl<0;66gk6;29?j70<3:17pl=6583>0<729q/=5:513f8L6d?3A9ji6*j0;3g?lb32900ei;50;9j`3<722co;7>5;n340?6=3th9=94?:483>5}#91>1=?j4H2`;?M5fm2.n<75<>oc?3:17b?84;29?xd6im0;684?:1y'5=2=9;n0D>l7;I1ba>"b838;7dj;:188ma3=831bh;4?::kg3?6=3f;<87>5;|`12f<72<0;6=u+196957b<@:h37E=ne:&f4?453`n?6=44ie794?=nl?0;66gk7;29?j70<3:17pl<1483>6<729q/=5:513;8L6d?3A9ji6*j0;32?lb32900ei;50;9l522=831vn?8=:187>5<7s-;387?=b:J0f==O;ho0(h>5429j`1<722co97>5;hf5>5<85826<=O;k20D>oj;%g3>4c1<75fd483>>i6?=0;66sm1`d94?5=83:p(<6;:00:?M5e02B8mh5+e182a>oc<3:17dj::188k4132900qo<>8;290?6=8r.:494>2c9K7g><@:kn7)k?:378ma2=831bh84?::kg2?6=3f;<87>5;|`2f4<72=0;6=u+196957d<@:h37E=ne:&f4?423`n?6=44ie794?=nl?0;66a>7583>>{e:8k1<7;50;2x 4>3288o7E=m8:J0e`=#m909<6gk4;29?lb22900ei850;9j`2<722e:;94?::a5g5=83?1<7>t$0:7>44c3A9i46F5;hf6>5<>i6?=0;66sm38794?5=83:p(<6;:00:?M5e02B8mh5+e18`3>oc<3:17dj::188k4132900qo=?e;297?6=8r.:494>289K7g><@:kn7)k?:318ma2=831bh84?::m231<722wi>kl50;194?6|,82?6<<6;I1a<>N4il1/i=4=3:kg0?6=3`n>6=44o057>5<55;294~"60=0:>i5G3c:8L6gb3-o;6??4ie694?=nl<0;66gk6;29?lb02900c<9;:188yg4?93:197>50z&2<1<6:m1C?o64H2cf?!c72;;0ei:50;9j`0<722co:7>5;hf4>5<85826a=O;k20D>oj;%g3>771<75fd483>>oc>3:17dj8:188k4132900qo2e9K7g><@:kn7)k?:368ma2=831bh84?::kg2?6=3`n<6=44o057>5<55;294~"60=0:>i5G3c:8L6gb3-o;6??4ie694?=nl<0;66gk6;29?lb02900c<9;:188yg4?83:197>50z&2<1<6:m1C?o64H2cf?!c72;;0ei:50;9j`0<722co:7>5;hf4>5<85826a=O;k20D>oj;%g3>771<75fd483>>oc>3:17dj8:188k4132900qo2e9K7g><@:kn7)k?:368ma2=831bh84?::kg2?6=3`n<6=44o057>5<7>55;294~"60=0:>i5G3c:8L6gb3-o;6??4ie694?=nl<0;66gk6;29?lb02900c<9;:188yg40n3:197>50z&2<1<6:m1C?o64H2cf?!c72;;0ei:50;9j`0<722co:7>5;hf4>5<85826a=O;k20D>oj;%g3>771<75fd483>>oc>3:17dj8:188k4132900qo2e9K7g><@:kn7)k?:368ma2=831bh84?::kg2?6=3`n<6=44o057>5<55;294~"60=0:>i5G3c:8L6gb3-o;6??4ie694?=nl<0;66gk6;29?lb02900c<9;:188yg40m3:197>50z&2<1<6:m1C?o64H2cf?!c72;;0ei:50;9j`0<722co:7>5;hf4>5<85826g=O;k20D>oj;%g3>fd1<75fd483>>oc>3:17b?84;29?xd5190;694?:1y'5=2=9;h0D>l7;I1ba>"b83<0ei:50;9j`0<722co:7>5;n340?6=3th9;i4?:583>5}#91>1=?l4H2`;?M5fm2.n<7?=;hf7>5<>i6?=0;66sm30694?3=83:p(<6;:00g?M5e02B8mh5+e18`e>oc<3:17dj::188ma0=831bh:4?::m231<722wi?=o50;794?6|,82?6<N4il1/i=4=1:kg0?6=3`n>6=44ie494?=nl>0;66a>7583>>{e:o=1<7;50;2x 4>3288o7E=m8:J0e`=#m90986gk4;29?lb22900ei850;9j`2<722e:;94?::a6g3=8381<7>t$0:7>44?3A9i46F5;n340?6=3th9n>4?:383>5}#91>1=?64H2`;?M5fm2.n<7?>;hf7>5<85826==O;k20D>oj;%g3>471<75`16694?=zj;km6=4=:183!7?<3;946F>i6?=0;66sm2`f94?4=83:p(<6;:00;?M5e02B8mh5+e1825>oc<3:17b?84;29?xd5ik0;6?4?:1y'5=2=9;20D>l7;I1ba>"b83;:7dj;:188k4132900qo299K7g><@:kn7)k?:038ma2=831d=::50;9~f7g029096=4?{%3;0?7502B8n55G3`g8 `6=981bh94?::m231<722wi>l;50;094?6|,82?6<<7;I1a<>N4il1/i=4>1:kg0?6=3f;<87>5;|`06`<72;0;6=u+196957><@:h37E=ne:&f4?763`n?6=44o057>5<52;294~"60=0:>55G3c:8L6gb3-o;6>1<75rb20b>5<5290;w)?74;31<>N4j11C?lk4$d2954=nl=0;66a>7583>>{e;;21<7<50;2x 4>328837E=m8:J0e`=#m90:=6gk4;29?j70<3:17pl<2783>7<729q/=5:513:8L6d?3A9ji6*j0;32?lb32900c<9;:188yg55<3:1>7>50z&2<1<6:11C?o64H2cf?!c728;0ei:50;9l522=831vn><=:181>5<7s-;387?=8:J0f==O;ho0(h>5109j`1<722e:;94?::a776=8381<7>t$0:7>44?3A9i46F5;n340?6=3th9o=4?:383>5}#91>1=?64H2`;?M5fm2.n<7?>;hf7>5<85826==O;k20D>oj;%g3>471<75`16694?=zj8h<6=4::183!7?<3;9h6F=5fd583>>oc=3:17dj9:188ma1=831d=::50;9~f4d>290>6=4?{%3;0?75l2B8n55G3`g8 `6=:?1bh94?::kg1?6=3`n=6=44ie594?=h9>>1<75rb33f>5<2290;w)?74;31`>N4j11C?lk4$d2965=nl=0;66gk5;29?lb12900ei950;9l522=831vn?5<7s-;387?=d:J0f==O;ho0(h>5279j`1<722co97>5;hf5>5<5fd583>>oc=3:17dj9:188ma1=831d=::50;9~f6?42903;7>50z&2<1<6?j1C?o64H2cf?_212hq26?95e;35>42=9k0m6<;51682g?{#98l196*>2186?!b?2<1/h44:;%fb>0=#lk0>7)jl:49'`a<23-;3<7=4$0:2>1=#m80>7)k=:49'a6<23-o?685+e486?!c12<1/i:4:;%g;>0=#m00>7)kn:49'ag<23-oh685+ee86?!cb2<1/ik4:;%d3>0=#n80>7)h=:49'b6<23-l?685+f486?!`12<1/j:4:;%d;>0=#n00>7)hn:49'bg<23-lh685+fe86?!`b2<1/jk4:;%334?3<,8::685+11091>"68:0>7)??4;78 4622<1/==855:&242<23-;;47;4$02:>0=#99k196*>0c86?!77k3?0(<>k:49'55c==2.:"69:0>7)?>4;78 4722<1/=<855:&252<23-;:47;4$03:>0=#98k196*>1c86?!76k3?0(7:4$2`7>6d43-nm685f4c83>>o3k3:17dm7:188mf?=831b=5<50;9j5=5=831b?o?50;9j7g4=831b?:4?:%34=?513g;<47>4;h16>5<#9>31?;5a16:95>=n;=0;6)?89;15?k7003807d=<:18'52?=;?1e=:653:9j77<72-;<57=9;o3421965f3183>!70139=7c?88;48?l4a290/=:75379m52>=?21b>h4?:%34=?513g;<4764;h0g>5<#9>31?;5a16:9=>=n<80;6)?89;63?k7003:07d=i:18'52?=<91e=:651:9j7`<72-;<57:?;o3421?65f3b83>!7013>;7c?88;68?l5e290/=:75419m52>==21b?l4?:%34=?273g;<4784;h1:>5<#9>318=5a16:93>=n;10;6)?89;63?k7003207d;n:18'52?==01e=:650:9j1=<72-;<57;6;o3421>65f5783>!7013?27c?88;18?l32290/=:75589m52>=<21b994?:%34=?3>3g;<47;4;h40>5<#9>31945a16:92>=n>;0;6)?89;7:?k7003=07d8>:18'52?==01e=:658:9j25<72-;<57;6;o3421m65f5d83>!7013?27c?88;`8?l3c290/=:75589m52>=k21b9n4?:%34=?3>3g;<47j4;h7a>5<#9>31945a16:9a>=n=:0;6)?89;7:?k7003l07d9k:18'52?=?j1e=:650:9j3g<72-;<579l;o3421>65f7983>!7013=h7c?88;18?l10290/=:757b9m52>=<21b;;4?:%34=?1d3g;<47;4;h56>5<#9>31;n5a16:92>=n?=0;6)?89;5`?k7003=07d9<:18'52?=?j1e=:658:9j37<72-;<579l;o3421m65f7183>!7013=h7c?88;`8?l0b290/=:757b9m52>=k21b:i4?:%34=?1d3g;<47j4;h4`>5<#9>31;n5a16:9a>=n>k0;6)?89;5`?k7003l07d8n:18'52?=?j1e=:651198m3?=83.:;448c:l23=<6921b:54?:%34=?1d3g;<47?=;:k53?6=,8=26:m4n05;>45<3`<=6=4+16;93f=i9>21=954i7794?"6?0079821>=n0=0;6)?89;5`?k7003;=76g73;29 41>2>i0b<97:058?l>5290/=:757b9m52>=9110e5?50;&23<<0k2d:;54>9:9j<5<72-;<579l;o345$05:>2e5<#9>31;n5a16:95f=k1<7*>7884g>h6?10:h65f6g83>!7013=h7c?88;3f?>o1<3:1(<96:6a8j41?28l07d68:18'52?=0?1e=:650:9j<0<72-;<5769;o3421<65f8`83>!70132i7c?88;38?l>>290/=:758c9m52>=:21b454?:%34=?>e3g;<47=4;n;7>5<#9>315>5a16:94>=h1;0;6)?89;;0?k7003;07b7>:18'52?=1:1e=:652:9l=5<72-;<577<;o3421865`8d83>!7013387c?88;78?j?c290/=:75929m52>=>21d5n4?:%34=??43g;<4794;n;a>5<#9>315>5a16:9<>=h1h0;6)?89;;0?k7003307b76:18'52?=1:1e=:65a:9l==<72-;<577<;o3421o65`9783>!7013387c?88;f8?j?2290/=:75929m52>=m21d4i4?:%34=??43g;<47h4;na2>5<#9>31o=5a16:94>=hjo0;6)?89;a3?k7003;07bl8:18'52?=j?1e=:650:9lf0<72-;<57l9;o3421>65`b383>!7013h=7c?88;18?jd6290/=:75b79m52>=<21dn=4?:%34=?d13g;<47;4;nce>5<#9>31n;5a16:92>=hil0;6)?89;`5?k7003=07bok:18'52?=j?1e=:658:9lef<72-;<57l9;o3421m65`a`83>!7013h=7c?88;`8?jg?290/=:75b79m52>=k21dm:4?:%34=?d13g;<47j4;nc5>5<#9>31n;5a16:9a>=hi<0;6)?89;`5?k7003l07bo;:18'52?=j?1e=:651198kd5=83.:;44m6:l23=<6921dm?4?:%34=?d13g;<47?=;:mb5?6=,8=26o84n05;>45<3fk;6=4+16;9f3=i9>21=954o8d94?"6?00i:6`>79821>=hjl0;6)?89;`5?k7003;=76amd;29 41>2k<0b<97:058?jdd290/=:75b79m52>=9110col50;&23<2d:;54>9:9lfd<72-;<57l9;o345$05:>g05<#9>31n;5a16:95f=1<7*>788a2>h6?10:h65`a883>!7013h=7c?88;3f?>i>m3:1(<96:c48j41?28l07bm9:18'52?=k<1e=:650:9lg1<72-;<57m:;o3421>65`c383>!7013i>7c?88;18?xd5=o0;684?:1y'5=2=9;o0D>l7;I1ba>"b83;87dj;:188ma3=831bh;4?::kg3?6=3f;997>5;|`2f0<72:0;6=u+196957g<@:h37E=ne:&f4?7b3`n?6=44ie794?=h9;?1<75rb0`5>5<3290;w)?74;31g>N4j11C?lk4$d295c=nl=0;66gk5;29?lb12900c<<::188yg46k3:1?7>50z&2<1<6:h1C?o64H2cf?!c728o0ei:50;9j`0<722e:>84?::a64b=83>1<7>t$0:7>44d3A9i46F5;hf6>5<5fd583>>oc=3:17dj9:188ma1=831d=?;50;9~w1?02903wS:67:?126ml;_1`f>X4kh1U?n74^2a;?[5d?2T8o;5Q3b78Z1g>3W>j46P;a69]0d07S:n4:\7e6=Y;_6:0>X31:1U84<4^5;2?[2>82T?4k5Q49g8Z1>c3W>3o6P;8c9>7g?=l;16?l:5509>77d4==816?l?5509>7de==816?ll5509>621==;16>:85539>623==;16>::5539>625==;16>5o5539>6=?==;16>565539>6=1==;16>585539>6c7==;16>k>5539>6``==;16>hk5539>6`b==;16?=:5539>755==;16?=<5539>757==;16?=>5539>6g2==;16>o<5539>6g6==;16>lk5539>6de==;16>lo5539>6d>==;16>l85539>6d2==;16??j5539>77d==;16??75539>771==;16??;5539>775==;16???5539>74`==;16?4=5191896?42:h:70=63;7b?85>;3?370=63;74?85>;3?=70=63;76?85>;3??70=63;40?85>;3<970=63;42?85>;3<;70=63;7e?85>;3?n70=63;7g?85>;3?h70=63;7a?85>;3?870=63;:4?85>;32>7p};9883>6}Y<0301>o;:05b?85>13;{t4;f7?xu30h0;686t^5:b?85>j3><70=6a;64?85>13><70=n3;64?85f:3><70=n1;64?84>?3><70<70<70<70<703><70<:5;64?842<3><70<:3;64?842:3><70<:1;64?84283><70<;f;64?843m3><70<;4;64?843;3><70<;2;64?84393><70<;0;64?844n3><70<<70<<70?lc;64?87dj3><70?la;64?87d13><70?l8;64?87d?3><70?l6;64?87d=3><70?l4;64?84c<3><70<70<70<70<70<703><70<70<70<70<70<9a;64?84103><70<97;64?85003><70=87;64?850>3><70=85;64?850<3><70=83;64?850:3><70=81;64?85?83><70=8f;64?850m3><70=8d;64?850k3><70=8b;64?850i3><70=89;64?85083><70=9f;64?85>;3>i7p};4483>7}Y<=?01>?=:05a?xu3i90;697t^5c3?85f>3><70=n4;64?85f=3><70=nc;64?85fj3><70=>2;64?85693><70?n7;64?87f>3><70?n5;64?87f<3><70?n3;64?87f:3><70?n1;64?87f83><70?6f;64?87a;3><70?i2;64?87a93><70?i0;64?87bn3><70?je;64?87bl3><70?jc;64?87bj3><70?j1;64?87b83><70?kf;64?87cm3><70?kd;64?87ck3><70?kb;64?87ci3><70?k9;64?87c03><70<<2;64?84493><70<<0;64?845n3><70<=e;64?845l3><70<=c;64?845j3><70<=a;64?853i3><70=;9;64?85303><70=;7;64?853>3><70=;5;64?853;3><70=;2;64?853<3><70=:6;64?852<3><70=:5;64?852?3><70=:8;64?85213><70=:a;64?852j3><70=:c;64?851m3><70=9d;64?851k3><70=9b;64?851i3><70=99;64?85103><70=97;64?851>3><70=63;6`?xu3;=0;6?uQ4308961?28=i7p};3383>7}Y<;;01>98:05a?xu3;80;6?uQ4328961128=i7p};3183>7}Y<8l01>9::05a?xu3:o0;6?uQ40g8961328=i7p};2d83>7}Y<8n01>9<:05a?xu3:m0;6?uQ40a8961528=i7p};2b83>7}Y<8h01>9>:05a?xu3;m0;6?uQ43c896>728=i7p};3b83>7}Y<;301>9i:05a?xu3;k0;6?uQ43:8961b28=i7p};3`83>7}Y<;=01>9k:05a?xu3;00;6?uQ4348961d28=i7p};3983>7}Y<;?01>9m:05a?xu3;>0;6?uQ4368961f28=i7p};3783>7}Y<;901>96:05a?xu3;<0;6?uQ40c8961728=i7p};2c83>7}Y<8301>8i:05a?xu3980;6?uQ3df896?42130q~:?f;296~X4mj16?4=56`9~w16b2909wS=jb:?0=6<112wx8=j50;0xZ6cf3492?787;|q74f<72;qU?h74=2;0>31;n7>52z\0a==:;091:;5rs52:>5<5sW9n:63<92851>{t<921<7;32?7p};0683>7}Y;l>01>7<:918yv27>3:1>vP7<5=011v9>::181[5b:2785>472:p052=838pR>k>;<1:7?>63ty?<>4?:3y]7`6<5:3865>4}r636?6=:rT8hk5238193c=z{=::6=4={_1ga>;41:02d52z\0`3=:;091;45rs2d;>5<5sW9o963<9284<>{t;o=1<7;3=<7p}7}Y;m901>7<:648yv5a=3:1>vP7<5=?<1v9?7:181[5a;2785>484:p041=838pR>h=;<1:7?>f3ty?=;4?:3y]7c7<5:386:=4}r621?6=:rT8j=52381937=z{=;?6=4={_1fb>;41:0<=6s|40194?4|V:on70=63;53?xu39;0;6?uQ3d5896?42?o0q~:?a;296~X4lj16?4=56e9~w6`a2909wS=k1:?0=6<1k2wx?k:50;0xZ6b73492?78m;|q276<72hq6?oo5164897142=k01?69:5c897cc2=k01>>?:5c897d12=k01?o;:5c8964a2=k01>?i:5c896?42j30q~=6a;297~;41k0>=63<9`823g=:;031855rs2;a>5<5s492n7?8b:?0=ao;:5:896g228=i7p}7}:;h<1=:l4=2c;>a253z?0=d<29278544>7c9>7o;:18085f<3;;4i10o96s|38a94?2|5:k86<9n;<1b6?70i278m<4>7`9>7>0q~=n0;295d}:;h91=:l4=3;4>41f348o87:k;<0g7?2c348o=7:k;<0g4?2c348o>7:k;<0`b?2c348hi7:k;<0`g?2c348hn7?8a:?1ga<3l279i54;d:?1a2<3l279i;4;d:?1a0<3l279i94;d:?1a6<3l279i?4;d:?1a4<3l279i=4;d:?1`c<3l279:44>7`9>63g=9>k01?87:5f897002=n0q~=6f;2963}:;h81=:l4=32f>1b<5;:o69j4=32`>1b<5;:i69j4=32b>1b<5;:269j4=32;>1b<5;:<69j4=325>1b<5;?=69j4=376>1b<5;??69j4=370>1b<5;?969j4=372>1b<5;?;69j4=36e>1b<5;>n69j4=367>1b<5;>869j4=361>1b<5;>:69j4=363>1b<5;9m69j4=31f>1b<5;9o69j4=31`>1b<58io69j4=0a`>1b<58ii69j4=0ab>1b<58i269j4=0a;>1b<58i<69j4=0a5>1b<58i>69j4=0a7>1b514y>7d7=9>h01>97:5f896102=n01>99:5f896122=n01>9;:5f896142=n01>9=:5f896162=n01>6?:5f8961a2=n01>9j:5f8961c2=n01>9l:5f8961e2=n01>9n:5f8961>2=n01>9?:5f8960a2=n01>7::e6896?428297p}6}:;hi1=:o4=2ca>41f349j47?84:p7dg=83;nw0=nc;34f>;49;0?h63<1087`>;4;4<10?h63<4687`>;4;4<:0:;l5235090a=:;=>18i5234490a=:;<>1=:o4=276>1b<5:?<69j4=27;>1b<5:?269j4=27b>1b<5:?i69j4=27`>1b<5:1b<5:1b<5:1b<5:<369j4=244>1b<5:<=69j4}r1b=?6=:?q6?ll516`894g02=n01:5f894`72=n012=n01:5f897572=n01?0>=63=988231=z{;3<6=4:{<0:3?70j279:94k4:?124?>:438967328=?7p}<1083>6}:;8;1=:l4=236>a3<5:;?6i;4}r046?6=:r79;:4;a:?133<6?=1v?9l:181840?3;6=4={<043?70<279544k6:p627=838p1?99:5c8971228=?7p}=7c83>7}::><1=:j4=3:3>4133ty9;=4?:3y>623=::51668yv40i3:1>v3=74823a=::>l1=::4}r05b?6=:r79;94;a:?136<6?=1v?96:181840<3;759~w7>22909w0<7a;6b?84?13;<86s|29d94?4|5;2j6<9k;<0:0?70<2wx>4850;0x97>f28=?70<69;f6?xu50=0;6?u229;90d=::121=::4}r0;a?6=:r79444>7e9>6<5=9>>0q~<73;296~;5010?m63=868231=z{;2o6=4={<0;759~w7>52909w0<77;6b?84?>3;<86s|29a94?4|5;2<6<9k;<0:5?70<2wx>5l50;0x97>128=o70<60;340>{t:li1<71g<5;l;6<9;;|q1b3<72;q6>k?516f897`e28=?7p}<0g83>7}::o;1=::4=237>a052z?1b5<3i279ik4>759~w7`22909w0;5nh0:;95rs3gb>5<5s48nj7:n;<0fa?70<2wx>k:50;0x97ca28=o70{t:l31<71g<5;oo6<9;;|q1b6<72;q6>hk516f897`?28=?7p}=f383>7}::ln1=:j4=3d4>4133ty9jk4?:3y>752=v3<05823a=:;9o1=::4}r124?6=:r78<94>759>742=l>1v?hj:181857;3>j70=?2;340>{t;921<741c349;h7?84:p6cb=838p1>>=:5c8966628=?7p}<0683>7}:;981=:j4=22`>4133ty9jn4?:3y>757=51668yv57>3:1>v3<00823a=:;9h1=::4}r131?6=:r78<=4>7e9>75g=9>>0q~?ja;291~;6i>0>=63>f2823g=:9h31h8521``9`1=:9hn1h:5rs0;f>5<4s4;j;7?8b:?04`=838p128=?7p}>9e83>6}:9h<1=:l4=22g>a3<5;lj6i;4}r3be?6=:r7:m84:1:?2eg<6?=1v<7l:18087f=3;;5nh0o;6s|1`a94?1|58k?68?4=0cg>41334;jj7j:;<3a5?b134;i?7j8;<3a3?b034;i57j8;|q2=g<72:q6=l:516`8966d2m?01?h6:e78yv7fm3:1>v3>a2865>;6io0:;95rs0;b>5<4s4;j?7?8b:?04f9883>6}:9h81=:l4=22a>a3<5;l36i;4}r3a6?6=:r7:m<4:1:?2f6<6?=1v<77:18087f93;;5n10o;6s|1c694?4|58k;68?4=0`4>4133ty:5:4?:2y>5d6=9>h01>>n:e7897`02m?0q~?m8;296~;61o0>=63>b88231=z{83=6=4<{<3:b?70j2789j50;7x976b2<;01?;9:05a?84683n>70<>2;f7?846<3n<7p}=0483>6}::9o1=:l4=3;7>a3<5;2:6i;4}r03b?6=:r79;:180847l3;;5080o86s|20394?4|5;:h68?4=331>4133ty9<>4?:2y>65e=9>h01?7<:e7897>72m?0q~<>3;293~;58k0>=63=158231=::8<1h85220:9`3=::8k1h:5220g9`2=::;:1h:5rs321>5<4s48;n7?8b:?1=6n:438977128=?7p}=0083>6}::9k1=:l4=3;1>a3<5;=m6i;4}r023?6=:r79<44:1:?15=<6?=1v?>?:18084713;;5?o0o86s|20;94?4|5;:368?4=33b>4133ty:jk4?:2y>65>=9>h01?7>:e78971b2m?0q~<>b;296~;58>0>=63=1d8231=z{8ln6=4<{<033?70j2795<4k4:?13`u2214952d<5;3;6i:4=35g>a252z?113<29279894>7c9~w75f2909w0<:5;72?843;3;6<9m;<024?b3348:>7j:;<020?b13ty9?44?:3y>602==816>9<516`8yv43j3:1?v3=55823g=::881h;522069`0=z{;936=4={<067?36348?=7?8b:p61g=838p1?;<:05a?846<3n?7p}=3683>7}::<819<52252952d56z?117<6?k16><85d59>64>=l<16>64c=l<16>?>5d49~w7512909w0<:1;72?844n3;8>5509>66c=9>h0q~<;7;290~;5=90:;o5220c9`1=::8i1h95220f9`1=z{;9?6=4={<07b?363488h7?8b:p610=839p1?:i:05a?846k3n>70<>d;f6?xu5;:0;6?u225g914=:::i1=:l4}r071?6=:r798h4>7c9>64b=l?1v{t9m<1<707<58o;6<9m;|q2a<<72=q6=k<516`894g>2m>01=63>dg823g=z{8o36=4<{<3e5?70j27:mo4k6:?2ea0;6?u21g2952d<58ko6i:4}r3g7?6=:r7:ik4:1:?2`a<6?k1vag8g0>;6j80o963>b28g2>;6j>0o963>b88g1>{t9m81<707<58nh6<9m;|q2a0<720101v3>ee865>;6lk0:;o5rs0g7>5<3s4;nh7?8b:?2f650;0x94cd2<;01u21da952d<58h>6i;4=0`5>a352z?2ag<2927:h44>7c9~w4c52909w0?jb;34f>;6j?0o:6s|23;94?4|5;>?68?4=311>41e3ty9>54?:3y>615==816>>?516`8yv45?3:1>v3=43865>;5;90:;o5rs305>5<5s48?=7;>;<01b?70j2wx>?;50;0x97272<;01?{t:;;1<707<5;8j6<9m;|q2g6<72;q6=h?5509>5fb=9>h0q~?l2;296~;6m90>=63>cb823g=z{8i:6=4={<3gb?3634;hn7?8b:p5f6=838p1bg83>7}:9mn19<521b;952d52z?2`f<2927:o54>7c9~w4dc2909w0?kb;72?87d?3;41e3ty:no4?:3y>5a?==816=n;516`8yv7ei3:1>v3>d9865>;6k=0:;o5rs0af>5<6s4;o47?8b:p6ac=83?p1{t9o=1<707<58236<9;;|q2b=<72;q6=n65509>5=?=9>>0q~?i9;296~;6k>0>=63>8`8231=z{8lj6=4={<3`2?3634;3n7?84:p5cd=838p1d28=?7p}>fb83>7}:9j>19<5219f952254z?177<29278:h4>7c9>5=c=l=16?4=5409~w7302909w0<<1;72?87?m3;<86s|24:94?4|5;9;68?4=0:e>4133ty9944?:3y>67`==816=4>51668yv42i3:1>v3=2d865>;6180:;95rs37a>5<5s489h7;>;<3:6?70<2wx>8m50;0x974d2<;01<7<:057?xu5=m0;6?u223`914=:90>1=::4}r06a?6=:r79>l4:1:?2=0<6?=1v?8?:1821~;5l=0?463=d287<>;5l80?463=d187<>;5l;0?463=cg87<>;5kl0?463=cb87<>;5kk0?463=ce87<>;5m10?463=e687<>;5m?0?463=e487<>;5m=0?463=e287<>;5m;0?463=e087<>;5m90?463=dg87<>;5>80:;95rs3c0>5<5s48o87;>;<0ab?70<2wx>no50;6x97b328=i70<3n<704>7c9>6`1==816>4:5d79>6g3=l=1v?o?:18184c93?:70{t:j=1<7:t=3f2>41e348n97;>;<0:7?b1348i=7j;;|q1=c<72;q6>i>5509>6gd=9>>0q~=83>p1?j=:05a?84b>3?:70<63;f4?84e;3n?7p}=9d83>7}::jl19<522cc952254z?1gc<6?k16>h=5509>6<4=l?16>lj5d59~w7?c2909w06fe==816>o951668yv4d:3:18v3=cb823g=::l:19<522829`0=::h=1h95rs3;b>5<5s48hn7;>;<0a2?70<2wx>n?50;6x97ee28=i7083n=707c9>6`7==816>4?5d79>6d?=l=1v?l;:18184en3>j70{t:j:1<7443348h<7?84:p6g4=839p1?lj:5c897d32=k01?l=:057?xu5j<0;6>u22cg9572<5;h?6<9k;<0a1?70<2wx>o>50;1x97dc2=k01?l=:5c897d728=?7p}=b283>6}::kn1=?:4=3`1>41c348i?7?84:p6dc=839p1?ll:5c897d72=k01?oj:057?xu5j80;6>u22ca9572<5;h;6<9k;<0a5?70<2wx>lm50;1x97de2=k01?oj:5c897gd28=?7p}=ag83>6}::kh1=?:4=3cf>41c348jj7?84:p6dg=839p1?ln:5c897gd2=k01?on:057?xu5im0;6>u22cc9572<5;kh6<9k;<0b`?70<2wx>l650;1x97d>2=k01?on:5c897g?28=?7p}=ac83>6}::k31=?:4=3cb>41c348jn7?84:p6d0=839p1?l7:5c897g?2=k01?o9:057?xu5i00;6>u22c:9572<5;k36<9k;<0b=?70<2wx>l:50;1x97d02=k01?o9:5c897g328=?7p}=a683>6}::k=1=?:4=3c5>41c348j;7?84:p6d3=839p1?l9:007?84f<3;im50;7x97c128=i70?77;f7?87?>3n>70<70;f4?85>;39?7p}=dc83>0}::l?1=:l4=0:;>a2<582<6i;4=3:3>a0<5:386>=4}r0ge?6==r79i94>7c9>5=?=l=16=565d49>62`=l>16?4=5339~w7b>290>w0;60h0o863>888g1>;5?o0o:63<92805>{t:m21<7;t=3g1>41e34;3n7j;;<3;e?b23486`7=9>h01<6l:e6894>e2m?01?9j:e4896?42;l0q~h5rs3f6>5<3s48oj7?8b:?2;l50;1x970>2<;01?8n:438970d28=?7p}=6883>7}::?31=:l4=34`>a252z?12=<29279:94>759~w7012903w0<98;34f>;5>:0o863=658g1>;5>j0o:63=638g2>;5>80o:63=5g8g2>;5>90o:6s|27f94?4|5;<<68?4=340>4133ty9:84?:9y>631=9>h01?8<:e4897032m=01?8l:e7897052m?01?8>:e58973a2m=01?8?:e58yv5>03:1=iu235c90==:;=31855235:90==:;==1855235490==:;=?1855235190==:;=81855235690==:;<<1855234690==:;6d53ty8=h4?:3y>71g==816?>951668yv5393:18v3<4`823g=:;5<5s49?57;>;<102?70<2wx?9>50;6x962>28=i70=:b;72?857l3n<70==e;f7?xu49j0;6?u235:914=:;:?1=::4}r10b?6=7c9>70g==816?=j5d79>77e=l=1v>?m:181853?3?:70=<4;340>{t;:o1<7:t=264>41e349>57;>;<13g?b03499m7j;;|q05d<72;q6?985509>765=9>>0q~=7?84:p76e=83>p1>:::05a?852?3?:70=?b;f4?855>3n?7p}<1683>7}:;=919<52322952254z?006<6?k16?8;5509>75g=l>16??<5d59~w6712909w0=;2;72?855n3;<86s|32;94?2|5:>96<9m;<160?36349;m7j9;<114?b33ty8=54?:3y>712==816?>?51668yv54j3:18v3<45823g=:;<<19<5231`9`3=:;;>1h95rs20g>5<5s498;7:n;<11`?70<2wx?>650;0x9650288?70=<8;340>{t;;h1<7=t=215>1g<5:8o69o4=20a>4133ty8>h4?:2y>760=9;>01>69o4=20a>1g<5:826<9;;|q06f<72:q6?>;51368964e28=o70==c;340>{t;;=1<7=t=217>1g<5:8269o4=204>4133ty8>l4?:2y>762=9;>01><6:05g?855i3;<86s|33794?5|5:9869o4=204>1g<5:8>6<9;;|q06=<72:q6?>=51368964028=o70==8;340>{t;;91<7=t=211>1g<5:8>69o4=200>4133ty8>;4?:2y>764=9;>01><::05g?855>3;<86s|33394?5|5:9:69o4=200>1g<5:8:6<9;;|q061<72:q6?>?51368964428=o70==4;340>{t;8l1<7=t=213>1g<5:8:69o4=23e>4133ty8>?4?:2y>766=9;>01><>:05g?855:3;<86s|33294?5|5:8m6<<;;<12b?70l278>=4>759~w62c2908w0=:6;34f>;4>10>=63=f98g2>{t;=h1<7=t=277>41e349=:7;>;<0e3?b13ty88n4?:2y>703=9>h01>88:43897`02m>0q~=;e;297~;4=>0:;o5237;914=::o21h95rs26e>5<4s49>47?8b:?02d<29279j44k6:p706=839p1>;6:05a?851j3?:70u234c952d<5:a0>7>53z?01g<6?k16?;j5509>6cg=l=1v>;<:180852k3;;5nk0o86s|37694?2|5:4?:5y>73e=9>h01<7?:e6894>a2m?01>7<:2g8yv51:3:18v3<6c823g=:90;1h9521829`0=:;091?i5rs242>5<3s49=m7?8b:?2=750;6x960>28=i70?63;f7?87>:3n>70=63;1a?xu4=o0;69u237:952d<583?6i:4=0;0>a3<5:386>o4}r16a?6=7c9>5<3=l=16=4:5d49>7<5=;01v>;k:180851>3;948g1>;41:0846s|38594?74s49<47:7;<143?2?349<:7:7;<141?2?349<87:7;<147?2?349<>7:7;<145?2?3493<7:7;<14b?2?3497?84:p7=?=838p1>97:43896?42j;0q~=78;296~;4?>0>=63<928:0>{t;1=1<707<5:3864<4}r1;2?6=:r78;84:1:?0=6<>92wx?5;50;0x96132<;01>7<:828yv5?<3:1>v3<72865>;41:03j6s|39194?4|5:=968?4=2;0>=c7>52z?034<292785>46d:p7<4=838p1>6?:43896?420i0q~=61;296~;4?o0>=63<928ab>{t;0:1<707<5:3864l4}r1;b?6=:r78;i4:1:?0=6<>i2wx?5k50;0x961d2<;01>7<:8;8yv5?l3:1>v3<7c865>;41:0246s|39a94?4|5:=j68?4=2;0><152z?03<<292785>466:p7=g=838p1>9?:43896?420?0q~=71;296~;4>o0>=63<928;`>{t:a3<5;<;6<<:;|q0=1<72;q6?4;5166896?42j20q~=66;296~;5100o863=5g8260=z{87p}>6983>7}::8o1h;5220a957352z?165279=i4>249~yv2693:1>vP00<4mm1/?lj517a8yv27n3:1>vP00<4mj1/?lj517f8yv27m3:1>vP00<4mk1/?lj517g8yv27l3:1>vP00<4mh1/?lj517d8yv27k3:1>vP00<4m01/?lj51268yv27j3:1>vP00<4m11/?lj512;8yv2713:1>vP00<4m?1/?lj512a8yv2703:1>vP00<4m<1/?lj51558yv27?3:1>vP00<4m=1/?lj51428yv27>3:1>vP00<4m:1/?lj51438yv27=3:1>vP00<4m;1/?lj51408yv27<3:1>vP00<4m81/?lj51418yv27;3:1>vP00<4m91/?lj51468yv27:3:1>vP00<4lo1/?lj51478yv2793:1>vP00<4ll1/?lj51448yv2783:1>vP00<4lm1/?lj51458yv5am3:1>vP00<4lk1/?lj514:8yv5al3:1>vP00<4lh1/?lj514;8yv5ak3:1>vP00<4l01/?lj514c8yv5aj3:1>vP00<4l11/?lj514`8yv5ai3:1>vP00<4l>1/?lj514a8yv5a13:1>vP00<4l?1/?lj514f8yv5a03:1>vP00<4l<1/?lj514g8yv5a?3:1>vP00<4l=1/?lj514d8yv5a>3:1>vP00<4l:1/?lj51728yv5a=3:1>vP00<4l;1/?lj51738yv2603:1>vP00<4n:1/?lj51708yv26?3:1>vP00<4n;1/?lj51718yv26>3:1>vP00<4n81/?lj51768yv26=3:1>vP00<4n91/?lj51778yv26<3:1>vP00<4mo1/?lj51748yv26;3:1>vP00<4ml1/?lj51758yv26:3:1>vP00<4m>1/?lj517:8yv27i3:1>vP00<4lj1/?lj517;8yv5an3:1>vP00<4l81/?lj517c8yv5a<3:1>vP00<4l91/?lj517`8yv2?i3:1>vP;8`9>00<30h1/?lj51628yv2>?3:1>vP;969>00<31>1/?lj51278yv2>13:1>vP;989>00<3101/?lj51248yv2f83:1>vP;a19>00<3i91/?lj51258yv2fj3:1>vP;ac9>00<3ik1/?lj512:8yv24<3:1>vP;239>00<3:;1/?lj512c8yv24:3:1>vP;209>00<3:81/?lj512`8yv2493:1>vP;219>00<3:91/?lj512f8yv2483:1>vP;1g9>00<39o1/?lj512g8yv25n3:1>vP;1d9>00<39l1/?lj512d8yv25m3:1>vP;1e9>00<39m1/?lj51528yv25l3:1>vP;1b9>00<39j1/?lj51538yv25k3:1>vP;1c9>00<39k1/?lj51508yv24l3:1>vP;2`9>00<3:h1/?lj51518yv24k3:1>vP;289>00<3:01/?lj51568yv24j3:1>vP;299>00<3:11/?lj51578yv24i3:1>vP;269>00<3:>1/?lj51548yv2413:1>vP;279>00<3:?1/?lj515:8yv2403:1>vP;249>00<3:<1/?lj515;8yv24?3:1>vP;259>00<3:=1/?lj515c8yv24>3:1>vP;229>00<3::1/?lj515`8yv24=3:1>vP;1`9>00<39h1/?lj515a8yv25j3:1>vP;189>00<3901/?lj515f8yv24n3:1>vP;3g9>00<3;o1/?lj515g8yv23=3:1>vP;449>00<3<<1/?lj515d8yxh?l=0;6?uG3`g8yk>c=3:1>vFoj;|l;`=<72;qC?lk4}o:g=?6=:rB8mh5rn9fb>5<5sA9ji6sa8e`94?4|@:kn7p`7db83>7}O;ho0qc6kd;296~N4il1vb5jj:181M5fm2we4ih50;0xL6gb3td3i=4?:3yK7dc52zJ0e`=zf1o96=4={I1ba>{i0l91<7b=3:1>vFoj;|l;a=<72;qC?lk4}o:f=?6=:rB8mh5rn9gb>5<5sA9ji6sa8d`94?4|@:kn7p`7eb83>7}O;ho0qc6jd;296~N4il1vb5kj:181M5fm2we4hh50;0xL6gb3td3j=4?:3yK7dc52zJ0e`=zf1l96=4={I1ba>{i0o91<7a=3:1>vFoj;|l;b=<72;qC?lk4}o:e=?6=:rB8mh5rn9db>5<5sA9ji6sa8g`94?4|@:kn7p`7fb83>7}O;ho0qc6id;296~N4il1vb5hj:181M5fm2we4kh50;0xL6gb3td2<=4?:3yK7dc52zJ0e`=zf0:96=4={I1ba>{i1991<78=0;6?uG3`g8yk?7=3:1>vFoj;|l:4=<72;qC?lk4}o;3=?6=:rB8mh5rn82b>5<5sA9ji6sa91`94?4|@:kn7p`60b83>7}O;ho0qc7?d;296~N4il1vb4>j:181M5fm2we5=h50;0xL6gb3td2==4?:3yK7dc51zJ0e`=zf>k<6=4>{I1ba>{i?h21<7?tH2cf?xh0i00;6oj;|l4ea<728qC?lk4}o5ba?6=9rB8mh5rn6ce>5<6sA9ji6sa7c294?7|@:kn7p`8b083>4}O;ho0qc9m2;295~N4il1vb:l<:182M5fm2we;o:50;3xL6gb3td51zJ0e`=zf>h<6=4>{I1ba>{i?k21<7?tH2cf?xh0j00;6oj;|l4fa<728qC?lk4}o5aa?6=9rB8mh5rn6`e>5<6sA9ji6sa7b294?7|@:kn7p`8c083>4}O;ho0qc9l2;295~N4il1vb:m<:182M5fm2we;n:50;3xL6gb3td51zJ0e`=zf>i<6=4>{I1ba>{i?j21<7?tH2cf?xh0k00;6oj;|l4ga<728qC?lk4}o5`a?6=9rB8mh5rn6ae>5<6sA9ji6sa7e294?7|@:kn7p`8d083>4}O;ho0qc9k2;295~N4il1vb:j<:182M5fm2we;i:50;3xL6gb3td51zJ0e`=zf>n<6=4>{I1ba>{i?m21<7?tH2cf?xh0l00;6oj;|l4`a<728qC?lk4}o5ga?6=9rB8mh5rn6fe>5<6sA9ji6sa7d294?7|@:kn7p`8e083>4}O;ho0qc9j2;295~N4il1vb:k<:182M5fm2we;h:50;3xL6gb3td51zJ0e`=zf>o<6=4>{I1ba>{i?l21<7?tH2cf?xh0m00;6oj;|l4aa<728qC?lk4}o5fa?6=9rB8mh5rn6ge>5<6sA9ji6sa7g294?7|@:kn7p`8f083>4}O;ho0qc9i2;295~N4il1vb:h<:182M5fm2we;k:50;3xL6gb3td51zJ0e`=zf>l<6=4>{I1ba>{i?o21<7?tH2cf?xh0n00;6oj;|l4ba<728qC?lk4}o5ea?6=9rB8mh5rn6de>5<6sA9ji6sa81294?7|@:kn7p`70083>4}O;ho0qc6?2;295~N4il1vb5><:182M5fm2we4=:50;3xL6gb3td3<84?:0yK7dc51zJ0e`=zf1:<6=4>{I1ba>{i0921<7?tH2cf?xh?800;67i3:1=vFoj;|l;4a<728qC?lk4}o:3a?6=9rB8mh5rn92e>5<6sA9ji6sa80294?7|@:kn7p`71083>4}O;ho0qc6>2;295~N4il1vb5?<:182M5fm2we4<:50;3xL6gb3td3=84?:0yK7dc51zJ0e`=zf1;<6=4>{I1ba>{i0821<7?tH2cf?xh?900;66i3:1=vFoj;|l;5a<728qC?lk4}o:2a?6=9rB8mh5rn93e>5<6sA9ji6sa83294?7|@:kn7p`72083>4}O;ho0qc6=2;295~N4il1vb5<<:182M5fm2we4?:50;3xL6gb3td3>84?:0yK7dc51zJ0e`=zf18<6=4>{I1ba>{i0;21<7?tH2cf?xh?:00;65i3:1=vFoj;|l;6a<728qC?lk4}o:1a?6=9rB8mh5rn90e>5<6sA9ji6sa82294?7|@:kn7p`73083>4}O;ho0qc6<2;295~N4il1vb5=<:182M5fm2we4>:50;3xL6gb3td3?84?:0yK7dc51zJ0e`=zf19<6=4>{I1ba>{i0:21<7?tH2cf?xh?;00;64i3:1=vFoj;|l;7a<728qC?lk4}o:0a?6=9rB8mh5rn91e>5<6sA9ji6sa85294?7|@:kn7p`74083>4}O;ho0qc6;2;295~N4il1vb5:<:182M5fm2we49:50;3xL6gb3td3884?:0yK7dc51zJ0e`=zf1><6=4>{I1ba>{i0=21<7?tH2cf?xh?<00;63i3:1=vFoj;|l;0a<728qC?lk4}o:7a?6=9rB8mh5rn96e>5<6sA9ji6sa84294?7|@:kn7p`75083>4}O;ho0qc6:2;295~N4il1vb5;<:182M5fm2we48:50;3xL6gb3td3984?:0yK7dc:7>51zJ0e`=zf1?<6=4>{I1ba>{i0<21<7?tH2cf?xh?=00;62i3:1=vFoj;|l;1a<728qC?lk4}o:6a?6=9rB8mh5rn97e>5<6sA9ji6sa87294?7|@:kn7p`76083>4}O;ho0qc692;295~N4il1vb58<:182M5fm2we4;:50;3xL6gb3td3:84?:0yK7dc51zJ0e`=zf1<<6=4>{I1ba>{i0?21<7?tH2cf?xh?>00;61i3:1=vFoj;|l;2a<728qC?lk4}o:5a?6=9rB8mh5rn94e>5<6sA9ji6sa86294?7|@:kn7p`77083>4}O;ho0qc682;295~N4il1vb59<:182M5fm2we4::50;3xL6gb3td3;84?:0yK7dc51zJ0e`=zf1=<6=4>{I1ba>{i0>21<7?tH2cf?xh??00;60i3:1=vFoj;|l;3a<728qC?lk4}o:4a?6=9rB8mh5rn95e>5<6sA9ji6sa89294?7|@:kn7p`78083>4}O;ho0qc672;295~N4il1vb56<:182M5fm2we45:50;3xL6gb3td3484?:0yK7dc51zJ0e`=zf12<6=4>{I1ba>{i0121<7?tH2cf?xh?000;6?i3:1=vFe290:wE=ne:m<=e=83;pD>oj;|l;5<6sA9ji6sa88294?7|@:kn7p`79083>4}O;ho0qc662;295~N4il1vb57<:182M5fm2we44:50;3xL6gb3td3584?:0yK7dc51zJ0e`=zf13<6=4>{I1ba>{i0021<7?tH2cf?xh?100;6>i3:1=vFoj;|l;=a<728qC?lk4}o::a?6=9rB8mh5rn9;e>5<6sA9ji6sa8`294?7|@:kn7p`7a083>4}O;ho0qc6n2;295~N4il1vb5o<:182M5fm2we4l:50;3xL6gb3td3m84?:0yK7dc51zJ0e`=zf1k<6=4>{I1ba>{i0h21<7?tH2cf?xh?i00;6fi3:1=vFoj;|l;ea<728qC?lk4}o:ba?6=9rB8mh5rn9ce>5<6sA9ji6sa8c294?7|@:kn7p`7b083>4}O;ho0qc6m2;295~N4il1vb5l<:182M5fm2we4o:50;3xL6gb3td3n84?:0yK7dc51zJ0e`=zf1h<6=4>{I1ba>{i0k21<7?tH2cf?xh?j00;6ei3:1=vFoj;|l;fa<728qC?lk4}o:aa?6=9rB8mh5rn9`e>5<6sA9ji6sa8b294?7|@:kn7p`7c083>4}O;ho0qc6l2;295~N4il1vb5m<:182M5fm2we4n:50;3xL6gb3td3o84?:0yK7dc51zJ0e`=zf1i<6=4>{I1ba>{i0j21<7?tH2cf?xh?k00;6di3:1=vFoj;|l;ga<728qC?lk4}o:`a?6=9rB8mh5rn9ae>5<6sA9ji6sa8e294?7|@:kn7p`7d083>4}O;ho0qc6k2;295~N4il1vb5j<:182M5fm2wvqpNOCzc4g?b7l==jn5sO@Cy3yEFWstJK diff --git a/usrp2/extramfifo/ext_fifo.v b/usrp2/extramfifo/ext_fifo.v index a506d71e2..c7e8f6cfb 100644 --- a/usrp2/extramfifo/ext_fifo.v +++ b/usrp2/extramfifo/ext_fifo.v @@ -57,10 +57,18 @@ module ext_fifo .dout(write_data), // Bus [17 : 0] .full(full1), .empty(empty1)); - assign dst_rdy_o = ~full1; + + assign dst_rdy_o = ~full1; + +/* -----\/----- EXCLUDED -----\/----- + assign space_avail = ~full2; + assign data_avail = ~empty1; + assign read_data = write_data; + -----/\----- EXCLUDED -----/\----- */ + // External FIFO running at ext clock rate and 18 bit width. - nobl_fifo #(.WIDTH(EXT_WIDTH),.DEPTH(DEPTH)) + nobl_fifo #(.WIDTH(EXT_WIDTH),.DEPTH(DEPTH),.FDEPTH(DEPTH)) nobl_fifo_i1 ( .clk(ext_clk), @@ -94,7 +102,8 @@ module ext_fifo .rd_en(dst_rdy_i), .dout(dataout), // Bus [35 : 0] .full(full2), - .almost_full(almost_full2), + .almost_full(), + .prog_full(almost_full2), .empty(empty2)); assign src_rdy_o = ~empty2; diff --git a/usrp2/extramfifo/ext_fifo_tb.v b/usrp2/extramfifo/ext_fifo_tb.v index 38df4a285..a93d524d5 100644 --- a/usrp2/extramfifo/ext_fifo_tb.v +++ b/usrp2/extramfifo/ext_fifo_tb.v @@ -51,6 +51,44 @@ module ext_fifo_tb(); always #4 ext_clk <= ~ext_clk; + initial + begin + rst <= 1; + repeat (5) @(negedge int_clk); + rst <= 0; + @(negedge int_clk); + while (datain < 10000) + begin + @(negedge int_clk); + datain <= datain + dst_rdy_o; + src_rdy_i <= dst_rdy_o; + end + end // initial begin + + + initial + begin + repeat (20) @(negedge int_clk); + + // Fall through fifo, first output already valid + if (dataout !== ref_dataout) + $display("Error: Expected %x, got %x",ref_dataout, dataout); + + while (ref_dataout < 10000) + begin + @(negedge int_clk); + ref_dataout <= ref_dataout + src_rdy_o ; + dst_rdy_i <= src_rdy_o; + if ((dataout !== ref_dataout) && src_rdy_o) + $display("Error: Expected %x, got %x",ref_dataout, dataout); + @(negedge int_clk); + dst_rdy_i <= 0; + repeat(6) @(negedge int_clk); + end + end + + +/* -----\/----- EXCLUDED -----\/----- initial begin @@ -112,6 +150,7 @@ module ext_fifo_tb(); end // initial begin + -----/\----- EXCLUDED -----/\----- */ /////////////////////////////////////////////////////////////////////////////////// // Simulation control // /////////////////////////////////////////////////////////////////////////////////// diff --git a/usrp2/extramfifo/nobl_fifo.v b/usrp2/extramfifo/nobl_fifo.v index 7ddb517c7..03e3f5223 100644 --- a/usrp2/extramfifo/nobl_fifo.v +++ b/usrp2/extramfifo/nobl_fifo.v @@ -5,7 +5,7 @@ // "full" and "empty" flags. module nobl_fifo - #(parameter WIDTH=18,DEPTH=19) + #(parameter WIDTH=18,DEPTH=19,FDEPTH=10) ( input clk, input rst, @@ -27,9 +27,9 @@ module nobl_fifo input upstream_full // (Connect to almost full flag upstream) ); - reg [DEPTH-1:0] capacity; - reg [DEPTH-1:0] wr_pointer; - reg [DEPTH-1:0] rd_pointer; + reg [FDEPTH-1:0] capacity; + reg [FDEPTH-1:0] wr_pointer; + reg [FDEPTH-1:0] rd_pointer; wire [DEPTH-1:0] address; reg supress; reg data_avail_int; // Data available with high latency from ext FIFO flag @@ -51,7 +51,7 @@ module nobl_fifo always @(posedge clk) if (rst) begin - capacity <= 1 << (DEPTH-1); + capacity <= 1 << (FDEPTH-1); wr_pointer <= 0; rd_pointer <= 0; space_avail <= 0; @@ -60,9 +60,11 @@ module nobl_fifo end else begin - space_avail <= ~((capacity == 0) || (read&&write) || (capacity == 1 && write) ); + // No space available if: + // Capacity is already zero; Capacity is 1 and write is asserted (lookahead); both read and write are asserted (collision) + space_avail <= ~((capacity == 0) || (read&&write) || ((capacity == 1) && write) ); // Capacity has 1 cycle delay so look ahead here for corner case of read of last item in FIFO. - data_avail_int <= ~((capacity == (1 << (DEPTH-1))) || (read&&write) || (capacity == ((1 << (DEPTH-1))-1) && read) ); + data_avail_int <= ~((capacity == (1 << (FDEPTH-1))) || (read&&write) || ((capacity == ((1 << (FDEPTH-1))-1)) && read) ); supress <= read && write; wr_pointer <= wr_pointer + write; rd_pointer <= rd_pointer + ((~write && read) || supress); -- cgit v1.2.3 From 04e5b7128d4e40766ca5dbf3a9abc294464de721 Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Thu, 12 Aug 2010 12:28:13 -0700 Subject: Bringing all coregen files checked in into sync --- usrp2/coregen/fifo_generator_ug175.pdf | Bin 1069823 -> 2895895 bytes usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.veo | 12 +-- .../coregen/fifo_xlnx_512x36_2clk_18to36_flist.txt | 6 +- .../fifo_xlnx_512x36_2clk_18to36_readme.txt | 22 +++-- .../coregen/fifo_xlnx_512x36_2clk_18to36_xmdf.tcl | 8 +- usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.veo | 12 +-- ...k_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt | 101 --------------------- .../coregen/fifo_xlnx_512x36_2clk_36to18_flist.txt | 6 +- .../fifo_xlnx_512x36_2clk_36to18_readme.txt | 22 +++-- .../coregen/fifo_xlnx_512x36_2clk_36to18_xmdf.tcl | 8 +- 10 files changed, 60 insertions(+), 137 deletions(-) delete mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt diff --git a/usrp2/coregen/fifo_generator_ug175.pdf b/usrp2/coregen/fifo_generator_ug175.pdf index 2c3e3c200..5fba6029c 100644 Binary files a/usrp2/coregen/fifo_generator_ug175.pdf and b/usrp2/coregen/fifo_generator_ug175.pdf differ diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.veo b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.veo index cd949ccaa..c962fddfa 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.veo +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.veo @@ -23,7 +23,7 @@ * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * -* (c) Copyright 1995-2007 Xilinx, Inc. * +* (c) Copyright 1995-2009 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The following must be inserted into your Verilog file for this @@ -32,16 +32,16 @@ //----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG fifo_xlnx_512x36_2clk_18to36 YourInstanceName ( - .din(din), // Bus [17 : 0] - .rd_clk(rd_clk), - .rd_en(rd_en), .rst(rst), .wr_clk(wr_clk), + .rd_clk(rd_clk), + .din(din), // Bus [17 : 0] .wr_en(wr_en), - .almost_full(almost_full), + .rd_en(rd_en), .dout(dout), // Bus [35 : 0] + .full(full), .empty(empty), - .full(full)); + .prog_full(prog_full)); // INST_TAG_END ------ End INSTANTIATION Template --------- diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_flist.txt b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_flist.txt index 18ba3e664..2f8d522f6 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_flist.txt +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_flist.txt @@ -1,8 +1,12 @@ # Output products list for +_xmsgs/pn_parser.xmsgs +fifo_generator_ug175.pdf +fifo_xlnx_512x36_2clk_18to36.gise fifo_xlnx_512x36_2clk_18to36.ngc fifo_xlnx_512x36_2clk_18to36.v fifo_xlnx_512x36_2clk_18to36.veo fifo_xlnx_512x36_2clk_18to36.xco -fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt +fifo_xlnx_512x36_2clk_18to36.xise fifo_xlnx_512x36_2clk_18to36_flist.txt +fifo_xlnx_512x36_2clk_18to36_readme.txt fifo_xlnx_512x36_2clk_18to36_xmdf.tcl diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_readme.txt b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_readme.txt index e0d45849d..03829e876 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_readme.txt +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_readme.txt @@ -1,5 +1,12 @@ The following files were generated for 'fifo_xlnx_512x36_2clk_18to36' in directory -/home/matt/fpgapriv/usrp2/coregen/: +/home/ianb/ettus/sram_fifo/fpgapriv/usrp2/coregen/ + +fifo_generator_ug175.pdf: + Please see the core data sheet. + +fifo_xlnx_512x36_2clk_18to36.gise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. fifo_xlnx_512x36_2clk_18to36.ngc: Binary Xilinx implementation netlist file containing the information @@ -18,12 +25,9 @@ fifo_xlnx_512x36_2clk_18to36.xco: CORE Generator input file containing the parameters used to regenerate a core. -fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt: - Please see the core data sheet. - -fifo_xlnx_512x36_2clk_18to36_flist.txt: - Text file listing all of the output files produced when a customized - core was generated in the CORE Generator. +fifo_xlnx_512x36_2clk_18to36.xise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. fifo_xlnx_512x36_2clk_18to36_readme.txt: Text file indicating the files generated and how they are used. @@ -33,6 +37,10 @@ fifo_xlnx_512x36_2clk_18to36_xmdf.tcl: how the files output by CORE Generator for the core can be integrated into your ISE project. +fifo_xlnx_512x36_2clk_18to36_flist.txt: + Text file listing all of the output files produced when a customized + core was generated in the CORE Generator. + Please see the Xilinx CORE Generator online help for further details on generated files and how to use them. diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_xmdf.tcl b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_xmdf.tcl index f20d53f64..9b9b1f37a 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_xmdf.tcl +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_xmdf.tcl @@ -36,6 +36,10 @@ utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim incr fcount +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_generator_ug175.pdf +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_18to36.ngc utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc incr fcount @@ -52,10 +56,6 @@ utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_51 utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip incr fcount -utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt -utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView -incr fcount - utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_18to36_xmdf.tcl utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.veo b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.veo index 5c2da4b97..e93be1591 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.veo +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.veo @@ -23,7 +23,7 @@ * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * -* (c) Copyright 1995-2007 Xilinx, Inc. * +* (c) Copyright 1995-2009 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The following must be inserted into your Verilog file for this @@ -32,15 +32,15 @@ //----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG fifo_xlnx_512x36_2clk_36to18 YourInstanceName ( - .din(din), // Bus [35 : 0] - .rd_clk(rd_clk), - .rd_en(rd_en), .rst(rst), .wr_clk(wr_clk), + .rd_clk(rd_clk), + .din(din), // Bus [35 : 0] .wr_en(wr_en), + .rd_en(rd_en), .dout(dout), // Bus [17 : 0] - .empty(empty), - .full(full)); + .full(full), + .empty(empty)); // INST_TAG_END ------ End INSTANTIATION Template --------- diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt deleted file mode 100644 index 3abf04253..000000000 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - -

- - - - - - - - - - - - - - -
-
- - - - - - - - - - - -
-
- - - -
-
-
-
-
-
-
-
- - - - -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - -
-
-
- - - - - - - -
-
-
-
-
- - - -
- - - diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_flist.txt b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_flist.txt index aadac46c0..54c85b15e 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_flist.txt +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_flist.txt @@ -1,8 +1,12 @@ # Output products list for +_xmsgs/pn_parser.xmsgs +fifo_generator_ug175.pdf +fifo_xlnx_512x36_2clk_36to18.gise fifo_xlnx_512x36_2clk_36to18.ngc fifo_xlnx_512x36_2clk_36to18.v fifo_xlnx_512x36_2clk_36to18.veo fifo_xlnx_512x36_2clk_36to18.xco -fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt +fifo_xlnx_512x36_2clk_36to18.xise fifo_xlnx_512x36_2clk_36to18_flist.txt +fifo_xlnx_512x36_2clk_36to18_readme.txt fifo_xlnx_512x36_2clk_36to18_xmdf.tcl diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_readme.txt b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_readme.txt index 568c757ec..3efc586bf 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_readme.txt +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_readme.txt @@ -1,5 +1,12 @@ The following files were generated for 'fifo_xlnx_512x36_2clk_36to18' in directory -/home/matt/fpgapriv/usrp2/coregen/: +/home/ianb/ettus/sram_fifo/fpgapriv/usrp2/coregen/ + +fifo_generator_ug175.pdf: + Please see the core data sheet. + +fifo_xlnx_512x36_2clk_36to18.gise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. fifo_xlnx_512x36_2clk_36to18.ngc: Binary Xilinx implementation netlist file containing the information @@ -18,12 +25,9 @@ fifo_xlnx_512x36_2clk_36to18.xco: CORE Generator input file containing the parameters used to regenerate a core. -fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt: - Please see the core data sheet. - -fifo_xlnx_512x36_2clk_36to18_flist.txt: - Text file listing all of the output files produced when a customized - core was generated in the CORE Generator. +fifo_xlnx_512x36_2clk_36to18.xise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. fifo_xlnx_512x36_2clk_36to18_readme.txt: Text file indicating the files generated and how they are used. @@ -33,6 +37,10 @@ fifo_xlnx_512x36_2clk_36to18_xmdf.tcl: how the files output by CORE Generator for the core can be integrated into your ISE project. +fifo_xlnx_512x36_2clk_36to18_flist.txt: + Text file listing all of the output files produced when a customized + core was generated in the CORE Generator. + Please see the Xilinx CORE Generator online help for further details on generated files and how to use them. diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_xmdf.tcl b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_xmdf.tcl index 09248b321..5161c1826 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_xmdf.tcl +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_xmdf.tcl @@ -36,6 +36,10 @@ utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim incr fcount +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_generator_ug175.pdf +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_36to18.ngc utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc incr fcount @@ -52,10 +56,6 @@ utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_51 utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip incr fcount -utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.ngc_xst.xrpt -utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView -incr fcount - utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_36to18_xmdf.tcl utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount -- cgit v1.2.3 From 7977684b907f0e6e963929fe7c43afca3f9c93f8 Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Thu, 12 Aug 2010 12:57:02 -0700 Subject: Adding in files that probably didn;t exist in the ISE10.1 version of coregen --- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.gise | 30 ++ usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ncf | 0 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xise | 374 ++++++++++++++++++++++++ usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.gise | 30 ++ usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xise | 374 ++++++++++++++++++++++++ 5 files changed, 808 insertions(+) create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.gise create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ncf create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xise create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.gise create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xise diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.gise b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.gise new file mode 100644 index 000000000..c18cf3bf0 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.gise @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + 11.1 + + + + + + + + + + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ncf b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ncf new file mode 100644 index 000000000..e69de29bb diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xise b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xise new file mode 100644 index 000000000..05048a43b --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xise @@ -0,0 +1,374 @@ + + + +
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.gise b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.gise new file mode 100644 index 000000000..d0c862319 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.gise @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + 11.1 + + + + + + + + + + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xise b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xise new file mode 100644 index 000000000..d9013a131 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xise @@ -0,0 +1,374 @@ + + + +
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
-- cgit v1.2.3 From 65b671865ebf8a9541379e794ba624f038524f52 Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Thu, 12 Aug 2010 13:05:55 -0700 Subject: Edited FIFO instance to delete port that was not regenerated after reconfiguration --- usrp2/extramfifo/ext_fifo.v | 1 - 1 file changed, 1 deletion(-) diff --git a/usrp2/extramfifo/ext_fifo.v b/usrp2/extramfifo/ext_fifo.v index c7e8f6cfb..398e5ef81 100644 --- a/usrp2/extramfifo/ext_fifo.v +++ b/usrp2/extramfifo/ext_fifo.v @@ -102,7 +102,6 @@ module ext_fifo .rd_en(dst_rdy_i), .dout(dataout), // Bus [35 : 0] .full(full2), - .almost_full(), .prog_full(almost_full2), .empty(empty2)); assign src_rdy_o = ~empty2; -- cgit v1.2.3 From e5cae33e3c5e9ae1821e06af8bf57bc0444605de Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Thu, 12 Aug 2010 14:35:06 -0700 Subject: Regenerated FIFO's for extfifo. There are problems with certain configurations it seems. It is important that the fifo_xlnx_512x36_2clk_18to36 is generated with the "almost_full" pin even though it is not used in the application. if this pin is omitted the FPGA image doesn't work correctly --- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ncf | 0 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc | 2 +- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.veo | 1 + usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco | 2 +- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xise | 310 +-------------------- ...12x36_2clk_18to36_fifo_generator_v4_3_xst_1.lso | 3 - ...k_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt | 102 ------- usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ngc | 4 +- usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco | 4 +- usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xise | 310 +-------------------- ...12x36_2clk_36to18_fifo_generator_v4_3_xst_1.lso | 3 - 11 files changed, 15 insertions(+), 726 deletions(-) delete mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ncf delete mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.lso delete mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt delete mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.lso diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ncf b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ncf deleted file mode 100644 index e69de29bb..000000000 diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc index 657b1aa98..b583362cd 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc @@ -1,3 +1,3 @@ XILINX-XDB 0.1 STUB 0.1 ASCII XILINX-XDM V1.6e -$45540<,[o}e~g`n;"2*726&;$:,)<6;.vnt*Ydo&lbjbQwloz\144;?U9oaeP19vl73(iof;0<85?0123=>6789:;<=>;0:23456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?01084<7<9:1:"=?<;029MKVR\3KOH_O39;2=5`=683CE\XZ5psmd[cskdV~c~h}g<883:73<990BB][[:qplcZ`rdeUdk|h^cpw`ts400;2?;4118JJUSS2yxdkRhzlm]wlwct`Vdnklzj<883:4?<990DYY^ZT;fbpdYdg|d044?>0a855113922?OIX\^1HDO31483:45<9?0DYY^ZT;FLE972294:>6?7:HLSQQ11:07?754;8;0>7GAPTV9@LVF480;2<<42;MVPUSS2ME[M1?50?31?64=AGZ^X7JFB=12>586;2996B[[PTV9@JD;;80;2<:4378LQQVR\3ndyy2<5;2=`>5t:9:;jj::6,72?12<<9LM=<5;:HLSQQ11397>JSSX\^1HB^M<283:4=1:2<286869768<567<22N4L?4959:45?530;>585=231EC^ZT;rqkbYbey~rSyf}erj\evubz}636=0=5:;9MKVR\3zycjQjmqvz[qnumzbTbhintd>;>586j231CXZ_UU8q`Zbf|hUhcx`{<983:7=F:11JHI\N<1<;?DBCZH6:255NDEPB878?3HNO^L2<>99B@ATF4=437LJKR@>6:==FLMXJ0;07;@FGVD:0611JHI\N<9611JHI\M<1<;?DBCZK6:255NDEPA878?3HNO^O2<>99B@ATE4=437LJKRC>6:==FLMXI0;07;@FGVG:06h1JHI\M<983:==FLMXI050<;@NO=>GTQGIT^HI<;CW1<>DR[VCEJB?4C39@A44EKCK90OA\6;BMNILRSMM;?7NA]E^EFJ@TF\@EESD@IO69@V@GSMM;0H?5KC39GM3=CAH6;2:5KI@>24;169GMD:6<730HDO31483:2=CAH6:9384DHC?5;0384DHC?7;01OEO2>3?58@LD;9=4<7IGM<07=3>BNJ5;=2:5KIC>23;12NBN1?17:FJF9476>1OEO2=1?58@LD;:;4<7IGM<31=3>BNJ58?2:5KIC>11;1;08;EKA8719?2NBN1<7>69GMG:517<0HDL32?58@LD;;9427IGM<2394;119:FJTD:6294<7IG_A=3=3>BNXK6;2:5KIQ@?5;1BHI5;:2:5KO@>26;108;EMB842912NDM1?::1<4?AIF48?5:6J@A=3=2>BHI585:6J@A=1=2>BHI5>5:6J@A=7=2>BHI5<5:6J@A=5=2>BHI525:6J@A=;=3>BHIVXNK;5KOC>3:2=CGK6:<394DN@?54803MEI0<<17:FLF9746>1OCO2>4?58@JD;9<4<7IAM<04=3>BHJ5;<2:5KOC>2<;117:FLF9466>1OCO2=2?58@JD;::4<7IAM<36=3>BHJ58>2:5KOC>12;1:08;EMA87>9?2NDN1<6>79GKG:56>1OCO2<0?;8@JD;;80;2:5KOC>05;019:FLTD:6294<7IA_A=3=3>BHXK6;2:5KOQ@?5;16H75:DBHVC53ON87KJL4:DGG@56G>2:K16>O402CEEY^P01:8MKOSXV::46GAIUR\47><8:KMMQVX8=20ECG[P^26<>OIA]ZT<;64IOKWTZ6012CEEY][AUG4?LHN\V:;;6GAIU]352=NF@^T;7:KMMQY7=>1BBDZP0758MKOSW9=<7D@FT^2;3>OIA]U;5:5FNHV\4D11BBDZP1758MKOSW8=<7D@FT^3;3>OIA]U:5:5FNHV\5D1D69JJLRX9L=0ECG[_0D4?LHN\V8;;6GAIU]152=NF@^T>?94IOKW[7503@DBXR<;7:KMMQY5=>1BBDZP2758MKOSW;=<7D@FT^0;3>OIA]U95:5FNHV\6D11BBDZP3758MKOSW:=<7D@FT^1;3>OIA]U85:5FNHV\7D1L8;HLJPZ5D?2CEEYQ6B@6:NLEACC?2FDKDMNL59OQQ733E__>95CUU17?ISS0168J466<2D:H68=>0B<>:4:L24320968J46>;2D:=95A1027?K769=1E=<<;;O3271=I98>?7C?>559M54033G;:;95A10:7?K761:1E=?:4N0030>H6:8>0B<<=4:L26622468J441<2D:>::4N00;7>H6;=1E=>?<;O377>H6=:1E=;:4N0477>H6?:1E=5=4N0;1?K443G8;?6@=129M675H51;1E?>5A3108J0480B4=4N830?K?5;2D2?>5A9518J<343G3=?6@6729M==56^Q2h1YILJPFHPPPf=UMHNT[DJ[H^C`?WCFLV]BHYFPB09P56=TADUHCABFSHMM[FNBKB<0_B[]CD58WWPFDVK<7^\YAM]A0>UTZH>0_^\M4:VZT@553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?012\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4566W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;>R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?02]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3452XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:>S_k|umv277=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwY`kVrd~=>?6^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\vaYwf}xTknQwos2342YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt789:T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=>>_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1236ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678:UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=:PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^uq[uhszVmhSua}0126[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYpzVzexQhc^zlv567>VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT{Qnup\cfYg{:;<:Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_vp\tkruWniTtb|?01:\V`urd};9=6[?/fpe*w`(ojr%oaew/sf\tkruWkce0=0=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<0<15>S7'nxm"h gbz-gim'{nT|cz}_ckm878592_;#j|i.sd,cf~)keas#jPpovq[goi4:49=6[?/fpe*w`(ojr%oaew/sf\tkruWkce090=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<4<15>S7'nxm"h gbz-gim'{nT|cz}_ckm838592_;#j|i.sd,cf~)keas#jPpovq[goi4>49=6[?/fpe*w`(ojr%oaew/sf\tkruWkce050=0:W3+bta&{l$knv!cmi{+wbXxg~ySoga_103?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\576<]9%l~k }f.e`|+ekcq%yhR~ats]amkY5:91^<"i}f/pe+be&jf`t"|k_qlwvZdnfV99<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS9 gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?01213>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:;=?84U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos2344403\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=?>279V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567:;=0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?03312>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:8>:5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r12377413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=:=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45639;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0404?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789?:>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r12327><]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<;?>269V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567>;8i7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?014\fab7:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?7358Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678>;9<6[?/fpe*w`(ojr%oaew/sf\tkruWni7<3>328Q5)`zo$yj"ilx/aoo})ulVzexQhc=0=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`868582_;#j|i.sd,cf~)keas#jPpovq[be;<78;7X> gsd-vc)`kq$h`fv re]sjqtXoj6>2?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo181219V4*aun'xm#jmw.bnh|*tcWyd~Ril<6<14>S7'nxm"h gbz-gim'{nT|cz}_fa?<;7a3\:$kh!rg-dg}(ddbr$~iQnup\cfY79o1^<"i}f/pe+be&jf`t"|k_qlwvZadW8;m7X> gsd-vc)`kq$h`fv re]sjqtXojU9=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS>?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ;1g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_43e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]55c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[27a3\:$kh!rg-dg}(ddbr$~iQnup\cfY?:?1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyij2?>348Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;978=7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh<3<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo595>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>7:70<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlm793<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8385>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk191279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:?6;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP0378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX9;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP2378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX;;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP4378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX=;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP6378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX?;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP83;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86;2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:66;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>1:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<2<>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86?2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:26;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>5:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<28>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8632?64U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4Y7:11^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1^31<>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:S?<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X;;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]76==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R;=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W?837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\37><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh>249V4*aun'xm#jmw.bnh|*tcWyd~Ril_ymq4565:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWqey<=><249V4*aun'xm#jmw.bnh|*tcWyd~Ril_ymq4563:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWqey<=>:249V4*aun'xm#jmw.bnh|*tcWyd~Ril_ymq4561:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWqey<=>8209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=3=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj949:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf595><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb1:1209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=7=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj909:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf5=5><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb161209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=;=65=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ7582_;#j|i.sd,cf~)keas#z|Ppovq[goiW;8;7X> gsd-vc)`kq$h`fv ws]sjqtXj`dT??>4U1-dvc(un&mht#mcky-tvZvi|{UiecQ;219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^714>S7'nxm"h gbz-gim'~xT|cz}_ckm[3473\:$kh!rg-dg}(ddbr${Qnup\flhX?;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU3>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR7=6:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq4567:>1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?0005?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt789;9;6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}0122570<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;?3358Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678:89:6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012762=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;8<<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34535?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>:1348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678?837X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?0142571<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<;<=b:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq4561Wkno219V4*aun'xm#jmw.bnh|*quWyd~Ril<1<14>S7'nxm"h gbz-gim'~xT|cz}_fa?5;473\:$kh!rg-dg}(ddbr${Qnup\cf:56;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k595>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh090=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm35?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>5:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg919:91^<"i}f/pe+be&jf`t"y}_qlwvZad4149<6[?/fpe*w`(ojr%oaew/vp\tkruWni753?i;T2,cw`)zo%lou lljz,swYwf}xTknQ?1g9V4*aun'xm#jmw.bnh|*quWyd~Ril_03e?P6(o{l%~k!hcy,`hn~({U{by|Pgb]15c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[67a3\:$kh!rg-dg}(ddbr${Qnup\cfY39o1^<"i}f/pe+be&jf`t"y}_qlwvZadW<;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU==k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS:?i;T2,cw`)zo%lou lljz,swYwf}xTknQ71g9V4*aun'xm#jmw.bnh|*quWyd~Ril_805?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4949:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=3=63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn692?84U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde?7;413\:$kh!rg-dg}(ddbr${Qnup\cfYf{{ol090=6:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfc939:?1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyij29>348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;?78=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<9<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo535>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]360=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU:>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]160=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU8>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]760=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU>>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]560=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU<>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef];60=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU2>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5979:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=0=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1=1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95>5>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5939:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=4=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=191289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9525>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g59?9:11^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1^31<>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S?<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X;;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]76==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R;=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W?837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\37><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmThS7'nxm"h gbz-gim'~xT|cz}_fa\|jt789;996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01011>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt7899996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01611>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt789?996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01411>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt789=996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01:04>S7'nxm"h gm2-va)`z8$yjzh{/Lov|ZTFEVXOSH@PFVDW644a3\:$kh!rg-dh5(ul&my=#|iwgv,IhsW[KFS_KHOTV\AK76:m1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwa969:m1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwa979:j1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwaZ65k2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[4523\:$kh!rg-dh5(ul&my=#|iwgv,gptuWo}mxR}{aug\ip~789;7<3=9;T2,cw`)zo%l`= }d.eq5+tao~$ox|}_guepZusi}oTaxv?013?4;74=2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[hs89::0<0<6:W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nS`{w01228486:11^<"i}f/pe+bj7&{n$k?!rguep*cjx}sTjzh{_g`13>S7'nxm"h gm2-va)`z8$yjzh{/dosp|Yao~Te?h4U1-dvc(un&mg<#|k/fp2*w`pn}%na}zv_guepZoXe|r;<=><0:W3+bta&{l$ka>!re-dv4(un~l#hctx]escrXaVg~t=>?000:?P6(o{l%~k!hl1,q`*auiz$yy} c1-`ewt~fl~7<3<6;T2,cw`)zo%l`= }d.eqev(u{}y$o=!laspzj`r;97827X> gsd-vc)`d9$yh"i}ar,qwqu(k9%hm|vndv?6;4>3\:$kh!rg-dh5(ul&mym~ }suq,g5)di{xrbhz33?0e?P6(o{l%~k!hl1,q`*auiz$yy} c1-dip~)odQ;Q#ib1/o26c=R8&myj#|i/fn3*wb(o{kx"}{s.a3+bkrp'mfW gsd-vc)`d9$yh"i}ar,qwqu(k9%laxv!glY7Y+aj{'gx>>5Z0.eqb+ta'nf;"j gscp*wus{&i;#{?30?00?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5979::1^<"i}f/pe+bj7&{n$ko|.sqww*e7';7>3<<;T2,cw`)zo%l`= }d.eqev(u{}y$o=!y1=1=66=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7;<78i7X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=R>Paof34566:k1^<"i}f/pe+bj7&{n$ko|.sqww*e7';T=Road123444e3\:$kh!rg-dh5(ul&mym~ }suq,g5)q9V8Tmcj?01226g=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7X;Vkeh=>?000a?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5Z2Xff~;<=>>289V4*aun'xm#jb?.sf,cwgt&{y"m>/bcqv|hb|5:5>45Z0.eqb+ta'nf;"j gscp*wus{&i:#no}rxlfp979:01^<"i}f/pe+bj7&{n$ko|.sqww*e6'jky~t`jt=0=6<=R8&myj#|i/fn3*wb(o{kx"}{s.a2+fguzpdnx1=12g9V4*aun'xm#jb?.sf,cwgt&{y"m>/fov|+ajS9W%k`?!m00e?P6(o{l%~k!hl1,q`*auiz$yy} c0-dip~)odQ:Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a2+bkrp'mfW?S!glq-iv4a3\:$kh!rg-dh5(ul&mym~ }suq,g4)`e|r%k`U<]/enw+kt:o1^<"i}f/pe+bj7&{n$ko|.sqww*e6'ng~t#ib[5_-chu)ez887X> gsd-vc)`d9$yh"i}ar,qwqu(k8%}=1>1229V4*aun'xm#jb?.sf,cwgt&{y"m>/w3?5;443\:$kh!rg-dh5(ul&mym~ }suq,g4)q9585>>5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?33?00?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5929:k1^<"i}f/pe+bj7&{n$ko|.sqww*e6';T?000a?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5Z5Xign;<=>>2c9V4*aun'xm#jb?.sf,cwgt&{y"m>/w3\0Zhh|9:;<<S7'nxm"h gm2-va)`zhy%~~z|/scn[`kw|pUmnRgPos234575;2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex?:4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov261=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}8986[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at207?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphs<;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz:259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq05<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex:<;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw<7?<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2?>3a8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6;2R|{289V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5;5>n5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}979W{~956[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az8785k2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<3<\vq4>3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw33?0`?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7?3Q}t3;8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6?2?m4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:36Vx>45Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}939:j1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=7=[wr512_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<7<1g>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0;0Pru0:?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7;3 gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8485i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=0=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc2<>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx7834:7g<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|38?0g?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWqey050Pru3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=2=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?5;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9499o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;;7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5>5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~793?i;T2,cw`)zo%l`= }d.psjqt(kfex1811g9V4*aun'xm#jb?.sf,vuhsz&idycz37?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=:=5`=R8&myj#|i/fn3*wb(zyd~"m`uov\44c<]9%l~k }f.eo4+tc'{zex!lotlw[47b3\:$kh!rg-dh5(ul&x{by| cnwmpZ46m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY49l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX<8o0Y=!hrg,qb*ak8'xo#~ats-`kphsW<;n7X> gsd-vc)`d9$yh"|nup,gjsi|V<:i6[?/fpe*w`(oe:%~i!}povq+firf}U<=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T4?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?30?01?P6(o{l%~k!hl1,q`*twf}x$ob{at^f28485:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc9585>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<2<>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?0;453\:$kh!rg-dh5(ul&x{by| cnwmpZb64<49>6[?/fpe*w`(oe:%~i!}povq+firf}Uo=181239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>4:74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;078:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S=<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_002?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[7463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W:8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S9<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_402?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[3463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W>8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S5<;;T2,cw`)zo%l`= }d.psjqt(kfexR``t12356`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8584n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:66:l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Ze~4;48j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xkp682>h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir090!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:Tot2:>2d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>4:6`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8=84n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:>6=;0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5;;29>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vf~x1?1479V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Sa{{<0<\MKPX8=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5858=5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567We0>0;0:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:T`xz34?63?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,IdbcWmcmjR~ats]seaYflm:;<=Qcuu>6:16<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp909<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[iss4>4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xd|~743:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Ugyy26>538Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?0^zlv979<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[}iu4;4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xpfx7?3:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Usc2;>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?_ymq838382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\|jt;?7>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yg{6329>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vrd~171319V4*aun'xm#jb?.vp,crgt&nzm"z|f.fjbcYwf}xT|lj311<1b>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae>2:7`<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg8785n2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]sea:46;l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugc4=49j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwim6>2?h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWyko0;0=f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{mi28>3d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok<9<1b>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae>::7c<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[44a3\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(l`lmS}`{r^rb`Z77:l1^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&nbjkQnup\tdbX:;o0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcW:8n7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$hdhi_qlwvZvflV>9i6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimU>>h5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"jffg]sjqtXxhnT:?k4U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWykoS:!ws-dsdu)oyl%{~i/ekebZvi|{U{miQ6399V4*aun'xm#jb?.vp,crgt&nzm"z|f.fjbcYwf}xT|ljPaef3456;9948;6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimUjhi>?01>2:61<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[dbc89:;0?0<7:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{miQnde2345:46:=0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcWhno<=>?<5<03>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae]b`a67896>2>94U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWykoSljk01238384?2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaYflm:;<=28>258Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok_`fg45674148;6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimUjhi>?01>::7g<]9%l~k }f.eo4+qu'n}j#if/uqtc)wzfmTjxbc_h11?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,twi`Wog`RgPmtz34554<2_;#j|i.sd,ci6){%l{l}!gqd-swva'yxdkRhzlm]j[hs89:8=8=;;T2,cw`)zo%l`= xr.etev(`xo$|~}h psmd[cskdVcTaxv?0112<6><]9%l~k }f.eo4+qu'n}j#if/uqtc)wzfmTjxbc_h]nq}678:;3S^Y?339V4*aun'xm#jb?.vp,crgt&nzm"z|f.rqkbYa}efTeR``t12357?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2?>3;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6:2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:56;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>0:7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV>R.fo2*h75n2_;#j|i.sd,ci6){%l{l}!wrvp+f7(ods"jcT1\,div(j{;l0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&mfyu hmZ0^*bkt&dy9j6[?/fpe*w`(oe:%{!hw`q-svrt'j;$k`{w.foX7X(`ez$f?h4U1-dvc(un&mg<#y}/fubw+qt|z%h="ibuy,di^2Z&ngx"`}=3:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0>3:75<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p64849?6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z<2=>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28685;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~86?2?l4U1-dvc(un&mg<#y}/fubw+qt|z%h="x>_1]bja6789;9n6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z_`lg45679;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S?Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U8Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W=Ujbi>?0131=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0=0=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs484956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw878512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<2<1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP

"x><1<17>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4:66;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0?0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>0:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64=49n6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y3Whdo<=>?1328Q5)`zo$yj"ic0/uq+bqf{'}xx~!lolr265=R8&myj#|i/fn3*rt(o~kx"z}{s.aliu4582_;#j|i.sd,ci6){%l{l}!wrvp+fijx:8o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;878o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;978o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;:78o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;;7987X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!hmtz-ch]7U'mf=#c>329V4*aun'xm#jb?.vp,crgt&~y"inf/a0+bkrp'mfW5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m1^<"i}f/pe+bj7&~x$kzo|.vqww*afn'i8#{?30?04?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q95;5>:5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m gsd-vc)`d9$|~"ixar,twqu(ohl%o>!y1^2\ekb789::>k5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m>2g9V4*aun'xm#jb?.vp,crgt&~y"inf/a0+s7X;Vkeh=>?000e?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q9V>Tmcj?01226f=R8&myj#|i/fn3*rt(o~kx"z}{s.pbiZgkefySk{cl^k00>S7'nxm"h gm2-sw)`hy%{~z|/scn[djjgz~Tjxbc_h]nq}67899>7X> gsd-vc)`d9$|~"ixar,twqu(zhgTmac`su]eqijXaVg~t=>?001a?P6(o{l%~k!hl1,tv*apiz$|y} r`o\eikh{}UmyabPi^llp56798UBB[Q?299V4*aun'xm#jb?.vp,crgt&~y"|nm^dvhiYajVc996[?/fpe*w`(oe:%{!hw`q-svrt'{kfSk{cl^k1`>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVcTaxv?0121a>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVcTaxv?01225a=R8&myj#|i/fn3*rt(zhgT{Qjn^k25c=R8&myj#|i/fn3*rt(zhgT{Qjn^k2[4443\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d>95Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu310>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|;8?7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{3368Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkr3:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by;=4:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp3433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d;?:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov;61=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}3956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8585k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<1<\vq4>3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw31?0`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7=3Q}t3;8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp692?m4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\g|:56Vx>45Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}959:j1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=1=[wr512_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<5<1g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir090Pru0:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7935:Zts:01^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=5=6f=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu191_sv1=>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir050=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~414T~y1:7g<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|33?0b?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey090=a:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZ~hz5?5>l5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]{kw:16;k0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPxnp?3;4f3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSua}<9<1e>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vrd~1712e9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{622R|{1g9V4*aun'xm#jb?.vp,suhsz&idycz30?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=3=5c=R8&myj#|i/fn3*rt(yd~"m`uov?6;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9599o1^<"i}f/pe+bj7&~x${}`{r.alqkr;<7;m7X> gsd-vc)`d9$|~"ynup,gjsi|5?5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~7:3?i;T2,cw`)zo%l`= xr.usjqt(kfex1911g9V4*aun'xm#jb?.vp,suhsz&idycz38?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=;=5`=R8&myj#|i/fn3*rt(yd~"m`uov\44c<]9%l~k }f.eo4+qu'~zex!lotlw[47b3\:$kh!rg-dh5(pz&}{by| cnwmpZ46m2_;#j|i.sd,ci6){%||cz}/bmvjqY49l1^<"i}f/pe+bj7&~x${}`{r.alqkrX<8o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW<;n7X> gsd-vc)`d9$|~"ynup,gjsi|V<:i6[?/fpe*w`(oe:%{!xpovq+firf}U<=h5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T4<1<16>S7'nxm"h gm2-sw)pxg~y#naznu]g5979:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl8692?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?33?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28185:2_;#j|i.sd,ci6){%||cz}/bmvjqYc95?5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<29>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3?3;453\:$kh!rg-dh5(pz&}{by| cnwmpZb64149>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=171209V4*aun'xm#jb?.vp,suhsz&idyczPd0]364=R8&myj#|i/fn3*rt(yd~"m`uov\`4Y6:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl8U9><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;6;2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<31?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f18785:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:595>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?2;>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?1;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54?49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>191239V4*aun'xm#jb?.vp,suhsz&idyczPd3>;:74<]9%l~k }f.eo4+qu'~zex!lotlw[a4;178:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S=<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_002?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[7463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W:8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S9<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_402?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[3463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W>8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S5<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_801?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f08585:2_;#j|i.sd,ci6){%||cz}/bmvjqYc;5;5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>2=>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1?7;453\:$kh!rg-dh5(pz&}{by| cnwmpZb44=49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo?1;1239V4*aun'xm#jb?.vp,suhsz&idyczPd2>5:74<]9%l~k }f.eo4+qu'~zex!lotlw[a5;?7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn8050=2:W3+bta&{l$ka>!ws-ttkru'je~byQk3=;=64=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y7:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U:><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q=209V4*aun'xm#jb?.vp,suhsz&idyczPd2]064=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y3:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U>><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q9209V4*aun'xm#jb?.vp,suhsz&idyczPd2]464=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y?:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U2>95Z0.eqb+ta'nf;"z| wqlwv*eh}g~Tbbz?01323>S7'nxm"h mdo,`jssW`6;2<64U1-dvc(un&gna"j`uu]j8469911^<"i}f/pe+hcj'me~xRg310<2<>S7'nxm"h mdo,`jssW`6:>3?7;T2,cw`)zo%fi`!kotv\m9746820Y=!hrg,qb*kbe&ndyyQf<06=5==R8&myj#|i/lgn+air|Vc7=80>8:W3+bta&{l$ahc dnww[l:6>7;37X> gsd-vc)jmd%ocxzPi=34:4><]9%l~k }f.ofi*bh}}Ub0<61199V4*aun'xm#`kb/emvpZo;904:;6[?/fpe*w`(elg$hb{{_h>2:4><]9%l~k }f.ofi*bh}}Ub0?>1199V4*aun'xm#`kb/emvpZo;:84:46[?/fpe*w`(elg$hb{{_h>16;7?3\:$kh!rg-nah)cg|~Te1<<>0:8Q5)`zo$yj"cjm.flqqYn4;>5=55Z0.eqb+ta'dof#iazt^k?608602_;#j|i.sd,i`k(lfSd2=6?3;?P6(o{l%~k!bel-gkprXa58<2<64U1-dvc(un&gna"j`uu]j87>9911^<"i}f/pe+hcj'me~xRg328<23>S7'nxm"h mdo,`jssW`692<64U1-dvc(un&gna"j`uu]j8669911^<"i}f/pe+hcj'me~xRg330<2<>S7'nxm"h mdo,`jssW`68>3?7;T2,cw`)zo%fi`!kotv\m9546820Y=!hrg,qb*kbe&ndyyQf<26=5==R8&myj#|i/lgn+air|Vc7?80>7:W3+bta&{l$ahc dnww[l:468=0Y=!hrg,qb*kbe&ndyyQf<5<23>S7'nxm"h mdo,`jssW`6>2<94U1-dvc(un&gna"j`uu]j8386?2_;#j|i.sd,i`k(lfSd28>058Q5)`zo$yj"cjm.flqqYn414:;6[?/fpe*w`(elg$hb{{_h>::40<]9%l~k }f.ofi*bh}}UbS=?9;T2,cw`)zo%fi`!kotv\mZ76?2_;#j|i.sd,i`k(lfSdQ>0058Q5)`zo$yj"cjm.flqqYnW8;:;6[?/fpe*w`(elg$hb{{_h]2641<]9%l~k }f.ofi*bh}}UbS<=>7:W3+bta&{l$ahc dnww[lY6<8=0Y=!hrg,qb*kbe&ndyyQf_0723>S7'nxm"h mdo,`jssW`U::<94U1-dvc(un&gna"j`uu]j[416?2_;#j|i.sd,i`k(lfSdQ>8058Q5)`zo$yj"cjm.flqqYnW83::6[?/fpe*w`(elg$hb{{_h]152=R8&myj#|i/lgn+air|VcT>=?8;T2,cw`)zo%fi`!kotv\mZ469>1^<"i}f/pe+hcj'me~xRgP2334?P6(o{l%~k!bel-gkprXaV88=:5Z0.eqb+ta'dof#iazt^k\61703\:$kh!rg-nah)cg|~TeR<:169V4*aun'xm#`kb/emvpZoX:?;<7X> gsd-vc)jmd%ocxzPi^0452=R8&myj#|i/lgn+air|VcT>5?8;T2,cw`)zo%fi`!kotv\mZ4>9?1^<"i}f/pe+hcj'me~xRgP3058Q5)`zo$yj"cjm.flqqYnW:::;6[?/fpe*w`(elg$hb{{_h]0541<]9%l~k }f.ofi*bh}}UbS><>7:W3+bta&{l$ahc dnww[lY4;8=0Y=!hrg,qb*kbe&ndyyQf_2623>S7'nxm"h mdo,`jssW`U89<84U1-dvc(un&gna"j`uu]j[1713\:$kh!rg-nah)cg|~TeR;>6:W3+bta&{l$ahc dnww[lY19?1^<"i}f/pe+hcj'me~xRgP7048Q5)`zo$yj"cjm.flqqYnW1;=7X> gsd-vc)jmd%ocxzPi^;2=>S7'nxm"h mdo,`jssWdof0=0>a:W3+bta&{l$ahc dnww[hcj48:5=l5Z0.eqb+ta'dof#iazt^ofi97668k0Y=!hrg,qb*kbe&ndyyQbel>26;7f3\:$kh!rg-nah)cg|~Tahc312<2e>S7'nxm"h mdo,`jssWdof0<:11`9V4*aun'xm#`kb/emvpZkbe5;>27;j7X> gsd-vc)jmd%ocxzPmdo?5286i2_;#j|i.sd,i`k(lfS`kb<0:=5d=R8&myj#|i/lgn+air|Vgna1?6>0;8Q5)`zo$yj"cjm.flqqYjmd6:2 gsd-vc)jmd%ocxzPmdo?6486i2_;#j|i.sd,i`k(lfS`kb<30=5d=R8&myj#|i/lgn+air|Vgna1<<>0c8Q5)`zo$yj"cjm.flqqYjmd6983?n;T2,cw`)zo%fi`!kotv\i`k;:<4:m6[?/fpe*w`(elg$hb{{_lgn87099h1^<"i}f/pe+hcj'me~xRcjm=04:4g<]9%l~k }f.ofi*bh}}Ufi`2=8?3b?P6(o{l%~k!bel-gkprXelg7>40>9:W3+bta&{l$ahc dnww[hcj4;4:m6[?/fpe*w`(elg$hb{{_lgn86699h1^<"i}f/pe+hcj'me~xRcjm=12:4g<]9%l~k }f.ofi*bh}}Ufi`2<2?3b?P6(o{l%~k!bel-gkprXelg7?>0>a:W3+bta&{l$ahc dnww[hcj4:>5=l5Z0.eqb+ta'dof#iazt^ofi9526830Y=!hrg,qb*kbe&ndyyQbel>0:4?<]9%l~k }f.ofi*bh}}Ufi`2;>0;8Q5)`zo$yj"cjm.flqqYjmd6>2<74U1-dvc(un&gna"j`uu]nah:16830Y=!hrg,qb*kbe&ndyyQbel>4:4?<]9%l~k }f.ofi*bh}}Ufi`27>0;8Q5)`zo$yj"cjm.flqqYjmd622::4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'kgei lsup,vdkkgfzP

1d9V4*aun'xm#}{bmi,vaYu{}Uyij2?>0g8Q5)`zo$yj"||tcnh+wbXzz~T~hi31?3f?P6(o{l%~k!}su`oo*tcW{ySkh<3<2`>S7'nxm"h rrvahn)ulVxxxR|jg^22`>S7'nxm"h rrvahn)ulVxxxR|jg^32`>S7'nxm"h rrvahn)ulVxxxR|jg^02`>S7'nxm"h rrvahn)pzVxxxRo|rde14>S7'nxm"h rrvahn)pzVxxxRo|rde\`4473\:$kh!rg-qwqdkc&}yS}{_`qqabYc:8i0Y=!hrg,qb*tt|kf`#z|Prrv\gjke9m1^<"i}f/pe+wusjea${Q}su]`khd69l1^<"i}f/pe+wusjea${Q}su]qab:768o0Y=!hrg,qb*tt|kf`#z|Prrv\v`a;97;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W9;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W8k0Y^K]_@NJEVe<]ZOYS[G\ICNF7>PDK01]EHYPTXRF7>QBI:1\IOm4WSKWAZKHLLUJo6Y]IUG\IJBBWKn0[_G[E^UJ@QNXIm1\^DZJ_VKGPMYE9m1SEAGAX,ZGF%6)9)Y_YO.?.0"BWFON=2RD^NW9;YQWHLD03QY_SJ@K7:ZPPZPDKk1SSNA]E^KMBJ00:ZgiZKfbfx]i}foo33?]bjWDcecXjrrkljf=fddexxRkbpu{a?djjgz~Tjxbc6:`bgnswl2hjof{_lcqo`t43jf`h6jnt`]`kphs 9#o7io{a^alqkr/9 n0hlzn_bmvjq.5!m1omyoPcnwmp-5.l2njxlQlotlw,1/c3mkmRm`uov+1,bbf|hUhcx`{(9+g?agsiVidycz'9(d8`drfWje~by26:1<4?adn|lxy:6jfn)2*2>bnf!;";6jfn)33-2=cag":=$94dhl+57/03mce$<=&7:fjj-73!>1oec&>5(58`lh/9?#<7iga(05*2>bnf!8":6jfn)1*2>bnf!>":6jfn)7*2>bnf!<":6jfn)5*2>bnf!2":6jfn);*2>bnf5:5;6jfn=33:2=cag6:=394dhl?57803mce0<=17:fjj9736>1oec2>5?58`lh;9?427iga<0594;1&7:flqq.6!11ocxz'11+;?air|!;:%55kotv+57/?3me~x%?<)99gkpr/9=#37iazt)36-==cg|~#=;'7;emvp-70!11ocxz'19+;?air|!;2%:5kotv+6,>&8:flqq.59 20hb{{(30*<>bh}}"9?$64dnww,72.02ndyy&=5(:8`jss ;<"46j`uu*13,> =0hb{{(6+4?air|!2";6j`uu*:-2=cg|~7<364dnww846902ndyy2>1?:8`jss488546j`uu>27;>bh}}6:;364dnww84>902ndyy2>9?58`jss48437iazt=03:==cg|~7><07;emvp945611ocxz322<;?air|58?255kotv?608?3me~x1<9>99gkpr;:>437iazt=0;:==cg|~7>408;emvp94902ndyy2<0?:8`jss4:;546j`uu>06;>=18:flqq:4<7k0hb{{<2794;>;17:flqq:46>1ocxz34?58`jss4<4<7iazt=4=3>bh}}6<2:5kotv?<;12y15[7ekcV;3xb=9,gkekZabflxjxb|Pv7]2(KIIM%DDBH:?3:djbjYdgrT9<,b]kevYulVnjxlQlotlw95*dWmceSzgkti?2<)eX`hyT{Qkauc\gjsi|4:'oRhzlm]ehdatW{yS{oc=1.`[lkwdlgnbyo{inl\p|vb5;&hSx}j_doaaabblVxnk0>#c^uq[ctby4;'oR{|e^flqqYu{}7: nQznegqbiipWee|1="l_icp[jpbzofd{0>#c^rqaiiflVfjxh`ly<2/gZbh}}U|eizg=24/gZktofdTzlb21-a\vaYcmy~c18?=,b]fvwiuW`dainzfoo]w}uc:8%iTdl}Puoffvcjh4:'oRfns^coijusWog`0?#c^jbwZtt|4;'oRjnt`]`kphsW~coxe3>0-a\lduX{Ujof3?,b]vw`Ybkj7; nQlololjZekgja65)eXlfS}{_wco95*dWakxSio{a^alqkr:8%iT|ah_gwohZrozlycSckhaug\rdj:99;= nQxr^fftqn:998? nQrne\ahvsqV~c~h}g_ogdeqcX~hf69!mPpsmd[`kw|pUdk|h^cpw`tsWkg19"l_icp[sgkam7; nQrne\bpjkW}byi~fParqfvqYqie7:<<9#cnoskkci|Vdjah3iigm\|ihW<;9t>8P2bnh[4>sg:<'oRxnlhf\hjq:8%iT|gb_gkekZr~xl7:gu?7,b]svjaXn|fgSywe<3/gZkbefxrSywe<3/y60oiblihog{espg?lhmmj~xndzjrs58mkrXkea37cilbtko`==h~lxm`byn;qplcZcjx}s:86~}of]fiur~W}byi~f'0(37?uthoVof|ywPtipfwm.6!8>0|ah_dosp|Ys`{oxd%<&159svjaXmdzuRzgrdqk,6/6<2zycjQjmqvz[qnumzb#8$?;;qplcZcjx}sTxe|jsi*6-42vugnUna}zv_ujqavn/0 ;=7}|`g^gntqX|axne27:1<2f>vugnUna}zv_ujqavnXizyn~y&?)0`8twi`Wlg{xtQ{hsgplZgt{lx$<'>b:rqkbYbey~rSyf}erj\evubz}"9%vugnUna}zv_ujqavnXizyn~y&7)0f8twi`Wlg{xtQ{hsgplZgt{lx054?>0`8twi`Wlg{xtQ{hsgplZhboh~n$='>b:rqkbYbey~rSyf}erj\j`af|l":%vugnUna}zv_ujqavnXflmjxh&8)0`8twi`Wlg{xtQ{hsgplZhboh~n$5'>d:rqkbYbey~rSyf}erj\j`af|l636=06;qplcZ`rde;87}|`g^dvhiYs`{oxd%>&129svjaXn|fgSyf}erj+5,743yxdkRhzlm]wlwct`!8"=>5rne\bpjkW}byi~f'3(30?uthoVl~`aQ{hsgpl-2.9:1{~biPftno[qnumzb#9$?<;qplcZ`rdeUdk|h)4*56=wzfmTjxbc_ujqavn/? ;87}|`g^dvhiYs`{oxd%6&129svjaXn|fgSyf}erj+=,723yxdkRhzlm]wlwct`531<3?n;qplcZ`rdeUdk|h^cpw`ts 9#:m6~}of]eqijX|axneQnsrgqp-7.9h1{~biPftno[qnumzbTm~}jru*1-4ga:rqkbYa}efTxe|jsi]bwvcu|!?"=l5rne\bpjkW}byi~fParqfvq.1!8k0|ah_gwohZrozlycSl}|esv+3,7f3yxdkRhzlm]wlwct`Vkxh|{(9+2e>vugnUmyabPtipfwmYf{zoyx%7&1b9svjaXn|fgSyf}erj\evubz}626=0>a:rqkbYa}efTxe|jsi]mabgsm!:"=l5rne\bpjkW}byi~fPndebp`.6!8k0|ah_gwohZrozlycSckhaug+6,7f3yxdkRhzlm]wlwct`Vdnklzj(2+2e>vugnUmyabPtipfwmYimnki%:&1`9svjaXn|fgSyf}erj\j`af|l">% ;j7}|`g^dvhiYs`{oxdR`jg`vf,2/6i2zycjQiumn\pmtb{aUeijo{e):*5d=wzfmTjxbc_ujqavnXflmjxh&6)0a8twi`Wog`Rzgrdqk[kc`i}o757>16:pg[fjl991yhRjnt`]`kphs 9#:<6|k_ecweZeh}g~#=$??;sf\`drfWje~by&=)028vaYci}kTob{at)1*55=ulVnjxlQlotlw,1/682xoSio{a^alqkr/= ;;7jPd`vb[firf}"=%<>4re]geqgXkfex%9&119q`Zbf|hUhcx`{(9+24>tcWmkmRm`uov?4;753{nThlzn_bmvjq:?294>7jPeo48vaYu{}90~~z8;r`jp`tu<2yyy:4tswf=>sillxm`by:;wcoma0<{Ujof84ws]`hn773~xThlzn_bmvjq.7!8:0{Qkauc\gjsi|!;"==5xr^fbpdYdg|d$?'>0:uq[agsiVidycz'3(33?rtXlh~jSnaznu*7-46<{UomyoPcnwmp-3.991|~Rjnt`]`kphs ?#:<6y}_ecweZeh}g~#;$??;vp\`drfWje~by&7)028swYci}kTob{at);*57=pzVnjxlQlotlw8<<76<1|~Rka6:uq[wusuIJ{oi64@Az2>C<328qX8k4:048;>455j?ih6:69czl7<1<63g>39784$5:1>11d3tY?h7;?5;:9564e>ji1;58l;R31g?3683:1=>o68??:18277d1kj0<4;j4d42;>5<628qX8k4:048;>455j?ih6:69c:tW5=e=83;1=7?l0zQ7b?37=321=><97?=d:T7<6<5s|;8:7?4u014>5=z,82;6<74b42;>5<4n391?kuG4618^13=:r;36=831b9;?50;9l0a?=83.:4?4;fb9m5=7=821d8i650;&2<7<3nj1e=5?51:9l0a1=83.:4?4;fb9m5=7=:21d8i850;&2<7<3nj1e=5?53:9l0a3=83.:4?4;fb9m5=7=<21d8i:50;&2<7<3nj1e=5?55:9l0a4=83.:4?4;fb9m5=7=>21d8i?50;&2<7<3nj1e=5?57:9l0a6=83.:4?4;fb9m5=7=021d8nh50;&2<7<3nj1e=5?59:9l0fc=83.:4?4;fb9m5=7=i21d8nj50;&2<7<3nj1e=5?5b:9l0fe=83.:4?4;fb9m5=7=k21d8nl50;&2<7<3nj1e=5?5d:9l0fg=83.:4?4;fb9m5=7=m21d8n750;&2<7<3nj1e=5?5f:9l0f1=83.:4?4;fb9m5=7=9910c9m9:18'5=4=:038?j2d=3:1(<6=:5d`?k7?93;976a;c583>!7?:3>mo6`>80827>=h8387bf=i91;1=954o5a1>5<#91818km4n0:2>43<3f>h=7>5$0:1>1`d3g;3=7?9;:m7g5<72-;3>7:ic:l2<4<6?21d8oh50;&2<7<3nj1e=5?51998k1db290/=5<54ga8j4>628307b:kf;29 4>52=lh7c?71;3b?>i3ll0;6)?72;6eg>h6080:n65`4ef94?"60;0?jn5a19395f=f:9l0a5=83.:4?4;fb9m5=7=:910c9m7:18'5=4=:338?j2el3:1(<6=:5d`?k7?938976a;bb83>!7?:3>mo6`>80817>=n8387f4=i91;1<65f48d94?"60;0?n<5a19395>=n<0o1<7*>8387f4=i91;1>65f48f94?"60;0?n<5a19397>=n<0i1<7*>8387f4=i91;1865f48`94?"60;0?n<5a19391>=n<0k1<7*>8387f4=i91;1:65f48;94?"60;0?n<5a19393>=n8387f4=i91;1465f4`594?"60;0?n<5a1939=>=n8387f4=i91;1m65f4`794?"60;0?n<5a1939f>=n1<7*>8387f4=i91;1o65f4`194?"60;0?n<5a1939`>=n8387f4=i91;1i65f4`394?"60;0?n<5a1939b>=n<021<7*>8387f4=i91;1==54i5;4>5<#91818o?4n0:2>47<3`?>?7>5;c640?6=93:1>0c<9i:188ygb?290:6=4?{I647>"6180o46ak7;29?xd3<3:1m;4>8582g5}O<>90V9;517y1=?4?2;k1h7o5b;a95=<6938i6h4k:d827g=:10v(<7>:42a?!2?2<:27):j:42b?!70j3;!7?:3?9:6`>8083?>o2:=0;6)?72;712>h6080:76g:2283>!7?:3?9:6`>8081?>o2:;0;6)?72;712>h6080876g:2083>!7?:3?9:6`>8087?>o2:90;6)?72;712>h6080>76g:1g83>!7?:3?9:6`>8085?>o29l0;6)?72;712>h6080<76g:1e83>!7?:3?9:6`>808;?>o28l0;66g:6183>>o2>:0;66a:6783>>o29k0;6)?72;72g>h6080;76g:1`83>!7?:3?:o6`>8082?>o2900;6)?72;72g>h6080976g:1983>!7?:3?:o6`>8080?>o29>0;6)?72;72g>h6080?76g:1783>!7?:3?:o6`>8086?>o29<0;6)?72;72g>h6080=76g:1583>!7?:3?:o6`>8084?>o29:0;6)?72;72g>h6080376g:5g83>>i2980;66g:2g83>!7?:3?8<6`>8083?>o2:l0;6)?72;704>h6080:76g:2e83>!7?:3?8<6`>8081?>o2:j0;6)?72;704>h6080876g:2c83>!7?:3?8<6`>8087?>o2:h0;6)?72;704>h6080>76g:2883>!7?:3?8<6`>8085?>o2:10;6)?72;704>h6080<76g:2683>!7?:3?8<6`>808;?>i30>0;66a;9583>!7?:3>296`>8083?>i31:0;6)?72;6:1>h6080:76a;9383>!7?:3>296`>8081?>i3180;6)?72;6:1>h6080876a;9183>!7?:3>296`>8087?>i30o0;6)?72;6:1>h6080>76a;8d83>!7?:3>296`>8085?>i30m0;6)?72;6:1>h6080<76a;8b83>!7?:3>296`>808;?>i30k0;6)?72;6:1>h6080276a:3083>>o2?=0;66g:3c83>!7?:3?8o6`>8083?>o2;h0;6)?72;70g>h6080:76g:3883>!7?:3?8o6`>8081?>o2;10;6)?72;70g>h6080876g:3683>!7?:3?8o6`>8087?>o2;?0;6)?72;70g>h6080>76g:3483>!7?:3?8o6`>8085?>o2;=0;6)?72;70g>h6080<76g:3283>!7?:3?8o6`>808;?>o2;;0;6)?72;70g>h6080276a:0b83>>i28?0;66g:6983>>o3000;66g:4783>!7?:3??;6`>8083?>o2<<0;6)?72;773>h6080:76g:4583>!7?:3??;6`>8081?>o2<:0;6)?72;773>h6080876g:4383>!7?:3??;6`>8087?>o2<80;6)?72;773>h6080>76g:4183>!7?:3??;6`>8085?>o2;o0;6)?72;773>h6080<76g:3d83>!7?:3??;6`>808;?>o2;m0;6)?72;773>h6080276g:5083>!7?:3?>>6`>8083?>o2=90;6)?72;766>h6080:76g:4g83>!7?:3?>>6`>8081?>o2h6080876g:4e83>!7?:3?>>6`>8087?>o2h6080>76g:4c83>!7?:3?>>6`>8085?>o2h6080<76g:4883>!7?:3?>>6`>808;?>o2<10;6)?72;766>h6080276a;8783>>o28o0;66g;8`83>>o2?<0;66a:6383>>i2>>0;66g:6083>>i3l00;6)?72;6eg>h6080;76a;d983>!7?:3>mo6`>8082?>i3l>0;6)?72;6eg>h6080976a;d783>!7?:3>mo6`>8080?>i3l<0;6)?72;6eg>h6080?76a;d583>!7?:3>mo6`>8086?>i3l;0;6)?72;6eg>h6080=76a;d083>!7?:3>mo6`>8084?>i3l90;6)?72;6eg>h6080376a;cg83>!7?:3>mo6`>808:?>i3kl0;6)?72;6eg>h6080j76a;ce83>!7?:3>mo6`>808a?>i3kj0;6)?72;6eg>h6080h76a;cc83>!7?:3>mo6`>808g?>i3kh0;6)?72;6eg>h6080n76a;c883>!7?:3>mo6`>808e?>i3k>0;6)?72;6eg>h6080:<65`4b494?"60;0?jn5a193954=6=4+19090ce4?:%3;6?2ak2d:4<4>4:9l0f4=83.:4?4;fb9m5=7=9<10c9m>:18'5=4=:048?j2d83:1(<6=:5d`?k7?93;<76a;bg83>!7?:3>mo6`>8082<>=h8387bf=i91;1=454o5fe>5<#91818km4n0:2>4g<3f>oi7>5$0:1>1`d3g;3=7?m;:m7`a<72-;3>7:ic:l2<4<6k21d8im50;&2<7<3nj1e=5?51e98k1be290/=5<54ga8j4>628o07b:ka;29 4>52=lh7c?71;3e?>i3l:0;6)?72;6eg>h60809<65`4b:94?"60;0?jn5a193964=7:m1:l2<4<632c?5h4?:%3;6?2e92d:4<4=;:k7=a<72-;3>7:m1:l2<4<432c?5n4?:%3;6?2e92d:4<4;;:k7=g<72-;3>7:m1:l2<4<232c?5l4?:%3;6?2e92d:4<49;:k7=<<72-;3>7:m1:l2<4<032c?m54?:%3;6?2e92d:4<47;:k7e2<72-;3>7:m1:l2<4<>32c?m;4?:%3;6?2e92d:4<4n;:k7e0<72-;3>7:m1:l2<47:m1:l2<47:m1:l2<40:9j0<1=83.:4?4;b09m5=7=9810e967:188k03d290/=5<554g8j4>62910c8;m:18'5=4==:098k03f290/=5<554g8j4>62;10c8;6:18'5=4==:298k03?290/=5<554g8j4>62=10c8;8:18'5=4==:498k031290/=5<554g8j4>62?10c8;::18'5=4==:698k033290/=5<554g8j4>62110c89=:18'5=4==>90b<6>:198k016290/=5<55618j4>62810c89?:18'5=4==>90b<6>:398k00a290/=5<55618j4>62:10c88j:18'5=4==>90b<6>:598k00c290/=5<55618j4>62<10c88l:18'5=4==>90b<6>:798k00e290/=5<55618j4>62>10c88n:18'5=4==>90b<6>:998k00>290/=5<55618j4>62010c8?=:188m06c2900c979:188m0342900c88::188f11a290:6=4?{%3:5?b?3A>50;394?6|,83:699;;I64a>N3?:1d=:h50;9~f7g5290?6=4?{%3:5?b43A>=6=44i4294?=n9191<75`19694?=zj=<;6=4<:183!7>93n;7E:8e:J736=O<:1/=>:55768 `0=:2c?:7>5;h73>5<908g4>N3?l1C8:=4H518 4532<<7>5;n3;0?6=3th?9k4?:283>5}#90;1h=5G46g8L1143A>87)?<4;750>"b>380e9850;9j15<722e:494?::a03?=83?1<7>t$0;2>a2<@==n7E:83:J77>"6;=0>:95f4783>>o3?3:17d;?:188m4>42900c<6;:188yg21i3:1?7>50z&2=47=n0<729q/=4?5d59K02c<@==87E:<;%300?31<2c?:7>5;h64>5<1<75rb54;>5<3290;w)?61;f0?M20m2B?;>5+e784?l212900e8>50;9j5=5=831d=5:50;9~f100290?6=4?{%3:5?b43A>=6=44i4294?=n9191<75`19694?=zj=<=6=4;:183!7>93n87E:8e:J736=#m?0<7d:9:188m06=831b=5=50;9l5=2=831vn99>:187>5<7s-;2=7j<;I64a>N3?:1/i;48;h65>5<1<75rb553>5<3290;w)?61;f0?M20m2B?;>5+e784?l212900e8>50;9j5=5=831d=5:50;9~f771290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e:8?1<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th9=94?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo<>3;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb331>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a647=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd5990;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn?>j:187>5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm1c694?2=83:p(<7>:e38L11b3A>5;|`2f6<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi=o>50;694?6|,83:6i?4H55f?M20;2.n:7<4i5494?=nag83>1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f4gc290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e9hi1<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th9:?4?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo<91;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb343>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a60`=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd5=l0;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<h7>54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn?;l:187>5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm24`94?2=83:p(<7>:e38L11b3A>5;|`11d<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi=ko50;694?6|,83:6i?4H55f?M20;2.n:7<4i5494?=nf883>1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f4`0290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e9o<1<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th:j84?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo?i4;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb373>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36e>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36f>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36g>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36`>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36a>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36b>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36:>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb36;>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb364>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0gb>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g:>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g;>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g4>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g5>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g6>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g7>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g0>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0g1>5<3290;w)?61;f2?M20m2B?;>5G429'562==?>0(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0f;>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a5a1=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd6l?0;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm1e194?2=83:p(<7>:e38L11b3A>5;|`2`7<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi>>m50;694?6|,83:6i?4H55f?M20;2.n:7<4i5494?=n1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f75>290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e::21<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th9?:4?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo<<6;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb316>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a662=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd5;:0;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<55;294~"6180o>6F;7d9K025<,l<1>6g;6;29?l202900e9m50;9j15<722e:494?::a6a>=83?1<7>t$0;2>a4<@==n7E:83:&f2?4>o3k3:17d;?:188k4>32900qo90(h852:k72?6=3`><6=44i5a94?=n=90;66a>8583>>{e:m<1<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi>i:50;794?6|,83:6i<4H55f?M20;2.n:7<4i5494?=n<>0;66g;c;29?l372900c<6;:188yg4c:3:197>50z&2=45;h64>5<>i60=0;66sm2e394?3=83:p(<7>:e68L11b3A>5;n3;0?6=3th9h>4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f7e129086=4?{%3:5?20l2B?;h5G4618m1?=831b=?o50;9l52b=831vn?m::180>5<7s-;2=7:8d:J73`=O<>90e9750;9j57g=831d=:j50;9~f7dd290?6=4?{%3:5?74=2B?;h5G4618m1?=831b9?4?::k2t$0;2>11c3A>l4?::m23a<722wi>oo50;694?6|,83:6<=:;I64a>N3?:1b844?::k66?6=3`;3m7>5;n34`?6=3th9o>4?:283>5}#90;18:j4H55f?M20;2c?57>5;h31e?6=3f;5;|`1f=<72=0;6=u+1839563<@==n7E:83:k7=?6=3`?96=44i0:b>5<90873a=O<>o0D99<;h6:>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj;i:6=4<:183!7>93>n1<75rb3`7>5<3290;w)?61;301>N3?l1C8:=4i5;94?=n=;0;66g>8`83>>i6?m0;66sm2b294?5=83:p(<7>:55g?M20m2B?;>5f4883>>o6:h0;66a>7e83>>{e:k81<7:50;2x 4?6289>7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd5jo0;6>4?:1y'5<7=<>n0D99j;I647>o313:17d?=a;29?j70l3:17pl=b183>1<729q/=4?51278L11b3A>50z&2=4<6;<1C8:k4H550?l2>2900e8<50;9j5=g=831d=:j50;9~f7ce290>6=4?{%3:5?b53A>=6=44i5594?=n0<729q/=4?5d39K02c<@==87)k9:39j03<722c?;7>5;h6`>5<93n97E:8e:J736=#m?097d:9:188m11=831b8n4?::k64?6=3f;387>5;|`1a=<72<0;6=u+1839`7=O<>o0D99<;%g5>7=n50;9l5=2=831vn?k8:186>5<7s-;2=7j=;I64a>N3?:1/i;4=;h65>5<>o283:17b?74;29?xd5m?0;684?:1y'5<7=l;1C8:k4H550?!c12;1b8;4?::k73?6=3`>h6=44i4294?=h91>1<75rb3g6>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th9i94?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f7c4290>6=4?{%3:5?b53A>=6=44i5594?=n1<729q/=4?5d29K02c<@==87)k9:69j03<722c><7>5;h3;7?6=3f;387>5;|`132<72=0;6=u+1839`6=O<>o0D99<;%g5>2=n5<54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn>>=:180>5<7s-;2=7:8d:J73`=O<>90e9750;9j57g=831d=:j50;9~f66e29086=4?{%3:5?20l2B?;h5G4618m1?=831b=?o50;9l52b=831vn?h9:187>5<7s-;2=7?<5:J73`=O<>90e9750;9j17<722c:4l4?::m23a<722wi?=o50;194?6|,83:699k;I64a>N3?:1b844?::k26d<722e:;i4?::a6c3=83>1<7>t$0;2>4523A>>7>5;h3;e?6=3f;5;|`04<<72:0;6=u+183902b<@==n7E:83:k7=?6=3`;9m7>5;n34`?6=3th9j94?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<53;294~"6180?;i5G46g8L1143`>26=44i00b>5<908270=O<>o0D99<;h6:>5<n1<75rb224>5<4290;w)?61;64`>N3?l1C8:=4i5;94?=n9;k1<75`16f94?=zj;l96=4;:183!7>93;896F;7d9K025>o60h0;66a>7e83>>{e;9<1<7=50;2x 4?62==o7E:8e:J736=n<00;66g>2`83>>i6?m0;66sm2g394?2=83:p(<7>:016?M20m2B?;>5f4883>>o2:3:17d?7a;29?j70l3:17pl<0483>6<729q/=4?546f8L11b3A>o313:17d;=:188m4>f2900c<9k:188yg57<3:1?7>50z&2=4<3?m1C8:k4H550?l2>2900e<349K02c<@==87d:6:188m04=831b=5o50;9l52b=831vn>><:180>5<7s-;2=7:8d:J73`=O<>90e9750;9j57g=831d=:j50;9~f7cb290?6=4?{%3:5?74=2B?;h5G4618m1?=831b9?4?::k21<7>t$0;2>4523A>>7>5;h3;e?6=3f;5;|`052<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi?1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f67f290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e;831<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th8=54?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo=>6;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb20b>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th9584?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj;386=4;:183!7>93;896F;7d9K025>o60h0;66a>7e83>>{e:081<7:50;2x 4?6289>7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd5180;694?:1y'5<7=9:?0D99j;I647>o313:17d;=:188m4>f2900c<9k:188yg4?:3:187>50z&2=4<6;<1C8:k4H550?l2>2900e8<50;9j5=g=831d=:j50;9~f7>6290?6=4?{%3:5?74=2B?;h5G4618m1?=831b9?4?::k21<7>t$0;2>4523A>>7>5;h3;e?6=3f;5;|`13c<72=0;6=u+1839563<@==n7E:83:k7=?6=3`?96=44i0:b>5<908270=O<>o0D99<;h6:>5<n1<75rb2`g>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th8no4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f6dd290>6=4?{%3:5?b33A>=6=44i5594?=n=90;66g>8283>>i60=0;66sm3cg94?3=83:p(<7>:e08L11b3A>5<55;294~"6180o>6F;7d9K025<,l<1>6g;6;29?l202900e9m50;9j15<722e:494?::a7f4=83?1<7>t$0;2>a4<@==n7E:83:&f2?4>o3k3:17d;?:188k4>32900qo=l0;291?6=8r.:5<4k2:J73`=O<>90(h852:k72?6=3`><6=44i5a94?=n=90;66a>8583>>{e;j;1<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi?n:50;794?6|,83:6i<4H55f?M20;2.n:7<4i5494?=n<>0;66g;c;29?l372900c<6;:188yg5c93:197>50z&2=45;h64>5<>i60=0;66sm3bd94?3=83:p(<7>:e68L11b3A>5;n3;0?6=3th8h=4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f6b5290>6=4?{%3:5?b53A>=6=44i5594?=n0<729q/=4?5d39K02c<@==87)k9:39j03<722c?;7>5;h6`>5<93n97E:8e:J736=#m?097d:9:188m11=831b8n4?::k64?6=3f;387>5;|`0`1<72<0;6=u+1839`7=O<>o0D99<;%g5>7=n50;9l5=2=831vn>j::186>5<7s-;2=7j=;I64a>N3?:1/i;4=;h65>5<>o283:17b?74;29?xd4l>0;684?:1y'5<7=l;1C8:k4H550?!c12;1b8;4?::k73?6=3`>h6=44i4294?=h91>1<75rb2f;>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th8mk4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f6gb290>6=4?{%3:5?b53A>=6=44i5594?=n0<729q/=4?5d39K02c<@==87)k9:39j03<722c?;7>5;h6`>5<93n97E:8e:J736=#m?097d:9:188m11=831b8n4?::k64?6=3f;387>5;|`0eg<72<0;6=u+1839`7=O<>o0D99<;%g5>7=n50;9l5=2=831vn>ok:186>5<7s-;2=7j=;I64a>N3?:1/i;4=;h65>5<>o283:17b?74;29?xd4i00;684?:1y'5<7=l;1C8:k4H550?!c12;1b8;4?::k73?6=3`>h6=44i4294?=h91>1<75rb2c;>5<2290;w)?61;f7?M20m2B?;>5+e784?l212900e9950;9j15<722c:4>4?::m2<1<722wi?lo50;794?6|,83:6i<4H55f?M20;2.n:7<4i5494?=n<>0;66g;c;29?l372900c<6;:188yg5f?3:197>50z&2=45;h64>5<1<75rb2;a>5<4290;w)?61;64`>N3?l1C8:=4i5;94?=n9;k1<75`16f94?=zj:3j6=4<:183!7>93>n1<75rb2;3>5<3290;w)?61;301>N3?l1C8:=4i5;94?=n=;0;66g>8`83>>i6?m0;66sm38;94?5=83:p(<7>:55g?M20m2B?;>5f4883>>o6:h0;66a>7e83>>{e;1o1<7:50;2x 4?6289>7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd4110;6>4?:1y'5<7=<>n0D99j;I647>o313:17d?=a;29?j70l3:17pl<8b83>1<729q/=4?51278L11b3A>50z&2=4<6;<1C8:k4H550?l2>2900e8<50;9j5=g=831d=:j50;9~f6?129086=4?{%3:5?20l2B?;h5G4618m1?=831b=?o50;9l52b=831vn>67:187>5<7s-;2=7?<5:J73`=O<>90e9750;9j17<722c:4l4?::m23a<722wi?4;50;194?6|,83:699k;I64a>N3?:1b844?::k26d<722e:;i4?::a7=0=83>1<7>t$0;2>4523A>>7>5;h3;e?6=3f;5;|`0=1<72:0;6=u+183902b<@==n7E:83:k7=?6=3`;9m7>5;n34`?6=3th8494?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<53;294~"6180?;i5G46g8L1143`>26=44i00b>5<908270=O<>o0D99<;h6:>5<n1<75rb2;1>5<4290;w)?61;64`>N3?l1C8:=4i5;94?=n9;k1<75`16f94?=zj:2;6=4;:183!7>93;896F;7d9K025>o60h0;66a>7e83>>{e;li1<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi?ho50;794?6|,83:6i<4H55f?M20;2.n:7<4i5494?=n<>0;66g;c;29?l372900c<6;:188yg5b13:197>50z&2=45;h64>5<>i60=0;66sm3d:94?3=83:p(<7>:e08L11b3A>5<55;294~"6180o>6F;7d9K025<,l<1>6g;6;29?l202900e9m50;9j15<722e:494?::a7`0=83?1<7>t$0;2>a4<@==n7E:83:&f2?4>o3k3:17d;?:188k4>32900qo=j5;291?6=8r.:5<4k2:J73`=O<>90(h852:k72?6=3`><6=44i5a94?=n=90;66a>8583>>{e;l>1<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi?>:50;694?6|,83:6<=:;I64a>N3?:1b844?::k66?6=3`;3m7>5;n34`?6=3th8?84?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj:9<6=4;:183!7>93;896F;7d9K025>o60h0;66a>7e83>>{e;:21<7:50;2x 4?6289>7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd4<>0;694?:1y'5<7=9:?0D99j;I647>o313:17d;=:188m4>f2900c<9k:188yg5303:187>50z&2=4<6;<1C8:k4H550?l2>2900e8<50;9j5=g=831d=:j50;9~f62>290?6=4?{%3:5?74=2B?;h5G4618m1?=831b9?4?::k21<7>t$0;2>4523A>>7>5;h3;e?6=3f;5;|`00g<72=0;6=u+1839563<@==n7E:83:k7=?6=3`?96=44i0:b>5<908270=O<>o0D99<;h6:>5<n1<75rb27f>5<3290;w)?61;301>N3?l1C8:=4i5;94?=n=;0;66g>8`83>>i6?m0;66sm34d94?2=83:p(<7>:016?M20m2B?;>5f4883>>o2:3:17d?7a;29?j70l3:17pl<6183>1<729q/=4?51278L11b3A>349K02c<@==87d:6:188m04=831b=5o50;9l52b=831vn>9?:187>5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm36394?2=83:p(<7>:e38L11b3A>5;|`02f<72<0;6=u+1839`7=O<>o0D99<;%g5>7=n50;9l5=2=831vn95<7s-;2=7j:;I64a>N3?:1/i;4=;h65>5<>o60<0;66a>8583>>{e<;o1<7;50;2x 4?62m?0D99j;I647>"b>380e9850;9j02<722c><7>5;h3;1?6=3f;387>5;|`76a<72<0;6=u+1839`0=O<>o0D99<;%g5>7=n32900qo:=c;291?6=8r.:5<4k5:J73`=O<>90(h852:k72?6=3`><6=44i4294?=n91?1<75`19694?=zj=8i6=4::183!7>93n>7E:8e:J736=#m?097d:9:188m11=831b9=4?::k2<0<722e:494?::a07g=83?1<7>t$0;2>a3<@==n7E:83:&f2?4>o283:17d?75;29?j7?<3:17pl;2983>0<729q/=4?5d49K02c<@==87)k9:39j03<722c?;7>5;h73>5<6=44o0:7>5<9;7>55;294~"6180o96F;7d9K025<,l<1>6g;6;29?l202900e8>50;9j5=3=831d=5:50;9~f141290>6=4?{%3:5?b23A>=6=44i5594?=n=90;66g>8483>>i60=0;66sm43794?3=83:p(<7>:e78L11b3A>5;n3;0?6=3th?>94?:483>5}#90;1h85G46g8L1143-o=6?5f4783>>o3?3:17d;?:188m4>22900c<6;:188yg25;3:197>50z&2=45;h64>5<1<75rb501>5<2290;w)?61;f6?M20m2B?;>5+e781?l212900e9950;9j15<722c:484?::m2<1<722wi8??50;794?6|,83:6i;4H55f?M20;2.n:7<4i5494?=n<>0;66g:0;29?l7?=3:17b?74;29?xd3:90;684?:1y'5<7=l<1C8:k4H550?!c12;1b8;4?::k73?6=3`?;6=44i0:6>5<908g1>N3?l1C8:=4$d496>o3>3:17d:8:188m06=831b=5;50;9l5=2=831vn9?k:186>5<7s-;2=7j:;I64a>N3?:1/i;4=;h65>5<>o60<0;66a>8583>>{e<8i1<7;50;2x 4?62m?0D99j;I647>"b>380e9850;9j02<722c><7>5;h3;1?6=3f;387>5;|`75g<72<0;6=u+1839`0=O<>o0D99<;%g5>7=n32900qo:>a;291?6=8r.:5<4k5:J73`=O<>90(h852:k72?6=3`><6=44i4294?=n91?1<75`19694?=zj=;26=4::183!7>93n>7E:8e:J736=#m?097d:9:188m11=831b9=4?::k2<0<722e:494?::a04>=83?1<7>t$0;2>a3<@==n7E:83:&f2?4>o283:17d?75;29?j7?<3:17pl;1683>0<729q/=4?5d49K02c<@==87)k9:39j03<722c?;7>5;h73>5<6=44o0:7>5<::7>55;294~"6180o96F;7d9K025<,l<1>6g;6;29?l202900e8>50;9j5=3=831d=5:50;9~f172290>6=4?{%3:5?b23A>=6=44i5594?=n=90;66g>8483>>i60=0;66sm40694?3=83:p(<7>:e78L11b3A>5;n3;0?6=3th??84?:483>5}#90;1h85G46g8L1143-o=6?5f4783>>o3?3:17d;?:188m4>22900c<6;:188yg24<3:197>50z&2=45;h64>5<1<75rb510>5<2290;w)?61;f6?M20m2B?;>5+e781?l212900e9950;9j15<722c:484?::m2<1<722wi8><50;794?6|,83:6i;4H55f?M20;2.n:7<4i5494?=n<>0;66g:0;29?l7?=3:17b?74;29?xd3;80;684?:1y'5<7=l<1C8:k4H550?!c12;1b8;4?::k73?6=3`?;6=44i0:6>5<908g1>N3?l1C8:=4$d496>o3>3:17d:8:188m06=831b=5;50;9l5=2=831vn9<6:186>5<7s-;2=7j:;I64a>N3?:1/i;4=;h65>5<>o60<0;66a>8583>>{e<8o1<7;50;2x 4?62m?0D99j;I647>"b>380e9850;9j02<722c><7>5;h3;1?6=3f;387>5;|`756<72<0;6=u+1839`0=O<>o0D99<;%g5>7=n32900qo:>2;291?6=8r.:5<4k5:J73`=O<>90(h852:k72?6=3`><6=44i4294?=n91?1<75`19694?=zj=93;9j6F;7d9K025<,l<1=l5fd`83>>ocj3:17b?8d;29?xd3>;0;6>4?:1y'5<7=9;l0D99j;I647>"b>3;j7djn:188mad=831d=:j50;9~f77?29086=4?{%3:5?75n2B?;h5G4618 `0=9l1bhl4?::kgf?6=3f;5;|`2f3<72:0;6=u+183957`<@==n7E:83:&f2?7b3`nj6=44ie`94?=h9>n1<75rb0c1>5<4290;w)?61;31b>N3?l1C8:=4$d495`=nlh0;66gkb;29?j70l3:17pl>a083>6<729q/=4?513d8L11b3A>5<7s-;2=7?=f:J73`=O<>90(h851d9j`d<722con7>5;n34`?6=3th:5k4?:283>5}#90;1=?h4H55f?M20;2.n:7?j;hfb>5<93;9j6F;7d9K025<,l<1=h5fd`83>>ocj3:17b?8d;29?xd61m0;6>4?:1y'5<7=9;l0D99j;I647>"b>3;n7djn:188mad=831d=:j50;9~f4?d29086=4?{%3:5?75n2B?;h5G4618 `0=9l1bhl4?::kgf?6=3f;5;|`2=g<72:0;6=u+183957`<@==n7E:83:&f2?7b3`nj6=44ie`94?=h9>n1<75rb0;b>5<4290;w)?61;31b>N3?l1C8:=4$d495`=nlh0;66gkb;29?j70l3:17pl>9883>6<729q/=4?513d8L11b3A>5<7s-;2=7?=f:J73`=O<>90(h851d9j`d<722con7>5;n34`?6=3th:5:4?:283>5}#90;1=?h4H55f?M20;2.n:7?j;hfb>5<93;9j6F;7d9K025<,l<1=h5fd`83>>ocj3:17b?8d;29?xd61<0;6>4?:1y'5<7=9;l0D99j;I647>"b>3;n7djn:188mad=831d=:j50;9~f4?329086=4?{%3:5?75n2B?;h5G4618 `0=9l1bhl4?::kgf?6=3f;5;|`2=6<72:0;6=u+183957`<@==n7E:83:&f2?7b3`nj6=44ie`94?=h9>n1<75rb0;1>5<4290;w)?61;31b>N3?l1C8:=4$d495`=nlh0;66gkb;29?j70l3:17pl=7483>1<729q/=4?51228L11b3A>1<7>t$0;2>4573A>5;hfa>5<93;8<6F;7d9K025<,l<1>85fd`83>>ocj3:17djl:188k41c2900qo<83;291?6=8r.:5<4>309K02c<@==87)k9:0`8mag=831bho4?::kgg?6=3`no6=44o05g>5<55;294~"6180:?<5G46g8L1143-o=6?>4iec94?=nlk0;66gkc;29?lbc2900c<9k:188yg7ei3:197>50z&2=4<6;81C8:k4H550?!c12;:0eio50;9j`g<722coo7>5;hfg>5<908274=O<>o0D99<;%g5>74>ock3:17djk:188k41c2900qo<9d;290?6=8r.:5<4>319K02c<@==87)k9:3a8mag=831bho4?::kgg?6=3f;5;|`15`<72:0;6=u+183957`<@==n7E:83:&f2?7b3`nj6=44ie`94?=h9>n1<75rb0``>5<4290;w)?61;31b>N3?l1C8:=4$d495`=nlh0;66gkb;29?j70l3:17pl=2183>1<729q/=4?51228L11b3A>1<7>t$0;2>4573A>5;hfa>5<93;8=6F;7d9K025<,l<1>=5fd`83>>ocj3:17djl:188mab=831d=:j50;9~f4e7290>6=4?{%3:5?7492B?;h5G4618 `0=:91bhl4?::kgf?6=3`nh6=44ief94?=h9>n1<75rb57`>5<3290;w)?61;304>N3?l1C8:=4$d4914=nlh0;66gkb;29?lbd2900c<9k:188yg41k3:197>50z&2=4<6;81C8:k4H550?!c12890eio50;9j`g<722coo7>5;hfg>5<90826c=O<>o0D99<;%g5>75>i6?m0;66sm29a94?5=83:p(<7>:00e?M20m2B?;>5+e7817>oci3:17djm:188k41c2900qo=9b;291?6=8r.:5<4>309K02c<@==87)k9:368mag=831bho4?::kgg?6=3`no6=44o05g>5<97>55;294~"6180:?<5G46g8L1143-o=6?:4iec94?=nlk0;66gkc;29?lbc2900c<9k:188yg53:3:197>50z&2=4<6;81C8:k4H550?!c12;>0eio50;9j`g<722coo7>5;hfg>5<908274=O<>o0D99<;%g5>72>ock3:17djk:188k41c2900qo=:4;291?6=8r.:5<4>309K02c<@==87)k9:368mag=831bho4?::kgg?6=3`no6=44o05g>5<55;294~"6180:?<5G46g8L1143-o=6?:4iec94?=nlk0;66gkc;29?lbc2900c<9k:188yg4>m3:197>50z&2=4<6;81C8:k4H550?!c12;>0eio50;9j`g<722coo7>5;hfg>5<908274=O<>o0D99<;%g5>72>ock3:17djk:188k41c2900qo=99;291?6=8r.:5<4>309K02c<@==87)k9:368mag=831bho4?::kgg?6=3`no6=44o05g>5<?7>55;294~"6180:?<5G46g8L1143-o=6?:4iec94?=nlk0;66gkc;29?lbc2900c<9k:188yg5383:197>50z&2=4<6;81C8:k4H550?!c12;>0eio50;9j`g<722coo7>5;hfg>5<908274=O<>o0D99<;%g5>72>ock3:17djk:188k41c2900qo<7a;291?6=8r.:5<4>309K02c<@==87)k9:368mag=831bho4?::kgg?6=3`no6=44o05g>5<55;294~"6180:?<5G46g8L1143-o=6?:4iec94?=nlk0;66gkc;29?lbc2900c<9k:188yg52:3:197>50z&2=4<6;81C8:k4H550?!c12;>0eio50;9j`g<722coo7>5;hfg>5<908274=O<>o0D99<;%g5>72>ock3:17djk:188k41c2900qo<6c;291?6=8r.:5<4>309K02c<@==87)k9:368mag=831bho4?::kgg?6=3`no6=44o05g>5<55;294~"6180:?<5G46g8L1143-o=6?:4iec94?=nlk0;66gkc;29?lbc2900c<9k:188yg50;3:187>50z&2=4<6;91C8:k4H550?!c12jo0eio50;9j`g<722coo7>5;n34`?6=3th8:h4?:583>5}#90;1=>>4H55f?M20;2.n:7mj;hfb>5<>i6?m0;66sm2`694?2=83:p(<7>:013?M20m2B?;>5+e78`a>oci3:17djm:188mae=831d=:j50;9~f600290?6=4?{%3:5?7482B?;h5G4618 `0=>2com7>5;hfa>5<93;8<6F;7d9K025<,l<1:6gka;29?lbe2900eim50;9l52b=831vn>=j:187>5<7s-;2=7?<0:J73`=O<>90(h856:kge?6=3`ni6=44iea94?=h9>n1<75rb3;a>5<2290;w)?61;305>N3?l1C8:=4$d4961=nlh0;66gkb;29?lbd2900eij50;9l52b=831vn?67:186>5<7s-;2=7?<1:J73`=O<>90(h85259j`d<722con7>5;hf`>5<6=4<:183!7>93;9j6F;7d9K025<,l<1>>5fd`83>>ocj3:17b?8d;29?xd6k:0;6>4?:1y'5<7=9;l0D99j;I647>"b>3887djn:188mad=831d=:j50;9~f74?290?6=4?{%3:5?7482B?;h5G4618 `0=9o1bhl4?::kgf?6=3`nh6=44o05g>5<54;294~"6180:?=5G46g8L1143-o=66<729q/=4?513d8L11b3A>5<7s-;2=7?=e:J73`=O<>90(h85139j`d<722e:;i4?::a6gd=8381<7>t$0;2>44b3A>5;n34`?6=3th9n44?:383>5}#90;1=?k4H55f?M20;2.n:7?=;hfb>5<90826`=O<>o0D99<;%g5>446=4=:183!7>93;9i6F;7d9K025<,l<1=?5fd`83>>i6?m0;66sm2c194?4=83:p(<7>:00f?M20m2B?;>5+e7826>oci3:17b?8d;29?xd5j80;6?4?:1y'5<7=9;o0D99j;I647>"b>3;97djn:188k41c2900qo2d9K02c<@==87)k9:008mag=831d=:j50;9~f6?629096=4?{%3:5?75m2B?;h5G4618 `0=9;1bhl4?::m23a<722wi?5h50;094?6|,83:6<N3?:1/i;4>2:kge?6=3f;5;|`05<52;294~"6180:>h5G46g8L1143-o=6<<4iec94?=h9>n1<75rb2::>5<5290;w)?61;31a>N3?l1C8:=4$d4957=nlh0;66a>7e83>>{e;1=1<7<50;2x 4?6288n7E:8e:J736=#m?0:>6gka;29?j70l3:17pl<8483>7<729q/=4?513g8L11b3A>7>50z&2=4<6:l1C8:k4H550?!c12880eio50;9l52b=831vn>6>:181>5<7s-;2=7?=e:J73`=O<>90(h85139j`d<722e:;i4?::a6f1=8381<7>t$0;2>44b3A>5;n34`?6=3th85n4?:383>5}#90;1=?k4H55f?M20;2.n:7?=;hfb>5<90826c=O<>o0D99<;%g5>75>i6?m0;66sm2g`94?5=83:p(<7>:00e?M20m2B?;>5+e7817>oci3:17djm:188k41c2900qo2g9K02c<@==87)k9:318mag=831bho4?::m23a<722wi>kj50;194?6|,83:6<N3?:1/i;4=3:kge?6=3`ni6=44o05g>5<53;294~"6180:>k5G46g8L1143-o=6?=4iec94?=nlk0;66a>7e83>>{e:ol1<7=50;2x 4?6288m7E:8e:J736=#m?09?6gka;29?lbe2900c<9k:188yg5783:1?7>50z&2=4<6:o1C8:k4H550?!c12;90eio50;9j`g<722e:;i4?::a757=8391<7>t$0;2>44a3A>5;hfa>5<90826c=O<>o0D99<;%g5>75>i6?m0;66sm33g94?3=83:p(<7>:012?M20m2B?;>5+e78g2>oci3:17djm:188mae=831bhi4?::m23a<722wi??j50;794?6|,83:6<=>;I64a>N3?:1/i;4=1:kge?6=3`ni6=44iea94?=nlm0;66a>7e83>>{e;>?1<7=50;2x 4?6288m7E:8e:J736=#m?0:>6gka;29?lbe2900c<9k:188yg4a13:1>7>50z&2=4<6:01C8:k4H550?lb>2900c<9k:188yg51n3:1>7>50z&2=4<6:01C8:k4H550?lb>2900c<9k:188yg55k3:197>50z&2=4<6;:1C8:k4H550?!c12;;0eio50;9j`g<722coo7>5;hfg>5<3:1908277=O<>o0D99<;%g5>70>ock3:17djk:188k44e2900c<9k:188yg7d:3:1:7>50z&2=4<6;;1C8:k4H550?!c12;<0eio50;9j`g<722coo7>5;hfg>5<5<>m7>58683>5}O<>90(<7>:0:5?_222hq26?95f;35>42=9j0:<7?8:0795a0=#m;0>7)k<:49'a1<23-ii6nh4$d591>"b03?0(h755:&fe?3<,lh196*jc;78 `b==2.ni7;4$dd91>"a83?0(k?55:&e6?3<,o9196*i4;78 c3==2.m:7;4$g591>"a03?0(k755:&ee?3<,oh196*ic;78 cb==2.mi7;4$gd91>"6890>7)??1;78 4652<1/===55:&241<23-;;97;4$025>0=#99=196*>0986?!7713?0(<>n:49'55d==2.:"6990>7)?>1;78 4752<1/=<=55:&251<23-;:97;4$035>0=#98=196*>1986?!7613?0("6:90>7)?=1;78 4452<1/=?=55:&261<23-;997;4$005>0=#9;=1?6*>8c876>"b=3?0(<6k:29'02>=91=0(996:0:4?k?b291eo=4?;o3;f`<,82n695f4`83>>o3j3:17d:86;29?lef2900e5650;&2<75$0:1>608082?>o4<3:1(<6=:248j4>62;10e>=50;&2<7<4>2d:4<4<;:k06?6=,8296>84n0:2>1=83802>h6080>76g<0;29 4>52:<0b<6>:798m7`=83.:4?4<6:l2<4<032c9i7>5$0:1>60808:?>o393:1(<6=:528j4>62910e>h50;&2<7<382d:4<4>;:k0a?6=,82969>4n0:2>7=83874>h6080876g52=:0b<6>:598m6d=83.:4?4;0:l2<4<232c8m7>5$0:1>168084?>o403:1(<6=:528j4>62110e8o50;&2<7<212d:4<4?;:k64=8386=>h6080976g:6;29 4>52<30b<6>:298m03=83.:4?4:9:l2<4<332c>87>5$0:1>0?56`>8085?>o1:3:1(<6=:4;8j4>62>10e;?50;&2<7<212d:4<47;:k54?6=,8296874n0:2><=8386=>h6080j76g:e;29 4>52<30b<6>:c98m0b=83.:4?4:9:l2<4o7>5$0:1>0?56`>808f?>o2;3:1(<6=:4;8j4>62o10e5950;&2<72d:4<4?;:k;1?6=,8296584n0:2>4=838a3>h6080;76am6;29 4>52k=0b<6>:098kg2=83.:4?4m7:l2<4<532ei?7>5$0:1>g154oc094?"60;0i;6`>8087?>ie93:1(<6=:c58j4>62<10co>50;&2<72=838a3>h6080376and;29 4>52k=0b<6>:898kde=83.:4?4m7:l2<45$0:1>g1808`?>if03:1(<6=:c58j4>62m10cl950;&2<7c=838a3>h6080:<65`a583>!7?:3h<7c?71;32?>if;3:1(<6=:c58j4>628807bo=:18'5=4=j>1e=5?51298kd7=83.:4?4m7:l2<4<6<21dm=4?:%3;6?d03g;3=7?:;:mab?6=,8296o94n0:2>40<3fhn6=4+1909f2=i91;1=:54ocf94?"60;0i;6`>8082<>=hjj0;6)?72;`4?k7?93;276amb;29 4>52k=0b<6>:0c8?jdf290/=5<5b69m5=7=9k10co750;&2<7c:9lf0<72-;3>7l8;o3;5?7c32ejm7>5$0:1>g15<#9181n:5a19395c=838`3>h6080;76al6;29 4>52j=0b<6>:098kf3=83.:4?4l7:l2<4<532eh87>5$0:1>f154ib;94?=n91l1<75f46594?=n?m0;6)?72;5`?k7?93:07d9m:18'5=4=?j1e=5?51:9j3<<72-;3>79l;o3;5?4<3`=36=4+19093f=i91;1?65f7683>!7?:3=h7c?71;68?l11290/=5<57b9m5=7==21b;84?:%3;6?1d3g;3=784;h57>5<#9181;n5a19393>=n?:0;6)?72;5`?k7?93207d9=:18'5=4=?j1e=5?59:9j34<72-;3>79l;o3;5?g<3`=;6=4+19093f=i91;1n65f6d83>!7?:3=h7c?71;a8?l0c290/=5<57b9m5=7=l21b:n4?:%3;6?1d3g;3=7k4;h4a>5<#9181;n5a1939b>=n>h0;6)?72;5`?k7?93;;76g99;29 4>52>i0b<6>:038?l0?290/=5<57b9m5=7=9;10e;950;&2<7<0k2d:4<4>3:9j23<72-;3>79l;o3;5?7332c=97>5$0:1>2e5<#9181;n5a193953=8384g>h6080:;65f8383>!7?:3=h7c?71;3;?>o?93:1(<6=:6a8j4>628307d6?:18'5=4=?j1e=5?51`98m2`=83.:4?48c:l2<4<6j21b;h4?:%3;6?1d3g;3=7?l;:k4e?6=,8296:m4n0:2>4b<3`8082b>=n0j0;6)?72;:a?k7?93:07d6n:18'5=4=0k1e=5?51:9j<<<72-;3>76m;o3;5?4<3f3?6=4+1909=6=i91;1<65`9383>!7?:3387c?71;38?j?6290/=5<5929m5=7=:21d5=4?:%3;6??43g;3=7=4;n:e>5<#91815>5a19390>=h0l0;6)?72;;0?k7?93?07b7k:18'5=4=1:1e=5?56:9l=f<72-;3>77<;o3;5?1<3f3i6=4+1909=6=i91;1465`9`83>!7?:3387c?71;;8?j?>290/=5<5929m5=7=i21d554?:%3;6??43g;3=7l4;n;4>5<#91815>5a1939g>=h1?0;6)?72;;0?k7?93n07b7::18'5=4=1:1e=5?5e:9l77<;o3;5?`<3fi86=4+1909g7=i91;1<65`c083>!7?:3i97c?71;38?xu2=o0;6;uQ54d897122mh01?9<:ec8971>2mn01?8k:ea8970d2mk0q~;:d;293`}Y<0<0R888;_751>X30?1U9;<4^432?[31>2T>=?5Q4868Z1?43W>2>6P;909]0<6X2?81U9:>4^44e?[31m2T>:i5Q57a8Z00e3W?=m6P:689]10eX2=<1U98:4=55e>a1<5=<268>4=57f>06<5=<368>4=544>06<5=<=68>4=552>06<5==;68>4=3``>04<5;hj68<4=3`;>04<5;h=68<4=3`7>04<5;h968<4=3`3>04<5;kn68<4=3gg>4>f348297;=;<0:0?353482?7;=;<0:6?353482=7;=;<0;6?353483=7;=;<0;4?35348i7;=;<16b?35349=<7;=;<155?3534>>m767;<66e?7?n27?9l4;769>00g=?m1688o57c9>00g=?01688o5799>00g=?>1688o5779>00g=?<1688o5759>00g=?:1688o5739>00g=?81688o5719>00g=>l1688o56e9>00g=>j1688o56c9>00g=>h1688o5689>00g=>11688o5669>00g=>?1688o5649>00g=0=1688o5829>00g=0;1688o5809>00g=091688o57g9>00g=?l1688o57`9>00g=>o1688o5659>00g=0j1688o58`9>00g=001v>8l:181[2??278:n4>859~w0062908wS;91:?72<<60:1688k51918yv40?3:1>vP:079>621=91>0q~;84;297~X2?=16?::5d`9>723=lh1v8;<:185<~X2=:16>l<5479>036=00c=031=640=<;5479>642=<=5479>644=646==h5479>65c=;<5479>637=;>5479>60`=8k5479>60b=8m5479>60d=8o5479>606=9h5479>61c=9j5479>61e=9l5479>61g=975479>61>=995479>5a>=5a0=5a2=5a4=5a6=i75479>6a>=i95479>6a0=i;5479>6a2=i<5479>6a7=i=5479>6`d=ho5479>6`?=h65479>6`1=h85479>6`3=h:5479>6`5=:85479>621=:?5479>626=07c=07e=07g=071=073=075=077=5479>04`=04e=04g=04>=040=042=;5479>062==5479>064=?5479>066=04c=044=1168;l5479>03?=027=5479>5g2=5g4=5g6=5dc=5de=5cd=5c?=5c1=5c3=5`g=5`>=5`0=5`2=5`4=>m5479>66d=>o5479>66?=>65479>661=>85479>663=>:5479>665=74`=74b=74d=74?=740=7gb=7ge=7g`=7f6=7f5=7a7=7a6=7a5=7a2=7a1=7d`=7g6=7dd=7d?=7dg=7`e=7`g=7`>=7`0=7`2=726=73e=h9:181[2c127?=o4>859~w6`22909wS:k8:?75d<60=1v>h;:181[2c?27?=44>859~w6`42909wS:k6:?75=<60=1v>h=:181[2c=27?=:4>859~w6`62909wS:k4:?753<60=1v>h?:181[2c:27?=84>859~w6ca2909wS:k1:?751<60=1v9?>:181[2c827??84>859~w1772909wS:lf:?771<60=1v9>i:181[2dm27??>4>859~w16b2909wS:ld:?777<60=1v9>k:181[2dk27??<4>859~w16d2909wS:lb:?775<60=1v9>m:181[2di27?>44>859~w1632909wS:l9:?75`<60=1v>h6:181[2d?27?=>4>859~w6cb2909wS:l6:?757<60=1v9>n:181[2d=27?>k4>859~w16>2909wS:l4:?76`<60=1v9>7:181[2d;27?>i4>859~w1602909wS:l2:?76f<60=1v9>9:181[2d927?>o4>859~w1622909wS:l0:?76d<60=1v9><:181[2en27?>54>859~w1652909wS:me:?762<60=1v9>>:181[2cn27?>;4>859~w1672909wS:ke:?760<60=1v>hi:181[2cl27?>94>859~w6`b2909wS:kc:?766<60=1v>hk:181[2cj27?>?4>859~w6`d2909wS:ka:?764<60=1v>hm:181[2c;27?>=4>859~w6`f2909wS:l8:?75c<60=1v>h7:181[2el27?=i4>859~w6`02909wS:mc:?75f<60=1v9l=:181[2f827?9l477:p0g6=838pR97i;<66e?3f3ty?mk4?:3y]0;3=h0>:6s|4`a94?4|V=3i70::a;76?xu3ik0;6?uQ48c8913f2<>0q~:na;296~X3101688o5629~w1de2909wS:n8:?71d<1:2wx8oo50;0xZ1g034>>m76:;|q7f<<72;qU8l84=57b>37i47>52z\7e0=:<5<5sW>j863;5`86b>{t7}YvP;a09>00g==j1v9l<:181[2>027?9l4:b:p0d?=838pR978;<66e?343ty:?44?:by>0=6=9>l01?lj:5;897gb2=301?kj:40897cc2=301?7>:5;8971b2=301>7=:5;896>72=301>=;:5;896202=301>;k:5;8yv4f;3:1>v3=a3864>;5i=0:;i5rs546>5<60r79m?4>829>03>=91>01?j6:5a897b?2=i01?j8:5a897b12=i01?j::5a897b32=i01?j=:5a897b6282870h70h70h70h70h70<86;3;7>;5?>0:4>5226390f=::>:18n5rs3c1>5<3s48j>7?74:?136<7p};6183>7}:ag=m7>53z?72g<2827?:44;7:?72d<60=1v98m:181821j3;3863;6e8ge>{t<06<5=?n6<6;;<656?be3ty?:44?:2y>03?=91>0198n:428910c2mh0q~:91;290~;3>10:4>5247595=5<5=<=6<6<;<656?70l2wx8;:50;05821?3;3863=1787g>;59<0?o63=1587g>;59:0?o63=1387g>;5980?o63=1187g>;58o0?o63=0d87g>;5>;0?o63=6087g>;5>90?o63=5g87g>;5=l0?o63=5e87g>;5=j0?o63=5c87g>;5=h0?o63=5187g>;5;5;5;5<00?o63=4987g>;5<>0?o63>d987g>;6l>0?o63>d787g>;6l<0?o63>d587g>;6l:0?o63>d387g>;6l80?o63>d187g>{tk4>849>07c=91?0194>234>9;7?75:?763<60<168?;519789143282>70:=3;3;1>;3:;0:485243395=3<5=8;6<6:;<62b?7?=27?=i4>849>04e=91?019?m:0:6?826i3;3963;1882<0=:<821=5;4=534>4>234>::7?75:?750<60<168<:519789152282>70:<4;3;1>;3;:0:485242095=3<5=9:6<6:;<604?7?=27?>44>849>04c=91?019?<:0:6?826:3;3963;5b8gf>;3=h0:5=5rs54`>5<4s4><=7?73:?735<60:168;j516f8yv21n3:1?>u246395=2<5:;<69m4=23e>1e<5:;n69m4=23g>1e<5:;h69m4=23a>1e<5:;j69m4=23:>1e<5:;369m4=235>1e<5:ho69m4=2`a>1e<5:hh6<6<;<1aa?2d349ij7:l;<1`6?2d349h<7:l;<1`5?2d349h?7:l;<1`0?2d349o=7:l;<1`b?7?;278h=4;c:?0`7<3k278h>4;c:?0`3<3k278h94;c:?0`0<3k278h:4;c:?0`=<3k278mk4;c:?0e`<3k278n=4;c:?0ef<3k278mo4;c:?0ea<3k278m44;c:?0e=<60:16?lo54b9>7d1=91901>kl:5a896ce2=i01>kn:5a896c>2=i01>k7:5a896c02=i01>k9:5a896c22=i01>k;:5a896c42=i0q~:9e;296d}:<>:1=5:4=0`7>1e<58h869m4=0`1>1e<58h:69m4=0`3>1e<58km69m4=0cf>1e<58ko69m4=0c`>1e<58lh69m4=0da>1e<58lj69m4=0d:>1e<58l369m4=0d4>1e<58l=69m4=0d6>1e<58l?69m4=0gb>1e<58o269m4=0g;>1e<58o<69m4=0g5>1e<58o>69m4=0g7>1e<58o869m4=0g1>1e<5;9h69m4=31a>1e<5;9j69m4=31:>1e<5;9369m4=314>1e<5;9=69m4=316>1e<5;9?69m4=310>1e<5:8j69m4=253>1e<5:=:69m4=24`>1e57>55z?153<28279:?4>859>64>=lk16>64e=lm1v?>k:180846>3;3863=9g8ge>;50j0om6s|20594?4|5;;>68>4=33;>41c3ty9643=91>01?7j:e`897>e2mh0q~<>9;296~;59=0><63=1`823a=z{;:i6=4<{<020?7?<2795h4kd:?1u220195=2<5;3o6il4=3:b>ad52z?157<28279=h4>7e9~w76>2908w0<>2;3;0>;51m0oh63=8`8g`>{t:8l1<706<5;8;6<9k;|q14=<72:q6>v3=11864>;5:;0:;i5rs324>5<4s48:<7?74:?1=fi:428974228=o7p}=0783>6}::9l1=5:4=3;a>ad<5;236il4}r013?6=:r79::180847m3;3863=9c8g`>;5010oh6s|1g194?3|58h?68>4=0d`>4>334;i:7jm;<3a;::ec896252mk01?h8:e`8yv7e=3:1>v3>b2864>;6j?0:;i5rs0cb>5<2s4;i?7?74:?02ga883>0}:9k81=5:4=24b>ag<5:??6io4=262>ag<5::;6il4}r3a=?6=>r7:n<4:0:?2fd<6?m16=om5dc9>5gc=lh16=n>5db9>5f4=lm1v;4==0oo63<408gg>;5no0on6s|1c`94?4|58h;68>4=0``>41c3ty:m:4?:4y>5g6=91>01>86:ec896342mk01>:?:ec897`b2mh0q~?md;296~;6io0><63>bd823a=z{8k=6=4:{<3bb?7?<278:44kc:?016ag<5:9m6io4=3d`>ad52z?2ea<2827:o>4>7e9~w4g3290>w0?nd;3;0>;4>10oo63<538gg>;4;o0oo63=fc8gf>{t9j?1<706<58i=6<9k;|q2e6<72;>:ec8965b2mk01?hn:e`8yv43>3:1>v3=63864>;5=90:495rs366>5<5s48==7;?;<07b?7?<2wx>8650;6x9706282?70<>8;fb?846i3ni70<>c;f`?xu5<=0;6?u2272915=::=o1=5:4}r063?6=;r79:=4>859>64g=lj16>60c==916>9m51968yv42=3:19v3=5d82<1=::8o1hl522329`g=::;81hi522369`f=z{;>:6=4={<06`?37348?n7?74:p602=83>p1?;k:0:7?84583nh70<=2;fb?845<3ni7p}=4183>7}::?7>53z?11f<60=16>?<5dc9>672=lh1v?=i:181842j3?;70<;9;3;0>{t:<81<7=t=37a>4>3348997jn;<0160g==916>9651968yv4293:1>v3=5`82<1=::;21hl5rs0g2>5<5s4;mo7;?;<3fe?7?<2wx=h>50;0x94`e2<:01ad<58hj6im4}r3gb?6=:r7:jl4:0:?2a=<60=1v:18087ai3;3863>b98gg>;6jh0on6s|1eg94?4|58l268>4=0g4>4>33ty:j=4?:3y>5c?=91>01v3>f9864>;6m?0:495rs0ge>5<2s4;m47?74:?2ffed83>1}:9o=1=5:4=0`f>ae<58i;6io4=0a1>ad52z?2b3<2827:i94>859~w4cc2908w0?i6;3;0>;6k90on63>c38ge>{t9mk1<706<58o86<6;;|q2af<72:q6=k;5196894e42mk01v3>f5864>;6m;0:495rs0ga>5<5s4;m87?74:?2g3><50;0x97372<:01?=l:0:7?xu5;80;6?u225d915=:::h1=5:4}r004?6=:r798h4:0:?17d<60=1v?{t:;o1<706<5;936<6;;|q16a<72;q6>9l5519>661=91>0q~<=c;296~;5<63=3782<1=z{;8i6=4={<07=?37348897?74:p67g=838p1?:7:4289753282?7p}=2883>7}::==19=5222195=251z?102<60=1v{t9jo1<706<58n<6<6;;|q2ga<72;q6=h65519>5a0=91>0q~?lc;296~;6m>0><63>d482<1=z{8ii6=4={<3f2?3734;o87?74:p5fg=838p1c883>7}:9l>19=521e095=252z?2a6<2827:h<4>859~w4e02909w0?j2;73?87c83;386s|2d094?3|58n368>4=3ga>4>334;2>7jn;<0;g?be34>>m7:>;|q2ba<72;q6=i95519>5<4=9>n0q~?ie;296~;6l?0><63>92823a=z{8lm6=4={<3g1?3734;287?8d:p656=838p17}:9m919=52184952b7>52z?2`7<2827:5:4>7e9~w7642909w0?k1;73?87>03;4=0;:>41c3ty8i?4?:5y>66e==916?hm5196894?f2mk019;n:258yv41;3:1>v3=3c864>;61h0:;i5rs347>5<5s488m7;?;<3:f?70l2wx>;;50;0x975>2<:01<7l:05g?xu5>?0;6?u222:915=:90n1=:j4}r053?6=:r79?:4:0:?2=`<6?m1v?87:181844>3?;70?6f;34`>{t:?31<706<58k;6<9k;|q12d<72;q6>>:5519>5d7=9>n0q~<9b;296~;5;:0><63>a3823a=z{;oh6=4>5z?1`<<3?279h54;7:?1`2<3?279h;4;7:?1`0<3?279h94;7:?1`7<3?279h<4;7:?1`6<3?279io4;7:?1ad<3?279i44;7:?1a=<3?279i:4;7:?1a3<3?279i84;7:?1a1<3?279i>4;7:?71f7e9>6d2=lk1v?ok:18184c13?;70{t:m:1<7:t=3f:>4>3348nn7;?;<0:b?be348h;7jn;|q1ef<72;q6>i65519>6f3=9>n0q~p1?j8:0:7?84b13?;70<6e;f`?84ej3nj7p}=a`83>7}::m<19=522b1952b54z?1`3<60=16>h65519>6o75d`9~w7g>2909w06<6;;<0f3?373482h7jl;<0a3?bf3ty9m54?:3y>6a2==916>n?516f8yv4dj3:18v3=d582<1=::l<19=5228a9`d=::k?1hl5rs3c5>5<5s48o>7;?;<0ab?70l2wx>n750;6x97b5282?70j3nj70859>6`5==916>4l5db9>6d`=lh1v?o8:18184c;3?;70{t:jk1<7:t=3f0>4>3348n97;?;<0:g?bd348i?7jn;|q1ff<72;q6>n85489>6ge=9>n0q~l522b5952b53z?1g0<31279nn4;9:?1fd<6?m1v?lk:18084d=3;9m63=bb827e9~w7de2908w0;5jh0:4l522c`952b53z?1g6<31279n54;9:?1f3<6?m1v?l6:18084d;3;9m63=b9827e9~w7d02908w0;5j?0:4l522c5952b7>53z?1g4<31279n94;9:?1f7<6?m1v?l::18084d93;9m63=b5827e9~w7d42908w0;5j;0:4l522c1952b53z?1fc<31279n=4;9:?1e`<6?m1v?l>:18084en3;9m63=b1822`9>6dc=91k01?oi:05g?xu5m80;68u22dc95=2<58386io4=0;1>ad<5;2i6io4=57b>6`55z?1a<<60=16=4:5d`9>5<5=lk16>5l5db9>00g=;l1v?ji:18684b03;3863>948ge>;61=0on63=8`8ge>;3=h08h6s|2eg94?3|5;o<6<6;;<3:2?bf34;297jm;<0;e?bd34>>m7=l;|q1`a<72h85196894?02mk01<79:e`897>>2mk019;n:2`8yv4ck3:19v3=e482<1=:9021hl521859`g=::131hn5244c97d=z{;ni6=4:{<0f0?7?<27:544ka:?2==io50;6x97c4282?70?69;fa?84?03nh70::a;1;?xu5?10;6>u2264915=::>=19=5226;952b52z?133<60=16>:75d`9~w7152909w0<81;73?840;3;626==916>:;516f8yv41m3:1:v3=7182<1=::>?1hl522619`g=::>31ho5227f9`g=::?i1hn5rs3d5>5<5s49;>7:6;<0e2?70l2wx>k950;0x9665288j70{t;;:1<741c349:;7;?;|q1b0<72:q6?=l5489>6c0=<016>k;516f8yv5793:1?v3<0c826d=::o<1=5o4=222>41c3ty8>44?:3y>75d=9>n01>?i:428yv5dl3:19v3=f7866>;4l>0:49523d`915=:;=81hi523139`d=z{;l?6=4<{<13e?2>348m97:6;<0e0?70l2wx?=>50;1x966f288j70;4890:;i5rs20;>5<5s49;m7?8d:?05`<282wx?nm50;7x97`22<801>j9:0:7?85bi3?;70=;1;fa?85783nj7p}=f283>6}:;93184522g690<=::o91=:j4}r0eb?6=;r78<44>2`9>6c2=91k01?hi:05g?xu4:>0;6?u231;952b<5:;o68>4}r1`f?6==r79j94:2:?0`0<60=16?h75519>717=lm16>kh5d`9~w7`52908w0=?8;6:?84a;3>270{t:oo1<7=t=22;>44f348m?7?7a:?1b`<6?m1v><9:18185703;{t;jk1<7;t=3d0>04<5:n?6<6;;<1f751=<016>k<5489>6c7=9>n0q~0:>l522g095=g<5;lo6<9k;|q060<72;q6?=9516f8967e2<:0q~=l9;291~;5n;0>>635<4s49;:7:6;<0e5?2>348m<7?8d:p6ce=839p1>>9:00b?84a93;3m63=fb823a=z{:8?6=4={<132?70l278=l4:0:p7f>=83?p1?h>:40896b5282?70=j6;73?854n3ni70u231790<=::o:184522dd952b53z?040<6:h16>k>519c897`e28=o7p}<2283>7}:;9?1=:j4=23:>0655z?1b5<2:278h<4>859>7`3==916?>h5de9>6cd=lh1v?kj:180857<3>2707e9~w6452909w0=?4;34`>;4910><6s|3b494?3|5;om68<4=2f3>4>3349n87;?;<10a?be348mm7jn;|q1aa<72:q6?==5489>6`c=<016>hj516f8yv4a03:1?v3<02826d=::lo1=5o4=3d:>41c3ty8><4?:3y>755=9>n01>?9:428yv50<3:1>lu22df917=:;kn18:523c`902=:;ki18:523cg902=:;kl18:523b0902=:;j:18:523b3902=:;j918:523b6902=:;m;18:523bd902=:;m:18:523e0902=:;m918:523e4902=:;m>18:523e7902=:;m=18:523e:902=:;hl18:523`g902=:;k:18:523`a902=:;hh18:523`f902=:;h318:523`:902=:;hk18:523`5902=:;li18:523d`902=:;lk18:523d;902=:;l218:523d5902=:;l<18:523d7902=:;l>18:523d1902=:;>?1=:j4}r13g?6=:r78=:4>859>77b=lh1v>?::181856n3;3863<2e8gg>{t;8>1<74>33499o7jk;|q056<72;q6?2;296~;49j0:495233a9`g=z{:;:6=4={<12f?7?<278>n4ka:p746=838p1>?n:0:7?855l3ni7p}<0g83>7}:;831=5:4=20f>ag52z?05=<60=16??k5dc9~w66c2909w0=>6;3;0>;4:l0oo6s|33d94?5|5:8j6994=24`>11<5:77b=9>n0q~<60;296~;51<0?563=95823a=z{;3j6=4={<0:1?7?i2795k4>7e9~w7g62909w0<65;34`>;5i=0om6s|29d94?4|5;3?6974=3;0>41c3ty9544?:3y>6<2=91k01?7j:05g?xu50l0;6?u228190<=::081=:j4}r0:4>8`9>6n0q~<7d;296~;51;0?563=90823a=z{;3<6=4={<0:6?7?i2795n4>7e9~w7?12909w0<61;3;e>;51k0:;i5rs35g>5<5s483>7:6;<0;5?70l2wx>5950;0x97>5282j70<7c;34`>{t:h:1<741c348j87jl;|q13f<72;q6>5?5489>6=6=9>n0q~<76;296~;5080:4l5229`952b52z?1<5<31279;k4>7e9~w7>22909w0<70;3;e>;50h0:;i5rs35b>5<5s485:50;0x971a282j70<79;34`>{t:191<74>f348347?8d:p7<`=83>p1>lk:42896g>282?70=98;fg?85?=3nj7p}6}:;kn1=5:4=2f2>06<5:?96ij4}r1:`?6=7=7=lh1v>l>:18085ej3;3863;4=80oo6s|38g94?2|5:hh68>4=2c;>4>3349=;7jm;<1;7?bf3ty8n?4?:2y>7ge=91>01>j?:42896362mh0q~=n0;290~;4jl0><63om:0:7?85113no70=79;fb?xu4j<0;6>u23cd95=2<5:n868>4=270>ab54z?0g7<28278mh4>859>73g=lk16?5h5d`9~w6d?2908w0=l2;3;0>;4l?0><63<558gf>{t;h81<7:t=2a3>06<5:kh6<6;;<15=?be3493n7jn;|q0f3<72:q6?n>5196896b32<:01>;<:e`8yv5f;3:18v3;4im0:495237c9`a=:;1n1hl5rs2`4>5<4s49h=7?74:?0`0<28278994kd:p7d3=83>p1>m<:42896ga282?70=9b;fg?85>93nj7p}6}:;j91=5:4=2f4>06<5:?>6ij4}r1b2?6=7ln:18085d<3;3863;4=<0on6s|3b794?2|5:im6<6;;<1f7?373498i7jl;<0e=?b>3ty8oh4?:5y>7a>=91>01>kl:42896252mh01?h8:ec8yv50m3:1>v3;41h0:;i5rs25g>5<5s49ji7;?;<1:=?70l2wx?:h50;0x96d72<:01>7m:05g?xu4?k0;6?u23`a915=:;0=1=:j4}r14e?6=:r78mo4:0:?0=3<6?m1v>9l:18185fl3?;70=68;34`>{t;>21<706<5:3?6<9k;|q032<72;q6?l65519>7<5=9>n0q~=89;296~;4ih0><63<94823a=z{:==6=4={<1b3?373492>7?8d:p7<6=838p1>7m:5;896?728=o7p}<9b83>7}:;0h1=?o4=2;`>41c3ty84h4?:2y>75489>7=c=9>n0q~=61;297~;41h0:>l5238295=g<5:3:6<9k;|q07=c=<016?5m516f8yv5?n3:1?v3<98826d=:;1o1=5o4=2:e>41c3ty84l4?:2y>7<>=<016?5m5489>7=g=9>n0q~=7d;297~;4110:>l5239a95=g<5:2o6<9k;|q0<=<72:q6?495489>7=g=<016?56516f8yv5?j3:1?v3<96826d=:;1k1=5o4=2:a>41c3ty84;4?:2y>7<0=<016?565489>7=0=9>n0q~=79;297~;41?0:>l5239:95=g<5:226<9k;|q0<1<72:q6?4;5489>7=0=<016?5:516f8yv5??3:1?v3<94826d=:;1<1=5o4=2:4>41c3ty84?4?:2y>7<2=<016?5:5489>7=4=9>n0q~=75;297~;41=0:>l5239695=g<5:2>6<9k;|q0<5<72:q6?4=5489>7=4=<016?5>516f8yv5?;3:1?v3<92826d=:;181=5o4=2:0>41c3ty84<4?:2y>7<4=9;k01>6?:0:b?85?93;7`g=91>01<7l:ec894?e2mh019;n:268yv5cn3:18v35rs2ff>5<3s49n47?74:?2=`m3ni70::a;12?xu4lj0;69u23d495=2<58k;6io4=0;e>ad<5=?j6>>4}r1gf?6=859>5d7=lh16=l>5dc9>00g=:o1v>jn:18785b<3;3863>a38ge>;6i80on63;5`81a>{t;m31<7=t=2g0>4>334;j>7jm;<66e?4c3ty8?44?:3y>762=91k01>=j:05g?xu4;90;6?u2326952b<5:9>6974}r10e?6=:r78?84>8`9>76`=9>n0q~=<1;296~;4;<0:;i5232490<=z{:9i6=4={<102?7?i2788=4>7e9~w6552909w0=<6;34`>;4;>0?56s|32a94?4|5:9<6<6n;<175?70l2wx?>=50;0x965028=o70=<8;6:?xu4;m0;6?u232:95=g<5:>96<9k;|q013<72;q6?>6516f896142mi0q~=;c;296~;4<>0:4l52343952b52z?002<6?m16?965489~w62c2909w0=;8;3;e>;4=;0:;i5rs267>5<5s49?47?8d:?00<<312wx?9k50;0x962>282j70=:3;34`>{t;=?1<741c349?m7:6;|q00c<72;q6?9o519c8963328=o7p}<4783>7}:;=k1=:j4=26a>1?<7>52z?00g<60h16?8;516f8yv52?3:1?v3<4c823a=:;>91hl5237g9`f=z{:<96=4={<16`?7?i278::4>7e9~w63>2909w0=:d;34`>;4=l0?56s|37194?4|5:?n6<6n;<15=0;6?u234d95=g<5:<26<9k;|q01g<72;q6?8h516f896072=30q~=95;296~;4>90:4l5237c952bo7>52z?025<6?m16?;?5489~w6012909w0=91;3;e>;4>k0:;i5rs27;>5<5s49==7?8d:?02`9>:428961428=o7p}<7183>1}:;>:1=5:4=257>ad<5:=>6il4=24e>a?52z?02f<28278:h4>7e9~w13c29099v3;2g873>;3:l0?;63;2e873>;3:j0?;63;2c873>;3:h0?;63;29873>;3:>0?;63;27873>;3:<0?;63;25873>;3::0?;63;23873>;3:80?;63;21873>;39o0?;63;1e873>;39j0?;63;1c873>;39h0?;63;18873>;3910?;63;16873>;39?0?;63;14873>;39=0?;63;34873>;3;=0?;63;32873>;3;;0?;63;30873>;3;90?;63;28873>;39l0?;63;12873>;39;0?;63=6e823a=z{=?96=4={<61b?3734>>m7m7;|q714<72;q68?k5519>00g=j11v9;?:181825l3?;70::a;`5?xu35<5s4>9n7;?;<66e?d43ty?8i4?:3y>07g==91688o5b39~w12e2909w0:=8;73?822i3h:7p};4`83>7}:<;=19=5244c9f5=z{=>26=4={<612?3734>>m7oi;|q70=<72;q68?;5519>00g=k?1v9:8:181825<3?;70::a;cf?xu35<5s4>9>7;?;<66e?gd3ty?894?:3y>077==91688o5ac9~w1242909w0:=0;73?822i3k27p};4383>7}:<8l19=5244c9e==z{=>;6=4={<62`?3734>>m7o8;|q77c<72;q6800g=i?1v9=j:181826j3?;70::a;a6?xu3;m0;6?u240c915=:<5<5s4>:57;?;<66e?g33ty??o4?:3y>04>==91688o5a29~w15f2909w0:>7;73?822i3k97p};3883>7}:<8<19=5244c9e4=z{=936=4={<621?3734>>m7o?;|q772<72;q68<:5519>00g=jo1v9;6:181824=3?;70::a;`f?xu3=10;6?u2426915=:<5<5s4>8?7;?;<66e?dc3ty?9;4?:3y>064==91688o5bb9~w1322909w0:<1;73?822i3hi7p};5583>7}:<::19=5244c9fd=z{=?86=4={<61=?3734>>m7l6;|q70f<72;q6800g=j<1v9:>:181826;3?;70::a;cb?xu3;?0;6?u2400915=:<5<5s4>>o7?8d:?71d8j:e`8961328=o70::a;642>;3=h0h56s|17094?4|5;8>6il4=307>44e3ty::i4?:3y>5f5=lk16=n<513`8yv45>3:1>v3=298gg>;5:=0:;i5rs0a7>5<5s4;h:7jl;<3`6?70l2wx??m50;0x964b2mn01><,==96<9?;|q616<72;qU98=4=569105<,==96<9>;|q7f7<72;qU8l>4=5690d6<,==96<:;;|q7f5<72;qU84h4=5690<`<,==96<:i;|q7ec<72;qU84k4=5690<,==96<8>;|q7fd<72;qU8l94=5690d1<,==96<8<;|q7f<<72;qU8l84=5690d0<,==96<8;;|q7f=<72;qU8l;4=5690d3<,==96<8:;|q7f2<72;qU8l:4=5690d2<,==96<89;|q7f3<72;qU8l=4=5690d5<,==96<88;|q7f0<72;qU8l<4=5690d4<,==96<87;|q7f1<72;qU8l?4=5690d7<,==96<86;|q7f6<72;qU8464=5690<><,==96<8n;|q7e<<72;qU8494=5690<1<,==96<8m;|q631<72;qU9::4=569122<,==96<8l;|q61c<72;qU98h4=56910`<,==96<8j;|q7ba<72;qU8i74=5690a?<,==96<9=;|q7bg<72;qU8i64=5690a><,==96<9<;|q7bd<72;qU8i94=5690a1<,==96<9;;|q7b<<72;qU8i84=5690a0<,==96<9:;|q7b=<72;qU8i;4=5690a3<,==96<99;|q7b2<72;qU8i:4=5690a2<,==96<98;|q7b0<72;qU8i<4=5690a4<,==96<97;|q7b1<72;qU8i?4=5690a7<,==96<96;|q7b6<72;qU8i>4=5690a6<,==96<9n;|q7b7<72;qU8nh4=5690f`<,==96<=n;|q7b4<72;qU8nk4=5690fc<,==96<=m;|q7b5<72;qU8nj4=5690fb<,==96<=l;|q7ac<72;qU8nm4=5690fe<,==96<=k;|q7a`<72;qU8nl4=5690fd<,==96<=j;|q7aa<72;qU8no4=5690fg<,==96<=i;|q7af<72;qU8n74=5690f?<,==96<:?;|q7ad<72;qU8n94=5690f1<,==96<:>;|q7a<<72;qU8n84=5690f0<,==96<:=;|q7a=<72;qU8n;4=5690f3<,==96<:<;|q7a2<72;qU8n:4=5690f2<,==96<::;|q7a3<72;qU8n=4=5690f5<,==96<:9;|q7a0<72;qU8n<4=5690f4<,==96<:8;|q7a1<72;qU8n?4=5690f7<,==96<:7;|q7a6<72;qU8n>4=5690f6<,==96<:6;|q7a7<72;qU8oh4=5690g`<,==96<:n;|q7a4<72;qU8ok4=5690gc<,==96<:m;|q641<72;qU8ih4=5690a`<,==96<:l;|q646<72;qU8ik4=5690ac<,==96<:k;|q647<72;qU8ij4=5690ab<,==96<:j;|q644<72;qU8im4=5690ae<,==96<;?;|q645<72;qU8il4=5690ad<,==96<;>;|q7bc<72;qU8io4=5690ag<,==96<;=;|q7b`<72;qU8i=4=5690a5<,==96<;<;|q7b3<72;qU8n64=5690f><,==96<;;;|q7ag<72;qU8oj4=5690gb<,==96<;:;|q7a5<72;qU8om4=5690ge<,==96<;9;|q64f<72;qU9=m4=56915e<,==96<;8;|q7<2<72;qU8594=5690=1<,==96<;7;|q643<72;qU9=84=569150<,==96<;n;|q674<72;qU9>?4=569167<,==96<;j;|mea?=838pD99<;|lb`d<72;qC8:=4}ocgf?6=:rB?;>5rn`f`>5<5sA>7}O<>90qcokf;296~N3?:1vblk?:181M20;2wemh?50;0xL1143tdji?4?:3yK02552zJ736=zfho?6=4={I647>{iil?1<7vF;729~jdc?2909wE:83:me`?=838pD99<;|lbad<72;qC8:=4}ocff?6=:rB?;>5rn`g`>5<5sA>7}O<>90qcojf;296~N3?:1vblh?:181M20;2wemk?50;0xL1143tdjj?4?:3yK02552zJ736=zfhl?6=4={I647>{iio?1<7vF;729~jd`?2909wE:83:mec?=838pD99<;|lbbd<72;qC8:=4}ocef?6=:rB?;>5rn`d`>5<5sA>7}O<>90qcoif;296~N3?:1vbo>?:181M20;2wen=?50;0xL1143tdi52zJ736=zfk:?6=4={I647>{ij9?1<7vF;729~jg6?2909wE:83:mf5?=838pD99<;|la4d<72;qC8:=4}o`3f?6=:rB?;>5rnc2`>5<5sA>7}O<>90qcl?f;296~N3?:1vbo??:181M20;2wen52zJ736=zfk;?6=4={I647>{ij8?1<7vF;729~j<7f290:wE:83:m=0?=83;pD99<;|l:1d<728qC8:=4}o;6f?6=9rB?;>5rn87`>5<6sA>4}O<>90qc7:f;295~N3?:1vb48?:182M20;2we5;?50;3xL1143td2:?4?:0yK02551zJ736=zf0{I647>{i1??1<7?tH550?xh>>?0;65rn84`>5<6sA>4}O<>90qc79f;295~N3?:1vb49?:182M20;2we5:?50;3xL1143td2;?4?:0yK02551zJ736=zf0=?6=4>{I647>{i1>?1<7?tH550?xh>??0;65rn85`>5<6sA>4}O<>90qc78f;295~N3?:1vb46?:182M20;2we55?50;3xL1143td24?4?:0yK02551zJ736=zf02?6=4>{I647>{i11?1<7?tH550?xh>0?0;6?290:wE:83:m==?=83;pD99<;|l:5rn8:`>5<6sA>4}O<>90qc77f;295~N3?:1vb47?:182M20;2we54?50;3xL1143td25?4?:0yK02551zJ736=zf03?6=4>{I647>{i10?1<7?tH550?xh>1?0;6?3:1=vF;729~j5rn8;`>5<6sA>4}O<>90qc76f;295~N3?:1vb4o?:182M20;2we5l?50;3xL1143td2m?4?:0yK02551zJ736=zf0k?6=4>{I647>{i1h?1<7?tH550?xh>i?0;65rn8c`>5<6sA>4}O<>90qc7nf;295~N3?:1vb4l?:182M20;2we5o?50;3xL1143td2n?4?:0yK02551zJ736=zf0h?6=4>{I647>{i1k?1<7?tH550?xh>j?0;65rn8``>5<6sA>4}O<>90qc7mf;295~N3?:1vb4m?:182M20;2we5n?50;3xL1143td2o?4?:0yK02551zJ736=zf0i?6=4>{I647>{i1j?1<7?tH550?xh>k?0;65rn8a`>5<6sA>4}O<>90qc7lf;295~N3?:1vb4j?:182M20;2we5i?50;3xL1143td2h?4?:0yK02551zJ736=zf0n?6=4>{I647>{i1m?1<7?tH550?xh>l?0;65rn8f`>5<6sA>4}O<>90qc7kf;295~N3?:1vb4k?:182M20;2we5h?50;3xL1143td2i?4?:0yK02551zJ736=zf0o?6=4>{I647>{i1l?1<7?tH550?xh>m?0;65rn8g`>5<6sA>4}O<>90qc7jf;295~N3?:1vb4h?:182M20;2we5k?50;3xL1143td2j?4?:0yK02551zJ736=zf0l?6=4>{I647>{i1o?1<7?tH550?xh>n?0;65rn8d`>5<6sA>4}O<>90qc7if;295~N3?:1vbl>?:182M20;2wem=?50;3xL1143tdj51zJ736=zfh:?6=4>{I647>{ii9?1<7?tH550?xhf8?0;65rn`2`>5<6sA>4}O<>90qco?f;295~N3?:1vbl??:182M20;2wem51zJ736=zfh;?6=4>{I647>{ii8?1<7?tH550?xhf9?0;65rn`3`>5<6sA>4}O<>90qco>f;295~N3?:1vbl?4?:0yK02551zJ736=zfh8?6=4>{I647>{ii;?1<7?tH550?xhf:?0;65rn`0`>5<6sA>4}O<>90qco=f;295~N3?:1vbl=?:182M20;2wem>?50;3xL1143tdj??4?:0yK02551zJ736=zfh9?6=4>{I647>{ii:?1<7?tH550?xhf;?0;65rn`1`>5<6sA>4}O<>90qco51zJ736=zfh>?6=4>{I647>{ii=?1<7?tH550?xhf5rn`6`>5<6sA>4}O<>90qco;f;295~N3?:1vbl;?:182M20;2wem8?50;3xL1143tdj9?4?:0yK025?7>51zJ736=zfh??6=4>{I647>{ii5rn`7`>5<6sA>4}O<>90qco:f;295~N3?:1vbl8?:182M20;2wem;?50;3xL1143tdj:?4?:0yK02551zJ736=zfh{I647>{ii??1<7?tH550?xhf>?0;65rn`4`>5<6sA>4}O<>90qco9f;295~N3?:1vbl9?:182M20;2wem:?50;3xL1143tdj;?4?:0yK02551zJ736=zfh=?6=4>{I647>{ii>?1<7?tH550?xhf??0;65rn`5`>5<6sA>4}O<>90qco8f;295~N3?:1vbl6?:182M20;2wem5?50;3xL1143tdj4?4?:0yK02551zJ736=zfh2?6=4>{I647>{ii1?1<7?tH550?xhf0?0;6?290:wE:83:me=?=83;pD99<;|lb5rn`:`>5<6sA>4}O<>90qco7f;295~N3?:1vbl7?:182M20;2wem4?50;3xL1143tdj5?4?:0yK02551zJ736=zfh3?6=4>{I647>{ii0?1<7?tH550?xhf1?0;6?3:1=vF;729~jd??290:wE:83:me5rn`;`>5<6sA>4}O<>90qco6f;295~N3?:1vblo?:182M20;2weml?50;3xL1143tdjm?4?:0yK02551zJ736=zfhk?6=4>{I647>{iih?1<7?tH550?xhfi?0;65rn`c`>5<6sA>4}O<>90qconf;295~N3?:1vbll?:182M20;2wemo?50;3xL1143tdjn?4?:0yK02551zJ736=zfhh?6=4>{I647>{iik?1<7?tH550?xhfj?0;65rn```>5<6sA>4}O<>90qcomf;295~N3?:1vblm?:182M20;2wemn?50;3xL1143tdjo?4?:0yK02551zJ736=zfhi?6=4>{I647>{iij?1<7?tH550?xhfk?0;65rn`a`>5<6sA>4}O<>90qcolf;295~N3?:1vblj?:182M20;2wemi?50;3xL1143tdjh?4?:0yK02551zJ736=zfhn?6=4>{I647>{iim?1<7?tH550?xhfl?0;66789:;<=>;0:23456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?01084<7<9:1:"=?<;029MKVR\3KOH_O39;2=5`=683CE\XZ5psmd[cskdV~c~h}g<883:73<990BB][[:qplcZ`rdeUdk|h^cpw`ts400;2?;4118JJUSS2yxdkRhzlm]wlwct`Vdnklzj<883:4?<990DYY^ZT;fbpdYdg|d044?>0a855113922?OIX\^1HDO31483:45<9?0DYY^ZT;FLE972294:>6?7:HLSQQ11:07?754;8;0>7GAPTV9@LVF480;2<<42;MVPUSS2ME[M1?50?31?64=AGZ^X7JFB=12>586;2996B[[PTV9@JD;;80;2<:4378LQQVR\3ndyy2<5;2=`>5t:9:;jj::6,72?12<<9LM=<5;:HLSQQ11397>JSSX\^1HB^M<283:4=1:2<286869768<567<22N4L?4959:45?530;>585=231EC^ZT;rqkbYbey~rSyf}erj\evubz}636=0=5:;9MKVR\3zycjQjmqvz[qnumzbTbhintd>;>586j231CXZ_UU8q`Zbf|hUhcx`{<983:7=F:11JHI\N<1<;?DBCZH6:255NDEPB878?3HNO^L2<>99B@ATF4=437LJKR@>6:==FLMXJ0;07;@FGVD:0611JHI\N<9611JHI\M<1<;?DBCZK6:255NDEPA878?3HNO^O2<>99B@ATE4=437LJKRC>6:==FLMXI0;07;@FGVG:06h1JHI\M<983:==FLMXI050<;@NO=>GTQGIT^HI<;CW1<>DR[VCEJB?4C39@A44EKCK90OA\6;BMNILRSMM;?7NA]E^EFJ@TF\@EESD@IO69@V@GSMM;0H?5KC39GM3=CAH6;2:5KI@>24;169GMD:6<730HDO31483:2=CAH6:9384DHC?5;0384DHC?7;01OEO2>3?58@LD;9=4<7IGM<07=3>BNJ5;=2:5KIC>23;12NBN1?17:FJF9476>1OEO2=1?58@LD;:;4<7IGM<31=3>BNJ58?2:5KIC>11;1;08;EKA8719?2NBN1<7>69GMG:517<0HDL32?58@LD;;9427IGM<2394;119:FJTD:6294<7IG_A=3=3>BNXK6;2:5KIQ@?5;1BHI5;:2:5KO@>26;108;EMB842912NDM1?::1<4?AIF48?5:6J@A=3=2>BHI585:6J@A=1=2>BHI5>5:6J@A=7=2>BHI5<5:6J@A=5=2>BHI525:6J@A=;=3>BHIVXNK;5KOC>3:2=CGK6:<394DN@?54803MEI0<<17:FLF9746>1OCO2>4?58@JD;9<4<7IAM<04=3>BHJ5;<2:5KOC>2<;117:FLF9466>1OCO2=2?58@JD;::4<7IAM<36=3>BHJ58>2:5KOC>12;1:08;EMA87>9?2NDN1<6>79GKG:56>1OCO2<0?;8@JD;;80;2:5KOC>05;019:FLTD:6294<7IA_A=3=3>BHXK6;2:5KOQ@?5;16H75:DBHVC53ON87KJL4:DGG@56G>2:K16>O402CEEY^P01:8MKOSXV::46GAIUR\47><8:KMMQVX8=20ECG[P^26<>OIA]ZT<;64IOKWTZ6012CEEY][AUG4?LHN\V:;;6GAIU]352=NF@^T;7:KMMQY7=>1BBDZP0758MKOSW9=<7D@FT^2;3>OIA]U;5:5FNHV\4D11BBDZP1758MKOSW8=<7D@FT^3;3>OIA]U:5:5FNHV\5D1D69JJLRX9L=0ECG[_0D4?LHN\V8;;6GAIU]152=NF@^T>?94IOKW[7503@DBXR<;7:KMMQY5=>1BBDZP2758MKOSW;=<7D@FT^0;3>OIA]U95:5FNHV\6D11BBDZP3758MKOSW:=<7D@FT^1;3>OIA]U85:5FNHV\7D1L8;HLJPZ5D?2CEEYQ6B@6:NLEACC?2FDKDMNL59OQQ733E__>95CUU17?ISS0168J466<2D:H68=>0B<>:4:L24320968J46>;2D:=95A1027?K769=1E=<<;;O3271=I98>?7C?>559M54033G;:;95A10:7?K761:1E=?:4N0030>H6:8>0B<<=4:L26622468J441<2D:>::4N00;7>H6;=1E=>?<;O377>H6=:1E=;:4N0477>H6?:1E=5=4N0;1?K443G8;?6@=129M675H51;1E?>5A3108J0480B4=4N830?K?5;2D2?>5A9518J<343G3=?6@6729M==56^Q2h1YILJPFHPPPf=UMHNT[DJ[H^C`?WCFLV]BHYFPB09P56=TADUHCABFSHMM[FNBKB<0_B[]CD58WWPFDVK<7^\YAM]A0>UTZH>0_^\M4:VZT@553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?012\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4566W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;>R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?02]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3452XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:>S_k|umv277=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwY`kVrd~=>?6^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\vaYwf}xTknQwos2342YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt789:T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=>>_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1236ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678:UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=:PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^uq[uhszVmhSua}0126[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYpzVzexQhc^zlv567>VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT{Qnup\cfYg{:;<:Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_vp\tkruWniTtb|?01:\V`urd};9=6[?/fpe*w`(ojr%oaew/sf\tkruWkce0=0=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<0<15>S7'nxm"h gbz-gim'{nT|cz}_ckm878592_;#j|i.sd,cf~)keas#jPpovq[goi4:49=6[?/fpe*w`(ojr%oaew/sf\tkruWkce090=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<4<15>S7'nxm"h gbz-gim'{nT|cz}_ckm838592_;#j|i.sd,cf~)keas#jPpovq[goi4>49=6[?/fpe*w`(ojr%oaew/sf\tkruWkce050=0:W3+bta&{l$knv!cmi{+wbXxg~ySoga_103?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\576<]9%l~k }f.e`|+ekcq%yhR~ats]amkY5:91^<"i}f/pe+be&jf`t"|k_qlwvZdnfV99<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS9 gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?01213>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:;=?84U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos2344403\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=?>279V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567:;=0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?03312>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:8>:5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r12377413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=:=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45639;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0404?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789?:>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r12327><]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<;?>269V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567>;8i7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?014\fab7:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?7358Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678>;9<6[?/fpe*w`(ojr%oaew/sf\tkruWni7<3>328Q5)`zo$yj"ilx/aoo})ulVzexQhc=0=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`868582_;#j|i.sd,cf~)keas#jPpovq[be;<78;7X> gsd-vc)`kq$h`fv re]sjqtXoj6>2?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo181219V4*aun'xm#jmw.bnh|*tcWyd~Ril<6<14>S7'nxm"h gbz-gim'{nT|cz}_fa?<;7a3\:$kh!rg-dg}(ddbr$~iQnup\cfY79o1^<"i}f/pe+be&jf`t"|k_qlwvZadW8;m7X> gsd-vc)`kq$h`fv re]sjqtXojU9=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS>?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ;1g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_43e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]55c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[27a3\:$kh!rg-dg}(ddbr$~iQnup\cfY?:?1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyij2?>348Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;978=7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh<3<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo595>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>7:70<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlm793<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8385>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk191279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:?6;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP0378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX9;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP2378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX;;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP4378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX=;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP6378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX?;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP83;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86;2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:66;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>1:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<2<>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86?2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:26;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>5:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<28>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8632?64U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4Y7:11^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1^31<>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:S?<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X;;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]76==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R;=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W?837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\37><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh>249V4*aun'xm#jmw.bnh|*tcWyd~Ril_ymq4565:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWqey<=><249V4*aun'xm#jmw.bnh|*tcWyd~Ril_ymq4563:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWqey<=>:249V4*aun'xm#jmw.bnh|*tcWyd~Ril_ymq4561:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWqey<=>8209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=3=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj949:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf595><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb1:1209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=7=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj909:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf5=5><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb161209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=;=65=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ7582_;#j|i.sd,cf~)keas#z|Ppovq[goiW;8;7X> gsd-vc)`kq$h`fv ws]sjqtXj`dT??>4U1-dvc(un&mht#mcky-tvZvi|{UiecQ;219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^714>S7'nxm"h gbz-gim'~xT|cz}_ckm[3473\:$kh!rg-dg}(ddbr${Qnup\flhX?;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU3>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR7=6:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq4567:>1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?0005?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt789;9;6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}0122570<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;?3358Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678:89:6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012762=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;8<<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34535?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>:1348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678?837X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?0142571<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<;<=b:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq4561Wkno219V4*aun'xm#jmw.bnh|*quWyd~Ril<1<14>S7'nxm"h gbz-gim'~xT|cz}_fa?5;473\:$kh!rg-dg}(ddbr${Qnup\cf:56;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k595>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh090=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm35?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>5:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg919:91^<"i}f/pe+be&jf`t"y}_qlwvZad4149<6[?/fpe*w`(ojr%oaew/vp\tkruWni753?i;T2,cw`)zo%lou lljz,swYwf}xTknQ?1g9V4*aun'xm#jmw.bnh|*quWyd~Ril_03e?P6(o{l%~k!hcy,`hn~({U{by|Pgb]15c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[67a3\:$kh!rg-dg}(ddbr${Qnup\cfY39o1^<"i}f/pe+be&jf`t"y}_qlwvZadW<;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU==k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS:?i;T2,cw`)zo%lou lljz,swYwf}xTknQ71g9V4*aun'xm#jmw.bnh|*quWyd~Ril_805?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4949:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=3=63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn692?84U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde?7;413\:$kh!rg-dg}(ddbr${Qnup\cfYf{{ol090=6:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfc939:?1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyij29>348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;?78=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<9<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo535>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]360=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU:>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]160=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU8>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]760=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU>>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]560=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU<>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef];60=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU2>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5979:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=0=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1=1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95>5>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5939:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=4=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=191289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9525>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g59?9:11^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1^31<>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S?<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X;;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]76==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R;=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W?837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\37><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmThS7'nxm"h gbz-gim'~xT|cz}_fa\|jt789;996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01011>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt7899996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01611>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt789?996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01411>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt789=996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01:04>S7'nxm"h gm2-va)`z8$yjzh{/Lov|ZTFEVXOSH@PFVDW644a3\:$kh!rg-dh5(ul&my=#|iwgv,IhsW[KFS_KHOTV\AK76:m1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwa969:m1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwa979:j1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwaZ65k2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[4523\:$kh!rg-dh5(ul&my=#|iwgv,gptuWo}mxR}{aug\ip~789;7<3=9;T2,cw`)zo%l`= }d.eq5+tao~$ox|}_guepZusi}oTaxv?013?4;74=2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[hs89::0<0<6:W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nS`{w01228486:11^<"i}f/pe+bj7&{n$k?!rguep*cjx}sTjzh{_g`13>S7'nxm"h gm2-va)`z8$yjzh{/dosp|Yao~Te?h4U1-dvc(un&mg<#|k/fp2*w`pn}%na}zv_guepZoXe|r;<=><0:W3+bta&{l$ka>!re-dv4(un~l#hctx]escrXaVg~t=>?000:?P6(o{l%~k!hl1,q`*auiz$yy} c1-`ewt~fl~7<3<6;T2,cw`)zo%l`= }d.eqev(u{}y$o=!laspzj`r;97827X> gsd-vc)`d9$yh"i}ar,qwqu(k9%hm|vndv?6;4>3\:$kh!rg-dh5(ul&mym~ }suq,g5)di{xrbhz33?0e?P6(o{l%~k!hl1,q`*auiz$yy} c1-dip~)odQ;Q#ib1/o26c=R8&myj#|i/fn3*wb(o{kx"}{s.a3+bkrp'mfW gsd-vc)`d9$yh"i}ar,qwqu(k9%laxv!glY7Y+aj{'gx>>5Z0.eqb+ta'nf;"j gscp*wus{&i;#{?30?00?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5979::1^<"i}f/pe+bj7&{n$ko|.sqww*e7';7>3<<;T2,cw`)zo%l`= }d.eqev(u{}y$o=!y1=1=66=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7;<78i7X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=R>Paof34566:k1^<"i}f/pe+bj7&{n$ko|.sqww*e7';T=Road123444e3\:$kh!rg-dh5(ul&mym~ }suq,g5)q9V8Tmcj?01226g=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7X;Vkeh=>?000a?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5Z2Xff~;<=>>289V4*aun'xm#jb?.sf,cwgt&{y"m>/bcqv|hb|5:5>45Z0.eqb+ta'nf;"j gscp*wus{&i:#no}rxlfp979:01^<"i}f/pe+bj7&{n$ko|.sqww*e6'jky~t`jt=0=6<=R8&myj#|i/fn3*wb(o{kx"}{s.a2+fguzpdnx1=12g9V4*aun'xm#jb?.sf,cwgt&{y"m>/fov|+ajS9W%k`?!m00e?P6(o{l%~k!hl1,q`*auiz$yy} c0-dip~)odQ:Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a2+bkrp'mfW?S!glq-iv4a3\:$kh!rg-dh5(ul&mym~ }suq,g4)`e|r%k`U<]/enw+kt:o1^<"i}f/pe+bj7&{n$ko|.sqww*e6'ng~t#ib[5_-chu)ez887X> gsd-vc)`d9$yh"i}ar,qwqu(k8%}=1>1229V4*aun'xm#jb?.sf,cwgt&{y"m>/w3?5;443\:$kh!rg-dh5(ul&mym~ }suq,g4)q9585>>5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?33?00?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5929:k1^<"i}f/pe+bj7&{n$ko|.sqww*e6';T?000a?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5Z5Xign;<=>>2c9V4*aun'xm#jb?.sf,cwgt&{y"m>/w3\0Zhh|9:;<<S7'nxm"h gm2-va)`zhy%~~z|/scn[`kw|pUmnRgPos234575;2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex?:4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov261=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}8986[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at207?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphs<;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz:259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq05<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex:<;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw<7?<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2?>3a8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6;2R|{289V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5;5>n5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}979W{~956[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az8785k2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<3<\vq4>3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw33?0`?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7?3Q}t3;8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6?2?m4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:36Vx>45Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}939:j1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=7=[wr512_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<7<1g>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0;0Pru0:?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7;3 gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8485i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=0=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc2<>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx7834:7g<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|38?0g?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWqey050Pru3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=2=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?5;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9499o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;;7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5>5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~793?i;T2,cw`)zo%l`= }d.psjqt(kfex1811g9V4*aun'xm#jb?.sf,vuhsz&idycz37?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=:=5`=R8&myj#|i/fn3*wb(zyd~"m`uov\44c<]9%l~k }f.eo4+tc'{zex!lotlw[47b3\:$kh!rg-dh5(ul&x{by| cnwmpZ46m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY49l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX<8o0Y=!hrg,qb*ak8'xo#~ats-`kphsW<;n7X> gsd-vc)`d9$yh"|nup,gjsi|V<:i6[?/fpe*w`(oe:%~i!}povq+firf}U<=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T4?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?30?01?P6(o{l%~k!hl1,q`*twf}x$ob{at^f28485:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc9585>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<2<>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?0;453\:$kh!rg-dh5(ul&x{by| cnwmpZb64<49>6[?/fpe*w`(oe:%~i!}povq+firf}Uo=181239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>4:74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;078:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S=<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_002?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[7463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W:8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S9<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_402?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[3463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W>8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S5<;;T2,cw`)zo%l`= }d.psjqt(kfexR``t12356`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8584n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:66:l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Ze~4;48j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xkp682>h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir090!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:Tot2:>2d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>4:6`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8=84n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:>6=;0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5;;29>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vf~x1?1479V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Sa{{<0<\MKPX8=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5858=5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567We0>0;0:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:T`xz34?63?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,IdbcWmcmjR~ats]seaYflm:;<=Qcuu>6:16<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp909<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[iss4>4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xd|~743:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Ugyy26>538Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?0^zlv979<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[}iu4;4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xpfx7?3:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Usc2;>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?_ymq838382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\|jt;?7>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yg{6329>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vrd~171319V4*aun'xm#jb?.vp,crgt&nzm"z|f.fjbcYwf}xT|lj311<1b>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae>2:7`<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg8785n2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]sea:46;l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugc4=49j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwim6>2?h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWyko0;0=f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{mi28>3d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok<9<1b>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae>::7c<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[44a3\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(l`lmS}`{r^rb`Z77:l1^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&nbjkQnup\tdbX:;o0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcW:8n7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$hdhi_qlwvZvflV>9i6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimU>>h5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"jffg]sjqtXxhnT:?k4U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWykoS:!ws-dsdu)oyl%{~i/ekebZvi|{U{miQ6399V4*aun'xm#jb?.vp,crgt&nzm"z|f.fjbcYwf}xT|ljPaef3456;9948;6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimUjhi>?01>2:61<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[dbc89:;0?0<7:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{miQnde2345:46:=0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcWhno<=>?<5<03>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae]b`a67896>2>94U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWykoSljk01238384?2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaYflm:;<=28>258Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok_`fg45674148;6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimUjhi>?01>::7g<]9%l~k }f.eo4+qu'n}j#if/uqtc)wzfmTjxbc_h11?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,twi`Wog`RgPmtz34554<2_;#j|i.sd,ci6){%l{l}!gqd-swva'yxdkRhzlm]j[hs89:8=8=;;T2,cw`)zo%l`= xr.etev(`xo$|~}h psmd[cskdVcTaxv?0112<6><]9%l~k }f.eo4+qu'n}j#if/uqtc)wzfmTjxbc_h]nq}678:;3S^Y?339V4*aun'xm#jb?.vp,crgt&nzm"z|f.rqkbYa}efTeR``t12357?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2?>3;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6:2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:56;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>0:7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV>R.fo2*h75n2_;#j|i.sd,ci6){%l{l}!wrvp+f7(ods"jcT1\,div(j{;l0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&mfyu hmZ0^*bkt&dy9j6[?/fpe*w`(oe:%{!hw`q-svrt'j;$k`{w.foX7X(`ez$f?h4U1-dvc(un&mg<#y}/fubw+qt|z%h="ibuy,di^2Z&ngx"`}=3:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0>3:75<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p64849?6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z<2=>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28685;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~86?2?l4U1-dvc(un&mg<#y}/fubw+qt|z%h="x>_1]bja6789;9n6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z_`lg45679;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S?Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U8Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W=Ujbi>?0131=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0=0=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs484956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw878512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<2<1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP

"x><1<17>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4:66;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0?0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>0:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64=49n6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y3Whdo<=>?1328Q5)`zo$yj"ic0/uq+bqf{'}xx~!lolr265=R8&myj#|i/fn3*rt(o~kx"z}{s.aliu4582_;#j|i.sd,ci6){%l{l}!wrvp+fijx:8o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;878o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;978o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;:78o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;;7987X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!hmtz-ch]7U'mf=#c>329V4*aun'xm#jb?.vp,crgt&~y"inf/a0+bkrp'mfW5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m1^<"i}f/pe+bj7&~x$kzo|.vqww*afn'i8#{?30?04?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q95;5>:5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m gsd-vc)`d9$|~"ixar,twqu(ohl%o>!y1^2\ekb789::>k5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m>2g9V4*aun'xm#jb?.vp,crgt&~y"inf/a0+s7X;Vkeh=>?000e?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q9V>Tmcj?01226f=R8&myj#|i/fn3*rt(o~kx"z}{s.pbiZgkefySk{cl^k00>S7'nxm"h gm2-sw)`hy%{~z|/scn[djjgz~Tjxbc_h]nq}67899>7X> gsd-vc)`d9$|~"ixar,twqu(zhgTmac`su]eqijXaVg~t=>?001a?P6(o{l%~k!hl1,tv*apiz$|y} r`o\eikh{}UmyabPi^llp56798UBB[Q?299V4*aun'xm#jb?.vp,crgt&~y"|nm^dvhiYajVc996[?/fpe*w`(oe:%{!hw`q-svrt'{kfSk{cl^k1`>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVcTaxv?0121a>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVcTaxv?01225a=R8&myj#|i/fn3*rt(zhgT{Qjn^k25c=R8&myj#|i/fn3*rt(zhgT{Qjn^k2[4443\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d>95Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu310>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|;8?7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{3368Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkr3:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by;=4:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp3433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d;?:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov;61=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}3956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8585k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<1<\vq4>3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw31?0`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7=3Q}t3;8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp692?m4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\g|:56Vx>45Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}959:j1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=1=[wr512_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<5<1g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir090Pru0:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7935:Zts:01^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=5=6f=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu191_sv1=>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir050=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~414T~y1:7g<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|33?0b?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey090=a:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZ~hz5?5>l5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]{kw:16;k0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPxnp?3;4f3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSua}<9<1e>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vrd~1712e9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{622R|{1g9V4*aun'xm#jb?.vp,suhsz&idycz30?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=3=5c=R8&myj#|i/fn3*rt(yd~"m`uov?6;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9599o1^<"i}f/pe+bj7&~x${}`{r.alqkr;<7;m7X> gsd-vc)`d9$|~"ynup,gjsi|5?5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~7:3?i;T2,cw`)zo%l`= xr.usjqt(kfex1911g9V4*aun'xm#jb?.vp,suhsz&idycz38?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=;=5`=R8&myj#|i/fn3*rt(yd~"m`uov\44c<]9%l~k }f.eo4+qu'~zex!lotlw[47b3\:$kh!rg-dh5(pz&}{by| cnwmpZ46m2_;#j|i.sd,ci6){%||cz}/bmvjqY49l1^<"i}f/pe+bj7&~x${}`{r.alqkrX<8o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW<;n7X> gsd-vc)`d9$|~"ynup,gjsi|V<:i6[?/fpe*w`(oe:%{!xpovq+firf}U<=h5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T4<1<16>S7'nxm"h gm2-sw)pxg~y#naznu]g5979:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl8692?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?33?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28185:2_;#j|i.sd,ci6){%||cz}/bmvjqYc95?5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<29>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3?3;453\:$kh!rg-dh5(pz&}{by| cnwmpZb64149>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=171209V4*aun'xm#jb?.vp,suhsz&idyczPd0]364=R8&myj#|i/fn3*rt(yd~"m`uov\`4Y6:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl8U9><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;6;2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<31?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f18785:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:595>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?2;>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?1;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54?49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>191239V4*aun'xm#jb?.vp,suhsz&idyczPd3>;:74<]9%l~k }f.eo4+qu'~zex!lotlw[a4;178:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S=<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_002?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[7463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W:8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S9<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_402?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[3463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W>8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S5<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_801?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f08585:2_;#j|i.sd,ci6){%||cz}/bmvjqYc;5;5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>2=>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1?7;453\:$kh!rg-dh5(pz&}{by| cnwmpZb44=49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo?1;1239V4*aun'xm#jb?.vp,suhsz&idyczPd2>5:74<]9%l~k }f.eo4+qu'~zex!lotlw[a5;?7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn8050=2:W3+bta&{l$ka>!ws-ttkru'je~byQk3=;=64=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y7:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U:><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q=209V4*aun'xm#jb?.vp,suhsz&idyczPd2]064=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y3:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U>><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q9209V4*aun'xm#jb?.vp,suhsz&idyczPd2]464=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y?:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U2>95Z0.eqb+ta'nf;"z| wqlwv*eh}g~Tbbz?01323>S7'nxm"h mdo,`jssW`6;2<64U1-dvc(un&gna"j`uu]j8469911^<"i}f/pe+hcj'me~xRg310<2<>S7'nxm"h mdo,`jssW`6:>3?7;T2,cw`)zo%fi`!kotv\m9746820Y=!hrg,qb*kbe&ndyyQf<06=5==R8&myj#|i/lgn+air|Vc7=80>8:W3+bta&{l$ahc dnww[l:6>7;37X> gsd-vc)jmd%ocxzPi=34:4><]9%l~k }f.ofi*bh}}Ub0<61199V4*aun'xm#`kb/emvpZo;904:;6[?/fpe*w`(elg$hb{{_h>2:4><]9%l~k }f.ofi*bh}}Ub0?>1199V4*aun'xm#`kb/emvpZo;:84:46[?/fpe*w`(elg$hb{{_h>16;7?3\:$kh!rg-nah)cg|~Te1<<>0:8Q5)`zo$yj"cjm.flqqYn4;>5=55Z0.eqb+ta'dof#iazt^k?608602_;#j|i.sd,i`k(lfSd2=6?3;?P6(o{l%~k!bel-gkprXa58<2<64U1-dvc(un&gna"j`uu]j87>9911^<"i}f/pe+hcj'me~xRg328<23>S7'nxm"h mdo,`jssW`692<64U1-dvc(un&gna"j`uu]j8669911^<"i}f/pe+hcj'me~xRg330<2<>S7'nxm"h mdo,`jssW`68>3?7;T2,cw`)zo%fi`!kotv\m9546820Y=!hrg,qb*kbe&ndyyQf<26=5==R8&myj#|i/lgn+air|Vc7?80>7:W3+bta&{l$ahc dnww[l:468=0Y=!hrg,qb*kbe&ndyyQf<5<23>S7'nxm"h mdo,`jssW`6>2<94U1-dvc(un&gna"j`uu]j8386?2_;#j|i.sd,i`k(lfSd28>058Q5)`zo$yj"cjm.flqqYn414:;6[?/fpe*w`(elg$hb{{_h>::40<]9%l~k }f.ofi*bh}}UbS=?9;T2,cw`)zo%fi`!kotv\mZ76?2_;#j|i.sd,i`k(lfSdQ>0058Q5)`zo$yj"cjm.flqqYnW8;:;6[?/fpe*w`(elg$hb{{_h]2641<]9%l~k }f.ofi*bh}}UbS<=>7:W3+bta&{l$ahc dnww[lY6<8=0Y=!hrg,qb*kbe&ndyyQf_0723>S7'nxm"h mdo,`jssW`U::<94U1-dvc(un&gna"j`uu]j[416?2_;#j|i.sd,i`k(lfSdQ>8058Q5)`zo$yj"cjm.flqqYnW83::6[?/fpe*w`(elg$hb{{_h]152=R8&myj#|i/lgn+air|VcT>=?8;T2,cw`)zo%fi`!kotv\mZ469>1^<"i}f/pe+hcj'me~xRgP2334?P6(o{l%~k!bel-gkprXaV88=:5Z0.eqb+ta'dof#iazt^k\61703\:$kh!rg-nah)cg|~TeR<:169V4*aun'xm#`kb/emvpZoX:?;<7X> gsd-vc)jmd%ocxzPi^0452=R8&myj#|i/lgn+air|VcT>5?8;T2,cw`)zo%fi`!kotv\mZ4>9?1^<"i}f/pe+hcj'me~xRgP3058Q5)`zo$yj"cjm.flqqYnW:::;6[?/fpe*w`(elg$hb{{_h]0541<]9%l~k }f.ofi*bh}}UbS><>7:W3+bta&{l$ahc dnww[lY4;8=0Y=!hrg,qb*kbe&ndyyQf_2623>S7'nxm"h mdo,`jssW`U89<84U1-dvc(un&gna"j`uu]j[1713\:$kh!rg-nah)cg|~TeR;>6:W3+bta&{l$ahc dnww[lY19?1^<"i}f/pe+hcj'me~xRgP7048Q5)`zo$yj"cjm.flqqYnW1;=7X> gsd-vc)jmd%ocxzPi^;2=>S7'nxm"h mdo,`jssWdof0=0>a:W3+bta&{l$ahc dnww[hcj48:5=l5Z0.eqb+ta'dof#iazt^ofi97668k0Y=!hrg,qb*kbe&ndyyQbel>26;7f3\:$kh!rg-nah)cg|~Tahc312<2e>S7'nxm"h mdo,`jssWdof0<:11`9V4*aun'xm#`kb/emvpZkbe5;>27;j7X> gsd-vc)jmd%ocxzPmdo?5286i2_;#j|i.sd,i`k(lfS`kb<0:=5d=R8&myj#|i/lgn+air|Vgna1?6>0;8Q5)`zo$yj"cjm.flqqYjmd6:2 gsd-vc)jmd%ocxzPmdo?6486i2_;#j|i.sd,i`k(lfS`kb<30=5d=R8&myj#|i/lgn+air|Vgna1<<>0c8Q5)`zo$yj"cjm.flqqYjmd6983?n;T2,cw`)zo%fi`!kotv\i`k;:<4:m6[?/fpe*w`(elg$hb{{_lgn87099h1^<"i}f/pe+hcj'me~xRcjm=04:4g<]9%l~k }f.ofi*bh}}Ufi`2=8?3b?P6(o{l%~k!bel-gkprXelg7>40>9:W3+bta&{l$ahc dnww[hcj4;4:m6[?/fpe*w`(elg$hb{{_lgn86699h1^<"i}f/pe+hcj'me~xRcjm=12:4g<]9%l~k }f.ofi*bh}}Ufi`2<2?3b?P6(o{l%~k!bel-gkprXelg7?>0>a:W3+bta&{l$ahc dnww[hcj4:>5=l5Z0.eqb+ta'dof#iazt^ofi9526830Y=!hrg,qb*kbe&ndyyQbel>0:4?<]9%l~k }f.ofi*bh}}Ufi`2;>0;8Q5)`zo$yj"cjm.flqqYjmd6>2<74U1-dvc(un&gna"j`uu]nah:16830Y=!hrg,qb*kbe&ndyyQbel>4:4?<]9%l~k }f.ofi*bh}}Ufi`27>0;8Q5)`zo$yj"cjm.flqqYjmd622::4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'kgei lsup,vdkkgfzP

1d9V4*aun'xm#}{bmi,vaYu{}Uyij2?>0g8Q5)`zo$yj"||tcnh+wbXzz~T~hi31?3f?P6(o{l%~k!}su`oo*tcW{ySkh<3<2`>S7'nxm"h rrvahn)ulVxxxR|jg^22`>S7'nxm"h rrvahn)ulVxxxR|jg^32`>S7'nxm"h rrvahn)ulVxxxR|jg^02`>S7'nxm"h rrvahn)pzVxxxRo|rde14>S7'nxm"h rrvahn)pzVxxxRo|rde\`4473\:$kh!rg-qwqdkc&}yS}{_`qqabYc:8i0Y=!hrg,qb*tt|kf`#z|Prrv\gjke9m1^<"i}f/pe+wusjea${Q}su]`khd69l1^<"i}f/pe+wusjea${Q}su]qab:768o0Y=!hrg,qb*tt|kf`#z|Prrv\v`a;97;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W9;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W8k0Y^K]_@NJEVe<]ZOYS[G\ICNF7>PDK01]EHYPTXRF7>QBI:1\IOm4WSKWAZKHLLUJo6Y]IUG\IJBBWKn0[_G[E^UJ@QNXIm1\^DZJ_VKGPMYE9m1SEAGAX,ZGF%6)9)Y_YO.?.0"BWFON=2RD^NW9;YQWHLD03QY_SJ@K7:ZPPZPDKk1SSNA]E^KMBJ00:ZgiZKfbfx]i}foo33?]bjWDcecXjrrkljf=fddexxRkbpu{a?djjgz~Tjxbc6:`bgnswl2hjof{_lcqo`t43jf`h6jnt`]`kphs 9#o7io{a^alqkr/9 n0hlzn_bmvjq.5!m1omyoPcnwmp-5.l2njxlQlotlw,1/c3mkmRm`uov+1,bbf|hUhcx`{(9+g?agsiVidycz'9(d8`drfWje~by26:1<4?adn|lxy:6jfn)2*2>bnf!;";6jfn)33-2=cag":=$94dhl+57/03mce$<=&7:fjj-73!>1oec&>5(58`lh/9?#<7iga(05*2>bnf!8":6jfn)1*2>bnf!>":6jfn)7*2>bnf!<":6jfn)5*2>bnf!2":6jfn);*2>bnf5:5;6jfn=33:2=cag6:=394dhl?57803mce0<=17:fjj9736>1oec2>5?58`lh;9?427iga<0594;1&7:flqq.6!11ocxz'11+;?air|!;:%55kotv+57/?3me~x%?<)99gkpr/9=#37iazt)36-==cg|~#=;'7;emvp-70!11ocxz'19+;?air|!;2%:5kotv+6,>&8:flqq.59 20hb{{(30*<>bh}}"9?$64dnww,72.02ndyy&=5(:8`jss ;<"46j`uu*13,> =0hb{{(6+4?air|!2";6j`uu*:-2=cg|~7<364dnww846902ndyy2>1?:8`jss488546j`uu>27;>bh}}6:;364dnww84>902ndyy2>9?58`jss48437iazt=03:==cg|~7><07;emvp945611ocxz322<;?air|58?255kotv?608?3me~x1<9>99gkpr;:>437iazt=0;:==cg|~7>408;emvp94902ndyy2<0?:8`jss4:;546j`uu>06;>=18:flqq:4<7k0hb{{<2794;>;17:flqq:46>1ocxz34?58`jss4<4<7iazt=4=3>bh}}6<2:5kotv?<;12y15[7ekcV;3xb=9,gkekZabflxjxb|Pv7]2(KIIM%DDBH:?3:djbjYdgrT9<,b]kevYulVnjxlQlotlw95*dWmceSzgkti?2<)eX`hyT{Qkauc\gjsi|4:'oRhzlm]ehdatW{yS{oc=1.`[lkwdlgnbyo{inl\p|vb5;&hSx}j_doaaabblVxnk0>#c^uq[ctby4;'oR{|e^flqqYu{}7: nQznegqbiipWee|1="l_icp[jpbzofd{0>#c^rqaiiflVfjxh`ly<2/gZbh}}U|eizg=24/gZktofdTzlb21-a\vaYcmy~c18?=,b]fvwiuW`dainzfoo]w}uc:8%iTdl}Puoffvcjh4:'oRfns^coijusWog`0?#c^jbwZtt|4;'oRjnt`]`kphsW~coxe3>0-a\lduX{Ujof3?,b]vw`Ybkj7; nQlololjZekgja65)eXlfS}{_wco95*dWakxSio{a^alqkr:8%iT|ah_gwohZrozlycSckhaug\rdj:99;= nQxr^fftqn:998? nQrne\ahvsqV~c~h}g_ogdeqcX~hf69!mPpsmd[`kw|pUdk|h^cpw`tsWkg19"l_icp[sgkam7; nQrne\bpjkW}byi~fParqfvqYqie7:<<9#cnoskkci|Vdjah3iigm\|ihW<;9t>8P2bnh[4>sg:<'oRxnlhf\hjq:8%iT|gb_gkekZr~xl7:gu?7,b]svjaXn|fgSywe<3/gZkbefxrSywe<3/y60oiblihog{espg?lhmmj~xndzjrs58mkrXkea37cilbtko`==h~lxm`byn;qplcZcjx}s:86~}of]fiur~W}byi~f'0(37?uthoVof|ywPtipfwm.6!8>0|ah_dosp|Ys`{oxd%<&159svjaXmdzuRzgrdqk,6/6<2zycjQjmqvz[qnumzb#8$?;;qplcZcjx}sTxe|jsi*6-42vugnUna}zv_ujqavn/0 ;=7}|`g^gntqX|axne27:1<2f>vugnUna}zv_ujqavnXizyn~y&?)0`8twi`Wlg{xtQ{hsgplZgt{lx$<'>b:rqkbYbey~rSyf}erj\evubz}"9%vugnUna}zv_ujqavnXizyn~y&7)0f8twi`Wlg{xtQ{hsgplZgt{lx054?>0`8twi`Wlg{xtQ{hsgplZhboh~n$='>b:rqkbYbey~rSyf}erj\j`af|l":%vugnUna}zv_ujqavnXflmjxh&8)0`8twi`Wlg{xtQ{hsgplZhboh~n$5'>d:rqkbYbey~rSyf}erj\j`af|l636=06;qplcZ`rde;87}|`g^dvhiYs`{oxd%>&129svjaXn|fgSyf}erj+5,743yxdkRhzlm]wlwct`!8"=>5rne\bpjkW}byi~f'3(30?uthoVl~`aQ{hsgpl-2.9:1{~biPftno[qnumzb#9$?<;qplcZ`rdeUdk|h)4*56=wzfmTjxbc_ujqavn/? ;87}|`g^dvhiYs`{oxd%6&129svjaXn|fgSyf}erj+=,723yxdkRhzlm]wlwct`531<3?n;qplcZ`rdeUdk|h^cpw`ts 9#:m6~}of]eqijX|axneQnsrgqp-7.9h1{~biPftno[qnumzbTm~}jru*1-4ga:rqkbYa}efTxe|jsi]bwvcu|!?"=l5rne\bpjkW}byi~fParqfvq.1!8k0|ah_gwohZrozlycSl}|esv+3,7f3yxdkRhzlm]wlwct`Vkxh|{(9+2e>vugnUmyabPtipfwmYf{zoyx%7&1b9svjaXn|fgSyf}erj\evubz}626=0>a:rqkbYa}efTxe|jsi]mabgsm!:"=l5rne\bpjkW}byi~fPndebp`.6!8k0|ah_gwohZrozlycSckhaug+6,7f3yxdkRhzlm]wlwct`Vdnklzj(2+2e>vugnUmyabPtipfwmYimnki%:&1`9svjaXn|fgSyf}erj\j`af|l">% ;j7}|`g^dvhiYs`{oxdR`jg`vf,2/6i2zycjQiumn\pmtb{aUeijo{e):*5d=wzfmTjxbc_ujqavnXflmjxh&6)0a8twi`Wog`Rzgrdqk[kc`i}o757>16:pg[fjl991yhRjnt`]`kphs 9#:<6|k_ecweZeh}g~#=$??;sf\`drfWje~by&=)028vaYci}kTob{at)1*55=ulVnjxlQlotlw,1/682xoSio{a^alqkr/= ;;7jPd`vb[firf}"=%<>4re]geqgXkfex%9&119q`Zbf|hUhcx`{(9+24>tcWmkmRm`uov?4;753{nThlzn_bmvjq:?294>7jPeo48vaYu{}90~~z8;r`jp`tu<2yyy:4tswf=>sillxm`by:;wcoma0<{Ujof84ws]`hn773~xThlzn_bmvjq.7!8:0{Qkauc\gjsi|!;"==5xr^fbpdYdg|d$?'>0:uq[agsiVidycz'3(33?rtXlh~jSnaznu*7-46<{UomyoPcnwmp-3.991|~Rjnt`]`kphs ?#:<6y}_ecweZeh}g~#;$??;vp\`drfWje~by&7)028swYci}kTob{at);*57=pzVnjxlQlotlw8<<76<1|~Rka6:uq[wusuIJ{oi64@Az2>C<328qX8k4:048;>455j?ih6>=:48ym0=2=92d?4849;%6;6?20k2wX8i4:048;>455j?ih6>=:489P57e==8:1<7?<2c4`g?54==30_9j550294?74:k:082g5}T<847:011f3ed2:9>845+467957b<^=286?uz12495>s6;>0;7p*>8182=>d2810;6>h53;1eM20;2P?970603`?>j7>5;n6;3?6=3f?8=7>5;h740?6=3f?;o7>5;n732?6=3`?=47>5;h755?6=3f>o57>5$0:1>1`d3g;3=7>4;n6go;7>5$0:1>1`d3g;3=7<4;n6g2?6=,82969hl;o3;5?5<3f>o97>5$0:1>1`d3g;3=7:4;n6g0?6=,82969hl;o3;5?3<3f>o>7>5$0:1>1`d3g;3=784;n6g5?6=,82969hl;o3;5?1<3f>o<7>5$0:1>1`d3g;3=764;n6`b?6=,82969hl;o3;5??<3f>hi7>5$0:1>1`d3g;3=7o4;n6``?6=,82969hl;o3;5?d<3f>ho7>5$0:1>1`d3g;3=7m4;n6`f?6=,82969hl;o3;5?b<3f>hm7>5$0:1>1`d3g;3=7k4;n6`=?6=,82969hl;o3;5?`<3f>h;7>5$0:1>1`d3g;3=7??;:m7g3<72-;3>7:ic:l2<4<6921d8n;50;&2<7<3nj1e=5?51398k1e3290/=5<54ga8j4>628907b:l3;29 4>52=lh7c?71;37?>i3k;0;6)?72;6eg>h6080:965`4b394?"60;0?jn5a193953=9:9l0a`=83.:4?4;fb9m5=7=9h10c9jj:18'5=4=:0`8?j2cl3:1(<6=:5d`?k7?93;h76a;db83>!7?:3>mo6`>8082`>=h8387bf=i91;1=h54o5fb>5<#91818km4n0:2>4`<3f>o?7>5$0:1>1`d3g;3=77:ic:l2<4<5921d8oj50;&2<7<3nj1e=5?52398k1dd290/=5<54ga8j4>62;907d:n0;29 4>52=h:7c?71;28?l2>n3:1(<6=:5`2?k7?93;07d:6e;29 4>52=h:7c?71;08?l2>l3:1(<6=:5`2?k7?93907d:6c;29 4>52=h:7c?71;68?l2>j3:1(<6=:5`2?k7?93?07d:6a;29 4>52=h:7c?71;48?l2>13:1(<6=:5`2?k7?93=07d:n8;29 4>52=h:7c?71;:8?l2f?3:1(<6=:5`2?k7?93307d:n6;29 4>52=h:7c?71;c8?l2f=3:1(<6=:5`2?k7?93h07d:n4;29 4>52=h:7c?71;a8?l2f;3:1(<6=:5`2?k7?93n07d:n2;29 4>52=h:7c?71;g8?l2f93:1(<6=:5`2?k7?93l07d:68;29 4>52=h:7c?71;33?>o31>0;6)?72;6a5>h6080:=65f54194?=e<>>1<7?50;2xL1143-;2=7:84:m23c<722wih54?:083>5}O<>90(<7>:e:8ka1=831vn9:50;c5>4>328i;wE:83:X71?71s;31>54=a;f9e?d=k3;36ao4=9;32>f62910e8<;:18'5=4==;<0b<6>:098m044290/=5<55348j4>62;10e8<=:18'5=4==;<0b<6>:298m046290/=5<55348j4>62=10e8:498m07a290/=5<55348j4>62?10e8?j:18'5=4==;<0b<6>:698m07c290/=5<55348j4>62110e8>j:188m0072900e88<:188k0012900e8?m:18'5=4==8i0b<6>:198m07f290/=5<550a8j4>62810e8?6:18'5=4==8i0b<6>:398m07?290/=5<550a8j4>62:10e8?8:18'5=4==8i0b<6>:598m071290/=5<550a8j4>62<10e8?::18'5=4==8i0b<6>:798m073290/=5<550a8j4>62>10e8?<:18'5=4==8i0b<6>:998m03a2900c8?>:188m04a290/=5<55228j4>62910e8:098m04c290/=5<55228j4>62;10e8:298m04e290/=5<55228j4>62=10e8:498m04>290/=5<55228j4>62?10e8<7:18'5=4==::0b<6>:698m040290/=5<55228j4>62110c968:188k1?3290/=5<54878j4>62910c97<:18'5=4=<0?0b<6>:098k1?5290/=5<54878j4>62;10c97>:18'5=4=<0?0b<6>:298k1?7290/=5<54878j4>62=10c96i:18'5=4=<0?0b<6>:498k1>b290/=5<54878j4>62?10c96k:18'5=4=<0?0b<6>:698k1>d290/=5<54878j4>62110c96m:18'5=4=<0?0b<6>:898k0562900e89;:188m05e290/=5<552a8j4>62910e8=n:18'5=4==:i0b<6>:098m05>290/=5<552a8j4>62;10e8=7:18'5=4==:i0b<6>:298m050290/=5<552a8j4>62=10e8=9:18'5=4==:i0b<6>:498m052290/=5<552a8j4>62?10e8=;:18'5=4==:i0b<6>:698m054290/=5<552a8j4>62110e8==:18'5=4==:i0b<6>:898k06d2900c8>9:188m00?2900e966:188m021290/=5<55558j4>62910e8:::18'5=4====0b<6>:098m023290/=5<55558j4>62;10e8:<:18'5=4====0b<6>:298m025290/=5<55558j4>62=10e8:>:18'5=4====0b<6>:498m027290/=5<55558j4>62?10e8=i:18'5=4====0b<6>:698m05b290/=5<55558j4>62110e8=k:18'5=4====0b<6>:898m036290/=5<55408j4>62910e8;?:18'5=4==<80b<6>:098m02a290/=5<55408j4>62;10e8:j:18'5=4==<80b<6>:298m02c290/=5<55408j4>62=10e8:l:18'5=4==<80b<6>:498m02e290/=5<55408j4>62?10e8:n:18'5=4==<80b<6>:698m02>290/=5<55408j4>62110e8:7:18'5=4==<80b<6>:898k1>12900e8>i:188m1>f2900e89::188k0052900c888:188m0062900c9j6:18'5=4=:198k1b?290/=5<54ga8j4>62810c9j8:18'5=4=:398k1b1290/=5<54ga8j4>62:10c9j::18'5=4=:598k1b3290/=5<54ga8j4>62<10c9j=:18'5=4=:798k1b6290/=5<54ga8j4>62>10c9j?:18'5=4=:998k1ea290/=5<54ga8j4>62010c9mj:18'5=4=:`98k1ec290/=5<54ga8j4>62k10c9ml:18'5=4=:b98k1ee290/=5<54ga8j4>62m10c9mn:18'5=4=:d98k1e>290/=5<54ga8j4>62o10c9m8:18'5=4=:028?j2d>3:1(<6=:5d`?k7?93;:76a;c483>!7?:3>mo6`>80826>=h1<7*>8387bf=i91;1=>54o5a0>5<#91818km4n0:2>42<3f>h>7>5$0:1>1`d3g;3=7?:;:m7g4<72-;3>7:ic:l2<4<6>21d8n>50;&2<7<3nj1e=5?51698k1da290/=5<54ga8j4>628207b:me;29 4>52=lh7c?71;3:?>i3lo0;6)?72;6eg>h6080:m65`4eg94?"60;0?jn5a19395g=e:9l0ag=83.:4?4;fb9m5=7=9o10c9j<:18'5=4=:328?j2d03:1(<6=:5d`?k7?938:76a;be83>!7?:3>mo6`>80816>=h8387bf=i91;1>>54i5c3>5<#91818o?4n0:2>5=5<#91818o?4n0:2>7=54i5;`>5<#91818o?4n0:2>1=5<#91818o?4n0:2>3=5<#91818o?4n0:2>==5<#91818o?4n0:2>d=6=4+19090g75<#91818o?4n0:2>f=5<#91818o?4n0:2>`=5<#91818o?4n0:2>46<3`>2;7>5$0:1>1d63g;3=7?>;:k7<=<722e>9n4?:%3;6?32m2d:4<4?;:m61g<72-;3>7;:e:l2<4<632e>9l4?:%3;6?32m2d:4<4=;:m61<<72-;3>7;:e:l2<4<432e>954?:%3;6?32m2d:4<4;;:m612<72-;3>7;:e:l2<4<232e>9;4?:%3;6?32m2d:4<49;:m610<72-;3>7;:e:l2<4<032e>994?:%3;6?32m2d:4<47;:m637<72-;3>7;83:l2<4<732e>;<4?:%3;6?30;2d:4<4>;:m635<72-;3>7;83:l2<4<532e>:k4?:%3;6?30;2d:4<4<;:m62`<72-;3>7;83:l2<4<332e>:i4?:%3;6?30;2d:4<4:;:m62f<72-;3>7;83:l2<4<132e>:o4?:%3;6?30;2d:4<48;:m62d<72-;3>7;83:l2<4:44?:%3;6?30;2d:4<46;:m657<722c>9>4?::m620<722h?;k4?:083>5}#90;1h55G46g8L1143fn<6=44}c6;4?6=93:1908731=O<>o0D99<;n34b?6=3th9m?4?:583>5}#90;1h>5G46g8L1143-o=6:5f4783>>o283:17d?73;29?j7?<3:17pl;6183>6<729q/=4?5d19K02c<@==87E:<;%300?31<2.n:7<4i5494?=n=90;66a>8583>>{eN3;2.:?94:659'a3<53`>=6=44i4294?=h91>1<75rb57e>5<4290;w)?61;f3?M20m2B?;>5G429'562==?>0(h852:k72?6=3`?;6=44o0:7>5<=57>55;294~"6180o86F;7d9K025<@=90(<=;:447?l212900e9950;9j15<722c:4>4?::m2<1<722wi8;o50;194?6|,83:6i>4H55f?M20;2B??6*>358621=#m?097d:9:188m06=831d=5:50;9~f13b290>6=4?{%3:5?b33A>19;:4i5494?=n<>0;66g:0;29?l7?;3:17b?74;29?xd3>10;694?:1y'5<7=l:1C8:k4H550?!c12>1b8;4?::k64?6=3`;3?7>5;n3;0?6=3th?::4?:583>5}#90;1h>5G46g8L1143-o=6:5f4783>>o283:17d?73;29?j7?<3:17pl;6783>1<729q/=4?5d29K02c<@==87)k9:69j03<722c><7>5;h3;7?6=3f;387>5;|`734<72=0;6=u+1839`6=O<>o0D99<;%g5>2=n1b8;4?::k64?6=3`;3?7>5;n3;0?6=3th9=;4?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo<>5;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb337>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a645=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd59;0;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn???:187>5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm21d94?2=83:p(<7>:e38L11b3A>5;|`14`<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi=o<50;694?6|,83:6i?4H55f?M20;2.n:7<4i5494?=nb083>1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f4ga290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e9ho1<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th:mi4?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo?nc;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb341>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a637=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd5>90;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<j7>54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn?;j:187>5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm24f94?2=83:p(<7>:e38L11b3A>5;|`11f<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi=km50;694?6|,83:6i?4H55f?M20;2.n:7<4i5494?=nfc83>1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f4`>290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e9o21<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th:j:4?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo?i6;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0d6>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a5c2=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd5=90;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd5>o283:17b?74;29?xd5>o283:17b?74;29?xd5>o283:17b?74;29?xd5>o283:17b?74;29?xd5>o283:17b?74;29?xd5>o283:17b?74;29?xd5<00;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd5<10;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd5<>0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6mh0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m00;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m10;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m>0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m?0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m<0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m=0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m:0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m;0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6l10;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm1e794?2=83:p(<7>:e38L11b3A>5;|`2`1<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi=i?50;694?6|,83:6i?4H55f?M20;2.n:7<4i5494?=nd183>1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f75e290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e::k1<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th9?44?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo<<8;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb314>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a660=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd5;<0;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn?=<:187>5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm2e;94?3=83:p(<7>:e08L11b3A>5<55;294~"6180o>6F;7d9K025<,l<1>6g;6;29?l202900e9m50;9j15<722e:494?::a6a1=83?1<7>t$0;2>a4<@==n7E:83:&f2?4>o3k3:17d;?:188k4>32900qo90(h852:k72?6=3`><6=44i5a94?=n=90;66a>8583>>{e:m?1<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi>i<50;794?6|,83:6i<4H55f?M20;2.n:7<4i5494?=n<>0;66g;c;29?l372900c<6;:188yg4c93:197>50z&2=45;h64>5<1<75rb3f0>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th9o;4?:283>5}#90;18:j4H55f?M20;2c?57>5;h31e?6=3f;5;|`1g0<72:0;6=u+183902b<@==n7E:83:k7=?6=3`;9m7>5;n34`?6=3th9nn4?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<53;294~"6180?;i5G46g8L1143`>26=44i00b>5<908270=O<>o0D99<;h6:>5<n1<75rb3a0>5<4290;w)?61;64`>N3?l1C8:=4i5;94?=n9;k1<75`16f94?=zj;h36=4;:183!7>93;896F;7d9K025>o60h0;66a>7e83>>{e:j81<7=50;2x 4?62==o7E:8e:J736=n<00;66g>2`83>>i6?m0;66sm2c494?2=83:p(<7>:016?M20m2B?;>5f4883>>o2:3:17d?7a;29?j70l3:17pl=c083>6<729q/=4?546f8L11b3A>o313:17d;=:188m4>f2900c<9k:188yg4d83:1?7>50z&2=4<3?m1C8:k4H550?l2>2900e<349K02c<@==87d:6:188m04=831b=5o50;9l52b=831vn?li:180>5<7s-;2=7:8d:J73`=O<>90e9750;9j57g=831d=:j50;9~f7d7290?6=4?{%3:5?74=2B?;h5G4618m1?=831b9?4?::k2t$0;2>11c3A>l4?::m23a<722wi>lk50;694?6|,83:6<=:;I64a>N3?:1b844?::k66?6=3`;3m7>5;n34`?6=3th9io4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f7cf290>6=4?{%3:5?b53A>=6=44i5594?=n0<729q/=4?5d39K02c<@==87)k9:39j03<722c?;7>5;h6`>5<93n97E:8e:J736=#m?097d:9:188m11=831b8n4?::k64?6=3f;387>5;|`1a2<72<0;6=u+1839`7=O<>o0D99<;%g5>7=n50;9l5=2=831vn?k9:186>5<7s-;2=7j=;I64a>N3?:1/i;4=;h65>5<>o283:17b?74;29?xd5m<0;684?:1y'5<7=l;1C8:k4H550?!c12;1b8;4?::k73?6=3`>h6=44i4294?=h91>1<75rb3g7>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th9i>4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f711290?6=4?{%3:5?b43A>=6=44i4294?=n9191<75`19694?=zj;=<6=4;:183!7>93n87E:8e:J736=#m?0<7d:9:188m06=831b=5=50;9l5=2=831vn?9>:187>5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm26294?2=83:p(<7>:e38L11b3A>5;|`047<72:0;6=u+183902b<@==n7E:83:k7=?6=3`;9m7>5;n34`?6=3th85}#90;18:j4H55f?M20;2c?57>5;h31e?6=3f;5;|`1b3<72=0;6=u+1839563<@==n7E:83:k7=?6=3`?96=44i0:b>5<90873a=O<>o0D99<;h6:>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj::26=4<:183!7>93>n1<75rb3d7>5<3290;w)?61;301>N3?l1C8:=4i5;94?=n=;0;66g>8`83>>i6?m0;66sm31:94?5=83:p(<7>:55g?M20m2B?;>5f4883>>o6:h0;66a>7e83>>{e:o91<7:50;2x 4?6289>7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd48>0;6>4?:1y'5<7=<>n0D99j;I647>o313:17d?=a;29?j70l3:17pl=f383>1<729q/=4?51278L11b3A>50z&2=4<6;<1C8:k4H550?l2>2900e8<50;9j5=g=831d=:j50;9~f66229086=4?{%3:5?20l2B?;h5G4618m1?=831b=?o50;9l52b=831vn?h?:187>5<7s-;2=7?<5:J73`=O<>90e9750;9j17<722c:4l4?::m23a<722wi?=:50;194?6|,83:699k;I64a>N3?:1b844?::k26d<722e:;i4?::a6``=83>1<7>t$0;2>4523A>>7>5;h3;e?6=3f;5;|`046<72:0;6=u+183902b<@==n7E:83:k7=?6=3`;9m7>5;n34`?6=3th9ih4?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj:;<6=4;:183!7>93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi?1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f67d290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e;8h1<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th8=l4?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo=>9;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb23;>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a740=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd4:h0;684?:1y'5<7=l;1C8:k4H550?!c12;1b8;4?::k73?6=3`>h6=44i4294?=h91>1<75rb3;6>5<3290;w)?61;301>N3?l1C8:=4i5;94?=n=;0;66g>8`83>>i6?m0;66sm28694?2=83:p(<7>:016?M20m2B?;>5f4883>>o2:3:17d?7a;29?j70l3:17pl=9283>1<729q/=4?51278L11b3A>349K02c<@==87d:6:188m04=831b=5o50;9l52b=831vn?7>:187>5<7s-;2=7?<5:J73`=O<>90e9750;9j17<722c:4l4?::m23a<722wi>5<50;694?6|,83:6<=:;I64a>N3?:1b844?::k66?6=3`;3m7>5;n34`?6=3th94<4?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj;=m6=4;:183!7>93;896F;7d9K025>o60h0;66a>7e83>>{e:>o1<7:50;2x 4?6289>7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd4jm0;684?:1y'5<7=l;1C8:k4H550?!c12;1b8;4?::k73?6=3`>h6=44i4294?=h91>1<75rb2`a>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th8nn4?:483>5}#90;1h95G46g8L1143-o=6:5f4783>>o3?3:17d;?:188m4>42900c<6;:188yg5em3:197>50z&2=45;h64>5<>i60=0;66sm3cd94?3=83:p(<7>:e08L11b3A>5<7>55;294~"6180o>6F;7d9K025<,l<1>6g;6;29?l202900e9m50;9j15<722e:494?::a7f6=83?1<7>t$0;2>a4<@==n7E:83:&f2?4>o3k3:17d;?:188k4>32900qo=l1;291?6=8r.:5<4k2:J73`=O<>90(h852:k72?6=3`><6=44i5a94?=n=90;66a>8583>>{e;j91<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi?i?50;794?6|,83:6i<4H55f?M20;2.n:7<4i5494?=n<>0;66g;c;29?l372900c<6;:188yg5dn3:197>50z&2=45;h64>5<1<75rb2f3>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th8h?4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f6b4290>6=4?{%3:5?b53A>=6=44i5594?=n0<729q/=4?5d39K02c<@==87)k9:39j03<722c?;7>5;h6`>5<93n97E:8e:J736=#m?097d:9:188m11=831b8n4?::k64?6=3f;387>5;|`0`0<72<0;6=u+1839`7=O<>o0D99<;%g5>7=n50;9l5=2=831vn>j8:186>5<7s-;2=7j=;I64a>N3?:1/i;4=;h65>5<>o283:17b?74;29?xd4l10;684?:1y'5<7=l;1C8:k4H550?!c12;1b8;4?::k73?6=3`>h6=44i4294?=h91>1<75rb2ce>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th8mh4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f6d7290>6=4?{%3:5?b53A>=6=44i5594?=n0<729q/=4?5d39K02c<@==87)k9:39j03<722c?;7>5;h6`>5<93n97E:8e:J736=#m?097d:9:188m11=831b8n4?::k64?6=3f;387>5;|`0ea<72<0;6=u+1839`7=O<>o0D99<;%g5>7=n50;9l5=2=831vn>o6:186>5<7s-;2=7j=;I64a>N3?:1/i;4=;h65>5<>o283:17b?74;29?xd4i10;684?:1y'5<7=l=1C8:k4H550?!c12>1b8;4?::k73?6=3`?;6=44i0:0>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi?l950;794?6|,83:6i:4H55f?M20;2.n:794i5494?=n<>0;66g:0;29?l7?;3:17b?74;29?xd41k0;6>4?:1y'5<7=<>n0D99j;I647>o313:17d?=a;29?j70l3:17pl<9`83>6<729q/=4?546f8L11b3A>o313:17d;=:188m4>f2900c<9k:188yg5>13:1?7>50z&2=4<3?m1C8:k4H550?l2>2900e<349K02c<@==87d:6:188m04=831b=5o50;9l52b=831vn>77:180>5<7s-;2=7:8d:J73`=O<>90e9750;9j57g=831d=:j50;9~f6>d290?6=4?{%3:5?74=2B?;h5G4618m1?=831b9?4?::k2t$0;2>11c3A>l4?::m23a<722wi?5o50;694?6|,83:6<=:;I64a>N3?:1b844?::k66?6=3`;3m7>5;n34`?6=3th85;4?:283>5}#90;18:j4H55f?M20;2c?57>5;h31e?6=3f;5;|`0<=<72=0;6=u+1839563<@==n7E:83:k7=?6=3`?96=44i0:b>5<90873a=O<>o0D99<;h6:>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj:3?6=4<:183!7>93>n1<75rb2:7>5<3290;w)?61;301>N3?l1C8:=4i5;94?=n=;0;66g>8`83>>i6?m0;66sm38194?5=83:p(<7>:55g?M20m2B?;>5f4883>>o6:h0;66a>7e83>>{e;181<7:50;2x 4?6289>7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd41;0;6>4?:1y'5<7=<>n0D99j;I647>o313:17d?=a;29?j70l3:17pl<8183>1<729q/=4?51278L11b3A>90(h852:k72?6=3`><6=44i5a94?=n=90;66a>8583>>{e;lh1<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi?h750;794?6|,83:6i<4H55f?M20;2.n:7<4i5494?=n<>0;66g;c;29?l372900c<6;:188yg5b03:197>50z&2=45;h64>5<>i60=0;66sm3d594?3=83:p(<7>:e08L11b3A>5<55;294~"6180o>6F;7d9K025<,l<1>6g;6;29?l202900e9m50;9j15<722e:494?::a7`3=83?1<7>t$0;2>a4<@==n7E:83:&f2?4>o3k3:17d;?:188k4>32900qo=j4;291?6=8r.:5<4k2:J73`=O<>90(h852:k72?6=3`><6=44i5a94?=n=90;66a>8583>>{e;l91<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908270=O<>o0D99<;h6:>5<n1<75rb216>5<3290;w)?61;301>N3?l1C8:=4i5;94?=n=;0;66g>8`83>>i6?m0;66sm32494?2=83:p(<7>:016?M20m2B?;>5f4883>>o2:3:17d?7a;29?j70l3:17pl<3683>1<729q/=4?51278L11b3A>349K02c<@==87d:6:188m04=831b=5o50;9l52b=831vn>:8:187>5<7s-;2=7?<5:J73`=O<>90e9750;9j17<722c:4l4?::m23a<722wi?9650;694?6|,83:6<=:;I64a>N3?:1b844?::k66?6=3`;3m7>5;n34`?6=3th8844?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj:>i6=4;:183!7>93;896F;7d9K025>o60h0;66a>7e83>>{e;7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd4=l0;694?:1y'5<7=9:?0D99j;I647>o313:17d;=:188m4>f2900c<9k:188yg52n3:187>50z&2=4<6;<1C8:k4H550?l2>2900e8<50;9j5=g=831d=:j50;9~f607290?6=4?{%3:5?74=2B?;h5G4618m1?=831b9?4?::k21<7>t$0;2>4523A>>7>5;h3;e?6=3f;5;|`035<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n97E:8e:J736=#m?097d:9:188m11=831b8n4?::k64?6=3f;387>5;|`76c<72<0;6=u+1839`0=O<>o0D99<;%g5>7=n32900qo:=e;291?6=8r.:5<4k5:J73`=O<>90(h852:k72?6=3`><6=44i4294?=n91?1<75`19694?=zj=8o6=4::183!7>93n>7E:8e:J736=#m?097d:9:188m11=831b9=4?::k2<0<722e:494?::a07e=83?1<7>t$0;2>a3<@==n7E:83:&f2?4>o283:17d?75;29?j7?<3:17pl;2c83>0<729q/=4?5d49K02c<@==87)k9:39j03<722c?;7>5;h73>5<6=44o0:7>5<9m7>55;294~"6180o96F;7d9K025<,l<1>6g;6;29?l202900e8>50;9j5=3=831d=5:50;9~f14?290>6=4?{%3:5?b23A>=6=44i5594?=n=90;66g>8483>>i60=0;66sm43594?3=83:p(<7>:e78L11b3A>5;n3;0?6=3th?>;4?:483>5}#90;1h85G46g8L1143-o=6?5f4783>>o3?3:17d;?:188m4>22900c<6;:188yg25=3:197>50z&2=45;h64>5<1<75rb507>5<2290;w)?61;f6?M20m2B?;>5+e781?l212900e9950;9j15<722c:484?::m2<1<722wi8?=50;794?6|,83:6i;4H55f?M20;2.n:7<4i5494?=n<>0;66g:0;29?l7?=3:17b?74;29?xd3:;0;684?:1y'5<7=l<1C8:k4H550?!c12;1b8;4?::k73?6=3`?;6=44i0:6>5<908g1>N3?l1C8:=4$d496>o3>3:17d:8:188m06=831b=5;50;9l5=2=831vn95<7s-;2=7j:;I64a>N3?:1/i;4=;h65>5<>o60<0;66a>8583>>{e<8l1<7;50;2x 4?62m?0D99j;I647>"b>380e9850;9j02<722c><7>5;h3;1?6=3f;387>5;|`75a<72<0;6=u+1839`0=O<>o0D99<;%g5>7=n32900qo:>c;291?6=8r.:5<4k5:J73`=O<>90(h852:k72?6=3`><6=44i4294?=n91?1<75`19694?=zj=;i6=4::183!7>93n>7E:8e:J736=#m?097d:9:188m11=831b9=4?::k2<0<722e:494?::a04g=83?1<7>t$0;2>a3<@==n7E:83:&f2?4>o283:17d?75;29?j7?<3:17pl;1883>0<729q/=4?5d49K02c<@==87)k9:39j03<722c?;7>5;h73>5<6=44o0:7>5<:47>55;294~"6180o96F;7d9K025<,l<1>6g;6;29?l202900e8>50;9j5=3=831d=5:50;9~f170290>6=4?{%3:5?b23A>=6=44i5594?=n=90;66g>8483>>i60=0;66sm40494?3=83:p(<7>:e78L11b3A>5;n3;0?6=3th?=84?:483>5}#90;1h85G46g8L1143-o=6?5f4783>>o3?3:17d;?:188m4>22900c<6;:188yg26<3:197>50z&2=45;h64>5<1<75rb516>5<2290;w)?61;f6?M20m2B?;>5+e781?l212900e9950;9j15<722c:484?::m2<1<722wi8>:50;794?6|,83:6i;4H55f?M20;2.n:7<4i5494?=n<>0;66g:0;29?l7?=3:17b?74;29?xd3;:0;684?:1y'5<7=l<1C8:k4H550?!c12;1b8;4?::k73?6=3`?;6=44i0:6>5<908g1>N3?l1C8:=4$d496>o3>3:17d:8:188m06=831b=5;50;9l5=2=831vn9=>:186>5<7s-;2=7j:;I64a>N3?:1/i;4=;h65>5<>o60<0;66a>8583>>{e<::1<7;50;2x 4?62m?0D99j;I647>"b>380e9850;9j02<722c><7>5;h3;1?6=3f;387>5;|`76<<72<0;6=u+1839`0=O<>o0D99<;%g5>7=n32900qo:>e;291?6=8r.:5<4k5:J73`=O<>90(h852:k72?6=3`><6=44i4294?=n91?1<75`19694?=zj=;86=4::183!7>93n>7E:8e:J736=#m?097d:9:188m11=831b9=4?::k2<0<722e:494?::a044=83?1<7>t$0;2>a3<@==n7E:83:&f2?4>o283:17d?75;29?j7?<3:17pl;6e83>6<729q/=4?513d8L11b3A>5<7s-;2=7?=f:J73`=O<>90(h851`9j`d<722con7>5;n34`?6=3th9=54?:283>5}#90;1=?h4H55f?M20;2.n:7?j;hfb>5<93;9j6F;7d9K025<,l<1=h5fd`83>>ocj3:17b?8d;29?xd6i;0;6>4?:1y'5<7=9;l0D99j;I647>"b>3;n7djn:188mad=831d=:j50;9~f4g629086=4?{%3:5?75n2B?;h5G4618 `0=9l1bhl4?::kgf?6=3f;5;|`2e5<72:0;6=u+183957`<@==n7E:83:&f2?7b3`nj6=44ie`94?=h9>n1<75rb0;e>5<4290;w)?61;31b>N3?l1C8:=4$d495`=nlh0;66gkb;29?j70l3:17pl>9d83>6<729q/=4?513d8L11b3A>5<7s-;2=7?=f:J73`=O<>90(h851d9j`d<722con7>5;n34`?6=3th:5n4?:283>5}#90;1=?h4H55f?M20;2.n:7?j;hfb>5<93;9j6F;7d9K025<,l<1=h5fd`83>>ocj3:17b?8d;29?xd61h0;6>4?:1y'5<7=9;l0D99j;I647>"b>3;n7djn:188mad=831d=:j50;9~f4?>29086=4?{%3:5?75n2B?;h5G4618 `0=9l1bhl4?::kgf?6=3f;5;|`2==<72:0;6=u+183957`<@==n7E:83:&f2?7b3`nj6=44ie`94?=h9>n1<75rb0;4>5<4290;w)?61;31b>N3?l1C8:=4$d495`=nlh0;66gkb;29?j70l3:17pl>9783>6<729q/=4?513d8L11b3A>5<7s-;2=7?=f:J73`=O<>90(h851d9j`d<722con7>5;n34`?6=3th:594?:283>5}#90;1=?h4H55f?M20;2.n:7?j;hfb>5<93;9j6F;7d9K025<,l<1=h5fd`83>>ocj3:17b?8d;29?xd61;0;6>4?:1y'5<7=9;l0D99j;I647>"b>3;n7djn:188mad=831d=:j50;9~f712290?6=4?{%3:5?7482B?;h5G4618 `0=km1bhl4?::kgf?6=3`nh6=44o05g>5<54;294~"6180:?=5G46g8L1143-o=6?;4iec94?=nlk0;66gkc;29?j70l3:17pl>b983>1<729q/=4?51228L11b3A>t$0;2>4563A>5;hfa>5<>i6?m0;66sm20a94?3=83:p(<7>:012?M20m2B?;>5+e7814>oci3:17djm:188mae=831bhi4?::m23a<722wi=oo50;794?6|,83:6<=>;I64a>N3?:1/i;4=0:kge?6=3`ni6=44iea94?=nlm0;66a>7e83>>{e:>31<7;50;2x 4?6289:7E:8e:J736=#m?09>6gka;29?lbe2900eim50;9j`a<722e:;i4?::a63b=83>1<7>t$0;2>4573A>5;hfa>5<93;9j6F;7d9K025<,l<1=h5fd`83>>ocj3:17b?8d;29?xd6jj0;6>4?:1y'5<7=9;l0D99j;I647>"b>3;n7djn:188mad=831d=:j50;9~f747290?6=4?{%3:5?7482B?;h5G4618 `0=:<1bhl4?::kgf?6=3`nh6=44o05g>5<54;294~"6180:?=5G46g8L1143-o=6?;4iec94?=nlk0;66gkc;29?j70l3:17pl=2383>0<729q/=4?51238L11b3A>5;n34`?6=3th:o=4?:483>5}#90;1=>?4H55f?M20;2.n:75<>ocl3:17b?8d;29?xd3=j0;694?:1y'5<7=9::0D99j;I647>"b>3?:7djn:188mad=831bhn4?::m23a<722wi>;m50;794?6|,83:6<=>;I64a>N3?:1/i;4>3:kge?6=3`ni6=44iea94?=nlm0;66a>7e83>>{e:0l1<7=50;2x 4?6288m7E:8e:J736=#m?09?6gka;29?lbe2900c<9k:188yg4?k3:1?7>50z&2=4<6:o1C8:k4H550?!c12;90eio50;9j`g<722e:;i4?::a73d=83?1<7>t$0;2>4563A>5;hfa>5<>i6?m0;66sm34794?3=83:p(<7>:012?M20m2B?;>5+e7810>oci3:17djm:188mae=831bhi4?::m23a<722wi?9<50;794?6|,83:6<=>;I64a>N3?:1/i;4=4:kge?6=3`ni6=44iea94?=nlm0;66a>7e83>>{e;?k1<7;50;2x 4?6289:7E:8e:J736=#m?0986gka;29?lbe2900eim50;9j`a<722e:;i4?::a702=83?1<7>t$0;2>4563A>5;hfa>5<>i6?m0;66sm35394?3=83:p(<7>:012?M20m2B?;>5+e7810>oci3:17djm:188mae=831bhi4?::m23a<722wi>4k50;794?6|,83:6<=>;I64a>N3?:1/i;4=4:kge?6=3`ni6=44iea94?=nlm0;66a>7e83>>{e:1h1<7;50;2x 4?6289:7E:8e:J736=#m?0986gka;29?lbe2900eim50;9j`a<722e:;i4?::a73?=83?1<7>t$0;2>4563A>5;hfa>5<>i6?m0;66sm34194?3=83:p(<7>:012?M20m2B?;>5+e7810>oci3:17djm:188mae=831bhi4?::m23a<722wi?9>50;794?6|,83:6<=>;I64a>N3?:1/i;4=4:kge?6=3`ni6=44iea94?=nlm0;66a>7e83>>{e:0n1<7;50;2x 4?6289:7E:8e:J736=#m?0986gka;29?lbe2900eim50;9j`a<722e:;i4?::a6=g=83?1<7>t$0;2>4563A>5;hfa>5<>i6?m0;66sm37:94?3=83:p(<7>:012?M20m2B?;>5+e7810>oci3:17djm:188mae=831bhi4?::m23a<722wi?8<50;794?6|,83:6<=>;I64a>N3?:1/i;4=4:kge?6=3`ni6=44iea94?=nlm0;66a>7e83>>{e;:l1<7;50;2x 4?6289:7E:8e:J736=#m?0986gka;29?lbe2900eim50;9j`a<722e:;i4?::a6t$0;2>4563A>5;hfa>5<>i6?m0;66sm29;94?3=83:p(<7>:012?M20m2B?;>5+e7810>oci3:17djm:188mae=831bhi4?::m23a<722wi?:=50;694?6|,83:6<=?;I64a>N3?:1/i;4le:kge?6=3`ni6=44iea94?=h9>n1<75rb24f>5<3290;w)?61;304>N3?l1C8:=4$d49g`=nlh0;66gkb;29?lbd2900c<9k:188yg4f<3:187>50z&2=4<6;91C8:k4H550?!c12jo0eio50;9j`g<722coo7>5;n34`?6=3th8::4?:583>5}#90;1=>>4H55f?M20;2.n:784iec94?=nlk0;66gkc;29?j70l3:17pl<5083>1<729q/=4?51228L11b3A>5;|`07`<72=0;6=u+1839566<@==n7E:83:&f2?0>ock3:17b?8d;29?xd51k0;684?:1y'5<7=9:;0D99j;I647>"b>38?7djn:188mad=831bhn4?::kg`?6=3f;5;|`1<=<72<0;6=u+1839567<@==n7E:83:&f2?433`nj6=44ie`94?=nlj0;66gkd;29?j70l3:17pl=2483>6<729q/=4?513d8L11b3A>5<7s-;2=7?=f:J73`=O<>90(h85229j`d<722con7>5;n34`?6=3th9>54?:583>5}#90;1=>>4H55f?M20;2.n:7?i;hfb>5<>i6?m0;66sm1b494?2=83:p(<7>:013?M20m2B?;>5+e782b>oci3:17djm:188mae=831d=:j50;9~f61329086=4?{%3:5?75n2B?;h5G4618 `0=9;1bhl4?::kgf?6=3f;5;|`1fa<72;0;6=u+183957c<@==n7E:83:&f2?753`nj6=44o05g>5<52;294~"6180:>h5G46g8L1143-o=6<<4iec94?=h9>n1<75rb3`:>5<5290;w)?61;31a>N3?l1C8:=4$d4957=nlh0;66a>7e83>>{e:k=1<7<50;2x 4?6288n7E:8e:J736=#m?0:>6gka;29?j70l3:17pl=b483>7<729q/=4?513g8L11b3A>7>50z&2=4<6:l1C8:k4H550?!c12880eio50;9l52b=831vn?l>:181>5<7s-;2=7?=e:J73`=O<>90(h85139j`d<722e:;i4?::a6d`=8381<7>t$0;2>44b3A>5;n34`?6=3th85<4?:383>5}#90;1=?k4H55f?M20;2.n:7?=;hfb>5<90826`=O<>o0D99<;%g5>4493;9i6F;7d9K025<,l<1=?5fd`83>>i6?m0;66sm39`94?4=83:p(<7>:00f?M20m2B?;>5+e7826>oci3:17b?8d;29?xd4000;6?4?:1y'5<7=9;o0D99j;I647>"b>3;97djn:188k41c2900qo=77;296?6=8r.:5<4>2d9K02c<@==87)k9:008mag=831d=:j50;9~f6>229096=4?{%3:5?75m2B?;h5G4618 `0=9;1bhl4?::m23a<722wi?5=50;094?6|,83:6<N3?:1/i;4>2:kge?6=3f;5;|`0<4<72;0;6=u+183957c<@==n7E:83:&f2?753`nj6=44o05g>5<52;294~"6180:>h5G46g8L1143-o=6<<4iec94?=h9>n1<75rb2;`>5<5290;w)?61;31a>N3?l1C8:=4$d4957=nlh0;66a>7e83>>{e:ok1<7=50;2x 4?6288m7E:8e:J736=#m?09?6gka;29?lbe2900c<9k:188yg4aj3:1?7>50z&2=4<6:o1C8:k4H550?!c12;90eio50;9j`g<722e:;i4?::a6ce=8391<7>t$0;2>44a3A>5;hfa>5<90826c=O<>o0D99<;%g5>75>i6?m0;66sm2gg94?5=83:p(<7>:00e?M20m2B?;>5+e7817>oci3:17djm:188k41c2900qo2g9K02c<@==87)k9:318mag=831bho4?::m23a<722wi?=>50;194?6|,83:6<N3?:1/i;4=3:kge?6=3`ni6=44o05g>5<53;294~"6180:>k5G46g8L1143-o=6?=4iec94?=nlk0;66a>7e83>>{e:o=1<7=50;2x 4?6288m7E:8e:J736=#m?09?6gka;29?lbe2900c<9k:188yg55m3:197>50z&2=4<6;81C8:k4H550?!c12m<0eio50;9j`g<722coo7>5;hfg>5<908274=O<>o0D99<;%g5>77>ock3:17djk:188k41c2900qo=85;297?6=8r.:5<4>2g9K02c<@==87)k9:008mag=831bho4?::m23a<722wi>k750;094?6|,83:6<<6;I64a>N3?:1bh44?::m23a<722wi?;h50;094?6|,83:6<<6;I64a>N3?:1bh44?::m23a<722wi??m50;794?6|,83:6<=<;I64a>N3?:1/i;4=1:kge?6=3`ni6=44iea94?=nlm0;66a>2c83>>{e:;>1<7850;2x 4?628997E:8e:J736=#m?09:6gka;29?lbe2900eim50;9j`a<722e:>o4?::m23a<722wi=n<50;494?6|,83:6<==;I64a>N3?:1/i;4=6:kge?6=3`ni6=44iea94?=nlm0;66a>2c83>>i6?m0;66sm44c94?>0290;wE:83:&2=4<60?1Q884n{8813?`=9?0:87?l:02952<6=3;o6p*>2987?!bb2<1/hk4:;%g3>0=#m80>7)k=:49'a6<23-o?685+cc8`b>"b?3?0(h655:&f=?3<,lk196*jb;78 `e==2.nh7;4$dg91>"bn3?0(k>55:&e5?3<,o8196*i3;78 c2==2.m97;4$g491>"a?3?0(k655:&e=?3<,ok196*ib;78 ce==2.mh7;4$gg91>"an3?0(<>?:49'557==2.:"68?0>7)??7;78 46?2<1/==755:&24d<23-;;n7;4$02`>0=#99n196*>0d86?!77n3?0("69?0>7)?>7;78 47?2<1/=<755:&25d<23-;:n7;4$03`>0=#98n196*>1d86?!76n3?0(<?4:;%317?3<,88?685+13791>"6:?0>7)?=7;18 4>e2=80(h;55:&2<47?77:&73<<60>1e5h4?;oa3>5=i9121=?5a19;961=i<>k1=?5a46`961=#kj0hj6*>8d87?l2f2900e9l50;9j020=831bol4?::k;6=8083?>o4=3:1(<6=:248j4>62810e>:50;&2<7<4>2d:4<4=;:k07?6=,8296>84n0:2>6=83802>h6080?76g<1;29 4>52:<0b<6>:498m66=83.:4?4<6:l2<4<132c9j7>5$0:1>60808;?>o5l3:1(<6=:248j4>62010e9?50;&2<7<382d:4<4?;:k0b?6=,82969>4n0:2>4=83874>h6080976g52=:0b<6>:298m6e=83.:4?4;0:l2<4<332c8n7>5$0:1>168085?>o413:1(<6=:528j4>62>10e>650;&2<7<382d:4<47;:k6e?6=,8296874n0:2>5=8386=>h6080:76g:7;29 4>52<30b<6>:398m00=83.:4?4:9:l2<4<432c>97>5$0:1>0?56`>8086?>o1;3:1(<6=:4;8j4>62?10e;<50;&2<7<212d:4<48;:k55?6=,8296874n0:2>==8386=>h6080276g:f;29 4>52<30b<6>:`98m0c=83.:4?4:9:l2<4h7>5$0:1>0?56`>808g?>o2j3:1(<6=:4;8j4>62l10e8=50;&2<7<212d:4<4i;:k;3?6=,8296584n0:2>5=838;2>h6080:76am8;29 4>52k=0b<6>:198kg0=83.:4?4m7:l2<4<632ei87>5$0:1>g18080?>ie:3:1(<6=:c58j4>62=10co?50;&2<73=838a3>h6080<76ane;29 4>52k=0b<6>:998kdb=83.:4?4m7:l2<4<>32ejo7>5$0:1>g1808a?>if13:1(<6=:c58j4>62j10cl650;&2<7`=838a3>h6080m76an5;29 4>52k=0b<6>:028?jg3290/=5<5b69m5=7=9810cl=50;&2<72:9le7<72-;3>7l8;o3;5?7432ej=7>5$0:1>g15<#9181n:5a193950=838a3>h6080::65`bd83>!7?:3h<7c?71;34?>iel3:1(<6=:c58j4>628207bll:18'5=4=j>1e=5?51898kgd=83.:4?4m7:l2<4<6i21dnl4?:%3;6?d03g;3=7?m;:ma=?6=,8296o94n0:2>4e<3fh>6=4+1909f2=i91;1=i54o`c94?"60;0i;6`>8082a>=h1o0;6)?72;`4?k7?93;m76al8;29 4>52j=0b<6>:198kf0=83.:4?4l7:l2<4<632eh97>5$0:1>f18080?>od13:17d?7f;29?l20?3:17d9k:18'5=4=?j1e=5?50:9j3g<72-;3>79l;o3;5?7<3`=26=4+19093f=i91;1>65f7983>!7?:3=h7c?71;18?l10290/=5<57b9m5=7=<21b;;4?:%3;6?1d3g;3=7;4;h56>5<#9181;n5a19392>=n?=0;6)?72;5`?k7?93=07d9<:18'5=4=?j1e=5?58:9j37<72-;3>79l;o3;5??<3`=:6=4+19093f=i91;1m65f7183>!7?:3=h7c?71;`8?l0b290/=5<57b9m5=7=k21b:i4?:%3;6?1d3g;3=7j4;h4`>5<#9181;n5a1939a>=n>k0;6)?72;5`?k7?93l07d8n:18'5=4=?j1e=5?51198m3?=83.:4?48c:l2<4<6921b:54?:%3;6?1d3g;3=7?=;:k53?6=,8296:m4n0:2>45<3`<=6=4+19093f=i91;1=954i7794?"60;080821>=n0=0;6)?72;5`?k7?93;=76g73;29 4>52>i0b<6>:058?l>5290/=5<57b9m5=7=9110e5?50;&2<7<0k2d:4<4>9:9j<5<72-;3>79l;o3;5?7f32c5$0:1>2e5<#9181;n5a19395f=k1<7*>8384g>h6080:h65f6g83>!7?:3=h7c?71;3f?>o1<3:1(<6=:6a8j4>628l07d6l:18'5=4=0k1e=5?50:9j76m;o3;5?7<3`226=4+190965`9583>!7?:3387c?71;28?j?5290/=5<5929m5=7=921d5<4?:%3;6??43g;3=7<4;n;3>5<#91815>5a19397>=h0o0;6)?72;;0?k7?93>07b6j:18'5=4=1:1e=5?55:9l=a<72-;3>77<;o3;5?0<3f3h6=4+1909=6=i91;1;65`9c83>!7?:3387c?71;:8?j?f290/=5<5929m5=7=121d544?:%3;6??43g;3=7o4;n;;>5<#91815>5a1939f>=h1>0;6)?72;;0?k7?93i07b79:18'5=4=1:1e=5?5d:9l=0<72-;3>77<;o3;5?c<3f2o6=4+1909=6=i91;1j65`c283>!7?:3i97c?71;28?je6290/=5<5c39m5=7=921v8;i:185[32n279;84kb:?136X2981U9;84^431?[2><2T?5>5Q4808Z1?63W>2<6P;8g9]0=c80R89>;_744>X2>o1U9;k4^44g?[31k2T>:o5Q57c8Z00>3W?>o6P:5c9]10g;3?o0o;63;68864>;3=l0><63;69864>;3>>0><63;67864>;3?80><63;71864>;5jj0>>63=b`866>;5j10>>63=b7866>;5j=0>>63=b3866>;5j90>>63=ad866>;5mm0:4l52287917=::0>19?52281917=::0819?52283917=::1819?52293917=::1:19?5226d917=::>o19?52382917=:;1o19?5239a917=:;1k19?5239:917=:;1<19?52396917=:;1819?52392917=:;:>19?52327917=:;:<19?52325917=:;:219?52355917=:;=219?5235;917=:;=k19?5235`917=:;11034>>m79k;<66e?1e34>>m796;<66e?1?34>>m798;<66e?1134>>m79:;<66e?1334>>m79<;<66e?1534>>m79>;<66e?1734>>m78j;<66e?0c34>>m78l;<66e?0e34>>m78n;<66e?0>34>>m787;<66e?0034>>m789;<66e?0234>>m76;;<66e?>434>>m76=;<66e?>634>>m76?;<66e?1a34>>m79j;<66e?1f34>>m78i;<66e?0334>>m76l;<66e?>f34>>m766;|q02f<72;qU8594=24`>4>33ty>:<4?:2y]137<5=<26<6<;<66a?7?;2wx>:950;0xZ061348<;7?74:p122=839pR89;;<140?bf349<97jn;|q616<72?2pR8;<;<0b6?2134>=<7:9;<66b?2134>>i7:9;<65=;7:9;<652?21348::7:9;<021?21348:87:9;<027?21348:>7:9;<025?21348:<7:9;<03b?21348;i7:9;<056?21348==7:9;<054?21348>j7:9;<06a?21348>h7:9;<06g?21348>n7:9;<06e?21348><7:9;<07b?21348?i7:9;<07`?21348?o7:9;<07f?21348?m7:9;<07=?21348?47:9;<073?2134;o47:9;<3g3?2134;o:7:9;<3g1?2134;o87:9;<3g7?2134;o>7:9;<3g5?2134;o<7:9;<0g=?21348o47:9;<0g3?21348o:7:9;<0g1?21348o87:9;<0g6?21348o=7:9;<0g7?21348nn7:9;<0fe?21348n57:9;<0f9i7:9;<61`?2134>9o7:9;<61f?2134>9m7:9;<619;7:9;<612?2134>997:9;<610?2134>9?7:9;<616?2134>9=7:9;<614?2134>:j7:9;<62`?2134>:o7:9;<62f?2134>:m7:9;<62=?2134>:47:9;<623?2134>::7:9;<621?2134>:87:9;<601?2134>887:9;<607?2134>8>7:9;<605?2134>8<7:9;<61=?2134>:i7:9;<627?2134>:>7:9;<66e?2e3ty8;<4?:3y]15e<5:=:6<6;;|q62=<72?8pR887;<65f?2134>=57:9;<65e?2134><=7:9;<644?2134;i87:9;<3a7?2134;i>7:9;<3a5?2134;i<7:9;<3bb?2134;ji7:9;<3b`?2134;jo7:9;<3eg?2134;mn7:9;<3ee?2134;m57:9;<3e7:9;<00g?213488n7:9;<00e?21348857:9;<00l4?:3y]167<5:8j6<6;;|q0b3<72;qU8i74=53a>4>33ty8j84?:3y]0a><5=;j6<6;;|q0b1<72;qU8i94=53:>4>33ty8j>4?:3y]0a0<5=;36<6;;|q0b7<72;qU8i;4=534>4>33ty8j<4?:3y]0a2<5=;=6<6;;|q0b5<72;qU8i<4=536>4>33ty8ik4?:3y]0a7<5=;?6<6;;|q754<72;qU8i>4=516>4>33ty?==4?:3y]0f`<5=9?6<6;;|q74c<72;qU8nk4=510>4>33ty?4>33ty?4>33ty?<94?:3y]0f?<5=;n6<6;;|q0b<<72;qU8n94=530>4>33ty8ih4?:3y]0f0<5=;96<6;;|q74d<72;qU8n;4=50e>4>33ty?<44?:3y]0f2<5=8n6<6;;|q74=<72;qU8n=4=50g>4>33ty?<:4?:3y]0f4<5=8h6<6;;|q743<72;qU8n?4=50a>4>33ty?<84?:3y]0f6<5=8j6<6;;|q746<72;qU8oh4=50;>4>33ty?4>33ty?<=4?:3y]0ac<5=8>6<6;;|q0bc<72;qU8ij4=507>4>33ty8jh4?:3y]0ae<5=886<6;;|q0ba<72;qU8il4=501>4>33ty8jn4?:3y]0ag<5=8:6<6;;|q0bg<72;qU8i=4=503>4>33ty8jl4?:3y]0f><5=;m6<6;;|q0b=<72;qU8oj4=53g>4>33ty8j:4?:3y]0ge<5=;h6<6;;|q7f7<72;qU8l>4=57b>=1i<7>52z\7=c=:<5<5sW>2i63;5`86<>{t7}Y<0i019;n:448yv2fk3:1>vP;9c9>00g==<1v9om:181[2>i27?9l4:4:p0dg=838pR976;<66e?043ty?no4?:3y]0d><5=?j6;<4}r6ae?6=:rT?m:5244c9<0=z{=h26=4={_6b2>;3=h0==6s|4c:94?4|V=k>70::a;43?xu3j>0;6?uQ4`68913f2>m7;l;|q7f6<72;qU8464=57b>0dj57>52z\7=2=:<5rs01:>53<7?8f:?1f`<31279mh4;9:?1a`<2:279ii4;9:?1=4<31279;h4;9:?0=7<312784=4;9:?071<312788:4;9:?01a<312wx>l=50;0x97g52<:01?o;:05g?xu3><0;6<6t=3c1>4>434>=47?74:?1`<<3k279h54;c:?1`2<3k279h;4;c:?1`0<3k279h94;c:?1`7<3k279h<4>829>6a5=hl54b9>6`g=h754b9>6`>=h954b9>6`0=h;54b9>6`2=h=54b9>620=91901?98:0:0?84093>h70<80;6`?xu5i;0;69u22`095=2<5;=86ij4=57`>ag<5;;3>;0om6s|47c94?5|5=4=54:>11<5=<63;5d82<1=:5<4s4>=57?74:?72d<2827?:i4kb:p037=83>p1987:0:0?821?3;3?63;6782<6=::5a897772=i01?>i:5a8976b2=i01?8=:5a897062=i01?8?:5a8973a2=i01?;j:5a8973c2=i01?;l:5a8973e2=i01?;n:5a897372=i01?:i:5a8972b2=i01?:k:5a8972d2=i01?:m:5a8972f2=i01?:6:5a8972?2=i01?:8:5a894b?2=i01:5a894b72=i0q~:93;2962}:4>234>9i7?75:?76a<60<168?m51978914e282>70:=a;3;1>;3:10:485243595=3<5=8=6<6:;<611?7?=27?>94>849>075=91?019<=:0:6?82593;3963;2182<0=:<8l1=5;4=53g>4>234>:o7?75:?75g<60<168282>70:>8;3;1>;39>0:485240495=3<5=;>6<6:;<620?7?=27??84>849>062=91?019=<:0:6?824:3;3963;3082<0=:<::1=5;4=50:>4>234>:i7?75:?756<60<168<<51978913d2mh019;n:0;3?xu3>j0;6>u246395=5<5==;6<6<;<65`?70l2wx8;h50;1082093;3863<1687g>;49o0?o63<1d87g>;49m0?o63<1b87g>;49k0?o63<1`87g>;4900?o63<1987g>;49?0?o63;4jk0?o6318n523e390f=:;jl1=5=4=2f3>1e<5:n969m4=2f0>1e<5:n=69m4=2f7>1e<5:n>69m4=2f4>1e<5:n369m4=2ce>1e<5:kn69m4=2`3>1e<5:kh69m4=2ca>1e<5:ko69m4=2c:>1e<5:k36<6<;<1be?2d349j;7?73:?0af<3k278io4;c:?0ad<3k278i44;c:?0a=<3k278i:4;c:?0a3<3k278i84;c:?0a1<3k278i>4;c:p03c=838jw0:80;3;0>;6j=0?o63>b287g>;6j;0?o63>b087g>;6j90?o63>ag87g>;6il0?o63>ae87g>;6ij0?o63>fb87g>;6nk0?o63>f`87g>;6n00?o63>f987g>;6n>0?o63>f787g>;6n<0?o63>f587g>;6mh0?o63>e887g>;6m10?o63>e687g>;6m?0?o63>e487g>;6m=0?o63>e287g>;6m;0?o63=3b87g>;5;k0?o63=3`87g>;5;00?o63=3987g>;5;>0?o63=3787g>;5;<0?o63=3587g>;5;:0?o63<2`87g>;4?90?o63<7087g>;4>j0?o6s|24;94?3|5;;=68>4=341>4>3348:47jm;<02e?bf348:o7jk;|q14a<72:q6><85196897?a2mk01?6l:ec8yv46?3:1>v3=14864>;5910:;i5rs32`>5<4s48:97?74:?1=`6}::8>1=5:4=3;f>ab<5;2i6ij4}r02f?6=>r79=>4:0:?15f<6?m16>676=lh16>?<5db9>672=lm1v?>n:180846;3;3863=9e8gf>;50h0on6s|20f94?4|5;;968>4=33f>41c3ty9<44?:2y>644=91>01?7k:ef897>f2mn0q~<>f;296~;5980><63=21823a=z{;:36=4<{<025?7?<2795n4kb:?1<<??50;0x97772<:01?<=:05g?xu58>0;6>u220295=2<5;3h6ij4=3::>ab52z?14c<28279>84>7e9~w7612908w0;51k0on63=898gf>{t:;=1<706<5;836<9k;|q140<72:q6>=k5196897?e2mn01?67:ef8yv7a;3:19v3>b5864>;6nj0:49521c49`g=:9k21hl521cc9`a=z{8ki6=4:{<3a0?7?<278:o4ka:?010ae<5:>96im4=222>ad52z?2f7<2827:n54>7e9~w4g>290>w0?m2;3;0>;4>h0om63<558ge>;4<80om63<018gf>{t9k31<78t=0`2>06<58hj6<9k;<3ag?be34;ii7jn;<3`4?bd34;h>7jk;|q2e=<72;;:ea896262mi01?hi:e`8yv7ej3:1>v3>b1864>;6jj0:;i5rs0c4>5<2s4;i<7?74:?02<4ka:?005a783>0}:9hl1=5:4=24:>ae<5:?86im4=263>ae<5;lo6il4}r3ab?6=:r7:mh4:0:?2g5<6?m1v;4=;0om63<3g8ge>;5nj0on6s|1b394?4|58ko68>4=0a0>41c3ty:m94?:4y>5db=91>01>87:ea896352mi01>=i:ea897`e2mh0q~?l5;296~;6ij0><63>c7823a=z{8k86=4:{<3bg?7?<278::4ka:?0149850;0x97052<:01?;?:0:7?xu5<<0;6?u2273915=::=l1=5:4}r06859>64>=lh16>64e=lj1v?:;:18184183?;70<;e;3;0>{t:<=1<7=t=343>4>3348:m7jl;<02g?be3ty98>4?:3y>60`==916>9j51968yv42>3:1>v3=5g82<1=::8i1hl5rs361>5<5s48>i7;?;<07g?7?<2wx>8;50;7x973b282?70<>e;fb?84583ni70<=2;fg?845<3nh7p}=4083>7}::87>54z?11a<60=16>?>5db9>674=lh16>?:5dc9~w7272909w0<:c;73?843i3;386s|24194?5|5;?h6<6;;<016?be348987jn;|q17c<72;q6>8l5519>61?=91>0q~<:2;297~;5=k0:49522379`d=::;21ho5rs31f>5<5s48>m7;?;<078?50;0x973f282?70<=8;fb?xu6m80;6?u21ga915=:9lk1=5:4}r3f4?6=:r7:jo4:0:?2a<<60=1vb78ge>;6j10on63>b`8gg>{t9ml1<706<58o36<6;;|q2b4<72:q6=ko5196894d?2mi01v3>f8864>;6m>0:495rs0d3>5<5s4;m57?74:?2fdad<58i;6ij4=0a1>ae52z?2b2<2827:i84>859~w4cb290?w0?i7;3;0>;6jl0oo63>c18ge>;6k;0on6s|1e`94?4|58l=68>4=0g7>4>33ty:ii4?:2y>5c0=91>01<63>e282<1=z{8oh6=4<{<3e1?7?<27:o>4ka:?2g3:181843n3?;70<{t:::1<706<5;9j6<6;;|q16c<72;q6>9j5519>66?=91>0q~<=e;296~;5<63=3982<1=z{;8o6=4={<07f?373488;7?74:p67e=838p1?:n:4289751282?7p}=2c83>7}::=319=5222795=252z?10=<28279?94>859~w74>2909w0<;7;73?844;3;386s|22f94?7|5;><6<6;;|q2gc<72;q6=ho5519>5a>=91>0q~?le;296~;6m00><63>d682<1=z{8io6=4={<3fcc83>7}:9l<19=521e695=252z?2a0<2827:h>4>859~w4e>2909w0?j4;73?87c:3;386s|1b:94?4|58o868>4=0f2>4>33ty:o:4?:3y>5`4==916=i>51968yv4b:3:19v3>d9864>;5mk0:49521809`d=::1i1ho5244c904=z{8lo6=4={<3g3?3734;2>7?8d:p5cc=838p1fg83>7}:9m?19=52186952b52z?2`1<2827:584>7e9~w7662909w0?k3;73?87>>3;4=0;4>41c3ty9<>4?:3y>5a7==916=46516f8yv47<3:1>v3>d1864>;6100:;i5rs2g1>5<3s488o7;?;<1fg?7?<27:5l4ka:?71d<4?2wx>;=50;0x975e2<:01<7n:05g?xu5>=0;6?u222c915=:90h1=:j4}r051?6=:r79?44:0:?2=f<6?m1v?89:18184403?;70?6d;34`>{t:?=1<706<583n6<9k;|q12=<72;q6>>85519>5<`=9>n0q~<99;296~;5;<0><63>a1823a=z{;43|5;n26994=3f;>11<5;n<6994=3f5>11<5;n>6994=3f7>11<5;n96994=3f2>11<5;n86994=3ga>11<5;oj6994=3g:>11<5;o36994=3g4>11<5;o=6994=3g6>11<5;o?6994=3g0>11<5=?h6im4=34`>41c348j87jm;|q1ea<72;q6>i75519>6f0=9>n0q~p1?j7:0:7?84bi3?;70<6e;fb?84el3nj7p}=ac83>7}::m=19=522b6952b54z?1`2<60=16>h75519>6ol5d`9~w7gf2909w06a3==916>n<516f8yv4dk3:18v3=d482<1=::l=19=5228f9`f=::k=1hl5rs3c;>5<5s48o87;?;<0`5?70l2wx>nl50;6x97b3282?70k3nj70859>6`2==916>4l5d`9>6g7=lh1v?o::18184c93?;70{t:j21<7:t=3f2>4>3348n?7;?;<0:f?bd348jj7jn;|q1e2<72;q6>i=5519>6f6=9>n0q~348io7?8d:p6f1=838p1?m9:00b?84d?3;6974=3``>1?<5;hj6<9k;|q1fa<72:q6>n;513c897dd282j70{t:k21<7=t=3a7>1?<5;hj6974=3`;>41c3ty9no4?:2y>6f2=9;k01?ln:0:b?84ej3;1?<5;h=6<9k;|q1f<<72:q6>n=513c897d?282j70{t:k>1<7=t=3a1>1?<5;h=6974=3`7>41c3ty9n:4?:2y>6f4=9;k01?l9:0:b?84e?3;1?<5;h96<9k;|q1f0<72:q6>n?513c897d3282j70{t:k:1<7=t=3a3>1?<5;h96974=3`3>41c3ty9n>4?:2y>6f6=9;k01?l=:0:b?84e;3;1?<5;kn6<9k;|q1f4<72:q6>oh513c897d7282j70{t:hl1<7=t=3`f>44f348ji7?7a:?1ec<6?m1v?k>:18684bi3;3863>928ge>;61;0on63=8c8ge>;3=h08j6s|2d294?3|5;o26<6;;<3:0?bf34;2?7jm;<0;f?bd34>>m7=j;|q1`c<72h65196894?22mk01<7;:e`897>f2mk019;n:2f8yv4cm3:19v3=e682<1=:90<1hl521879`g=::1k1hn5244c97f=z{;no6=4:{<0f2?7?<27:5:4ka:?2=3im50;7x97c2282?70?68;fb?87>?3ni70<79;f`?822i39j7p}=dc83>0}::l>1=5:4=0;:>ag<58336il4=3:;>ag<5=?j6>74}r0ge?6=4>859>5565db9>00g=;11v?97:180840>3?;70<87;73?84013;627==916>:=516f8yv41n3:1:v3=7082<1=::>?1hn522619`f=::>31hn5227f9`d=::?i1hi5rs357>5<5s48<<7;?;<041?70l2wx>;k50;4x9717282?70<85;fb?840;3ni70<89;fa?841l3ni70<9c;f`?xu5n?0;6?u231090<=::o<1=:j4}r0e3?6=:r782`9>6c1=9>n0q~==0;296~;48;0:;i52305915=z{;l>6=4<{<13f?2>348m:7:6;<0e1?70l2wx?=?50;1x966e288j70;4880:;i5rs20:>5<5s49;n7?8d:?05c<282wx?nj50;7x97`12<801>j8:0:7?85bj3?;70=;2;fg?85793nj7p}=f583>6}:;9k184522g790<=::o>1=:j4}r134?6=;r782`9>6c3=91k01>>?:05g?xu4:10;6?u231c952b<5:;n68>4}r1`g?6==r79j84:2:?0`3<60=16?ho5519>717=lk16?=>5d`9~w7`42908w0=?9;6:?84a<3>270{t:ol1<7=t=22:>44f348m87?7a:?1bc<6?m1v><8:18185713;{t;jh1<7;t=3d7>04<5:n>6<6;;<1f=?37349?=7jk;<0eb?bf3ty9j?4?:2y>75>=<016>k=5489>6c4=9>n0q~l522g195=g<5;ln6<9k;|q063<72;q6?=6516f8967d2<:0q~=la;291~;5n:0>>635<4s49;;7:6;<0e6?2>348m=7?8d:p6cb=839p1>>8:00b?84a:3;3m63=fe823a=z{:8>6=4={<133?70l278=o4:0:p7f?=83?p1?h=:40896b4282?70=j7;73?85383no70u231490<=::o;184522g2952b53z?043<6:h16>k?519c897`d28=o7p}<2583>7}:;9<1=:j4=23b>0655z?1b4<2:278h?4>859>7`0==916?>h5dc9>6ce=lh1v?ki:180857=3>2706<7e9~w6442909w0=?5;34`>;4900><6s|3b594?3|5;l;68<4=2f2>4>3349n97;?;<10b?bc348mn7jn;|q1a`<72:q6?=:5489>6``=<016>hk516f8yv4ai3:1?v3<05826d=::ll1=5o4=3db>41c3ty8>?4?:3y>752=9>n01>?7:428yv5d>3:19v3=eg866>;4l90:49523d6915=:;:o1ho522gc9`d=z{;oo6=4<{<137?2>348ni7:6;<0f`?70l2wx>k650;1x9664288j70;5n00:;i5rs202>5<5s49;?7?8d:?053<282wx?::50;0b84bl3?970=md;64?85ej3><70=mc;64?85em3><70=mf;64?85d:3><70=l0;64?85d93><70=l3;64?85d<3><70=k1;64?85dn3><70=k0;64?85c:3><70=k3;64?85c>3><70=k4;64?85c=3><70=k7;64?85c03><70=nf;64?85fm3><70=m0;64?85fk3><70=nb;64?85fl3><70=n9;64?85f03><70=na;64?85f?3><70=jc;64?85bj3><70=ja;64?85b13><70=j8;64?85b?3><70=j6;64?85b=3><70=j4;64?85b;3><70=85;34`>{t;9i1<74>33499h7jn;|q050<72;q6?4;296~;49l0:495233a9`a=z{:;86=4={<12`?7?<278>n4kc:p744=838p1>?l:0:7?855k3ni7p}<1083>7}:;8h1=5:4=20`>ag52z?05d<60=16??j5dc9~w66a2909w0=>9;3;0>;4:l0om6s|31g94?4|5:;36<6;;<11a?be3ty8740=91>01>;4>j0?;63<6g823a=z{:8i6=4={<11e?373499h7?8d:p6<6=838p1?7::5;897?328=o7p}=9`83>7}::0?1=5o4=3;e>41c3ty9m<4?:3y>6<3=9>n01?o;:ec8yv4?n3:1>v3=9587=>;51:0:;i5rs3;:>5<5s48287?7a:?1=`<6?m1v?6j:18184>;3>270<62;34`>{t:021<74>f3482h7?8d:p6=b=838p1?7=:5;897?628=o7p}=9683>7}::081=5o4=3;`>41c3ty95;4?:3y>6<7=91k01?7m:05g?xu5?m0;6?u229090<=::1;1=:j4}r0;3?6=:r794?4>8`9>6=e=9>n0q~3483<7?8d:p6=0=838p1?6>:0:b?84?j3;41c3ty9484?:3y>6=6=91k01?6n:05g?xu5?h0;6?u226d90<=::>o1=:j4}r0;0?6=:r79;k4>8`9>6=?=9>n0q~<73;296~;5?l0:4l5229:952b54z?0fa<28278m44>859>73>=lm16?5;5d`9~w6d42908w0=md;3;0>;4l80><63<538g`>{t;0n1<7:t=2`a>06<5:k<6<6;;<153?bd3493=7jn;|q0f4<72:q6?ol5196896ea2<:01>;>:ea8yv5>m3:18v3;4i10:49523759`g=:;191hl5rs2`1>5<4s49io7?74:?0`5<282789<4kb:p7d6=83>p1>lj:42896gf282?70=98;fa?85??3nj7p}6}:;ko1=5:4=2f1>06<5:?96il4}r1b5?6=7=?=lh1v>l::18085en3;3863;4=:0oh6s|3`694?2|5:i968>4=2cf>4>3349=m7jm;<1;b?bf3ty8n54?:2y>7f4=91>01>j9:42896332mh0q~=n2;290~;4k90><63ok:0:7?851i3no70=7d;fb?xu4j>0;6>u23b395=2<5:n>68>4=277>ab54z?0g6<28278mk4>859>73d=lm16?4?5d`9~w6d>2908w0=l3;3;0>;4l>0><63<548g`>{t;h<1<7:t=2a7>06<5:h;6<6;;<15f?be3492o7jn;|q0fd<72:q6?n:5196896b?2<:01>;::e`8yv5d=3:18v35<3s49o47?74:?0af<282788?4kb:?1b27n:05g?xu4?m0;6?u23`g915=:;031=:j4}r14b?6=:r78n=4:0:?0=g<6?m1v>9m:18185fk3?;70=67;34`>{t;>k1<706<5:3=6<9k;|q03f<72;q6?lj5519>7<>=9>n0q~=88;296~;4i00><63<95823a=z{:=<6=4={<1bon:42896?228=o7p}<7783>7}:;h=19=52380952b52z?0=g<312785=4>7e9~w6?d2909w0=6b;31e>;41j0:;i5rs2:f>5<4s492m7:6;<1:4?2>3493i7?8d:p7<7=839p1>7n:00b?85>83;3m63<90823a=z{:2h6=4<{<1:=?2>3493i7:6;<1;g?70l2wx?5h50;1x96?>288j70=7e;3;e>;40o0:;i5rs2:b>5<4s49247:6;<1;g?2>3493m7?8d:p7=b=839p1>77:00b?85?k3;3m63<8e823a=z{:236=4<{<1:3?2>3493m7:6;<1;;40k0:;i5rs2:5>5<4s492:7:6;<1;3493:7?8d:p7=?=839p1>79:00b?85?03;3m63<88823a=z{:2?6=4<{<1:1?2>3493:7:6;<1;0?70l2wx?5950;1x96?2288j70=76;3;e>;40>0:;i5rs2:1>5<4s49287:6;<1;0?2>3493>7?8d:p7=3=839p1>7;:00b?85?<3;3m63<84823a=z{:2;6=4<{<1:7?2>3493>7:6;<1;4?70l2wx?5=50;1x96?4288j70=72;3;e>;40:0:;i5rs2:2>5<4s492>7?=a:?0<5<60h16?5?516f8yv5b93:18v35<3s49nm7?74:?2=f282?70?6d;fb?87>k3ni70::a;10?xu4ll0;69u23d:95=2<583n6io4=0;g>ad<5=?j6><4}r1g`?6=859>5<`=lh16=4k5dc9>00g=;81v>jl:18785b>3;3863>a18ge>;61o0on63;5`804>{t;mh1<7:t=2g6>4>334;j=7jn;<3b4?be34>>m7:e`8913f2;o0q~=k9;297~;4m:0:49521`09`g=:<i5rs21:>5<5s49887?7a:?07`<6?m1v>=?:181854<3;{t;:k1<74>f3498j7?8d:p767=838p1>=::05g?854>3>27p}<3c83>7}:;:<1=5o4=263>41c3ty8??4?:3y>760=9>n01>=8:5;8yv54k3:1>v3<36827e9>76>=<01v>=k:18185403;3m63<43823a=z{:?=6=4={<104kc:p71e=838p1>:8:0:b?85293;<6<9k;<173ty88i4?:3y>71>=91k01>;=:05g?xu4<=0;6?u235:952b<5:>26974}r17a?6=:r78844>8`9>705=9>n0q~=;5;296~;4<00:;i5235c90<=z{:>m6=4={<17e?7?i278994>7e9~w6212909w0=;a;34`>;4i6<6n;<161?70l2wx?8950;1x962e28=o70=83;fb?851m3nh7p}<6383>7}:;41c3ty8944?:3y>70b=9>n01>;j:5;8yv51;3:1>v3<5d827e9>70`=<01v>8;:181852n3;3m63<68823a=z{:?i6=4={<16b?70l278:=4;9:p733=838p1>8?:0:b?851i3;3ty8:;4?:3y>737=91k01>8m:05g?xu4=10;6?u2373952b<5:4>7e9~w617290?w0=80;3;0>;4?=0on63<748gf>;4>o0o56s|37f94?4|5:4=24f>41c3ty?9i4?:37x914a2==019:55891472==019?i:558917c2==019?l:558917e2==019?n:558917>2==019?7:55891702==019?9:55891722==019?;:55891522==019=;:55891542==019==:55891562==019=?:558914>2==019?j:55891742==019?=:558970c28=o7p};5383>7}:<;l19=5244c9g==z{=?:6=4={<61a?3734>>m7l7;|q715<72;q68?j5519>00g=j?1v9:i:181825k3?;70::a;`7?xu35rs56g>5<5s4>9m7;?;<66e?d53ty?8o4?:3y>07>==91688o5b09~w12f2909w0:=7;73?822i3h;7p};4883>7}:<;<19=5244c9ec=z{=>36=4={<611?3734>>m7m9;|q702<72;q68?:5519>00g=il1v9:9:181825;3?;70::a;cg?xu3<<0;6?u2430915=:<5<5s4>9=7;?;<66e?ge3ty?8>4?:3y>076==91688o5a89~w1252909w0:>f;73?822i3k37p};4183>7}:<8n19=5244c9e2=z{=9m6=4={<62g?3734>>m7o9;|q77`<72;q6800g=k<1v9=k:181826i3?;70::a;c6?xu3;j0;6?u240;915=:<5<5s4>:47;?;<66e?g43ty??l4?:3y>041==91688o5a39~w15>2909w0:>6;73?822i3k:7p};3983>7}:<8?19=5244c9e5=z{=9<6=4={<620?3734>>m7li;|q71<<72;q68>;5519>00g=jl1v9;7:181824<3?;70::a;a7?xu3=>0;6?u2421915=:<5<5s4>8>7;?;<66e?dd3ty?984?:3y>067==91688o5bc9~w1332909w0:<0;73?822i3hj7p};5283>7}:<;319=5244c9f<=z{=>h6=4={<62a?3734>>m7l:;|q704<72;q68<=5519>00g=ih1v9=9:181826:3?;70::a;;e?xu3=k0;6?u244a952b<5=?j6no4}r1f`?6==r78;>4kb:?02`7e9>00g=<><019;n:b;8yv71:3:1>v3=248gf>;5:=0:>o5rs04g>5<5s4;h?7jm;<3`6?75j2wx>?850;0x974?2mi01?<;:05g?xu6k=0;6?u21b49`f=:9j81=:j4}r11g?6=:r78>h4kd:?06f<6:k1v<=7:181855m3;{z{<<:6=4={_755>;3<3?==6*;73822c=z{<<36=4={_75<>;3<3?=46*;738235=z{;3<3?>?6*;738234=z{=h96=4={_6b4>;3<3>j<6*;738201=z{=h;6=4={_6:b>;3<3>2j6*;73820c=z{=km6=4={_6:a>;3<3>2i6*;73821<=z{=kn6=4={_6:`>;3<3>2h6*;73821g=z{=ko6=4={_6:g>;3<3>2o6*;73821f=z{=kh6=4={_6:f>;3<3>2n6*;73821a=z{=ki6=4={_6:e>;3<3>2m6*;73821c=z{=kj6=4={_6:=>;3<3>256*;738225=z{=hi6=4={_6b<>;3<3>j46*;738224=z{=hj6=4={_6b3>;3<3>j;6*;738226=z{=h26=4={_6b2>;3<3>j:6*;738221=z{=h36=4={_6b1>;3<3>j96*;738220=z{=h<6=4={_6b0>;3<3>j86*;738223=z{=h=6=4={_6b7>;3<3>j?6*;738222=z{=h>6=4={_6b6>;3<3>j>6*;73822==z{=h?6=4={_6b5>;3<3>j=6*;73822<=z{=h86=4={_6:<>;3<3>246*;73822d=z{=k26=4={_6:3>;3<3>2;6*;73822g=z{<=?6=4={_740>;3<3?<86*;73822f=z{;3<3?>j6*;73822`=z{=lo6=4={_6g=>;3<3>o56*;738237=z{=li6=4={_6g<>;3<3>o46*;738236=z{=lj6=4={_6g3>;3<3>o;6*;738231=z{=l26=4={_6g2>;3<3>o:6*;738230=z{=l36=4={_6g1>;3<3>o96*;738233=z{=l<6=4={_6g0>;3<3>o86*;738232=z{=l>6=4={_6g6>;3<3>o>6*;73823==z{=l?6=4={_6g5>;3<3>o=6*;73823<=z{=l86=4={_6g4>;3<3>o<6*;73823d=z{=l96=4={_6`b>;3<3>hj6*;73827d=z{=l:6=4={_6`a>;3<3>hi6*;73827g=z{=l;6=4={_6``>;3<3>hh6*;73827f=z{=om6=4={_6`g>;3<3>ho6*;73827a=z{=on6=4={_6`f>;3<3>hn6*;73827`=z{=oo6=4={_6`e>;3<3>hm6*;73827c=z{=oh6=4={_6`=>;3<3>h56*;738205=z{=oj6=4={_6`3>;3<3>h;6*;738204=z{=o26=4={_6`2>;3<3>h:6*;738207=z{=o36=4={_6`1>;3<3>h96*;738206=z{=o<6=4={_6`0>;3<3>h86*;738200=z{=o=6=4={_6`7>;3<3>h?6*;738203=z{=o>6=4={_6`6>;3<3>h>6*;738202=z{=o?6=4={_6`5>;3<3>h=6*;73820==z{=o86=4={_6`4>;3<3>h<6*;73820<=z{=o96=4={_6ab>;3<3>ij6*;73820d=z{=o:6=4={_6aa>;3<3>ii6*;73820g=z{<:?6=4={_6gb>;3<3>oj6*;73820f=z{<:86=4={_6ga>;3<3>oi6*;73820a=z{<:96=4={_6g`>;3<3>oh6*;73820`=z{<::6=4={_6gg>;3<3>oo6*;738215=z{<:;6=4={_6gf>;3<3>on6*;738214=z{=lm6=4={_6ge>;3<3>om6*;738217=z{=ln6=4={_6g7>;3<3>o?6*;738216=z{=l=6=4={_6`<>;3<3>h46*;738211=z{=oi6=4={_6a`>;3<3>ih6*;738210=z{=o;6=4={_6ag>;3<3>io6*;738213=z{<:h6=4={_73g>;3<3?;o6*;738212=z{=2<6=4={_6;3>;3<3>3;6*;73821==z{<:=6=4={_732>;3<3?;:6*;73821d=z{<9:6=4={_705>;3<3?8=6*;73821`=zugko57>52zJ736=zfhnj6=4={I647>{iimh1<7vF;729~jdbb2909wE:83:mea`=838pD99<;|lba5<72;qC8:=4}ocf5?6=:rB?;>5rn`g1>5<5sA>7}O<>90qcoj5;296~N3?:1vblk9:181M20;2wemh950;0xL1143tdji54?:3yK02552zJ736=zfhoj6=4={I647>{iilh1<7vF;729~jdcb2909wE:83:me``=838pD99<;|lbb5<72;qC8:=4}oce5?6=:rB?;>5rn`d1>5<5sA>7}O<>90qcoi5;296~N3?:1vblh9:181M20;2wemk950;0xL1143tdjj54?:3yK02552zJ736=zfhlj6=4={I647>{iioh1<7vF;729~jd`b2909wE:83:mec`=838pD99<;|la45<72;qC8:=4}o`35?6=:rB?;>5rnc21>5<5sA>7}O<>90qcl?5;296~N3?:1vbo>9:181M20;2wen=950;0xL1143tdi<54?:3yK02552zJ736=zfk:j6=4={I647>{ij9h1<7vF;729~jg6b2909wE:83:mf5`=838pD99<;|la55<72;qC8:=4}o`25?6=:rB?;>5rnc31>5<5sA>7}O<>90qcl>5;296~N3?:1vbo?9:181M20;2wen<950;0xL1143td2=l4?:0yK02557>51zJ736=zf0?j6=4>{I647>{i1=j0;65rn841>5<6sA>4}O<>90qc795;295~N3?:1vb489:182M20;2we5;950;3xL1143td2:54?:0yK02551zJ736=zf0{I647>{i1?h1<7?tH550?xh>>j0;65rn851>5<6sA>4}O<>90qc785;295~N3?:1vb499:182M20;2we5:950;3xL1143td2;54?:0yK02551zJ736=zf0=j6=4>{I647>{i1>h1<7?tH550?xh>?j0;65rn8:1>5<6sA>4}O<>90qc775;295~N3?:1vb469:182M20;2we55950;3xL1143td2454?:0yK02551zJ736=zf02j6=4>{I647>{i11h1<7?tH550?xh>0j0;6b290:wE:83:m==`=83;pD99<;|l:=5<728qC8:=4}o;:5?6=9rB?;>5rn8;1>5<6sA>4}O<>90qc765;295~N3?:1vb479:182M20;2we54950;3xL1143td2554?:0yK02551zJ736=zf03j6=4>{I647>{i10h1<7?tH550?xh>1j0;6l3:1=vF;729~j5rn8c1>5<6sA>4}O<>90qc7n5;295~N3?:1vb4o9:182M20;2we5l950;3xL1143td2m54?:0yK02551zJ736=zf0kj6=4>{I647>{i1hh1<7?tH550?xh>ij0;65rn8`1>5<6sA>4}O<>90qc7m5;295~N3?:1vb4l9:182M20;2we5o950;3xL1143td2n54?:0yK02551zJ736=zf0hj6=4>{I647>{i1kh1<7?tH550?xh>jj0;65rn8a1>5<6sA>4}O<>90qc7l5;295~N3?:1vb4m9:182M20;2we5n950;3xL1143td2o54?:0yK02551zJ736=zf0ij6=4>{I647>{i1jh1<7?tH550?xh>kj0;65rn8f1>5<6sA>4}O<>90qc7k5;295~N3?:1vb4j9:182M20;2we5i950;3xL1143td2h54?:0yK02551zJ736=zf0nj6=4>{I647>{i1mh1<7?tH550?xh>lj0;65rn8g1>5<6sA>4}O<>90qc7j5;295~N3?:1vb4k9:182M20;2we5h950;3xL1143td2i54?:0yK02551zJ736=zf0oj6=4>{I647>{i1lh1<7?tH550?xh>mj0;65rn8d1>5<6sA>4}O<>90qc7i5;295~N3?:1vb4h9:182M20;2we5k950;3xL1143td2j54?:0yK02551zJ736=zf0lj6=4>{I647>{i1oh1<7?tH550?xh>nj0;65rn`21>5<6sA>4}O<>90qco?5;295~N3?:1vbl>9:182M20;2wem=950;3xL1143tdj<54?:0yK02551zJ736=zfh:j6=4>{I647>{ii9h1<7?tH550?xhf8j0;65rn`31>5<6sA>4}O<>90qco>5;295~N3?:1vbl?9:182M20;2wem<950;3xL1143tdj=54?:0yK02551zJ736=zfh;j6=4>{I647>{ii8h1<7?tH550?xhf9j0;65rn`01>5<6sA>4}O<>90qco=5;295~N3?:1vbl<9:182M20;2wem?950;3xL1143tdj>54?:0yK02551zJ736=zfh8j6=4>{I647>{ii;h1<7?tH550?xhf:j0;65rn`11>5<6sA>4}O<>90qco<5;295~N3?:1vbl=9:182M20;2wem>950;3xL1143tdj?54?:0yK02551zJ736=zfh9j6=4>{I647>{ii:h1<7?tH550?xhf;j0;65rn`61>5<6sA>4}O<>90qco;5;295~N3?:1vbl:9:182M20;2wem9950;3xL1143tdj854?:0yK02551zJ736=zfh>j6=4>{I647>{ii=h1<7?tH550?xhf5rn`71>5<6sA>4}O<>90qco:5;295~N3?:1vbl;9:182M20;2wem8950;3xL1143tdj954?:0yK02557>51zJ736=zfh?j6=4>{I647>{ii5rn`41>5<6sA>4}O<>90qco95;295~N3?:1vbl89:182M20;2wem;950;3xL1143tdj:54?:0yK02551zJ736=zfh{I647>{ii?h1<7?tH550?xhf>j0;65rn`51>5<6sA>4}O<>90qco85;295~N3?:1vbl99:182M20;2wem:950;3xL1143tdj;54?:0yK02551zJ736=zfh=j6=4>{I647>{ii>h1<7?tH550?xhf?j0;65rn`:1>5<6sA>4}O<>90qco75;295~N3?:1vbl69:182M20;2wem5950;3xL1143tdj454?:0yK02551zJ736=zfh2j6=4>{I647>{ii1h1<7?tH550?xhf0j0;6b290:wE:83:me=`=83;pD99<;|lb=5<728qC8:=4}oc:5?6=9rB?;>5rn`;1>5<6sA>4}O<>90qco65;295~N3?:1vbl79:182M20;2wem4950;3xL1143tdj554?:0yK02551zJ736=zfh3j6=4>{I647>{ii0h1<7?tH550?xhf1j0;6l3:1=vF;729~jd?b290:wE:83:me<`=83;pD99<;|lbe5<728qC8:=4}ocb5?6=9rB?;>5rn`c1>5<6sA>4}O<>90qcon5;295~N3?:1vblo9:182M20;2weml950;3xL1143tdjm54?:0yK02551zJ736=zfhkj6=4>{I647>{iihh1<7?tH550?xhfij0;65rn``1>5<6sA>4}O<>90qcom5;295~N3?:1vbll9:182M20;2wemo950;3xL1143tdjn54?:0yK02551zJ736=zfhhj6=4>{I647>{iikh1<7?tH550?xhfjj0;65rn`a1>5<6sA>4}O<>90qcol5;295~N3?:1vblm9:182M20;2wemn950;3xL1143tdjo54?:0yK02551zJ736=zfhij6=4>{I647>{iijh1<7?tH550?xhfkj0;65rn`f1>5<6sA>4}O<>90qcok5;295~N3?:1vblj9:182M20;2wemi950;3xL1143tdjh54?:0yK025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - + + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.lso b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.lso deleted file mode 100644 index f1a6f7899..000000000 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.lso +++ /dev/null @@ -1,3 +0,0 @@ -blkmemdp_v6_2 -blk_mem_gen_v2_6 -fifo_generator_v4_3 diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt deleted file mode 100644 index f718bb394..000000000 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_fifo_generator_v4_3_xst_1.ngc_xst.xrpt +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - -

- - - - - - - - - - - - - - - -
-
- - - - - - - - - - - -
-
- - - -
-
-
-
-
-
-
-
- - - - -
-
- -
-
- - - - - - - - - - - - - - - - - - - - - -
-
-
- - - - - - - -
-
-
-
-
- - - -
- - - diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ngc b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ngc index 0ce18d60a..f8afe5bb5 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ngc +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ngc @@ -1,3 +1,3 @@ XILINX-XDB 0.1 STUB 0.1 ASCII -XILINX-XDM V1.4e -$5cg4g<,[o}e~g`n;"2*413&;$>"9 > %0:?*rjx&Uhk"hffn]{hk~X=88s?;Q=cmi\73rh91$ekb?40493456712:;<=>?01274>6789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123454<80;0=>5>.130?46=AGZ^X7OKDSC?=?699o1:<7GAPTV9twi`Wlg{xtQ{hsgpl9?=878=7<>5IORVP?vugnUna}zv_ujqavnXizyn~y26:1<12>772@D[YY4rne\ahvsqV~c~h}g_ogdeqc;13:5=n5>0;MVPUSS2{nThlzn_bmvjq:>294:>6?9:HLSQQ112922?IR\Y__6IAN<0794;733821CXZ_UU8gkpr;9>0;2<5=2:020>44;:;:7?4FNQWW>AOWI5;1<3?=;38LQQVR\3ND\L2>:1<26>552@D[YY4KIC>05?699:18>7AZTQWW>AIE4:;1<3?=;249MKVR\3nbb1=::1AIWJ591<3:45E765>053?3?7;76659;077331O3M<564:;34<4<1?>05;86139:>LHW]]0JHI\M<983:4b<13CE\XZ5psmd[cskdV~c~h}g<983:72<13CE\XZ5psmd[cskdV~c~h}g_`qpawr;03:5>956:HLSQQ?=G\^[YY4kauc\gjsi|521<3?m;88LQQVR\3}ySio{a^alqkr;03:546OKDSC?4;>GCL[K78364AEFQE93902KOH_O36?:8EABUI5=546OKDSC?<;gGCL[H78364AEFQF93902KOH_L36?:8EABUJ5=5m6OKDS@?E53JO:>6MGEBI\HLEBFZOTXT^J2:AJ0>EKCH>0OAEM3:AOV<=DGDGBXYKK159@KWCXOLDN^LZFOO]JJCI03JXNMYKK1:F1?AO13MCJ0=08;EKB8469?2NBM1?>>69GMD:6:7=0HDO312<4?AOF48>556JFA=36>5803MCJ0<;16:FJE979>2NBM1<16:FJE959>2NBM1:16:FJE939>2NBM1816:FJE919>2NBM1616:FJE9?9>2NBN1>17:FJF9776>1OEO2>1?58@LD;9;4<7IGM<01=3>BNJ5;?2:5KIC>21;169GMG:617<0HDL31?58@LD;:94<7IGM<33=3>BNJ5892:5KIC>17;1908;EKA8739?2NBN1<9>69GMG:5?7=0HDL329<4?AOE4;35:6JFB=0=3>BNJ59;245KIC>05?69?2NBN1=>>79GMG:46?1OEO2;>79GMG:26?1OEO29>79GMG:06?1OEO27>79GMG:>6>1OE]O30?;8@LVF480;2:5KIQC?5;189GMUD;;3:5;6JFPC>0:3=CGH6;2:5KO@>24;169GKD:6<730HBO31483:2=CGH6:9384DNC?5;0384DNC?7;01OCO2>3?58@JD;9=4<7IAM<07=3>BHJ5;=2:5KOC>23;12NDN1?17:FLF9476>1OCO2=1?58@JD;:;4<7IAM<31=3>BHJ58?2:5KOC>11;1;08;EMA8719?2NDN1<7>69GKG:517<0HBL32?58@JD;;9427IAM<2394;119:FLTD:6294<7IA_A=3=3>BHXK6;2:5KOQ@?5;1@fdzo:7J=4GOF1?L653@;97D<=;H1;?LHN\YU;<55FNHVS[57?3@DBX]Q?299JJLRWW9937D@FTQ]30==NF@^[S=;7;HLJPUY7>11BBDZ__15:?LHN\Z^JXH94IOKW[5603@DBXR>>7:KMMQY7:>1BBDZP0258MKOSW9><7D@FT^263>OIA]U;::5FNHV\421?2CEEYQ?A69JJLRX8K=0ECG[_1A4?LHN\V:O;6GAIU]3A2=NF@^T7:KMMQY6:>1BBDZP1258MKOSW8><7D@FT^363>OIA]U:::5FNHV\521?2CEEYQ>A69JJLRX9K=0ECG[_0A4?LHN\V;O;6GAIU]2A2=NF@^T=K94IOKW[7603@DBXR<>7:KMMQY5:>1BBDZP2258MKOSW;><7D@FT^063>OIA]U9::5FNHV\621?2CEEYQ=A69JJLRX:K=0ECG[_3A4?LHN\V8O;6GAIU]1A2=NF@^T>K94IOKW[6603@DBXR=>7:KMMQY4:>1BBDZP3258MKOSW:><7D@FT^163>OIA]U8::5FNHV\72168;HLJPZ5>?2CEEYQ2F^X?QC4:NVP60JR\=UG96C\GNL6?HS_KPi0Ald`rWgqwliik2Gbbb|Yesqjkk4;;O3341=I998?7C??459M55343G;:86@>1968J47>;2D:>95A1327?K759=1E=?<;;O3171=I9;>?7C?=559M57033G;9;95A13:7?K751:1E=>:4N0130>H6;8>0B<==4:L27623468J451<2D:?:=4N060?K72;2D::>5A1618J4>43G;2?6@=029M645H50:1E>4=4N220?K56;2D8>>5A3218J6243G9>?6@<629M725;N08KN7UNEVID@AG\INL\GMCDC?1XCX\LE69PVSGKWH=0__XNL^@7?VUUI=1X__L;;U[SA64<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?01]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3457XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:9S_k|umv277=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwY`kVrd~=>?3^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\vaYwf}xTknQwos2341YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW{nT|cz}_fa\|jt789?T^h}zlu306>S7'nxm"h gbz-gim'Drd~R|k_qlwvZadWqey<=>9_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]q`Zvi|{UloRv`r1233ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtXzmU{by|Pgb]{kw6781UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=>PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^uq[uhszVmhSua}0122[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYpzVzexQhc^zlv567:VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT{Qnup\cfYg{:;<>Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_vp\tkruWniTtb|?016\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZquWyd~Ril_ymq4562W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{U|~R~ats]dgZ~hz9:;:R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pws]sjqtXojUsc>?06]Qavsk|88:7X> gsd-vc)`kq$h`fv re]sjqtXj`d7=3<>;T2,cw`)zo%lou lljz,vaYwf}xTnd`32?02?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl?7;463\:$kh!rg-dg}(ddbr$~iQnup\flh;<78:7X> gsd-vc)`kq$h`fv re]sjqtXj`d793<>;T2,cw`)zo%lou lljz,vaYwf}xTnd`36?02?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl?3;463\:$kh!rg-dg}(ddbr$~iQnup\flh;078:7X> gsd-vc)`kq$h`fv re]sjqtXj`d753 gsd-vc)`kq$h`fv re]sjqtXj`dT9?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ9219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^514>S7'nxm"h gbz-gim'{nT|cz}_ckm[=473\:$kh!rg-dg}(ddbr$~iQnup\flhX1;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0104?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789::>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123571<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?2005?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt78999;6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0120670<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<9<8;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34526:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?5358Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678<;9:6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}01256f=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;:S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:==;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123371<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<:?=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm30?03?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb>2:76<]9%l~k }f.e`|+ekcq%yhR~ats]dg949:91^<"i}f/pe+be&jf`t"|k_qlwvZad4:49<6[?/fpe*w`(ojr%oaew/sf\tkruWni783328Q5)`zo$yj"ilx/aoo})ulVzexQhc=4=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`828582_;#j|i.sd,cf~)keas#jPpovq[be;078;7X> gsd-vc)`kq$h`fv re]sjqtXoj622>f:W3+bta&{l$knv!cmi{+wbXxg~ySjmP10d8Q5)`zo$yj"ilx/aoo})ulVzexQhc^02b>S7'nxm"h gbz-gim'{nT|cz}_fa\74`<]9%l~k }f.e`|+ekcq%yhR~ats]dgZ26n2_;#j|i.sd,cf~)keas#jPpovq[beX=8l0Y=!hrg,qb*adp'iggu!}d^rmpwY`kV<:j6[?/fpe*w`(ojr%oaew/sf\tkruWniT;f:W3+bta&{l$knv!cmi{+wbXxg~ySjmP9348Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;878=7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh<0<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo585>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>0:70<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlm783<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8085>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk181279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:06;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi38?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`404996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^211>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV;996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^011>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV9996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^611>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV?996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^411>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV=996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^:11>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV3956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2848512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><3<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0>0=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb64=4956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2808512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><7<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0:0=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6414956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f28<8502_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj>_00;?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;T>?64U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4Y4:11^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1^61<>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:S8<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X>;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]46==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R6=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W08>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0106?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw67888>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0306?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw678:8>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0506?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw678<8>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0706?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw678>8>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0902?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?4;463\:$kh!rg-dg}(ddbr${Qnup\flh;978:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d7>3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`33?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?0;463\:$kh!rg-dg}(ddbr${Qnup\flh;=78:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d7:3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`37?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?<;473\:$kh!rg-dg}(ddbr${Qnup\flhX8;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU:>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR<=0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_203?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\076<]9%l~k }f.e`|+ekcq%|~R~ats]amkY2:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV<9<6[?/fpe*w`(ojr%oaew/vp\tkruWkceS: gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?012263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;=?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234475>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>=269V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567:88=7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01113>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:8>?84U1-dvc(un&mht#mcky-tvZvi|{UiecQwos2341403\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=:>279V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567=;=0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?04312>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:=>n5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r123247X[^:9o6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012554YT_88<7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?014163=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;;?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos23427582_;#j|i.sd,cf~)keas#z|Ppovq[be;878;7X> gsd-vc)`kq$h`fv ws]sjqtXoj6:2?>4U1-dvc(un&mht#mcky-tvZvi|{Ulo1<1219V4*aun'xm#jmw.bnh|*quWyd~Ril<2<14>S7'nxm"h gbz-gim'~xT|cz}_fa?0;473\:$kh!rg-dg}(ddbr${Qnup\cf:26;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k5<5>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh0:0=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm38?3e?P6(o{l%~k!hcy,`hn~({U{by|Pgb]35c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[47a3\:$kh!rg-dg}(ddbr${Qnup\cfY59o1^<"i}f/pe+be&jf`t"y}_qlwvZadW:;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU?=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS8?i;T2,cw`)zo%lou lljz,swYwf}xTknQ91g9V4*aun'xm#jmw.bnh|*quWyd~Ril_63e?P6(o{l%~k!hcy,`hn~({U{by|Pgb];63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn6;2?84U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde?5;413\:$kh!rg-dg}(ddbr${Qnup\cfYf{{ol0?0=6:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfc959:?1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyij2;>348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;=78=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<7<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo5=5>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>;:73<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\773<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT8?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\173<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT:?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\373<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT4?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:76;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>2:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2=>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8682?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:36;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>6:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<29>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86<2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:?6;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]36==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012360=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89::>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012160=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:8>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012760=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:>>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012560=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:!re-dv4(un~l#@czx^PBIZTCWLDTJZH[10]277=R8&myj#|i/fn3*wb(o{;%~kyit.Onq}YUIDUYHRKA_GUEP47X:;l0Y=!hrg,qb*ak8'xo#j|>.sdtbq)Je|rT^LCPRDELQQYBF8;8=6[?/fpe*w`(oe:%~i!hr0,qbr`s'Dg~tR`jxu]escrX{}ki!re-dv4(un~l#@czx^lf|qYao~Tyo{e331`>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj<1<1`>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj<0<1g>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_10`?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykP13:8Q5)`zo$yj"ic0/pg+bt6&{l|jy!jmqvz[cqa|Vli>:5Z0.eqb+ta'nf;"j gs3-vcqa|&of|ywPfvdw[l4b3\:$kh!rg-dh5(ul&my=#|iwgv,ahvsqVl|jyQf_np34565n2_;#j|i.sd,ci6)zm%l~< }fvdw+`kw|pUm{kzPi^mq45679;n0Y=!hrg,qb*ak8'xo#j|>.sdtbq)imq~Tjzh{_rvbp`:76;n0Y=!hrg,qb*ak8'xo#j|>.sdtbq)imq~Tjzh{_rvbp`:66;30Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&ij~waeu>3:7?<]9%l~k }f.eo4+tc'nxj#||tr-`4*efz{seiy2>>3;8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.abvwim}692?74U1-dvc(un&mg<#|k/fpbw+tt|z%h<"mnrs{maq:46;l0Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&mfyu hmZ2^*bk6&d;9j6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$k`{w.foX5X(`ez$f?h4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"ibuy,di^4Z&ngx"`}=f:W3+bta&{l$ka>!re-dvdu)zz~x#n> glw{*bk\;T$la~ bs3d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.enq}(`eR>V"jc|.lq17>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4:76;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&|:0<0=3:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0>1:75<]9%l~k }f.eo4+tc'nxj#||tr-`4*p64:49?6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$z<2;>3`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.t2[5Yffm:;<=?=b:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0]2[dhc89:;=?l4U1-dvc(un&mg<#|k/fpbw+tt|z%h<"x>_3]bja6789;9n6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$zS7'nxm"h gm2-va)`zhy%~~z|/b3,gdtuqgo0<0=9:W3+bta&{l$ka>!re-dvdu)zz~x#n? c`pq}kcs4;4956[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$ol|}yogw8685n2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(ods"jcT0\,di4(j9;l0Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&mfyu hmZ3^*bkt&dy9j6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$k`{w.foX6X(`ez$f?h4U1-dvc(un&mg<#|k/fpbw+tt|z%h="ibuy,di^5Z&ngx"`}=f:W3+bta&{l$ka>!re-dvdu)zz~x#n? glw{*bk\<3<17>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4:46;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&|:090=b:W3+bta&{l$ka>!re-dvdu)zz~x#n? v0]3[dhc89:;=?l4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x>_0]bja6789;9n6[?/fpe*w`(oe:%~i!hr`q-vvrt'j;$zQnne234575j2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~8U?Sl`k0123576<]9%l~k }f.eo4+tc'nxj#||tr-`khv7:91^<"i}f/pe+bj7&{n$ko|.sqww*ehey;956[?/fpe*w`(oe:%~i!hr`q-vvrt'{kfShctx]efZo482_;#j|i.sd,ci6)zm%l~l}!rrvp+wgjWlg{xtQib^k\kw67899:7X> gsd-vc)`d9$yh"i}ar,qwqu(zhgTi`~{y^da[lYhz9:;<<<<;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw61=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf};986[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at307?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphs;;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz;259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq35<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex;<;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw372<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~3>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu;1=>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0=0=c:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~494T~y<6;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[f;978h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?5;Yu|;30Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>1:7e<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2=>^pw6<=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1=12b9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq595Sz=9:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4=49o6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az818Xz}827X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?1;4d3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw35?]qp7?<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot29>3a8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6=2R|{289V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5=5>n5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}919W{~956[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az8=85k2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<9<\vq4f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSua}<1<1e>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1?12`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{692?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;;78j7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8185i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=7=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc29>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx7;3::Zts9o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;87;m7X> gsd-vc)`d9$yh"|nup,gjsi|5;5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~7>3?i;T2,cw`)zo%l`= }d.psjqt(kfex1=11g9V4*aun'xm#jb?.sf,vuhsz&idycz34?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=7=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?2;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9199o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;07;m7X> gsd-vc)`d9$yh"|nup,gjsi|535=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T<e:W3+bta&{l$ka>!re-qtkru'je~byQ<1d9V4*aun'xm#jb?.sf,vuhsz&idyczP40g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_43f?P6(o{l%~k!hl1,q`*twf}x$ob{at^42a>S7'nxm"h gm2-va)uxg~y#naznu]45`=R8&myj#|i/fn3*wb(zyd~"m`uov\<4c<]9%l~k }f.eo4+tc'{zex!lotlw[<453\:$kh!rg-dh5(ul&x{by| cnwmpZb64949>6[?/fpe*w`(oe:%~i!}povq+firf}Uo=1?1239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>1:74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;;7897X> gsd-vc)`d9$yh"|nup,gjsi|Vn:090=2:W3+bta&{l$ka>!re-qtkru'je~byQk1=7=67=R8&myj#|i/fn3*wb(zyd~"m`uov\`4:16;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;7;3<=;T2,cw`)zo%l`= }d.psjqt(kfexRj><9<16>S7'nxm"h gm2-va)uxg~y#naznu]g59?9:81^<"i}f/pe+bj7&{n$~}`{r.alqkrXl8U;><5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th209V4*aun'xm#jb?.sf,vuhsz&idyczPd0]164=R8&myj#|i/fn3*wb(zyd~"m`uov\`4Y4:81^<"i}f/pe+bj7&{n$~}`{r.alqkrXl8U?><5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th/bcqv|hb|5:5>45Z0.eqb+ta'nf;"z| gvcp*rus{&i:#no}rxlfp979:01^<"i}f/pe+bj7&~x$kzo|.vqww*e6'jky~t`jt=0=6<=R8&myj#|i/fn3*rt(o~kx"z}{s.a2+fguzpdnx1=12g9V4*aun'xm#jb?.vp,crgt&~y"m>/fov|+ajS9W%k`?!m00e?P6(o{l%~k!hl1,tv*apiz$|y} c0-dip~)odQ:Q#ibs/op6c=R8&myj#|i/fn3*rt(o~kx"z}{s.a2+bkrp'mfW?S!glq-iv4a3\:$kh!rg-dh5(pz&m|m~ xsuq,g4)`e|r%k`U<]/enw+kt:o1^<"i}f/pe+bj7&~x$kzo|.vqww*e6'ng~t#ib[5_-chu)ez887X> gsd-vc)`d9$|~"ixar,twqu(k8%}=1>1229V4*aun'xm#jb?.vp,crgt&~y"m>/w3?5;443\:$kh!rg-dh5(pz&m|m~ xsuq,g4)q9585>>5Z0.eqb+ta'nf;"z| gvcp*rus{&i:#{?33?00?P6(o{l%~k!hl1,tv*apiz$|y} c0-u5929:k1^<"i}f/pe+bj7&~x$kzo|.vqww*e6';T?000a?P6(o{l%~k!hl1,tv*apiz$|y} c0-u5Z5Xign;<=>>2c9V4*aun'xm#jb?.vp,crgt&~y"m>/w3\0Zhh|9:;<<<6;T2,cw`)zo%l`= xr.etev(p{}y$o?!laspzj`r;87827X> gsd-vc)`d9$|~"ixar,twqu(k;%hm|vndv?5;4>3\:$kh!rg-dh5(pz&m|m~ xsuq,g7)di{xrbhz32?0:?P6(o{l%~k!hl1,tv*apiz$|y} c3-`ewt~fl~7?32g9V4*aun'xm#jb?.vp,crgt&~y"m=/fov|+ajS8W%k`}!mr0e?P6(o{l%~k!hl1,tv*apiz$|y} c3-dip~)odQ9Q#ibs/op6c=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+bkrp'mfW>S!glq-iv4a3\:$kh!rg-dh5(pz&m|m~ xsuq,g7)`e|r%k`U;]/enw+kt::1^<"i}f/pe+bj7&~x$kzo|.vqww*e5';7<3<<;T2,cw`)zo%l`= xr.etev(p{}y$o?!y1=3=66=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+s7;:7887X> gsd-vc)`d9$|~"ixar,twqu(k;%}=1=1229V4*aun'xm#jb?.vp,crgt&~y"m=/w3?0;4e3\:$kh!rg-dh5(pz&m|m~ xsuq,g7)q9V:Tmcj?01226g=R8&myj#|i/fn3*rt(o~kx"z}{s.a1+s7X9Vkeh=>?000a?P6(o{l%~k!hl1,tv*apiz$|y} c3-u5Z4Xign;<=>>2c9V4*aun'xm#jb?.vp,crgt&~y"m=/w3\7Zgil9:;<<=5Z0.eqb+ta'nf;"z| gvcp*rus{&ida}?=0:W3+bta&{l$ka>!ws-dsdu)z~x#nabp30;?P6(o{l%~k!hl1,tv*apiz$|y} r`o\bpjkWohTe?;4U1-dvc(un&mg<#y}/fubw+qt|z%ym`Qiumn\m7e<]9%l~k }f.eo4+qu'n}j#y|tr-qehYa}efTeRa}01236a=R8&myj#|i/fn3*rt(o~kx"z}{s.pbiZ`rdeUbSb|?01225a=R8&myj#|i/fn3*rt(zhgT{Qjn^k266=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}8?7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{1368Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkr5:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by==4:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp1433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d9?:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov561=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}=986[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at90:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7<32:Zts:01^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=0=6f=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1<1_sv1=>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir0>0=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4:4T~y<6;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;<78h7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?0;Yu|;30Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPcx>6:7e<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2:>^pw6<=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1812b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5<5Sz=9:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4>49o6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az828Xz}8j7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8585i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=3=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc2=>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7?35:7g<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|37?0b?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey050=d:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZ~hz525Sz>f:W3+bta&{l$ka>!ws-ttkru'je~by2?>0d8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{<0<2b>S7'nxm"h gm2-sw)pxg~y#naznu>1:4`<]9%l~k }f.eo4+qu'~zex!lotlw8686n2_;#j|i.sd,ci6){%||cz}/bmvjq:368l0Y=!hrg,qb*ak8'}y#z~ats-`kphs4<4:j6[?/fpe*w`(oe:%{!xpovq+firf}6=2f:W3+bta&{l$ka>!ws-ttkru'je~by27>0g8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_13f?P6(o{l%~k!hl1,tv*qwf}x$ob{at^32a>S7'nxm"h gm2-sw)pxg~y#naznu]15`=R8&myj#|i/fn3*rt(yd~"m`uov\74c<]9%l~k }f.eo4+qu'~zex!lotlw[17b3\:$kh!rg-dh5(pz&}{by| cnwmpZ36m2_;#j|i.sd,ci6){%||cz}/bmvjqY19l1^<"i}f/pe+bj7&~x${}`{r.alqkrX?8o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW1897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:0=0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=3=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:56;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7?3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><5<16>S7'nxm"h gm2-sw)pxg~y#naznu]g5939:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl86=2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?37?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28=8592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V:9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo=R?=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^015>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z5592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V>9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo=R;=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^415>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z1592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V29>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>1>1239V4*aun'xm#jb?.vp,suhsz&idyczPd3>2:74<]9%l~k }f.eo4+qu'~zex!lotlw[a4;:7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn90>0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk2=6=67=R8&myj#|i/fn3*rt(yd~"m`uov\`7:26;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm87:3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj=<6<16>S7'nxm"h gm2-sw)pxg~y#naznu]g69>9:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U;><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?Q>209V4*aun'xm#jb?.vp,suhsz&idyczPd3]164=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y4:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U?><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?Q:209V4*aun'xm#jb?.vp,suhsz&idyczPd3]564=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y0:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U3=;5Z0.eqb+ta'dof#iazt^k\440<]9%l~k }f.ofi*bh}}UbS1^<"i}f/pe+hcj'me~xRgP1034?P6(o{l%~k!bel-gkprXaV;9=:5Z0.eqb+ta'dof#iazt^k\56703\:$kh!rg-nah)cg|~TeR?;169V4*aun'xm#`kb/emvpZoX9<;<7X> gsd-vc)jmd%ocxzPi^3552=R8&myj#|i/lgn+air|VcT=:?9;T2,cw`)zo%fi`!kotv\mZ46>2_;#j|i.sd,i`k(lfSdQ<179V4*aun'xm#`kb/emvpZoX<8<0Y=!hrg,qb*kbe&ndyyQf_435?P6(o{l%~k!bel-gkprXaV<::6[?/fpe*w`(elg$hb{{_h]453=R8&myj#|i/lgn+air|VcT4<84U1-dvc(un&gna"j`uu]j[<7>3\:$kh!rg-nah)cg|~Tahc30?3b?P6(o{l%~k!bel-gkprXelg7==0>a:W3+bta&{l$ahc dnww[hcj48;5=l5Z0.eqb+ta'dof#iazt^ofi97568k0Y=!hrg,qb*kbe&ndyyQbel>27;7f3\:$kh!rg-nah)cg|~Tahc315<2e>S7'nxm"h mdo,`jssWdof0<;11`9V4*aun'xm#`kb/emvpZkbe5;=2 gsd-vc)jmd%ocxzPmdo?5;7>3\:$kh!rg-nah)cg|~Tahc32?3:?P6(o{l%~k!bel-gkprXelg7?3?6;T2,cw`)zo%fi`!kotv\i`k;<7;27X> gsd-vc)jmd%ocxzPmdo?1;7>3\:$kh!rg-nah)cg|~Tahc36?3:?P6(o{l%~k!bel-gkprXelg7;3?6;T2,cw`)zo%fi`!kotv\i`k;07;27X> gsd-vc)jmd%ocxzPmdo?=;0b3\:$kh!rg-nah)`jd$ln`i!gcode+h`mji%n`i bmi\i`kXoldn~lz`r.tbhlb)kz~y#oblnms_5[)zhg%~"x=_omjjlr)zhg$h}=9x0:-vdk6j2_;#j|i.sd,i`k(|dzT~lcPre]fj4e<]9%l~k }f.ofi*rjxVxjaR|k_dl256=R8&myj#|i/scn[wbXmg;<7X> gsd-vc)uidUyijazt^gm56=R8&myj#|i/scn[rtXmg;o7X> gsd-vc)u{}hgg"|k_sqw[duumn8;7X> gsd-vc)u{}hgg"|k_sqw[duumnUo=?>4U1-dvc(un&xxxobd/sf\vvrXizxnkRj=1b9V4*aun'xm#}{bmi,vaYu{}Uhc`l>d:W3+bta&{l$~~zmlj-q`Ztt|Vidao?>e:W3+bta&{l$~~zmlj-q`Ztt|Vxnk1>11d9V4*aun'xm#}{bmi,vaYu{}Uyij2>>0g8Q5)`zo$yj"||tcnh+wbXzz~T~hi32?3g?P6(o{l%~k!}su`oo*tcW{ySkh_13g?P6(o{l%~k!}su`oo*tcW{ySkh_03g?P6(o{l%~k!}su`oo*tcW{ySkh_33g?P6(o{l%~k!}su`oo*quW{ySl}}ef03?P6(o{l%~k!}su`oo*quW{ySl}}ef]g576<]9%l~k }f.pppgjl'~xT~~zParpfcZb59j1^<"i}f/pe+wusjea${Q}su]`khd6l2_;#j|i.sd,vvredb%|~R||t^alig76m2_;#j|i.sd,vvredb%|~R||t^pfc9699l1^<"i}f/pe+wusjea${Q}su]qab:668n0Y=!hrg,qb*tt|kf`#z|Prrv\v`aX88n0Y=!hrg,qb*tt|kf`#z|Prrv\v`aX9h1^_H\PAMKBWf=R[LXTZD]FBMG0?SED12\BIZQ[YQG0?RCF;2]NNo5XRHVF[COU[]i0[_G[E^OL@@YFk2]YEYKPMNFF[G7c3QCGECV"XE@#4+7'[]_I,= > @Q@ML3^cjVCoj6Vkh^RqmhPbzzcdb<>4Xeo\Idlhz_oydaa119[`hYJageyZh||inl`?djjgz~Ti`~{yc9bhhit|Vl~`a84b`ahqubbf|hUhcx`{(7+g?agsiVidycz'7(f8`drfWje~by&7)g9geqgXkfex1650?58`gosm{x=7iga(1+5?aoi 8#<7iga(02*3>bnf!;:%:5kio*26,1'8;ekm,42.?2nbb%?:)69gmk.6> =0hd`'16+4?aoi 82";6jfn)3:-3=cag"9%:5kio*14,1<'8;ekm,74.?2nbb%<<)69gmk.5< =0hd`'24+4?aoi ;<";6jfn)04-2=cag"94$94dhl+6'8;ekm,66.?2nbb%=>)69gmk.4: =0hd`'32+4?aoi :>";6jfn)16-3=cag"?%;5kio*6-3=cag"=%;5kio*4-3=cag"3%;5kio*:-3=cag6;2:5kio>24;169gmk:6<7=0hd`314<4?aoi48<5;6jfn=34:2=cag6:4394dhl?5<813mce0<08;ekm8769?2nbb1<>>69gmk:5:7=0hd`322<4?aoi4;>5;6jfn=06:2=cag69:394dhl?62803mce0?617:fjj94>6?1oec2=>69gmk:487=0hd`330<4?aoi4:85;6jfn=10:2=cag688374dhl?70<76>1oec2<5?48`lh;;7<0hd`34?48`lh;=7<0hd`36?48`lh;?7<0hd`38?48`lh;17=0hb{{(1+4?air|!;"46j`uu*24,>bh}}":8$64dnww,43.02ndyy&>6(:8`jss 8=";6j`uu*1-2=cg|~#?$94dnww,1/03me~x%;&7:flqq.1!>1ocxz'7(58`jss 1#<7iazt);*3>bh}}6;255kotv?558?3me~x1?>>99gkpr;9;437iazt=30:==cg|~7=907;emvp972611ocxz3171ocxz31?58`jss4;4<7iazt=1=3>bh}}6?2:5kotv?1;169gkpr;1720iigi2oeg1>cjx}s8:6hffn]dakcui}eyS{:P4-"[mioip)ID^H.Heogqeqiu(8:%=#><_hr05f=aaoeTta`w_431|60X:jf`S>8{o0:0e>`nnfUs`cvP500{73Y5keaT?;z`19.emciXoldn~lz`r^t7[1*IGGO'BB@J3e68bl`hWqfetR;>2y15[7ekcV9=xb?7,gkekZabflxjxb|Pv5]7(~eX`hyTeczPcmi>4)eX`hyT}{=1.`[wbXn{oz1<"l_icp[wbXlh~jSnaznu?3(fYcagU|eizg=24/gZnf{V}ySio{a^alqkr:8%iTjxbc_gnbcvYu{}U}ma3?,b]jiujbeldmyg`n^vzt`;5$jU~hQjmcgg``bXzlm68-a\ivahfV|j`0?#c^pg[acw|a7:4)eX`hyT~~z21-a\`drfWje~byQxievk9<*dWakxSz|Pabi>4)eX}zoTinm20-a\gjkjggUh`bmd=1.`[rtXijaT`by20-a\vaYwf}xT{dj{h<33(fYr{lUm{kzPd`vb[firf}7; nQgar]bhhit|Vof|yw20-a\vaYci}kTob{at^uj`qn:99&hSbxjrgnlsZjh4:'oRy}_qlwvZqnl}b65!mPpsmd[`kw|pUu}k20-a\swYci}kTob{at^uj`qn:1%iT|kco`f\v`at58&hSiazt^pppZpfd4:'oRfns^fbpdYdg|d1="l_qplcZ`rdeUdk|h^lfcdrbWkg18>7,b]tvZbbx}b69<<#c^rqkbYbey~rSyf}erj\j`af|lU}ma3:,b]svjaXmdzuRzgrdqk[dutm{~Tzlb24-a\lduX~hfbh0>#c^rqkbYa}efTxe|jsi]bwvcu|V|j`0;?9-aliuiimg~Tblcj=gkekZ~kfqU>=?v<6^0`hnY4>}e:4!mPv`nj`Zjh4:'oR~}il]emciX|pzn18?=x24/gZvugnUmyabPtxrf95*dWdofcwPtxrf94*z;?1mekaPxml{[075p:nbd_24wk4>Xn`ldSjkaescwkwYqTt~zP159eqij03`dSnbd8:ldggsndm20c{k}fmmte>vugnUna}zv159svjaXmdzuRzgrdqk,5/6<2zycjQjmqvz[qnumzb#=$?;;qplcZcjx}sTxe|jsi*1-42vugnUna}zv_ujqavn/= ;?7}|`g^gntqX|axne&9)068twi`Wlg{xtQ{hsgpl-1.9=1{~biPelrw}Zrozlyc$5'>4:rqkbYbey~rSyf}erj+=,713yxdkRkbpu{\pmtb{a626=0>b:rqkbYbey~rSyf}erj\evubz}";%vugnUna}zv_ujqavnXizyn~y&9)0`8twi`Wlg{xtQ{hsgplZgt{lx$:'>b:rqkbYbey~rSyf}erj\evubz}"3%294:n6~}of]fiur~W}byi~fPndebp`.7!8h0|ah_dosp|Ys`{oxdR`jg`vf,4/6j2zycjQjmqvz[qnumzbTbhintd*1-4dvugnUna}zv_ujqavnXflmjxh&;)0`8twi`Wlg{xtQ{hsgplZhboh~n$8'>b:rqkbYbey~rSyf}erj\j`af|l"=%#:n6~}of]fiur~W}byi~fPndebp`.?!8h0|ah_dosp|Ys`{oxdR`jg`vf,:>58>3yxdkRhzlm30?uthoVl~`aQ{hsgpl-6.9:1{~biPftno[qnumzb#=$?<;qplcZ`rdeUdk|h)0*56=wzfmTjxbc_ujqavn/; ;87}|`g^dvhiYs`{oxd%:&129svjaXn|fgSyf}erj+1,743yxdkRhzlm]wlwct`!<"=>5rne\bpjkW}byi~f'7(30?uthoVl~`aQ{hsgpl->.9<1{~biPftno[qnumzb747>11`9svjaXn|fgSyf}erj\evubz}";%a:rqkbYa}efTxe|jsi]mabgsm!="=l5rne\bpjkW}byi~fPndebp`.?!8i0|ah_gwohZrozlycSckhaug?2xoSnbd119q`Zbf|hUhcx`{(1+24>tcWmkmRm`uov+5,773{nThlzn_bmvjq.5!8:0~iQkauc\gjsi|!9"==5}d^fbpdYdg|d$9'>0:pg[agsiVidycz'5(33?wbXlh~jSnaznu*5-46008vaYci}kTob{at=;94;34ws]geqgXkfex%:&119tvZbf|hUhcx`{(4+24>quWmkmRm`uov+2,773~xThlzn_bmvjq.0!8:0{Qkauc\gjsi|!2"=?5xr^fbpdYdg|d054?>49tvZci>2}yS}{}ABse2e7e4<8qe?ok51:l0fc<33-9io7=m6:P0`<3;l036<==b75:>7e4<81X=?8545594?74:k<<57:182>4}T=90??h47:011f31>2;i88<5yT05e>5<6280::ou\51877`7}r9:;1=6{>3383?x"6?>0:56l;4083>6b=;39owE=ne:X72?4|990:47s+1969017<,:hi69:?;h6:3?6=3`>jn7>5;n671?6=3f>8j7>5;h6b4?6=3`>257>5;n616?6=,8=269=<;o349=7>5$05:>1543g;<47?4;n614?6=,8=269=<;o34:j7>5$05:>1543g;<47=4;n62a?6=,8=269=<;o34:h7>5$05:>1543g;<47;4;n62g?6=,8=269=<;o34:n7>5$05:>1543g;<4794;n61e?6=,8=269=<;o34<3f>957>5$05:>1543g;<4774;n619;7>5$05:>1543g;<47l4;n612?6=,8=269=<;o34997>5$05:>1543g;<47j4;n610?6=,8=269=<;o349?7>5$05:>1543g;<47h4;n62e?6=,8=269=<;o341:9j7`b=83.:;44;119m52>=821b?hm50;&23<<3991e=:651:9j7`d=83.:;44;119m52>=:21b?ho50;&23<<3991e=:653:9j7`?=83.:;44;119m52>=<21b?h650;&23<<3991e=:655:9j7`0=83.:;44;119m52>=>21b?h;50;&23<<3991e=:657:9j7`2=83.:;44;119m52>=021b?h=50;&23<<3991e=:659:9j7`4=83.:;44;119m52>=i21b?h?50;&23<<3991e=:65b:9j7`6=83.:;44;119m52>=k21b?ih50;&23<<3991e=:65d:9j7ac=83.:;44;119m52>=m21b?ij50;&23<<3991e=:65f:9j7ad=83.:;44;119m52>=9910e>jn:18'52?=<8:0b<97:038?l5c13:1(<96:533?k7003;976g!7013>:<6`>79827>=n;m=1<7*>788755=i9>21=954i2f5>5<#9>318<>4n05;>43<3`9o97>5$05:>1773g;<47?9;:k0`1<72-;<57:>0:l23=<6?21b?i=50;&23<<3991e=:651998m6b5290/=:754028j41?28307d=i3;29 41>2=;;7c?88;3b?>o4n;0;6)?89;624>h6?10:n65f3g394?"6?00?==5a16:95f=f:9j7`1=83.:;44;119m52>=:910e>jl:18'52?=<8:0b<97:338?l5c93:1(<96:533?k70038976g!7013>:<6`>79817>=n<1k1<75m3`d94?7=83:pD>oj;%3;0?5fn2e:;;4?::a`6<7280;6=uG3`g8 4>32m90ci<50;9~f13=83k86<=>:04aM5fm2P?:7?9{`81=?b=j38h6?65118287)?81;341>i4k90;66g;9983>>o3=:0;6)?89;660>h6?10;76g;5383>!7013>>86`>7982?>o3=80;6)?89;660>h6?10976g;5183>!7013>>86`>7980?>o3h6?10?76g;4d83>!7013>>86`>7986?>o3h6?10=76g;4b83>!7013>>86`>7984?>o3h6?10376g;4`83>!7013>>86`>798:?>i3>k0;66g;9c83>>i31l0;66g;7d83>!7013>7983?>o3?m0;6)?89;64b>h6?10:76g;7b83>!7013>7981?>o3?k0;6)?89;64b>h6?10876g;7`83>!7013>7987?>o3?00;6)?89;64b>h6?10>76g;7983>!7013>7985?>o3?>0;6)?89;64b>h6?10<76g;7783>!7013>798;?>o31>0;66a;4983>>i3<00;66g>i31=0;6)?89;6:2>h6?10;76a;9283>!7013>2:6`>7982?>i31;0;6)?89;6:2>h6?10976a;9083>!7013>2:6`>7980?>i3190;6)?89;6:2>h6?10?76a;8g83>!7013>2:6`>7986?>i30l0;6)?89;6:2>h6?10=76a;8e83>!7013>2:6`>7984?>i30j0;6)?89;6:2>h6?10376a;8c83>!7013>2:6`>798:?>o3=l0;6)?89;66b>h6?10;76g;5e83>!7013>>j6`>7982?>o3=j0;6)?89;66b>h6?10976g;5c83>!7013>>j6`>7980?>o3=h0;6)?89;66b>h6?10?76g;5883>!7013>>j6`>7986?>o3=10;6)?89;66b>h6?10=76g;5683>!7013>>j6`>7984?>o3=?0;6)?89;66b>h6?10376g;5483>!7013>>j6`>798:?>o3ik0;66a;a883>!7013>jm6`>7983?>i3i10;6)?89;6be>h6?10:76a;a683>!7013>jm6`>7981?>i3i?0;6)?89;6be>h6?10876a;a483>!7013>jm6`>7987?>i3i=0;6)?89;6be>h6?10>76a;a283>!7013>jm6`>7985?>i3i;0;6)?89;6be>h6?10<76a;a083>!7013>jm6`>798;?>i3<<0;66a;3g83>>o3?=0;6)?89;641>h6?10;76g;7283>!7013><96`>7982?>o3?;0;6)?89;641>h6?10976g;7083>!7013><96`>7980?>o3?90;6)?89;641>h6?10?76g;6g83>!7013><96`>7986?>o3>l0;6)?89;641>h6?10=76g;6e83>!7013><96`>7984?>o3>j0;6)?89;641>h6?10376g;a183>>o3>o3ij0;66a;9`83>>i31o0;66a;9e83>>o3100;66a;2383>!7013>8?6`>7983?>i3:80;6)?89;607>h6?10:76a;2183>!7013>8?6`>7981?>i39o0;6)?89;607>h6?10876a;1d83>!7013>8?6`>7987?>i39m0;6)?89;607>h6?10>76a;1b83>!7013>8?6`>7985?>i39k0;6)?89;607>h6?10<76a;2`83>!7013>8?6`>798;?>i3:00;6)?89;607>h6?10276a;2983>!7013>8?6`>798b?>i3:>0;6)?89;607>h6?10i76a;2783>!7013>8?6`>798`?>i3:<0;6)?89;607>h6?10o76a;2583>!7013>8?6`>798f?>i3::0;6)?89;607>h6?10m76a;1`83>!7013>8?6`>79824>=h<831<7*>788776=i9>21=<54i2gg>5<#9>318<>4n05;>5=5<#9>318<>4n05;>7=54i2g:>5<#9>318<>4n05;>1=5<#9>318<>4n05;>3=6=4+16;90465<#9>318<>4n05;>==5<#9>318<>4n05;>d=5<#9>318<>4n05;>f=5<#9>318<>4n05;>`=5<#9>318<>4n05;>46<3`9om7>5$05:>1773g;<47?>;:k0`<<72-;<57:>0:l23=<6:21b?i650;&23<<3991e=:651298m6b0290/=:754028j41?28>07d=k6;29 41>2=;;7c?88;36?>o4l<0;6)?89;624>h6?10::65f3e694?"6?00?==5a16:952=32c8j>4?:%34=?2682d:;54>a:9j7c4=83.:;44;119m52>=9k10e>h>:18'52?=<8:0b<97:0a8?l5a83:1(<96:533?k7003;o76g!7013>:<6`>7982a>=n;lo1<7*>788755=i9>21=k54i2g4>5<#9>318<>4n05;>76<3`9oo7>5$05:>1773g;<47<>;:k0`4<72-;<57:>0:l23=<5:21b?i>50;&23<<3991e=:652298k6e62900e>m=:188m1>?290/=:7549;8j41?2910e968:18'52?=<130b<97:098m1>1290/=:7549;8j41?2;10e96::18'52?=<130b<97:298m1>3290/=:7549;8j41?2=10e96<:18'52?=<130b<97:498m1>5290/=:7549;8j41?2?10e96>:18'52?=<130b<97:698m1>7290/=:7549;8j41?2110c>mk:18'52?=;jo0b<97:198k6ed290/=:753bg8j41?2810c>mm:18'52?=;jo0b<97:398k6ef290/=:753bg8j41?2:10c>m6:18'52?=;jo0b<97:598k6e?290/=:753bg8j41?2<10c>m8:18'52?=;jo0b<97:798k6e1290/=:753bg8j41?2>10c>m::18'52?=;jo0b<97:998m10>290/=:7547c8j41?2910e987:18'52?=290:6=4?{%3;0?b43A9i46Foi;I1a<>N4il1d=:850;9~f6?e29086=4?{%3;0?ed3A9i46Fo3?3:17d;>:188k41e2900qo=n6;297?6=8r.:494lc:J0f==O;ho0D9<4$00e>1?d3-o;6?5f4683>>o293:17b?8b;29?xd41h0;6>4?:1y'5=2=kj1C?o64H2cf?M253-;9j7:6c:&f4?4>i6?k0;66sm3`694?3=83:p(<6;:e28L6d?3A9ji6F;2:&26c<31j1/i=4=;h64>5<>o6?h0;66a>7c83>>{e;h?1<7=50;2x 4>32ji0D>l7;I1ba>N3:2.:>k4;9b9'a5<53`><6=44i4394?=h9>h1<75rb2;:>5<2290;w)?74;f3?M5e02B8mh5G439'57`=<0i0(h>52:k73?6=3`>36=44i4394?=n9>k1<75`16`94?=zj:k86=4;:183!7?<3im7E=m8:J0e`=#m9097d:8:188m07=831b=:o50;9l52d=831vn>o=:187>5<7s-;387mi;I1a<>N4il1/i=4=;h64>5<h1<75rb2c2>5<3290;w)?74;ae?M5e02B8mh5+e181?l202900e8?50;9j52g=831d=:l50;9~f6gd290?6=4?{%3;0?ea3A9i46F<6=44i4394?=n9>k1<75`16`94?=zj:ki6=4;:183!7?<3im7E=m8:J0e`=#m9097d:8:188m07=831b=:o50;9l52d=831vn?78:187>5<7s-;387mi;I1a<>N4il1/i=48;h64>5<h1<75rb231>5<3290;w)?74;ag?M5e02B8mh5+e181?l202900e9j50;9j14<722e:;o4?::a747=83>1<7>t$0:7>fb<@:h37E=ne:&f4?4>o293:17b?8b;29?xd5?>0;694?:1y'5=2=9::0D>l7;I1ba>o3i3:17d;=:188m41c2900c<9;:188yg40>3:187>50z&2<1<6;91C?o64H2cf?l2f2900e8<50;9j52b=831d=::50;9~f712290?6=4?{%3;0?7482B8n55G3`g8m1g=831b9?4?::k23a<722e:;94?::a622=83>1<7>t$0:7>4573A9i46F>7>5;h34`?6=3f;<87>5;|`136<72=0;6=u+1969566<@:h37E=ne:k7e?6=3`?96=44i05g>5<858275=O;k20D>oj;h6b>5<>1<75rb3::>5<3290;w)?74;304>N4j11C?lk4i5c94?=n=;0;66g>7e83>>i6?=0;66sm29:94?2=83:p(<6;:013?M5e02B8mh5f4`83>>o2:3:17d?8d;29?j70<3:17pl=8683>1<729q/=5:51228L6d?3A9ji6g;a;29?l352900e<9k:188k4132900qo<76;290?6=8r.:494>319K7g><@:kn7d:n:188m04=831b=:j50;9l522=831vn?h>:187>5<7s-;387?<0:J0f==O;ho0e9o50;9j17<722c:;i4?::m231<722wi>k>50;694?6|,82?6<=?;I1a<>N4il1b8l4?::k66?6=3`;5;n340?6=3th9ik4?:583>5}#91>1=>>4H2`;?M5fm2c?m7>5;h71>5<5<54;294~"60=0:?=5G3c:8L6gb3`>j6=44i4094?=n9>n1<75`16694?=zj;oo6=4;:183!7?<3;8<6F>o6?m0;66a>7583>>{e;9>1<7:50;2x 4>3289;7E=m8:J0e`=nl7;I1ba>o3i3:17d;=:188m41c2900c<9;:188yg57:3:187>50z&2<1<6;91C?o64H2cf?l2f2900e8<50;9j52b=831d=::50;9~f666290?6=4?{%3;0?7482B8n55G3`g8m1g=831b9?4?::k23a<722e:;94?::a756=83>1<7>t$0:7>4573A9i46F>7>5;h34`?6=3f;<87>5;|`2e2<72=0;6=u+1969ga=O;k20D>oj;%g3>7=n<>0;66g;d;29?l362900c<9m:188yg7f>3:187>50z&2<15;h6g>5<6=4;:183!7?<3io7E=m8:J0e`=#m9097d:8:188m1b=831b9<4?::m23g<722wi=l:50;694?6|,82?6nj4H2`;?M5fm2.n<7<4i5594?=na283>1<729q/=5:5ce9K7g><@:kn7)k?:39j02<722c?h7>5;h72>5<858``>N4j11C?lk4$d296>o3?3:17d:k:188m07=831d=:l50;9~f4g6290?6=4?{%3;0?ec3A9i46F<6=44i5f94?=n=80;66a>7c83>>{e9h:1<7:50;2x 4>32jn0D>l7;I1ba>"b8380e9950;9j0a<722c>=7>5;n34f?6=3th:5k4?:583>5}#91>1oi5G3c:8L6gb3-o;6?5f4683>>o3l3:17d;>:188k41e2900qo52:k73?6=3`>o6=44i4394?=h9>h1<75rb32g>5<3290;w)?74;ag?M5e02B8mh5+e181?l202900e9j50;9j14<722e:;o4?::a65e=83>1<7>t$0:7>fb<@:h37E=ne:&f4?4>o293:17b?8b;29?xd58k0;694?:1y'5=2=km1C?o64H2cf?!c72;1b8:4?::k7`?6=3`?:6=44o05a>5<54;294~"60=0hh6F6g;7;29?l2c2900e8?50;9l52d=831vn?>6:187>5<7s-;387mk;I1a<>N4il1/i=4=;h64>5<>i6?k0;66sm21:94?2=83:p(<6;:bf8L6d?3A9ji6*j0;08m11=831b8i4?::k65?6=3f;5;|`142<72=0;6=u+1969ga=O;k20D>oj;%g3>7=n<>0;66g;d;29?l362900c<9m:188yg47>3:187>50z&2<15;h6g>5<8;50;694?6|,82?6nj4H2`;?M5fm2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7)k?:39j02<722c?h7>5;h72>5<858``>N4j11C?lk4$d296>o3?3:17d:k:188m07=831d=:l50;9~f735290?6=4?{%3;0?ec3A9i46F<6=44i5f94?=n=80;66a>7c83>>{e:<;1<7:50;2x 4>32jn0D>l7;I1ba>"b8380e9950;9j0a<722c>=7>5;n34f?6=3th99=4?:583>5}#91>1oi5G3c:8L6gb3-o;6?5f4683>>o3l3:17d;>:188k41e2900qo<;f;290?6=8r.:494ld:J0f==O;ho0(h>52:k73?6=3`>o6=44i4394?=h9>h1<75rb36f>5<3290;w)?74;ag?M5e02B8mh5+e181?l202900e9j50;9j14<722e:;o4?::a5c5=83>1<7>t$0:7>fb<@:h37E=ne:&f4?4>o293:17b?8b;29?xd6n;0;694?:1y'5=2=km1C?o64H2cf?!c72;1b8:4?::k7`?6=3`?:6=44o05a>5<54;294~"60=0hh6F6g;7;29?l2c2900e8?50;9l52d=831vn5<7s-;387mk;I1a<>N4il1/i=4=;h64>5<>i6?k0;66sm1dd94?2=83:p(<6;:bf8L6d?3A9ji6*j0;08m11=831b8i4?::k65?6=3f;5;|`2a`<72=0;6=u+1969ga=O;k20D>oj;%g3>7=n<>0;66g;d;29?l362900c<9m:188yg7bl3:187>50z&2<15;h6g>5<1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=ne083>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=ne183>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=ndg83>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=ndd83>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=nde83>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=ndb83>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=ndc83>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=nd`83>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=nd883>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=nd983>1<729q/=5:5ce9K7g><@:kn7E:=;%31b?2>k2.n<7<4i5594?=nce83>1<729q/=5:5ce9K7g><@:kn7)k?:39j02<722c?h7>5;h72>5<858``>N4j11C?lk4$d296>o3?3:17d:k:188m07=831d=:l50;9~f4ee290?6=4?{%3;0?ec3A9i46F<6=44i5f94?=n=80;66a>7c83>>{e9jk1<7:50;2x 4>32jn0D>l7;I1ba>"b8380e9950;9j0a<722c>=7>5;n34f?6=3th:o44?:583>5}#91>1oi5G3c:8L6gb3-o;6?5f4683>>o3l3:17d;>:188k41e2900qo?l8;290?6=8r.:494ld:J0f==O;ho0(h>52:k73?6=3`>o6=44i4394?=h9>h1<75rb0a4>5<3290;w)?74;ag?M5e02B8mh5+e181?l202900e9j50;9j14<722e:;o4?::a5f0=83>1<7>t$0:7>fb<@:h37E=ne:&f4?4>o293:17b?8b;29?xd6k<0;694?:1y'5=2=km1C?o64H2cf?!c72;1b8:4?::k7`?6=3`?:6=44o05a>5<54;294~"60=0hh6F6g;7;29?l2c2900e8?50;9l52d=831vn?==:187>5<7s-;387mk;I1a<>N4il1/i=4=;h64>5<>i6?k0;66sm22394?2=83:p(<6;:bf8L6d?3A9ji6*j0;08m11=831b8i4?::k65?6=3f;5;|`175<72=0;6=u+1969ga=O;k20D>oj;%g3>7=n<>0;66g;d;29?l362900c<9m:188yg45n3:187>50z&2<15;h6g>5<?j50;694?6|,82?6nj4H2`;?M5fm2.n<7<4i5594?=n1<729q/=5:5ce9K7g><@:kn7)k?:39j02<722c?h7>5;h72>5<858``>N4j11C?lk4$d296>o3?3:17d:k:188m07=831d=:l50;9~f74f290?6=4?{%3;0?ec3A9i46F<6=44i5f94?=n=80;66a>7c83>>{e:m>1<7;50;2x 4>32jo0D>l7;I1ba>"b8380e9950;9j0=<722c?h7>5;h72>5<858`a>N4j11C?lk4$d296>o3?3:17d:7:188m1b=831b9<4?::m23g<722wi>i?50;794?6|,82?6nk4H2`;?M5fm2.n<7<4i5594?=n<10;66g;d;29?l362900c<9m:188yg4c83:197>50z&2<15;h6;>5<>i6?k0;66sm2e094?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;7;29?l2?2900e9j50;9j14<722e:;o4?::a6fc=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e:jh1<7;50;2x 4>32m:0D>l7;I1ba>"b83=0e9950;9j0=<722c>=7>5;h34e?6=3f;5;|`1ga<72<0;6=u+1969g`=O;k20D>oj;%g3>7=n<>0;66g;8;29?l2c2900e8?50;9l52d=831vn?li:180>5<7s-;387=m7:J0f==O;ho0e9o50;9j572=831d=::50;9~f7db29086=4?{%3;0?5e?2B8n55G3`g8m1g=831b=?:50;9l522=831vn?l;:187>5<7s-;387?<0:J0f==O;ho0e9o50;9j17<722c:;i4?::m231<722wi>oj50;194?6|,82?6>l8;I1a<>N4il1b8l4?::k261<722e:;94?::a6g4=83>1<7>t$0:7>4573A9i46F>7>5;h34`?6=3f;<87>5;|`1ff<72:0;6=u+19697g1<@:h37E=ne:k7e?6=3`;987>5;n340?6=3th9n=4?:583>5}#91>1=>>4H2`;?M5fm2c?m7>5;h71>5<5<53;294~"60=08n:5G3c:8L6gb3`>j6=44i007>5<858275=O;k20D>oj;h6b>5<>1<75rb3`b>5<4290;w)?74;1a3>N4j11C?lk4i5c94?=n9;>1<75`16694?=zj;kh6=4;:183!7?<3;8<6F>o6?m0;66a>7583>>{e:k31<7=50;2x 4>32:h<7E=m8:J0e`=n2583>>i6?=0;66sm2`c94?2=83:p(<6;:013?M5e02B8mh5f4`83>>o2:3:17d?8d;29?j70<3:17pl=b983>6<729q/=5:53c58L6d?3A9ji6g;a;29?l75<3:17b?84;29?xd5i10;694?:1y'5=2=9::0D>l7;I1ba>o3i3:17d;=:188m41c2900c<9;:188yg4e?3:1?7>50z&2<1<4j>1C?o64H2cf?l2f2900e<<;:188k4132900qo319K7g><@:kn7d:n:188m04=831b=:j50;9l522=831vn?l9:180>5<7s-;387=m7:J0f==O;ho0e9o50;9j572=831d=::50;9~f7g3290?6=4?{%3;0?7482B8n55G3`g8m1g=831b9?4?::k23a<722e:;94?::a6`>=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e:l<1<7;50;2x 4>32jo0D>l7;I1ba>"b8380e9950;9j0=<722c?h7>5;h72>5<858`a>N4j11C?lk4$d296>o3?3:17d:7:188m1b=831b9<4?::m23g<722wi>h:50;794?6|,82?6nk4H2`;?M5fm2.n<7<4i5594?=n<10;66g;d;29?l362900c<9m:188yg4b;3:197>50z&2<15;h6;>5<>i6?k0;66sm2d094?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;7;29?l2?2900e9j50;9j14<722e:;o4?::a6`6=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e:?31<7:50;2x 4>32jl0D>l7;I1ba>"b83=0e9950;9j14<722c:;l4?::m23g<722wi>;o50;694?6|,82?6nh4H2`;?M5fm2.n<794i5594?=n=80;66g>7`83>>i6?k0;66sm27:94?2=83:p(<6;:bf8L6d?3A9ji6*j0;08m11=831b8i4?::k65?6=3f;5;|`122<72=0;6=u+1969ga=O;k20D>oj;%g3>7=n<>0;66g;d;29?l362900c<9m:188yg53i3:197>50z&2<15;h6;>5<>i6?k0;66sm35;94?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;7;29?l2?2900e9j50;9j14<722e:;o4?::a711=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo=;6;291?6=8r.:494le:J0f==O;ho0(h>52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;=?1<7;50;2x 4>32jo0D>l7;I1ba>"b8380e9950;9j0=<722c?h7>5;h72>5<858g4>N4j11C?lk4$d293>o3?3:17d:7:188m07=831b=:o50;9l52d=831vn>:=:186>5<7s-;387mj;I1a<>N4il1/i=4=;h64>5<>o293:17b?8b;29?xd4<=0;684?:1y'5=2=kl1C?o64H2cf?!c72;1b8:4?::k7o6=44i4394?=h9>h1<75rb214>5<4290;w)?74;1a3>N4j11C?lk4i5c94?=n9;>1<75`16694?=zj:9=6=4<:183!7?<39i;6F>1<75rb20g>5<3290;w)?74;304>N4j11C?lk4i5c94?=n=;0;66g>7e83>>i6?=0;66sm32794?5=83:p(<6;:2`4?M5e02B8mh5f4`83>>o6:=0;66a>7583>>{e;;h1<7:50;2x 4>3289;7E=m8:J0e`=n4?:1y'5=2=;k=0D>l7;I1ba>o3i3:17d?=4;29?j70<3:17pl<2883>1<729q/=5:51228L6d?3A9ji6g;a;29?l352900e<9k:188k4132900qo=<3;297?6=8r.:494<@:kn7d:n:188m4432900c<9;:188yg55?3:187>50z&2<1<6;91C?o64H2cf?l2f2900e8<50;9j52b=831d=::50;9~f65529086=4?{%3;0?5e?2B8n55G3`g8m1g=831b=?:50;9l522=831vn><::187>5<7s-;387?<0:J0f==O;ho0e9o50;9j17<722c:;i4?::m231<722wi?>?50;194?6|,82?6>l8;I1a<>N4il1b8l4?::k261<722e:;94?::a775=83>1<7>t$0:7>4573A9i46F>7>5;h34`?6=3f;<87>5;|`075<72:0;6=u+19697g1<@:h37E=ne:k7e?6=3`;987>5;n340?6=3th8><4?:583>5}#91>1=>>4H2`;?M5fm2c?m7>5;h71>5<5<53;294~"60=08n:5G3c:8L6gb3`>j6=44i007>5<858275=O;k20D>oj;h6b>5<>1<75rb275>5<2290;w)?74;af?M5e02B8mh5+e181?l202900e9650;9j0a<722c>=7>5;n34f?6=3th8994?:483>5}#91>1h=5G3c:8L6gb3-o;6:5f4683>>o303:17d;>:188m41f2900c<9m:188yg52=3:197>50z&2<15;h6;>5<>i6?k0;66sm34594?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<47>55;294~"60=0hi6F6g;7;29?l2?2900e9j50;9j14<722e:;o4?::a70?=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo=:a;291?6=8r.:494le:J0f==O;ho0(h>52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;32jo0D>l7;I1ba>"b8380e9950;9j0=<722c?h7>5;h72>5<858`a>N4j11C?lk4$d296>o3?3:17d:7:188m1b=831b9<4?::m23g<722wi?;k50;794?6|,82?6nk4H2`;?M5fm2.n<7<4i5594?=n<10;66g;d;29?l362900c<9m:188yg51l3:197>50z&2<15;h6;>5<>i6?k0;66sm37a94?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;7;29?l2?2900e9j50;9j14<722e:;o4?::a73g=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo=99;291?6=8r.:494le:J0f==O;ho0(h>52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;?21<7;50;2x 4>32jo0D>l7;I1ba>"b8380e9950;9j0=<722c?h7>5;h72>5<858`a>N4j11C?lk4$d296>o3?3:17d:7:188m1b=831b9<4?::m23g<722wi?;850;794?6|,82?6nk4H2`;?M5fm2.n<7<4i5594?=n<10;66g;d;29?l362900c<9m:188yg5003:197>50z&2<15;h6;>5<>i6?k0;66sm36594?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;7;29?l2?2900e9j50;9j14<722e:;o4?::a723=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo=84;291?6=8r.:494le:J0f==O;ho0(h>52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;>91<7;50;2x 4>32jo0D>l7;I1ba>"b8380e9950;9j0=<722c?h7>5;h72>5<858`a>N4j11C?lk4$d296>o3?3:17d:7:188m1b=831b9<4?::m23g<722wi?:?50;794?6|,82?6nk4H2`;?M5fm2.n<7<4i5594?=n<10;66g;d;29?l362900c<9m:188yg5?83:197>50z&2<15;h6;>5<>i6?k0;66sm36d94?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<55;294~"60=0hi6F6g;7;29?l2?2900e9j50;9j14<722e:;o4?::a72b=83?1<7>t$0:7>fc<@:h37E=ne:&f4?4>o3l3:17d;>:188k41e2900qo=8c;291?6=8r.:494le:J0f==O;ho0(h>52:k73?6=3`>36=44i5f94?=n=80;66a>7c83>>{e;>h1<7;50;2x 4>32jo0D>l7;I1ba>"b8380e9950;9j0=<722c?h7>5;h72>5<858`a>N4j11C?lk4$d296>o3?3:17d:7:188m1b=831b9<4?::m23g<722wi?:750;794?6|,82?6nk4H2`;?M5fm2.n<7<4i5594?=n<10;66g;d;29?l362900c<9m:188yg5083:197>50z&2<15;h6;>5<>i6?k0;66sm37d94?3=83:p(<6;:bg8L6d?3A9ji6*j0;08m11=831b854?::k7`?6=3`?:6=44o05a>5<53;294~"60=0:>45G3c:8L6gb3-o;67583>>{e;0n1<7=50;2x 4>328827E=m8:J0e`=#m90:m6gk4;29?lb22900c<9;:188yg4683:1?7>50z&2<1<6:01C?o64H2cf?!c728o0ei:50;9j`0<722e:;94?::a5d?=8391<7>t$0:7>44>3A9i46F5;hf6>5<85826<=O;k20D>oj;%g3>4c1<75fd483>>i6?=0;66sm18694?5=83:p(<6;:00:?M5e02B8mh5+e182a>oc<3:17dj::188k4132900qo?63;297?6=8r.:494>289K7g><@:kn7)k?:0g8ma2=831bh84?::m231<722wi=4<50;194?6|,82?6<<6;I1a<>N4il1/i=4>e:kg0?6=3`n>6=44o057>5<53;294~"60=0:>45G3c:8L6gb3-o;67583>>{e90:1<7=50;2x 4>328827E=m8:J0e`=#m90:i6gk4;29?lb22900c<9;:188yg7?n3:1?7>50z&2<1<6:01C?o64H2cf?!c728o0ei:50;9j`0<722e:;94?::a5=c=8391<7>t$0:7>44>3A9i46F5;hf6>5<85826<=O;k20D>oj;%g3>4c1<75fd483>>i6?=0;66sm19a94?5=83:p(<6;:00:?M5e02B8mh5+e182a>oc<3:17dj::188k4132900qo?7b;297?6=8r.:494>289K7g><@:kn7)k?:0g8ma2=831bh84?::m231<722wi=5o50;194?6|,82?6<<6;I1a<>N4il1/i=4>e:kg0?6=3`n>6=44o057>5<53;294~"60=0:>45G3c:8L6gb3-o;67583>>{e9121<7=50;2x 4>328827E=m8:J0e`=#m90:i6gk4;29?lb22900c<9;:188yg7??3:1?7>50z&2<1<6:01C?o64H2cf?!c728o0ei:50;9j`0<722e:;94?::a5=0=8391<7>t$0:7>44>3A9i46F5;hf6>5<85826<=O;k20D>oj;%g3>4c1<75fd483>>i6?=0;66sm27194?2=83:p(<6;:00a?M5e02B8mh5+e1870>oc<3:17dj::188ma0=831d=::50;9~f775290?6=4?{%3;0?75j2B8n55G3`g8 `6=:<1bh94?::kg1?6=3`n=6=44o057>5<54;294~"60=0:>o5G3c:8L6gb3-o;6?;4ie694?=nl<0;66gk6;29?j70<3:17pl=6583>0<729q/=5:513f8L6d?3A9ji6*j0;3g?lb32900ei;50;9j`3<722co;7>5;n340?6=3th9=94?:483>5}#91>1=?j4H2`;?M5fm2.n<75<>oc?3:17b?84;29?xd6im0;684?:1y'5=2=9;n0D>l7;I1ba>"b838;7dj;:188ma3=831bh;4?::kg3?6=3f;<87>5;|`12f<72<0;6=u+196957b<@:h37E=ne:&f4?453`n?6=44ie794?=nl?0;66gk7;29?j70<3:17pl<1483>6<729q/=5:513;8L6d?3A9ji6*j0;32?lb32900ei;50;9l522=831vn?8=:187>5<7s-;387?=b:J0f==O;ho0(h>5429j`1<722co97>5;hf5>5<85826<=O;k20D>oj;%g3>4c1<75fd483>>i6?=0;66sm1`d94?5=83:p(<6;:00:?M5e02B8mh5+e182a>oc<3:17dj::188k4132900qo<>8;290?6=8r.:494>2c9K7g><@:kn7)k?:378ma2=831bh84?::kg2?6=3f;<87>5;|`2f4<72=0;6=u+196957d<@:h37E=ne:&f4?423`n?6=44ie794?=nl?0;66a>7583>>{e:8k1<7;50;2x 4>3288o7E=m8:J0e`=#m909<6gk4;29?lb22900ei850;9j`2<722e:;94?::a5g5=83?1<7>t$0:7>44c3A9i46F5;hf6>5<>i6?=0;66sm38794?5=83:p(<6;:00:?M5e02B8mh5+e18`3>oc<3:17dj::188k4132900qo=?e;297?6=8r.:494>289K7g><@:kn7)k?:318ma2=831bh84?::m231<722wi>kl50;194?6|,82?6<<6;I1a<>N4il1/i=4=3:kg0?6=3`n>6=44o057>5<55;294~"60=0:>i5G3c:8L6gb3-o;6??4ie694?=nl<0;66gk6;29?lb02900c<9;:188yg4?93:197>50z&2<1<6:m1C?o64H2cf?!c72;;0ei:50;9j`0<722co:7>5;hf4>5<85826a=O;k20D>oj;%g3>771<75fd483>>oc>3:17dj8:188k4132900qo2e9K7g><@:kn7)k?:368ma2=831bh84?::kg2?6=3`n<6=44o057>5<55;294~"60=0:>i5G3c:8L6gb3-o;6??4ie694?=nl<0;66gk6;29?lb02900c<9;:188yg4?83:197>50z&2<1<6:m1C?o64H2cf?!c72;;0ei:50;9j`0<722co:7>5;hf4>5<85826a=O;k20D>oj;%g3>771<75fd483>>oc>3:17dj8:188k4132900qo2e9K7g><@:kn7)k?:368ma2=831bh84?::kg2?6=3`n<6=44o057>5<7>55;294~"60=0:>i5G3c:8L6gb3-o;6??4ie694?=nl<0;66gk6;29?lb02900c<9;:188yg40n3:197>50z&2<1<6:m1C?o64H2cf?!c72;;0ei:50;9j`0<722co:7>5;hf4>5<85826a=O;k20D>oj;%g3>771<75fd483>>oc>3:17dj8:188k4132900qo2e9K7g><@:kn7)k?:368ma2=831bh84?::kg2?6=3`n<6=44o057>5<55;294~"60=0:>i5G3c:8L6gb3-o;6??4ie694?=nl<0;66gk6;29?lb02900c<9;:188yg40m3:197>50z&2<1<6:m1C?o64H2cf?!c72;;0ei:50;9j`0<722co:7>5;hf4>5<85826g=O;k20D>oj;%g3>fd1<75fd483>>oc>3:17b?84;29?xd5190;694?:1y'5=2=9;h0D>l7;I1ba>"b83<0ei:50;9j`0<722co:7>5;n340?6=3th9;i4?:583>5}#91>1=?l4H2`;?M5fm2.n<7?=;hf7>5<>i6?=0;66sm30694?3=83:p(<6;:00g?M5e02B8mh5+e18`e>oc<3:17dj::188ma0=831bh:4?::m231<722wi?=o50;794?6|,82?6<N4il1/i=4=1:kg0?6=3`n>6=44ie494?=nl>0;66a>7583>>{e:o=1<7;50;2x 4>3288o7E=m8:J0e`=#m90986gk4;29?lb22900ei850;9j`2<722e:;94?::a6g3=8381<7>t$0:7>44?3A9i46F5;n340?6=3th9n>4?:383>5}#91>1=?64H2`;?M5fm2.n<7?>;hf7>5<85826==O;k20D>oj;%g3>471<75`16694?=zj;km6=4=:183!7?<3;946F>i6?=0;66sm2`f94?4=83:p(<6;:00;?M5e02B8mh5+e1825>oc<3:17b?84;29?xd5ik0;6?4?:1y'5=2=9;20D>l7;I1ba>"b83;:7dj;:188k4132900qo299K7g><@:kn7)k?:038ma2=831d=::50;9~f7g029096=4?{%3;0?7502B8n55G3`g8 `6=981bh94?::m231<722wi>l;50;094?6|,82?6<<7;I1a<>N4il1/i=4>1:kg0?6=3f;<87>5;|`06`<72;0;6=u+196957><@:h37E=ne:&f4?763`n?6=44o057>5<52;294~"60=0:>55G3c:8L6gb3-o;6>1<75rb20b>5<5290;w)?74;31<>N4j11C?lk4$d2954=nl=0;66a>7583>>{e;;21<7<50;2x 4>328837E=m8:J0e`=#m90:=6gk4;29?j70<3:17pl<2783>7<729q/=5:513:8L6d?3A9ji6*j0;32?lb32900c<9;:188yg55<3:1>7>50z&2<1<6:11C?o64H2cf?!c728;0ei:50;9l522=831vn><=:181>5<7s-;387?=8:J0f==O;ho0(h>5109j`1<722e:;94?::a776=8381<7>t$0:7>44?3A9i46F5;n340?6=3th9o=4?:383>5}#91>1=?64H2`;?M5fm2.n<7?>;hf7>5<85826==O;k20D>oj;%g3>471<75`16694?=zj8h<6=4::183!7?<3;9h6F=5fd583>>oc=3:17dj9:188ma1=831d=::50;9~f4d>290>6=4?{%3;0?75l2B8n55G3`g8 `6=:?1bh94?::kg1?6=3`n=6=44ie594?=h9>>1<75rb33f>5<2290;w)?74;31`>N4j11C?lk4$d2965=nl=0;66gk5;29?lb12900ei950;9l522=831vn?5<7s-;387?=d:J0f==O;ho0(h>5279j`1<722co97>5;hf5>5<5fd583>>oc=3:17dj9:188ma1=831d=::50;9~f6?42903;7>50z&2<1<6?j1C?o64H2cf?_212hq26?95e;35>42=9k0m6<;51682g?{#98l196*>2186?!b?2<1/h44:;%fb>0=#lk0>7)jl:49'`a<23-;3<7=4$0:2>1=#m80>7)k=:49'a6<23-o?685+e486?!c12<1/i:4:;%g;>0=#m00>7)kn:49'ag<23-oh685+ee86?!cb2<1/ik4:;%d3>0=#n80>7)h=:49'b6<23-l?685+f486?!`12<1/j:4:;%d;>0=#n00>7)hn:49'bg<23-lh685+fe86?!`b2<1/jk4:;%334?3<,8::685+11091>"68:0>7)??4;78 4622<1/==855:&242<23-;;47;4$02:>0=#99k196*>0c86?!77k3?0(<>k:49'55c==2.:"69:0>7)?>4;78 4722<1/=<855:&252<23-;:47;4$03:>0=#98k196*>1c86?!76k3?0(7:4$2`7>6d43-nm685f4c83>>o3k3:17dm7:188mf?=831b=5<50;9j5=5=831b?o?50;9j7g4=831b?:4?:%34=?513g;<47>4;h16>5<#9>31?;5a16:95>=n;=0;6)?89;15?k7003807d=<:18'52?=;?1e=:653:9j77<72-;<57=9;o3421965f3183>!70139=7c?88;48?l4a290/=:75379m52>=?21b>h4?:%34=?513g;<4764;h0g>5<#9>31?;5a16:9=>=n<80;6)?89;63?k7003:07d=i:18'52?=<91e=:651:9j7`<72-;<57:?;o3421?65f3b83>!7013>;7c?88;68?l5e290/=:75419m52>==21b?l4?:%34=?273g;<4784;h1:>5<#9>318=5a16:93>=n;10;6)?89;63?k7003207d;n:18'52?==01e=:650:9j1=<72-;<57;6;o3421>65f5783>!7013?27c?88;18?l32290/=:75589m52>=<21b994?:%34=?3>3g;<47;4;h40>5<#9>31945a16:92>=n>;0;6)?89;7:?k7003=07d8>:18'52?==01e=:658:9j25<72-;<57;6;o3421m65f5d83>!7013?27c?88;`8?l3c290/=:75589m52>=k21b9n4?:%34=?3>3g;<47j4;h7a>5<#9>31945a16:9a>=n=:0;6)?89;7:?k7003l07d9k:18'52?=?j1e=:650:9j3g<72-;<579l;o3421>65f7983>!7013=h7c?88;18?l10290/=:757b9m52>=<21b;;4?:%34=?1d3g;<47;4;h56>5<#9>31;n5a16:92>=n?=0;6)?89;5`?k7003=07d9<:18'52?=?j1e=:658:9j37<72-;<579l;o3421m65f7183>!7013=h7c?88;`8?l0b290/=:757b9m52>=k21b:i4?:%34=?1d3g;<47j4;h4`>5<#9>31;n5a16:9a>=n>k0;6)?89;5`?k7003l07d8n:18'52?=?j1e=:651198m3?=83.:;448c:l23=<6921b:54?:%34=?1d3g;<47?=;:k53?6=,8=26:m4n05;>45<3`<=6=4+16;93f=i9>21=954i7794?"6?0079821>=n0=0;6)?89;5`?k7003;=76g73;29 41>2>i0b<97:058?l>5290/=:757b9m52>=9110e5?50;&23<<0k2d:;54>9:9j<5<72-;<579l;o345$05:>2e5<#9>31;n5a16:95f=
k1<7*>7884g>h6?10:h65f6g83>!7013=h7c?88;3f?>o1<3:1(<96:6a8j41?28l07d68:18'52?=0?1e=:650:9j<0<72-;<5769;o3421<65f8`83>!70132i7c?88;38?l>>290/=:758c9m52>=:21b454?:%34=?>e3g;<47=4;n;7>5<#9>315>5a16:94>=h1;0;6)?89;;0?k7003;07b7>:18'52?=1:1e=:652:9l=5<72-;<577<;o3421865`8d83>!7013387c?88;78?j?c290/=:75929m52>=>21d5n4?:%34=??43g;<4794;n;a>5<#9>315>5a16:9<>=h1h0;6)?89;;0?k7003307b76:18'52?=1:1e=:65a:9l==<72-;<577<;o3421o65`9783>!7013387c?88;f8?j?2290/=:75929m52>=m21d4i4?:%34=??43g;<47h4;na2>5<#9>31o=5a16:94>=hjo0;6)?89;a3?k7003;07bl8:18'52?=j?1e=:650:9lf0<72-;<57l9;o3421>65`b383>!7013h=7c?88;18?jd6290/=:75b79m52>=<21dn=4?:%34=?d13g;<47;4;nce>5<#9>31n;5a16:92>=hil0;6)?89;`5?k7003=07bok:18'52?=j?1e=:658:9lef<72-;<57l9;o3421m65`a`83>!7013h=7c?88;`8?jg?290/=:75b79m52>=k21dm:4?:%34=?d13g;<47j4;nc5>5<#9>31n;5a16:9a>=hi<0;6)?89;`5?k7003l07bo;:18'52?=j?1e=:651198kd5=83.:;44m6:l23=<6921dm?4?:%34=?d13g;<47?=;:mb5?6=,8=26o84n05;>45<3fk;6=4+16;9f3=i9>21=954o8d94?"6?00i:6`>79821>=hjl0;6)?89;`5?k7003;=76amd;29 41>2k<0b<97:058?jdd290/=:75b79m52>=9110col50;&23<2d:;54>9:9lfd<72-;<57l9;o345$05:>g05<#9>31n;5a16:95f=1<7*>788a2>h6?10:h65`a883>!7013h=7c?88;3f?>i>m3:1(<96:c48j41?28l07bm9:18'52?=k<1e=:650:9lg1<72-;<57m:;o3421>65`c383>!7013i>7c?88;18?xd5=o0;684?:1y'5=2=9;o0D>l7;I1ba>"b83;87dj;:188ma3=831bh;4?::kg3?6=3f;997>5;|`2f0<72:0;6=u+196957g<@:h37E=ne:&f4?7b3`n?6=44ie794?=h9;?1<75rb0`5>5<3290;w)?74;31g>N4j11C?lk4$d295c=nl=0;66gk5;29?lb12900c<<::188yg46k3:1?7>50z&2<1<6:h1C?o64H2cf?!c728o0ei:50;9j`0<722e:>84?::a64b=83>1<7>t$0:7>44d3A9i46F5;hf6>5<5fd583>>oc=3:17dj9:188ma1=831d=?;50;9~w1?02903wS:67:?126ml;_1`f>X4kh1U?n74^2a;?[5d?2T8o;5Q3b78Z1g>3W>j46P;a69]0d07S:n4:\7e6=Y;_6:0>X31:1U84<4^5;2?[2>82T?4k5Q49g8Z1>c3W>3o6P;8c9>7g?=l;16?l:5509>77d4==816?l?5509>7de==816?ll5509>621==;16>:85539>623==;16>::5539>625==;16>5o5539>6=?==;16>565539>6=1==;16>585539>6c7==;16>k>5539>6``==;16>hk5539>6`b==;16?=:5539>755==;16?=<5539>757==;16?=>5539>6g2==;16>o<5539>6g6==;16>lk5539>6de==;16>lo5539>6d>==;16>l85539>6d2==;16??j5539>77d==;16??75539>771==;16??;5539>775==;16???5539>74`==;16?4=5191896?42:h:70=63;7b?85>;3?370=63;74?85>;3?=70=63;76?85>;3??70=63;40?85>;3<970=63;42?85>;3<;70=63;7e?85>;3?n70=63;7g?85>;3?h70=63;7a?85>;3?870=63;:4?85>;32>7p};9883>6}Y<0301>o;:05b?85>13;{t4;f7?xu30h0;686t^5:b?85>j3><70=6a;64?85>13><70=n3;64?85f:3><70=n1;64?84>?3><70<70<70<70<703><70<:5;64?842<3><70<:3;64?842:3><70<:1;64?84283><70<;f;64?843m3><70<;4;64?843;3><70<;2;64?84393><70<;0;64?844n3><70<<70<<70?lc;64?87dj3><70?la;64?87d13><70?l8;64?87d?3><70?l6;64?87d=3><70?l4;64?84c<3><70<70<70<70<70<703><70<70<70<70<70<9a;64?84103><70<97;64?85003><70=87;64?850>3><70=85;64?850<3><70=83;64?850:3><70=81;64?85?83><70=8f;64?850m3><70=8d;64?850k3><70=8b;64?850i3><70=89;64?85083><70=9f;64?85>;3>i7p};4483>7}Y<=?01>?=:05a?xu3i90;697t^5c3?85f>3><70=n4;64?85f=3><70=nc;64?85fj3><70=>2;64?85693><70?n7;64?87f>3><70?n5;64?87f<3><70?n3;64?87f:3><70?n1;64?87f83><70?6f;64?87a;3><70?i2;64?87a93><70?i0;64?87bn3><70?je;64?87bl3><70?jc;64?87bj3><70?j1;64?87b83><70?kf;64?87cm3><70?kd;64?87ck3><70?kb;64?87ci3><70?k9;64?87c03><70<<2;64?84493><70<<0;64?845n3><70<=e;64?845l3><70<=c;64?845j3><70<=a;64?853i3><70=;9;64?85303><70=;7;64?853>3><70=;5;64?853;3><70=;2;64?853<3><70=:6;64?852<3><70=:5;64?852?3><70=:8;64?85213><70=:a;64?852j3><70=:c;64?851m3><70=9d;64?851k3><70=9b;64?851i3><70=99;64?85103><70=97;64?851>3><70=63;6`?xu3;=0;6?uQ4308961?28=i7p};3383>7}Y<;;01>98:05a?xu3;80;6?uQ4328961128=i7p};3183>7}Y<8l01>9::05a?xu3:o0;6?uQ40g8961328=i7p};2d83>7}Y<8n01>9<:05a?xu3:m0;6?uQ40a8961528=i7p};2b83>7}Y<8h01>9>:05a?xu3;m0;6?uQ43c896>728=i7p};3b83>7}Y<;301>9i:05a?xu3;k0;6?uQ43:8961b28=i7p};3`83>7}Y<;=01>9k:05a?xu3;00;6?uQ4348961d28=i7p};3983>7}Y<;?01>9m:05a?xu3;>0;6?uQ4368961f28=i7p};3783>7}Y<;901>96:05a?xu3;<0;6?uQ40c8961728=i7p};2c83>7}Y<8301>8i:05a?xu3980;6?uQ3df896?42130q~:?f;296~X4mj16?4=56`9~w16b2909wS=jb:?0=6<112wx8=j50;0xZ6cf3492?787;|q74f<72;qU?h74=2;0>31;n7>52z\0a==:;091:;5rs52:>5<5sW9n:63<92851>{t<921<7;32?7p};0683>7}Y;l>01>7<:918yv27>3:1>vP7<5=011v9>::181[5b:2785>472:p052=838pR>k>;<1:7?>63ty?<>4?:3y]7`6<5:3865>4}r636?6=:rT8hk5238193c=z{=::6=4={_1ga>;41:02d52z\0`3=:;091;45rs2d;>5<5sW9o963<9284<>{t;o=1<7;3=<7p}7}Y;m901>7<:648yv5a=3:1>vP7<5=?<1v9?7:181[5a;2785>484:p041=838pR>h=;<1:7?>f3ty?=;4?:3y]7c7<5:386:=4}r621?6=:rT8j=52381937=z{=;?6=4={_1fb>;41:0<=6s|40194?4|V:on70=63;53?xu39;0;6?uQ3d5896?42?o0q~:?a;296~X4lj16?4=56e9~w6`a2909wS=k1:?0=6<1k2wx?k:50;0xZ6b73492?78m;|q276<72hq6?oo5164897142=k01?69:5c897cc2=k01>>?:5c897d12=k01?o;:5c8964a2=k01>?i:5c896?42j30q~=6a;297~;41k0>=63<9`823g=:;031855rs2;a>5<5s492n7?8b:?0=ao;:5:896g228=i7p}7}:;h<1=:l4=2c;>a253z?0=d<29278544>7c9>7o;:18085f<3;;4i10o96s|38a94?2|5:k86<9n;<1b6?70i278m<4>7`9>7>0q~=n0;295d}:;h91=:l4=3;4>41f348o87:k;<0g7?2c348o=7:k;<0g4?2c348o>7:k;<0`b?2c348hi7:k;<0`g?2c348hn7?8a:?1ga<3l279i54;d:?1a2<3l279i;4;d:?1a0<3l279i94;d:?1a6<3l279i?4;d:?1a4<3l279i=4;d:?1`c<3l279:44>7`9>63g=9>k01?87:5f897002=n0q~=6f;2963}:;h81=:l4=32f>1b<5;:o69j4=32`>1b<5;:i69j4=32b>1b<5;:269j4=32;>1b<5;:<69j4=325>1b<5;?=69j4=376>1b<5;??69j4=370>1b<5;?969j4=372>1b<5;?;69j4=36e>1b<5;>n69j4=367>1b<5;>869j4=361>1b<5;>:69j4=363>1b<5;9m69j4=31f>1b<5;9o69j4=31`>1b<58io69j4=0a`>1b<58ii69j4=0ab>1b<58i269j4=0a;>1b<58i<69j4=0a5>1b<58i>69j4=0a7>1b514y>7d7=9>h01>97:5f896102=n01>99:5f896122=n01>9;:5f896142=n01>9=:5f896162=n01>6?:5f8961a2=n01>9j:5f8961c2=n01>9l:5f8961e2=n01>9n:5f8961>2=n01>9?:5f8960a2=n01>7::e6896?428297p}6}:;hi1=:o4=2ca>41f349j47?84:p7dg=83;nw0=nc;34f>;49;0?h63<1087`>;4;4<10?h63<4687`>;4;4<:0:;l5235090a=:;=>18i5234490a=:;<>1=:o4=276>1b<5:?<69j4=27;>1b<5:?269j4=27b>1b<5:?i69j4=27`>1b<5:1b<5:1b<5:1b<5:<369j4=244>1b<5:<=69j4}r1b=?6=:?q6?ll516`894g02=n01:5f894`72=n012=n01:5f897572=n01?0>=63=988231=z{;3<6=4:{<0:3?70j279:94k4:?124?>:438967328=?7p}<1083>6}:;8;1=:l4=236>a3<5:;?6i;4}r046?6=:r79;:4;a:?133<6?=1v?9l:181840?3;6=4={<043?70<279544k6:p627=838p1?99:5c8971228=?7p}=7c83>7}::><1=:j4=3:3>4133ty9;=4?:3y>623=::51668yv40i3:1>v3=74823a=::>l1=::4}r05b?6=:r79;94;a:?136<6?=1v?96:181840<3;759~w7>22909w0<7a;6b?84?13;<86s|29d94?4|5;2j6<9k;<0:0?70<2wx>4850;0x97>f28=?70<69;f6?xu50=0;6?u229;90d=::121=::4}r0;a?6=:r79444>7e9>6<5=9>>0q~<73;296~;5010?m63=868231=z{;2o6=4={<0;759~w7>52909w0<77;6b?84?>3;<86s|29a94?4|5;2<6<9k;<0:5?70<2wx>5l50;0x97>128=o70<60;340>{t:li1<71g<5;l;6<9;;|q1b3<72;q6>k?516f897`e28=?7p}<0g83>7}::o;1=::4=237>a052z?1b5<3i279ik4>759~w7`22909w0;5nh0:;95rs3gb>5<5s48nj7:n;<0fa?70<2wx>k:50;0x97ca28=o70{t:l31<71g<5;oo6<9;;|q1b6<72;q6>hk516f897`?28=?7p}=f383>7}::ln1=:j4=3d4>4133ty9jk4?:3y>752=v3<05823a=:;9o1=::4}r124?6=:r78<94>759>742=l>1v?hj:181857;3>j70=?2;340>{t;921<741c349;h7?84:p6cb=838p1>>=:5c8966628=?7p}<0683>7}:;981=:j4=22`>4133ty9jn4?:3y>757=51668yv57>3:1>v3<00823a=:;9h1=::4}r131?6=:r78<=4>7e9>75g=9>>0q~?ja;291~;6i>0>=63>f2823g=:9h31h8521``9`1=:9hn1h:5rs0;f>5<4s4;j;7?8b:?04`=838p128=?7p}>9e83>6}:9h<1=:l4=22g>a3<5;lj6i;4}r3be?6=:r7:m84:1:?2eg<6?=1v<7l:18087f=3;;5nh0o;6s|1`a94?1|58k?68?4=0cg>41334;jj7j:;<3a5?b134;i?7j8;<3a3?b034;i57j8;|q2=g<72:q6=l:516`8966d2m?01?h6:e78yv7fm3:1>v3>a2865>;6io0:;95rs0;b>5<4s4;j?7?8b:?04f9883>6}:9h81=:l4=22a>a3<5;l36i;4}r3a6?6=:r7:m<4:1:?2f6<6?=1v<77:18087f93;;5n10o;6s|1c694?4|58k;68?4=0`4>4133ty:5:4?:2y>5d6=9>h01>>n:e7897`02m?0q~?m8;296~;61o0>=63>b88231=z{83=6=4<{<3:b?70j2789j50;7x976b2<;01?;9:05a?84683n>70<>2;f7?846<3n<7p}=0483>6}::9o1=:l4=3;7>a3<5;2:6i;4}r03b?6=:r79;:180847l3;;5080o86s|20394?4|5;:h68?4=331>4133ty9<>4?:2y>65e=9>h01?7<:e7897>72m?0q~<>3;293~;58k0>=63=158231=::8<1h85220:9`3=::8k1h:5220g9`2=::;:1h:5rs321>5<4s48;n7?8b:?1=6n:438977128=?7p}=0083>6}::9k1=:l4=3;1>a3<5;=m6i;4}r023?6=:r79<44:1:?15=<6?=1v?>?:18084713;;5?o0o86s|20;94?4|5;:368?4=33b>4133ty:jk4?:2y>65>=9>h01?7>:e78971b2m?0q~<>b;296~;58>0>=63=1d8231=z{8ln6=4<{<033?70j2795<4k4:?13`u2214952d<5;3;6i:4=35g>a252z?113<29279894>7c9~w75f2909w0<:5;72?843;3;6<9m;<024?b3348:>7j:;<020?b13ty9?44?:3y>602==816>9<516`8yv43j3:1?v3=55823g=::881h;522069`0=z{;936=4={<067?36348?=7?8b:p61g=838p1?;<:05a?846<3n?7p}=3683>7}::<819<52252952d56z?117<6?k16><85d59>64>=l<16>64c=l<16>?>5d49~w7512909w0<:1;72?844n3;8>5509>66c=9>h0q~<;7;290~;5=90:;o5220c9`1=::8i1h95220f9`1=z{;9?6=4={<07b?363488h7?8b:p610=839p1?:i:05a?846k3n>70<>d;f6?xu5;:0;6?u225g914=:::i1=:l4}r071?6=:r798h4>7c9>64b=l?1v{t9m<1<707<58o;6<9m;|q2a<<72=q6=k<516`894g>2m>01=63>dg823g=z{8o36=4<{<3e5?70j27:mo4k6:?2ea0;6?u21g2952d<58ko6i:4}r3g7?6=:r7:ik4:1:?2`a<6?k1vag8g0>;6j80o963>b28g2>;6j>0o963>b88g1>{t9m81<707<58nh6<9m;|q2a0<720101v3>ee865>;6lk0:;o5rs0g7>5<3s4;nh7?8b:?2f650;0x94cd2<;01u21da952d<58h>6i;4=0`5>a352z?2ag<2927:h44>7c9~w4c52909w0?jb;34f>;6j?0o:6s|23;94?4|5;>?68?4=311>41e3ty9>54?:3y>615==816>>?516`8yv45?3:1>v3=43865>;5;90:;o5rs305>5<5s48?=7;>;<01b?70j2wx>?;50;0x97272<;01?{t:;;1<707<5;8j6<9m;|q2g6<72;q6=h?5509>5fb=9>h0q~?l2;296~;6m90>=63>cb823g=z{8i:6=4={<3gb?3634;hn7?8b:p5f6=838p1bg83>7}:9mn19<521b;952d52z?2`f<2927:o54>7c9~w4dc2909w0?kb;72?87d?3;41e3ty:no4?:3y>5a?==816=n;516`8yv7ei3:1>v3>d9865>;6k=0:;o5rs0af>5<6s4;o47?8b:p6ac=83?p1{t9o=1<707<58236<9;;|q2b=<72;q6=n65509>5=?=9>>0q~?i9;296~;6k>0>=63>8`8231=z{8lj6=4={<3`2?3634;3n7?84:p5cd=838p1d28=?7p}>fb83>7}:9j>19<5219f952254z?177<29278:h4>7c9>5=c=l=16?4=5409~w7302909w0<<1;72?87?m3;<86s|24:94?4|5;9;68?4=0:e>4133ty9944?:3y>67`==816=4>51668yv42i3:1>v3=2d865>;6180:;95rs37a>5<5s489h7;>;<3:6?70<2wx>8m50;0x974d2<;01<7<:057?xu5=m0;6?u223`914=:90>1=::4}r06a?6=:r79>l4:1:?2=0<6?=1v?8?:1821~;5l=0?463=d287<>;5l80?463=d187<>;5l;0?463=cg87<>;5kl0?463=cb87<>;5kk0?463=ce87<>;5m10?463=e687<>;5m?0?463=e487<>;5m=0?463=e287<>;5m;0?463=e087<>;5m90?463=dg87<>;5>80:;95rs3c0>5<5s48o87;>;<0ab?70<2wx>no50;6x97b328=i70<3n<704>7c9>6`1==816>4:5d79>6g3=l=1v?o?:18184c93?:70{t:j=1<7:t=3f2>41e348n97;>;<0:7?b1348i=7j;;|q1=c<72;q6>i>5509>6gd=9>>0q~=83>p1?j=:05a?84b>3?:70<63;f4?84e;3n?7p}=9d83>7}::jl19<522cc952254z?1gc<6?k16>h=5509>6<4=l?16>lj5d59~w7?c2909w06fe==816>o951668yv4d:3:18v3=cb823g=::l:19<522829`0=::h=1h95rs3;b>5<5s48hn7;>;<0a2?70<2wx>n?50;6x97ee28=i7083n=707c9>6`7==816>4?5d79>6d?=l=1v?l;:18184en3>j70{t:j:1<7443348h<7?84:p6g4=839p1?lj:5c897d32=k01?l=:057?xu5j<0;6>u22cg9572<5;h?6<9k;<0a1?70<2wx>o>50;1x97dc2=k01?l=:5c897d728=?7p}=b283>6}::kn1=?:4=3`1>41c348i?7?84:p6dc=839p1?ll:5c897d72=k01?oj:057?xu5j80;6>u22ca9572<5;h;6<9k;<0a5?70<2wx>lm50;1x97de2=k01?oj:5c897gd28=?7p}=ag83>6}::kh1=?:4=3cf>41c348jj7?84:p6dg=839p1?ln:5c897gd2=k01?on:057?xu5im0;6>u22cc9572<5;kh6<9k;<0b`?70<2wx>l650;1x97d>2=k01?on:5c897g?28=?7p}=ac83>6}::k31=?:4=3cb>41c348jn7?84:p6d0=839p1?l7:5c897g?2=k01?o9:057?xu5i00;6>u22c:9572<5;k36<9k;<0b=?70<2wx>l:50;1x97d02=k01?o9:5c897g328=?7p}=a683>6}::k=1=?:4=3c5>41c348j;7?84:p6d3=839p1?l9:007?84f<3;im50;7x97c128=i70?77;f7?87?>3n>70<70;f4?85>;39?7p}=dc83>0}::l?1=:l4=0:;>a2<582<6i;4=3:3>a0<5:386>=4}r0ge?6==r79i94>7c9>5=?=l=16=565d49>62`=l>16?4=5339~w7b>290>w0;60h0o863>888g1>;5?o0o:63<92805>{t:m21<7;t=3g1>41e34;3n7j;;<3;e?b23486`7=9>h01<6l:e6894>e2m?01?9j:e4896?42;l0q~h5rs3f6>5<3s48oj7?8b:?2;l50;1x970>2<;01?8n:438970d28=?7p}=6883>7}::?31=:l4=34`>a252z?12=<29279:94>759~w7012903w0<98;34f>;5>:0o863=658g1>;5>j0o:63=638g2>;5>80o:63=5g8g2>;5>90o:6s|27f94?4|5;<<68?4=340>4133ty9:84?:9y>631=9>h01?8<:e4897032m=01?8l:e7897052m?01?8>:e58973a2m=01?8?:e58yv5>03:1=iu235c90==:;=31855235:90==:;==1855235490==:;=?1855235190==:;=81855235690==:;<<1855234690==:;6d53ty8=h4?:3y>71g==816?>951668yv5393:18v3<4`823g=:;5<5s49?57;>;<102?70<2wx?9>50;6x962>28=i70=:b;72?857l3n<70==e;f7?xu49j0;6?u235:914=:;:?1=::4}r10b?6=7c9>70g==816?=j5d79>77e=l=1v>?m:181853?3?:70=<4;340>{t;:o1<7:t=264>41e349>57;>;<13g?b03499m7j;;|q05d<72;q6?985509>765=9>>0q~=7?84:p76e=83>p1>:::05a?852?3?:70=?b;f4?855>3n?7p}<1683>7}:;=919<52322952254z?006<6?k16?8;5509>75g=l>16??<5d59~w6712909w0=;2;72?855n3;<86s|32;94?2|5:>96<9m;<160?36349;m7j9;<114?b33ty8=54?:3y>712==816?>?51668yv54j3:18v3<45823g=:;<<19<5231`9`3=:;;>1h95rs20g>5<5s498;7:n;<11`?70<2wx?>650;0x9650288?70=<8;340>{t;;h1<7=t=215>1g<5:8o69o4=20a>4133ty8>h4?:2y>760=9;>01>69o4=20a>1g<5:826<9;;|q06f<72:q6?>;51368964e28=o70==c;340>{t;;=1<7=t=217>1g<5:8269o4=204>4133ty8>l4?:2y>762=9;>01><6:05g?855i3;<86s|33794?5|5:9869o4=204>1g<5:8>6<9;;|q06=<72:q6?>=51368964028=o70==8;340>{t;;91<7=t=211>1g<5:8>69o4=200>4133ty8>;4?:2y>764=9;>01><::05g?855>3;<86s|33394?5|5:9:69o4=200>1g<5:8:6<9;;|q061<72:q6?>?51368964428=o70==4;340>{t;8l1<7=t=213>1g<5:8:69o4=23e>4133ty8>?4?:2y>766=9;>01><>:05g?855:3;<86s|33294?5|5:8m6<<;;<12b?70l278>=4>759~w62c2908w0=:6;34f>;4>10>=63=f98g2>{t;=h1<7=t=277>41e349=:7;>;<0e3?b13ty88n4?:2y>703=9>h01>88:43897`02m>0q~=;e;297~;4=>0:;o5237;914=::o21h95rs26e>5<4s49>47?8b:?02d<29279j44k6:p706=839p1>;6:05a?851j3?:70u234c952d<5:a0>7>53z?01g<6?k16?;j5509>6cg=l=1v>;<:180852k3;;5nk0o86s|37694?2|5:4?:5y>73e=9>h01<7?:e6894>a2m?01>7<:2g8yv51:3:18v3<6c823g=:90;1h9521829`0=:;091?i5rs242>5<3s49=m7?8b:?2=750;6x960>28=i70?63;f7?87>:3n>70=63;1a?xu4=o0;69u237:952d<583?6i:4=0;0>a3<5:386>o4}r16a?6=7c9>5<3=l=16=4:5d49>7<5=;01v>;k:180851>3;948g1>;41:0846s|38594?74s49<47:7;<143?2?349<:7:7;<141?2?349<87:7;<147?2?349<>7:7;<145?2?3493<7:7;<14b?2?3497?84:p7=?=838p1>97:43896?42j;0q~=78;296~;4?>0>=63<928:0>{t;1=1<707<5:3864<4}r1;2?6=:r78;84:1:?0=6<>92wx?5;50;0x96132<;01>7<:828yv5?<3:1>v3<72865>;41:03j6s|39194?4|5:=968?4=2;0>=c7>52z?034<292785>46d:p7<4=838p1>6?:43896?420i0q~=61;296~;4?o0>=63<928ab>{t;0:1<707<5:3864l4}r1;b?6=:r78;i4:1:?0=6<>i2wx?5k50;0x961d2<;01>7<:8;8yv5?l3:1>v3<7c865>;41:0246s|39a94?4|5:=j68?4=2;0><152z?03<<292785>466:p7=g=838p1>9?:43896?420?0q~=71;296~;4>o0>=63<928;`>{t:a3<5;<;6<<:;|q0=1<72;q6?4;5166896?42j20q~=66;296~;5100o863=5g8260=z{87p}>6983>7}::8o1h;5220a957352z?165279=i4>249~yv2693:1>vP00<4mm1/?lj517a8yv27n3:1>vP00<4mj1/?lj517f8yv27m3:1>vP00<4mk1/?lj517g8yv27l3:1>vP00<4mh1/?lj517d8yv27k3:1>vP00<4m01/?lj51268yv27j3:1>vP00<4m11/?lj512;8yv2713:1>vP00<4m?1/?lj512a8yv2703:1>vP00<4m<1/?lj51558yv27?3:1>vP00<4m=1/?lj51428yv27>3:1>vP00<4m:1/?lj51438yv27=3:1>vP00<4m;1/?lj51408yv27<3:1>vP00<4m81/?lj51418yv27;3:1>vP00<4m91/?lj51468yv27:3:1>vP00<4lo1/?lj51478yv2793:1>vP00<4ll1/?lj51448yv2783:1>vP00<4lm1/?lj51458yv5am3:1>vP00<4lk1/?lj514:8yv5al3:1>vP00<4lh1/?lj514;8yv5ak3:1>vP00<4l01/?lj514c8yv5aj3:1>vP00<4l11/?lj514`8yv5ai3:1>vP00<4l>1/?lj514a8yv5a13:1>vP00<4l?1/?lj514f8yv5a03:1>vP00<4l<1/?lj514g8yv5a?3:1>vP00<4l=1/?lj514d8yv5a>3:1>vP00<4l:1/?lj51728yv5a=3:1>vP00<4l;1/?lj51738yv2603:1>vP00<4n:1/?lj51708yv26?3:1>vP00<4n;1/?lj51718yv26>3:1>vP00<4n81/?lj51768yv26=3:1>vP00<4n91/?lj51778yv26<3:1>vP00<4mo1/?lj51748yv26;3:1>vP00<4ml1/?lj51758yv26:3:1>vP00<4m>1/?lj517:8yv27i3:1>vP00<4lj1/?lj517;8yv5an3:1>vP00<4l81/?lj517c8yv5a<3:1>vP00<4l91/?lj517`8yv2?i3:1>vP;8`9>00<30h1/?lj51628yv2>?3:1>vP;969>00<31>1/?lj51278yv2>13:1>vP;989>00<3101/?lj51248yv2f83:1>vP;a19>00<3i91/?lj51258yv2fj3:1>vP;ac9>00<3ik1/?lj512:8yv24<3:1>vP;239>00<3:;1/?lj512c8yv24:3:1>vP;209>00<3:81/?lj512`8yv2493:1>vP;219>00<3:91/?lj512f8yv2483:1>vP;1g9>00<39o1/?lj512g8yv25n3:1>vP;1d9>00<39l1/?lj512d8yv25m3:1>vP;1e9>00<39m1/?lj51528yv25l3:1>vP;1b9>00<39j1/?lj51538yv25k3:1>vP;1c9>00<39k1/?lj51508yv24l3:1>vP;2`9>00<3:h1/?lj51518yv24k3:1>vP;289>00<3:01/?lj51568yv24j3:1>vP;299>00<3:11/?lj51578yv24i3:1>vP;269>00<3:>1/?lj51548yv2413:1>vP;279>00<3:?1/?lj515:8yv2403:1>vP;249>00<3:<1/?lj515;8yv24?3:1>vP;259>00<3:=1/?lj515c8yv24>3:1>vP;229>00<3::1/?lj515`8yv24=3:1>vP;1`9>00<39h1/?lj515a8yv25j3:1>vP;189>00<3901/?lj515f8yv24n3:1>vP;3g9>00<3;o1/?lj515g8yv23=3:1>vP;449>00<3<<1/?lj515d8yxh?l=0;6?uG3`g8yk>c=3:1>vFoj;|l;`=<72;qC?lk4}o:g=?6=:rB8mh5rn9fb>5<5sA9ji6sa8e`94?4|@:kn7p`7db83>7}O;ho0qc6kd;296~N4il1vb5jj:181M5fm2we4ih50;0xL6gb3td3i=4?:3yK7dc52zJ0e`=zf1o96=4={I1ba>{i0l91<7b=3:1>vFoj;|l;a=<72;qC?lk4}o:f=?6=:rB8mh5rn9gb>5<5sA9ji6sa8d`94?4|@:kn7p`7eb83>7}O;ho0qc6jd;296~N4il1vb5kj:181M5fm2we4hh50;0xL6gb3td3j=4?:3yK7dc52zJ0e`=zf1l96=4={I1ba>{i0o91<7a=3:1>vFoj;|l;b=<72;qC?lk4}o:e=?6=:rB8mh5rn9db>5<5sA9ji6sa8g`94?4|@:kn7p`7fb83>7}O;ho0qc6id;296~N4il1vb5hj:181M5fm2we4kh50;0xL6gb3td2<=4?:3yK7dc52zJ0e`=zf0:96=4={I1ba>{i1991<78=0;6?uG3`g8yk?7=3:1>vFoj;|l:4=<72;qC?lk4}o;3=?6=:rB8mh5rn82b>5<5sA9ji6sa91`94?4|@:kn7p`60b83>7}O;ho0qc7?d;296~N4il1vb4>j:181M5fm2we5=h50;0xL6gb3td2==4?:3yK7dc51zJ0e`=zf>k<6=4>{I1ba>{i?h21<7?tH2cf?xh0i00;6oj;|l4ea<728qC?lk4}o5ba?6=9rB8mh5rn6ce>5<6sA9ji6sa7c294?7|@:kn7p`8b083>4}O;ho0qc9m2;295~N4il1vb:l<:182M5fm2we;o:50;3xL6gb3td51zJ0e`=zf>h<6=4>{I1ba>{i?k21<7?tH2cf?xh0j00;6oj;|l4fa<728qC?lk4}o5aa?6=9rB8mh5rn6`e>5<6sA9ji6sa7b294?7|@:kn7p`8c083>4}O;ho0qc9l2;295~N4il1vb:m<:182M5fm2we;n:50;3xL6gb3td51zJ0e`=zf>i<6=4>{I1ba>{i?j21<7?tH2cf?xh0k00;6oj;|l4ga<728qC?lk4}o5`a?6=9rB8mh5rn6ae>5<6sA9ji6sa7e294?7|@:kn7p`8d083>4}O;ho0qc9k2;295~N4il1vb:j<:182M5fm2we;i:50;3xL6gb3td51zJ0e`=zf>n<6=4>{I1ba>{i?m21<7?tH2cf?xh0l00;6oj;|l4`a<728qC?lk4}o5ga?6=9rB8mh5rn6fe>5<6sA9ji6sa7d294?7|@:kn7p`8e083>4}O;ho0qc9j2;295~N4il1vb:k<:182M5fm2we;h:50;3xL6gb3td51zJ0e`=zf>o<6=4>{I1ba>{i?l21<7?tH2cf?xh0m00;6oj;|l4aa<728qC?lk4}o5fa?6=9rB8mh5rn6ge>5<6sA9ji6sa7g294?7|@:kn7p`8f083>4}O;ho0qc9i2;295~N4il1vb:h<:182M5fm2we;k:50;3xL6gb3td51zJ0e`=zf>l<6=4>{I1ba>{i?o21<7?tH2cf?xh0n00;6oj;|l4ba<728qC?lk4}o5ea?6=9rB8mh5rn6de>5<6sA9ji6sa81294?7|@:kn7p`70083>4}O;ho0qc6?2;295~N4il1vb5><:182M5fm2we4=:50;3xL6gb3td3<84?:0yK7dc51zJ0e`=zf1:<6=4>{I1ba>{i0921<7?tH2cf?xh?800;67i3:1=vFoj;|l;4a<728qC?lk4}o:3a?6=9rB8mh5rn92e>5<6sA9ji6sa80294?7|@:kn7p`71083>4}O;ho0qc6>2;295~N4il1vb5?<:182M5fm2we4<:50;3xL6gb3td3=84?:0yK7dc51zJ0e`=zf1;<6=4>{I1ba>{i0821<7?tH2cf?xh?900;66i3:1=vFoj;|l;5a<728qC?lk4}o:2a?6=9rB8mh5rn93e>5<6sA9ji6sa83294?7|@:kn7p`72083>4}O;ho0qc6=2;295~N4il1vb5<<:182M5fm2we4?:50;3xL6gb3td3>84?:0yK7dc51zJ0e`=zf18<6=4>{I1ba>{i0;21<7?tH2cf?xh?:00;65i3:1=vFoj;|l;6a<728qC?lk4}o:1a?6=9rB8mh5rn90e>5<6sA9ji6sa82294?7|@:kn7p`73083>4}O;ho0qc6<2;295~N4il1vb5=<:182M5fm2we4>:50;3xL6gb3td3?84?:0yK7dc51zJ0e`=zf19<6=4>{I1ba>{i0:21<7?tH2cf?xh?;00;64i3:1=vFoj;|l;7a<728qC?lk4}o:0a?6=9rB8mh5rn91e>5<6sA9ji6sa85294?7|@:kn7p`74083>4}O;ho0qc6;2;295~N4il1vb5:<:182M5fm2we49:50;3xL6gb3td3884?:0yK7dc51zJ0e`=zf1><6=4>{I1ba>{i0=21<7?tH2cf?xh?<00;63i3:1=vFoj;|l;0a<728qC?lk4}o:7a?6=9rB8mh5rn96e>5<6sA9ji6sa84294?7|@:kn7p`75083>4}O;ho0qc6:2;295~N4il1vb5;<:182M5fm2we48:50;3xL6gb3td3984?:0yK7dc:7>51zJ0e`=zf1?<6=4>{I1ba>{i0<21<7?tH2cf?xh?=00;62i3:1=vFoj;|l;1a<728qC?lk4}o:6a?6=9rB8mh5rn97e>5<6sA9ji6sa87294?7|@:kn7p`76083>4}O;ho0qc692;295~N4il1vb58<:182M5fm2we4;:50;3xL6gb3td3:84?:0yK7dc51zJ0e`=zf1<<6=4>{I1ba>{i0?21<7?tH2cf?xh?>00;61i3:1=vFoj;|l;2a<728qC?lk4}o:5a?6=9rB8mh5rn94e>5<6sA9ji6sa86294?7|@:kn7p`77083>4}O;ho0qc682;295~N4il1vb59<:182M5fm2we4::50;3xL6gb3td3;84?:0yK7dc51zJ0e`=zf1=<6=4>{I1ba>{i0>21<7?tH2cf?xh??00;60i3:1=vFoj;|l;3a<728qC?lk4}o:4a?6=9rB8mh5rn95e>5<6sA9ji6sa89294?7|@:kn7p`78083>4}O;ho0qc672;295~N4il1vb56<:182M5fm2we45:50;3xL6gb3td3484?:0yK7dc51zJ0e`=zf12<6=4>{I1ba>{i0121<7?tH2cf?xh?000;6?i3:1=vFe290:wE=ne:m<=e=83;pD>oj;|l;5<6sA9ji6sa88294?7|@:kn7p`79083>4}O;ho0qc662;295~N4il1vb57<:182M5fm2we44:50;3xL6gb3td3584?:0yK7dc51zJ0e`=zf13<6=4>{I1ba>{i0021<7?tH2cf?xh?100;6>i3:1=vFoj;|l;=a<728qC?lk4}o::a?6=9rB8mh5rn9;e>5<6sA9ji6sa8`294?7|@:kn7p`7a083>4}O;ho0qc6n2;295~N4il1vb5o<:182M5fm2we4l:50;3xL6gb3td3m84?:0yK7dc51zJ0e`=zf1k<6=4>{I1ba>{i0h21<7?tH2cf?xh?i00;6fi3:1=vFoj;|l;ea<728qC?lk4}o:ba?6=9rB8mh5rn9ce>5<6sA9ji6sa8c294?7|@:kn7p`7b083>4}O;ho0qc6m2;295~N4il1vb5l<:182M5fm2we4o:50;3xL6gb3td3n84?:0yK7dc51zJ0e`=zf1h<6=4>{I1ba>{i0k21<7?tH2cf?xh?j00;6ei3:1=vFoj;|l;fa<728qC?lk4}o:aa?6=9rB8mh5rn9`e>5<6sA9ji6sa8b294?7|@:kn7p`7c083>4}O;ho0qc6l2;295~N4il1vb5m<:182M5fm2we4n:50;3xL6gb3td3o84?:0yK7dc51zJ0e`=zf1i<6=4>{I1ba>{i0j21<7?tH2cf?xh?k00;6di3:1=vFoj;|l;ga<728qC?lk4}o:`a?6=9rB8mh5rn9ae>5<6sA9ji6sa8e294?7|@:kn7p`7d083>4}O;ho0qc6k2;295~N4il1vb5j<:182M5fm2wvqpNOCzc4g?b7l==jn5sO@Cy3yEFWstJK +XILINX-XDM V1.6e +$5a540<,[o}e~g`n;"2*726&;$:,)<6;.vnt*Ydo&lbjbQwloz\144;?U9oaeP37vl5=(iof;0<85?0123=>6789:;<=>;0:23456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?013856=6&9;87<>5IORVP?GCL[K757>11g924?OIX\^1|ah_dosp|Ys`{oxd1750?05?46=AGZ^X7~}of]fiur~W}byi~fParqfvq:>2949:6??:HLSQQ712@D[YY4KI@>21?699:1::7AZTQWW>AIF48?1<3?;;0:9KPRW]]0ocxz31683:4=5:28:86<<3232?76==:HLSQQ112906?IR\Y__6IAM<2394;753:<1EC^ZT;fjj952294o7>}=012ec131%<;0895;0GD25>2=AGZ^X7JFPC>0>586:2>1CXZ_UU8GKUD;;3:5=68=;7;7?3?>>=138??;;9G;E4=><23;<4<49768=30>9;126D@_UU8B@ATE410;22@D[YY4rne\bpjkW}byi~fPndebp`:?294:4675OTVSQQG502KOH_O30?:8EABUI5;546OKDSC?6;>GCL[K7:364AEFQE91902KOH_O38?c8EABUI531<364AEFQE9?902KOH_L30?:8EABUJ5;546OKDS@?6;>GCL[H7:364AEFQF919i2KOH_L38;2=<>GCL[H743=4AMN:?DU^FJUYIJ=4BT0;?GSTW@DMC<5L2:AF57=D@LI@SAGLEOQF[Q_WM;1HE95LLJC7?FJLJ:1H@_74CNONMQRBL8>0OB\J_FGMAWGSAFDTECH@7:AQADRBL81O>6JL2:FJ2>BNI5:5;6JFA=33:2=CAH6:=394DHC?57803MCJ0<=17:FJE973601OEL2>5;2=3>BNI5;>2;5KI@>2:3=CAH692;5KI@>0:3=CAH6?2;5KI@>6:3=CAH6=2;5KI@>4:3=CAH632;5KI@>::3=CAK6;2:5KIC>24;169GMG:6<7=0HDL314<4?AOE48<5;6JFB=34:2=CAK6:4394DH@?5<813MCI0<08;EKA8769?2NBN1<>>69GMG:5:7=0HDL322<4?AOE4;>5;6JFB=06:2=CAK69:394DH@?62803MCI0?617:FJF94>6?1OEO2=>69GMG:48730HDL33083:2=CAK68=384DH@?7;02:2=CAYH7>374DHRA86<76>1OE]L33?48@JG;87=0HBO311<4?AIF48;5;6J@A=31:2=CGH6:?394DNC?518>3MEJ0<;50?58@JG;9<4=7IAN<0<5?AIF4;4=7IAN<2<5?AIF4=4=7IAN<4<5?AIF4?4=7IAN<6<5?AIF414=7IAN<8<4?AIFW[OL:6J@B=2=3>BHJ5;;2:5KOC>25;169GKG:6=7=0HBL317<4?AIE48=5;6J@B=3;:2=CGK6:5384DN@?5;1=08;EMA8779?2NDN1<=>69GKG:5;7=0HBL325<4?AIE4;?5;6J@B=05:2=CGK69;394DN@?6=803MEI0?716:FLF949?2NDN1=?>89GKG:493:5;6J@B=12:3=CGK682;5KOC>7:3=CGK6>2;5KOC>5:3=CGK6<2;5KOC>;:3=CGK622:5KOC]QAB12:2=CGYH7>374DNRA86<76>1OC]L33?18AKG43LDIn6KA_DA@[WCFLj1NBRKLC^UQMQC53O8?7K6HK3:DGG1=ALJO87KJ_4:DGT@2O7:2C:>6G=2:K0<>OIA]ZT<=64IOKWTZ6602CEEY^P03:8MKOSXV:846GAIUR\41>:8:KMMQVX8?20ECG[P^24=>OIA]Y_MYK8;HLJPZ67?2CEEYQ?169JJLRX8;=0ECG[_114?LHN\V:?;6GAIU]312=NF@^T<;94IOKW[5103@DBXR>77:KMMQY71>1BBDZP0@58MKOSW9H<7D@FT^2@3>OIA]U;H:5FNHV\4@1169JJLRX9;=0ECG[_014?LHN\V;?;6GAIU]212=NF@^T=;94IOKW[4103@DBXR?77:KMMQY61>1BBDZP1@58MKOSW8H<7D@FT^3@3>OIA]U:H:5FNHV\5@1;94IOKW[7103@DBXR<77:KMMQY51>1BBDZP2@58MKOSW;H<7D@FT^0@3>OIA]U9H:5FNHV\6@11BBDZP3@58MKOSW:H<7D@FT^1@3>OIA]U8H:5FNHV\7@1H9;HLJPZG13@DBXRL=;MK1?II13EEJHHJ8;MMDMFGK<2F^X<:4LTV10>JR\:>0@XZ;6:NVP1YC=2GXKB@:;LW[G\eKnffx]i}foo08J42159M54633G;:=95A1007?K76;=1E=<:;;O3211=I98759M54>33G;:5>5A1368J447<2D:><:4N0010>H6::>0B<<;4:L26022618J4533G;8=>5A1518J4343G;=?6@>729M5=5H59:1E>?=4N310?K43;2D99>5A2718J7143G83?6@=929M755;<;O157>H4?:1E?5=4N2;0?K27;2D?=>5A4318J1543G>??6@;529M035H0:2D2j6@M_CWPTLHXX[E[_:5AEUULVN7W63[o0^LCM17]P5=YT;?k0^HOK_GKQWQeTBIMU\EIZG_C38W45<[@GTOBBCIRKLJZEOMJA=7^AZRBG4?VTQIEUJ;6]]V@N\F1=T[[K?7^]]B59W]UC4:2_;#j|i.sd,cf~)keas#@v`r^pg[uhszVmhSua}0123[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYulVzexQhc^zlv5679VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4563W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;9R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?07]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3451XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:3S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?0^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2344YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt7898T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=><_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1230ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678<5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb1?1209V4*aun'xm#jmw.bnh|*tcWyd~Rlfn=0=64=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj959:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf5>5><5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb1;1209V4*aun'xm#jmw.bnh|*tcWyd~Rlfn=4=64=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj919:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf525><5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb171219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^314>S7'nxm"h gbz-gim'{nT|cz}_ckm[7473\:$kh!rg-dg}(ddbr$~iQnup\flhX;;:0Y=!hrg,qb*adp'iggu!}d^rmpwYeagU?>=5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbR;=0:W3+bta&{l$knv!cmi{+wbXxg~ySoga_703?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\376<]9%l~k }f.e`|+ekcq%yhR~ats]amkY?:91^<"i}f/pe+be&jf`t"|k_qlwvZdnfV39:6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}012362=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;<<<9;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34575?2_;#j|i.sd,cf~)keas#jPpovq[goiWqey<=>>1348Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678;8<7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?010263=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;??94U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos234645>2_;#j|i.sd,cf~)keas#jPpovq[goiWqey<=>;269V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567<88=7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?01713>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:>=?84U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos23434?3\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=8>1358Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678?89n6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0125[gbc8;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0604?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789=:>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmh0=0=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm31?03?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb>1:76<]9%l~k }f.e`|+ekcq%yhR~ats]dg959:91^<"i}f/pe+be&jf`t"|k_qlwvZad4=49<6[?/fpe*w`(ojr%oaew/sf\tkruWni793328Q5)`zo$yj"ilx/aoo})ulVzexQhc=5=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`8=8582_;#j|i.sd,cf~)keas#jPpovq[be;17;m7X> gsd-vc)`kq$h`fv re]sjqtXojU;=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS;m7X> gsd-vc)`kq$h`fv re]sjqtXojU3=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS4<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8585>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk1?1279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:56;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi33?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4=49:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=7=63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn6=2?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?3;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol050=6:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfc9?9:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ?249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY6:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ=249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY4:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ;249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY2:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ9249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY0:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ7249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY>:01^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1=3=6<=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=1<1289V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabYc9595>45Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g5929:01^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1=7=6<=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=181289V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabYc95=5>45Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g59>9:01^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1=;=6==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh55Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g5Z?5=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=>=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34575=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=<=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34555=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=:=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34535=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=8=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34515=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=6=1:W3+bta&{l$knv!cmi{+rtXxg~ySoga<1<15>S7'nxm"h gbz-gim'~xT|cz}_ckm848592_;#j|i.sd,cf~)keas#z|Ppovq[goi4;49=6[?/fpe*w`(ojr%oaew/vp\tkruWkce0>0=1:W3+bta&{l$knv!cmi{+rtXxg~ySoga<5<15>S7'nxm"h gbz-gim'~xT|cz}_ckm808592_;#j|i.sd,cf~)keas#z|Ppovq[goi4?49=6[?/fpe*w`(ojr%oaew/vp\tkruWkce0:0=1:W3+bta&{l$knv!cmi{+rtXxg~ySoga<9<14>S7'nxm"h gbz-gim'~xT|cz}_ckm[5473\:$kh!rg-dg}(ddbr${Qnup\flhX9;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU9>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR==0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_503?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\176<]9%l~k }f.e`|+ekcq%|~R~ats]amkY1:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV=9<6[?/fpe*w`(ojr%oaew/vp\tkruWkceS5<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34565?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>?1348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw67888<7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?013263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;>?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234775>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=><269V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567;;8=7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01613>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:?=?84U1-dvc(un&mht#mcky-tvZvi|{UiecQwos2340403\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=;>279V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567>;20Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?073262=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;:?;5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r123371<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<:?=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm30?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>2:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg949:91^<"i}f/pe+be&jf`t"y}_qlwvZad4:49<6[?/fpe*w`(ojr%oaew/vp\tkruWni783328Q5)`zo$yj"ilx/aoo})pzVzexQhc=4=65=R8&myj#|i/fa{*fjlp&}yS}`{r^e`828582_;#j|i.sd,cf~)keas#z|Ppovq[be;07;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU;=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU3>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>3:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm7=3<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8785>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk1=1279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:36;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi35?05?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4?49:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=5=63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn632?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\473<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT=?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\673<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT??;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\073<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT9?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\273<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT;?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\<7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2?>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86:2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:56;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>0:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2;>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86>2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:16;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>4:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<27>3:8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8U;>55Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5Z7502_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>_30;?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;T??64U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4Y3:11^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1^71<>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S;<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X?;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0];60=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:;>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012260=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:9>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012060=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:?>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012660=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:=>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012475=R8&myj#|i/fn3*wb(o{;%~kyit.Onq}YUIDUYHRKA_GUEP775n2_;#j|i.sd,ci6)zm%l~< }fvdw+HkrpVXJAR\JGNWW[@H69;n0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`:76;n0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`:66;i0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`Y7:j1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwaZ74=2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[hs89::0=0<6:W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nS`{w01228586;<1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwaZkrp9:;=1?1379V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}kiRczx12359799;20Y=!hrg,qb*ak8'xo#j|>.sdtbq)bey~rSkyit^da62=R8&myj#|i/fn3*wb(o{;%~kyit.gntqXn~lSd?319V4*aun'xm#jb?.sf,cw7)zo}mx"kbpu{\br`sW`Ufyu>?0131=>S7'nxm"h gm2-va)`zhy%~~z|/b2,gdtuqgo0=0=9:W3+bta&{l$ka>!re-dvdu)zz~x#n> c`pq}kcs484956[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$ol|}yogw878512_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(khxyuck{<2<1b>S7'nxm"h gm2-va)`zhy%~~z|/b2,chs&ngP

<1<17>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4:66;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&|:0?0=3:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0>0:75<]9%l~k }f.eo4+tc'nxj#||tr-`4*p64=49n6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$z?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4Y3Whdo<=>?13;8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.abvwim}6;2?74U1-dvc(un&mg<#|k/fpbw+tt|z%h="mnrs{maq:66;30Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&ij~waeu>1:7?<]9%l~k }f.eo4+tc'nxj#||tr-`5*efz{seiy2<>3d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.enq}(`eR:V"jc>.l31b>S7'nxm"h gm2-va)`zhy%~~z|/b3,chs&ngP=P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`5*aj}q$laV318Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t28485;2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~8692?=4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x><2<17>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4:36;h0Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&|:S=Qnne234575j2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~8U:Sl`k012357d<]9%l~k }f.eo4+tc'nxj#||tr-`5*p6W;Ujbi>?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4Y4Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t2[1Yffm:;<=?=0:W3+bta&{l$ka>!re-dvdu)zz~x#nabp103?P6(o{l%~k!hl1,q`*auiz$yy} cnos57?<]9%l~k }f.eo4+tc'nxj#||tr-qehYbey~rSklPi228Q5)`zo$yj"ic0/pg+btf{'xxx~!}al]fiur~WohTeRa}012374=R8&myj#|i/fn3*wb(o{kx"}{s.pbiZcjx}sTjoQf_np34566::1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by<;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw572<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~9>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu110>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|=8?7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{5368Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkr1:=1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by9=4:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmp=433\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d5?74U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:76;i0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>3:Zts:01^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=3=6f=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1?1_sv1=>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0?0=c:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4;4T~y<6;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[f;;78h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?7;Yu|;30Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>7:7e<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2;>^pw6<=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1;12b9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5?5Sz=9:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4?49o6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az838Xz}827X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?3;4d3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw37?]qp7?<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot27>3a8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp632R|{2`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{6;2?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;978j7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8785i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=1=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc2;>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx793;:7g<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|39?0g?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWqey040Pru3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=2=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?5;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9499o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;;7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5>5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~793?i;T2,cw`)zo%l`= }d.psjqt(kfex1811g9V4*aun'xm#jb?.sf,vuhsz&idycz37?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=:=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?=;7b3\:$kh!rg-dh5(ul&x{by| cnwmpZ66m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY69l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX:8o0Y=!hrg,qb*ak8'xo#~ats-`kphsW:;n7X> gsd-vc)`d9$yh"|nup,gjsi|V>:i6[?/fpe*w`(oe:%~i!}povq+firf}U>=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T:e:W3+bta&{l$ka>!re-qtkru'je~byQ6239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>3:74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;97897X> gsd-vc)`d9$yh"|nup,gjsi|Vn:0?0=2:W3+bta&{l$ka>!re-qtkru'je~byQk1=1=67=R8&myj#|i/fn3*wb(zyd~"m`uov\`4:36;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;793<=;T2,cw`)zo%l`= }d.psjqt(kfexRj><7<16>S7'nxm"h gm2-va)uxg~y#naznu]g5919:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl8632?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?39?02?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[5463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W88:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S?<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_202?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[1463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W<8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S;<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_602?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[=463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W08?7X> gsd-vc)`d9$yh"|nup,gjsi|Vddx=>?13;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6;2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:66;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>1:7?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2<>3d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(`eR:V"jc>.l31b>S7'nxm"h gm2-sw)`hy%{~z|/b3,chs&ngP=P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28485;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8692?=4U1-dvc(un&mg<#y}/fubw+qt|z%h="x><2<17>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4:36;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S=Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U:Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W;Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4Y4Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t2[1Yig}:;<=?=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs494956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw848512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<3<1=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0>0=f:W3+bta&{l$ka>!ws-dsdu)z~x#n< glw{*bk\8T$la< b13d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.enq}(`eR;V"jc|.lq1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP>P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`6*aj}q$laV=R.fop*hu5n2_;#j|i.sd,ci6){%l{l}!wrvp+f4(ods"jcT4\,div(j{;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0=0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>2:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64;49?6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z<2<>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t28185j2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~8U;Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p6W8Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y5Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t2[6Yffm:;<=?=b:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0]7[kis89:;=?>4U1-dvc(un&mg<#y}/fubw+qt|z%hc`~>219V4*aun'xm#jb?.vp,crgt&~y"m`mq01<>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVliSd<:;T2,cw`)zo%l`= xr.etev(p{}y$~lcPftno[l4c3\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXn|fgSdQbuy23454b3\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXn|fgSdQbuy234576l2_;#j|i.sd,ci6){%ym`Qxr^gm[l75;2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex?:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov261=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}8986[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at207?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs<;>0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz:259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq05<2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex:<;;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw<7?<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2?>3a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6;2R|{289V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5;5>n5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}979W{~956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8785k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<3<\vq4>3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw33?0`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7?3Q}t3;8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6?2?m4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\g|:36Vx>45Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}939:j1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=7=[wr512_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<7<1g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir0;0Pru0:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7;3 gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8485i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=0=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc2<>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7834:7g<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|38?0g?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey050Pru3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=2=5c=R8&myj#|i/fn3*rt(yd~"m`uov?5;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9499o1^<"i}f/pe+bj7&~x${}`{r.alqkr;;7;m7X> gsd-vc)`d9$|~"ynup,gjsi|5>5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~793?i;T2,cw`)zo%l`= xr.usjqt(kfex1811g9V4*aun'xm#jb?.vp,suhsz&idycz37?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=:=5`=R8&myj#|i/fn3*rt(yd~"m`uov\44c<]9%l~k }f.eo4+qu'~zex!lotlw[47b3\:$kh!rg-dh5(pz&}{by| cnwmpZ46m2_;#j|i.sd,ci6){%||cz}/bmvjqY49l1^<"i}f/pe+bj7&~x${}`{r.alqkrX<8o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW<;n7X> gsd-vc)`d9$|~"ynup,gjsi|V<:i6[?/fpe*w`(oe:%{!xpovq+firf}U<=h5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T4?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?30?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28485:2_;#j|i.sd,ci6){%||cz}/bmvjqYc9585>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<2<>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3?0;453\:$kh!rg-dh5(pz&}{by| cnwmpZb64<49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=181239V4*aun'xm#jb?.vp,suhsz&idyczPd0>4:74<]9%l~k }f.eo4+qu'~zex!lotlw[a7;078:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S=<>;T2,cw`)zo%l`= xr.usjqt(kfexRj>_002?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f2[7463\:$kh!rg-dh5(pz&}{by| cnwmpZb6W:8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S9<>;T2,cw`)zo%l`= xr.usjqt(kfexRj>_402?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f2[3463\:$kh!rg-dh5(pz&}{by| cnwmpZb6W>8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S5<=;T2,cw`)zo%l`= xr.usjqt(kfexRj=<1<16>S7'nxm"h gm2-sw)pxg~y#naznu]g6979:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;692?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<33?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f18185:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5?5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?29>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?3;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54149=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R>=1:W3+bta&{l$ka>!ws-ttkru'je~byQk2^315>S7'nxm"h gm2-sw)pxg~y#naznu]g6Z4592_;#j|i.sd,ci6){%||cz}/bmvjqYc:V99=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R:=1:W3+bta&{l$ka>!ws-ttkru'je~byQk2^715>S7'nxm"h gm2-sw)pxg~y#naznu]g6Z0592_;#j|i.sd,ci6){%||cz}/bmvjqYc:V=9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R6=4:W3+bta&{l$ka>!ws-ttkru'je~byQaou2344703\:$kh!rg-nah)cg|~Te1>1199V4*aun'xm#`kb/emvpZo;994:46[?/fpe*w`(elg$hb{{_h>25;7?3\:$kh!rg-nah)cg|~Te1?=>0:8Q5)`zo$yj"cjm.flqqYn4895=55Z0.eqb+ta'dof#iazt^k?518602_;#j|i.sd,i`k(lfSd2>5?3;?P6(o{l%~k!bel-gkprXa5;=2<64U1-dvc(un&gna"j`uu]j84199>1^<"i}f/pe+hcj'me~xRg31?34?P6(o{l%~k!bel-gkprXa585=:5Z0.eqb+ta'dof#iazt^k?7;703\:$kh!rg-nah)cg|~Te1:1169V4*aun'xm#`kb/emvpZo;=7;<7X> gsd-vc)jmd%ocxzPi=4=52=R8&myj#|i/lgn+air|Vc7;3?8;T2,cw`)zo%fi`!kotv\m9>99>1^<"i}f/pe+hcj'me~xRg39?35?P6(o{l%~k!bel-gkprXaV:::6[?/fpe*w`(elg$hb{{_h]252=R8&myj#|i/lgn+air|VcT==?8;T2,cw`)zo%fi`!kotv\mZ769>1^<"i}f/pe+hcj'me~xRgP1334?P6(o{l%~k!bel-gkprXaV;8=:5Z0.eqb+ta'dof#iazt^k\51703\:$kh!rg-nah)cg|~TeR?:169V4*aun'xm#`kb/emvpZoX9?;<7X> gsd-vc)jmd%ocxzPi^3453=R8&myj#|i/lgn+air|VcT><84U1-dvc(un&gna"j`uu]j[6713\:$kh!rg-nah)cg|~TeR:>6:W3+bta&{l$ahc dnww[lY29?1^<"i}f/pe+hcj'me~xRgP6048Q5)`zo$yj"cjm.flqqYnW>;=7X> gsd-vc)jmd%ocxzPi^:22>S7'nxm"h mdo,`jssW`U2=45Z0.eqb+ta'dof#iazt^ofi9699h1^<"i}f/pe+hcj'me~xRcjm=33:4g<]9%l~k }f.ofi*bh}}Ufi`2>1?3b?P6(o{l%~k!bel-gkprXelg7=?0>a:W3+bta&{l$ahc dnww[hcj4895=l5Z0.eqb+ta'dof#iazt^ofi97368k0Y=!hrg,qb*kbe&ndyyQbel>21;7f3\:$kh!rg-nah)cg|~Tahc317<2e>S7'nxm"h mdo,`jssWdof0<91189V4*aun'xm#`kb/emvpZkbe5;5=45Z0.eqb+ta'dof#iazt^ofi949901^<"i}f/pe+hcj'me~xRcjm=1=5<=R8&myj#|i/lgn+air|Vgna1:1189V4*aun'xm#`kb/emvpZkbe5?5=45Z0.eqb+ta'dof#iazt^ofi909901^<"i}f/pe+hcj'me~xRcjm=5=5<=R8&myj#|i/lgn+air|Vgna161189V4*aun'xm#`kb/emvpZkbe535;95Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(~hfbh#m|ts-qehjhgyQ;Q#|nm/p,w6Yig`dbx#|nm.fsvdk)ly9=t<6!r`o2f>S7'nxm"h mdo,phvXzhgT~iQjn0a8Q5)`zo$yj"cjm.vntZtfeVxoSh`>169V4*aun'xm#ob_sgdkprXmg;o7X> gsd-vc)u{}hgg"|k_sqw[duumn8;7X> gsd-vc)u{}hgg"|k_sqw[duumnUo=?>4U1-dvc(un&xxxobd/sf\vvrXizxnkRj=1b9V4*aun'xm#}{bmi,vaYu{}Uhc`l>d:W3+bta&{l$~~zmlj-q`Ztt|Vidao?>e:W3+bta&{l$~~zmlj-q`Ztt|Vxnk1>11d9V4*aun'xm#}{bmi,vaYu{}Uyij2>>0g8Q5)`zo$yj"||tcnh+wbXzz~T~hi32?3g?P6(o{l%~k!}su`oo*tcW{ySkh_13g?P6(o{l%~k!}su`oo*tcW{ySkh_03g?P6(o{l%~k!}su`oo*tcW{ySkh_33g?P6(o{l%~k!}su`oo*quW{ySl}}ef03?P6(o{l%~k!}su`oo*quW{ySl}}ef]g576<]9%l~k }f.pppgjl'~xT~~zParpfcZb59j1^<"i}f/pe+wusjea${Q}su]`khd6l2_;#j|i.sd,vvredb%|~R||t^alig76m2_;#j|i.sd,vvredb%|~R||t^pfc9699l1^<"i}f/pe+wusjea${Q}su]qab:668n0Y=!hrg,qb*tt|kf`#z|Prrv\v`aX88n0Y=!hrg,qb*tt|kf`#z|Prrv\v`aX9h1^_H\PAMKBWf=R[LXTZD]FBMG0?SED12\BIZQ[YQG0?RCF;2]NNn5XRHVF[HICMVKh7Z\FTD]NKACXJm1\^DZJ_VKGPMYFl2]YEYKPWHFWLZD6l2RB@D@W-YFA$5(6(Z^^N->!1!CPGLO23QEYOT84XRVOMG1gkefyShctx`8eikh{}Umyab9;cc`opvc3kkhgx~Pm`phaw5bf|hUhcx`{(6+g?agsiVidycz'8(d8`drfWje~by27:1<4?adn|lxy:6jfn)2*2>bnf!;";6jfn)33-2=cag":=$94dhl+57/03mce$<=&7:fjj-73!>1oec&>5(58`lh/9?#<7iga(05*3>bnf!;3%:5kio*2=,0$94dhl+65/03mce$??&7:fjj-45!>1oec&=3(58`lh/:=#<7iga(37*3>bnf!8=%:5kio*13,15'8;ekm,7?.>2nbb%=&7:fjj-57!>1oec&<1(58`lh/;;#<7iga(21*3>bnf!9?%:5kio*01,01oec2>3?58`lh;9=4<7iga<07=3>bnf5;=2:5kio>23;12nbb1?17:fjj9476>1oec2=1?58`lh;:;4<7iga<31=3>bnf58?2:5kio>11;1;08;ekm8719?2nbb1<7>69gmk:517<0hd`32?58`lh;;94<7iga<23=3>bnf5992:5kio>07;14=7iga<9<5?aoi404<7iazt)2*3>bh}}":%55kotv+55/?3me~x%?>)99gkpr/9;#37iazt)30-==cg|~#=9'7;emvp-72!11ocxz'17+;?air|!;<%:5kotv+6,1'8;emvp-2.?2ndyy&:)69gkpr/> =0hb{{(6+4?air|!2";6j`uu*:-2=cg|~7<364dnww846902ndyy2>1?:8`jss488546j`uu>27;>bh}}6:;7>18:flqq:6?7=0hb{{<0<4?air|585;6j`uu>0:2=cg|~78394dnww80803me~x1817:flqq:06>1ocxz38?58`jss40437hjff3ld`0=bey~r>k5iigm\c`hbzh~d~Rx9_0.#\ljnfq*HC_K/Gdlfvdrhz);9"=?v<6^0`hnY4>}e:4>o4fhdl[}jipV?:>u=9_3aooZ51|f;3 kgio^efj`tf|fxTz;Q>,OMMA)HHFL>;=6hffn]{hk~X=88s?;Q=cmi\73rh91&mekaPgdlfvdrhzV|=S<"tc^jbwZoi|Vigg0>#c^jbwZuu{}7; nQ}d^dqat;6$jUnbllce^pppZu~fj7: nQgar]q`Zbf|hUhcx`{=1.`[aoiW~coxe3<6-a\lduX{UomyoPcnwmp86+kVl~`aQil`ep[wusWkg1="l_hosh`kbf}keb`Ptxrf97*dW|ynShcmeeff`Ztbo4:'oRy}_gpfu87+kVxiRj`uu]qwq;6$jU~bik}fmmt[iip59&hSeo|_ntfvcjh4:'oR~}emmb`Zjf|ldhu0>#c^flqqYpam~c1<6#c^opcjhX~hf6=!mPre]gauro58:98!mPesplvZoiblieb`Ptxrf95*dWakxSx`kesdokr;7$jUcm~QnllmppZ`rde7; nQgar]qwq;6$jUomyoPcnwmpZqnl}b65!mPh`q\swYfkb7; nQzsd]fgf;7$jUhc`c`n^aokfm:8%iT{Qncj]okr;7$jUyhR~ats]tmaro58:'oR{|e^dtbqYci}kTob{at<2/gZnf{Vkgab}{_dosp|;7$jUyhRjnt`]`kphsW~coxe3>0-a\kscunee|Saax=1.`[rtXxg~ySzgkti?:(fYwzfmTi`~{y^vzt`;7$jU|~Rjnt`]`kphsW~coxe36,b]sv`jhimUyij}21-a\`jssW{yS{oc=1.`[mgtWmkmRm`uov>4)eXx{elSk{cl^vkv`uoWgolmykPv`n>15>+kV}ySikti?657*dWyxdkRkbpu{\pmtb{aUeijo{e^tbh83+kVzycjQjmqvz[qnumzbTm~}jru]uei;3$jUcm~Qyamkg95*dWyxdkRhzlm]wlwct`Vkxh|{_wco906>$jef|b`jnu]mehc:n`ldSubax^726}51W;iggR=9tn3;(fYqiecoSaax=1.`[utneVlbjbQ{yqg>144;?&hS}|`g^dvhiYsqyo6vugnUna}zv_ujqavn/: ;?7}|`g^gntqX|axne&<)068twi`Wlg{xtQ{hsgpl-2.9=1{~biPelrw}Zrozlyc$8'>4:rqkbYbey~rSyf}erj+2,733yxdkRkbpu{\pmtb{a"<%<:4psmd[`kw|pUdk|h):*51=wzfmTi`~{y^vkv`uo 0#::6~}of]fiur~W}byi~f39;2=5g=wzfmTi`~{y^vkv`uoWhyxiz'0(3a?uthoVof|ywPtipfwmYf{zoyx%?&1c9svjaXmdzuRzgrdqk[dutm{~#>$?m;qplcZcjx}sTxe|jsi]bwvcu|!9"=o5rne\ahvsqV~c~h}g_`qpawr/< ;i7}|`g^gntqX|axneQnsrgqp-3.9k1{~biPelrw}ZrozlycSl}|esv+2,7e3yxdkRkbpu{\pmtb{aUj~k}t)5*5g=wzfmTi`~{y^vkv`uoWhyxiz'8(3a?uthoVof|ywPtipfwmYf{zoyx%7&1e9svjaXmdzuRzgrdqk[dutm{~757>11c9svjaXmdzuRzgrdqk[kc`i}o#<$?m;qplcZcjx}sTxe|jsi]mabgsm!;"=o5rne\ahvsqV~c~h}g_ogdeqc/: ;i7}|`g^gntqX|axneQaefcwa-5.9k1{~biPelrw}ZrozlycSckhaug+0,7e3yxdkRkbpu{\pmtb{aUeijo{e)7*5g=wzfmTi`~{y^vkv`uoWgolmyk'6(3a?uthoVof|ywPtipfwmYimnki%9&1c9svjaXmdzuRzgrdqk[kc`i}o#4$?m;qplcZcjx}sTxe|jsi]mabgsm!3"=i5rne\ahvsqV~c~h}g_ogdeqc;13:556~}of]eqij6;2zycjQiumn\pmtb{a";%<=4psmd[cskdV~c~h}g(0+27>vugnUmyabPtipfwm.5!890|ah_gwohZrozlyc$>'>3:rqkbYa}efTxe|jsi*7-45a:rqkbYa}efTxe|jsi]bwvcu|!8"=l5rne\bpjkW}byi~fParqfvq.4!8k0|ah_gwohZrozlycSl}|esv+0,7f3yxdkRhzlm]wlwct`Vkxh|{(4+2e>vugnUmyabPtipfwmYf{zoyx%8&1`9svjaXn|fgSyf}erj\evubz}"<%vugnUmyabPtipfwmYimnki%<&1`9svjaXn|fgSyf}erj\j`af|l"8%$??;sf\`drfWje~by&<)028vaYci}kTob{at)6*55=ulVnjxlQlotlw,0/682xoSio{a^alqkr/> ;;7jPd`vb[firf}"<%<>4re]geqgXkfex%6&119q`Zbf|hUhcx`{(8+24>tcWmkmRm`uov?4;753{nThlzn_bmvjq:>294>7jPeo48vaYu{}90~~z8;r`jp`tu<2yyy:4tswf=>sillxm`by:;wcoma0<{Ujof84ws]`hn773~xThlzn_bmvjq.7!8:0{Qkauc\gjsi|!;"==5xr^fbpdYdg|d$?'>0:uq[agsiVidycz'3(33?rtXlh~jSnaznu*7-46<{UomyoPcnwmp-3.991|~Rjnt`]`kphs ?#:<6y}_ecweZeh}g~#;$??;vp\`drfWje~by&7)008swYci}kTob{at=:94;3<{Unb;5xr^pppxFGxh<>7MNw1;D90?7|[=l188;57;306g0dk398:ljtn2f6>4=i;m<1:6*107290:??l9cb8073gb3Z>o698?:18277d1kj08?;oi;e66hn0(>m9:00a?S5c<38py<=<:09v562=82w/=:75199a00>=839o6>47;'5=g=<<20(>j=:574?l2e83:17d:l4;29?j22k3:17b::6;29?l2e13:17d:m2;29?j2413:1(<9m:56b?k70i3:07b:<8;29 41e2=>j7c?8a;38?j24?3:1(<9m:56b?k70i3807b:<6;29 41e2=>j7c?8a;18?j24=3:1(<9m:56b?k70i3>07b:<4;29 41e2=>j7c?8a;78?j24;3:1(<9m:56b?k70i3<07b:<2;29 41e2=>j7c?8a;58?j2393:1(<9m:56b?k70i3207b:;0;29 41e2=>j7c?8a;;8?j24n3:1(<9m:56b?k70i3k07b:j7c?8a;`8?j24l3:1(<9m:56b?k70i3i07b:j7c?8a;f8?j24j3:1(<9m:56b?k70i3o07b:j7c?8a;d8?j2493:1(<9m:56b?k70i3;;76a;3183>!70j3>?m6`>7`825>=n<9>1<7*>7c8762=i9>k1<65f41194?"6?k0?>:5a16c95>=n<981<7*>7c8762=i9>k1>65f41394?"6?k0?>:5a16c97>=n<9:1<7*>7c8762=i9>k1865f3gd94?"6?k0?>:5a16c91>=n;on1<7*>7c8762=i9>k1:65f3ga94?"6?k0?>:5a16c93>=n;oh1<7*>7c8762=i9>k1465f3gc94?"6?k0?>:5a16c9=>=n;o31<7*>7c8762=i9>k1m65f3g:94?"6?k0?>:5a16c9f>=n;o=1<7*>7c8762=i9>k1o65f3g494?"6?k0?>:5a16c9`>=n;o?1<7*>7c8762=i9>k1i65f3g694?"6?k0?>:5a16c9b>=n;o81<7*>7c8762=i9>k1==54i2d2>5<#9>h18?94n05b>47<3`9m<7>5$05a>1403g;1e=:o51598m6cc290/=:l54358j41f28?07d=jc;29 41e2=8<7c?8a;35?>o4mk0;6)?8b;613>h6?h0:;65f3dc94?"6?k0?>:5a16c95==b:9j05>=83.:;o4;269m52g=9j10e9>8:18'52d=<;=0b<9n:0f8?l27>3:1(<9m:504?k70i3;n76g;0483>!70j3>9;6`>7`82b>=n;oo1<7*>7c8762=i9>k1>=54i2d0>5<#9>h18?94n05b>77<3`9n47>5$05a>1403g;tH2a7?!7?i39h96a>7983>>{el10;6<4?:1yK7f2<,82j6i64oe594?=zj=>1<7o::00g>40>sA9h86T;5;35d<>2k09m7<8:3:96<8`871g=#<10?945+4d871d=#9>>1=:94i554>5<#9>h18:64n05b>5=5<#9>h18:64n05b>7=54i550>5<#9>h18:64n05b>1=5<#9>h18:64n05b>3=5<#9>h18:64n05b>==5<5<5<#9>h18;j4n05b>5=5<#9>h18;j4n05b>7=54i54;>5<#9>h18;j4n05b>1=5<#9>h18;j4n05b>3=6=4+16`903b5<#9>h18;j4n05b>==5<5<#9>h185=4n05b>5=5<#9>h185=4n05b>7=54i55f>5<#9>h185=4n05b>1=5<#9>h185=4n05b>3=5<#9>h185=4n05b>==5<5<#9>h1?h;4n05b>4=5<#9>h1?h;4n05b>6=5<#9>h1?h;4n05b>0=5<#9>h1?h;4n05b>2=5<5<#9>h185k4n05b>5=5<#9>h185k4n05b>7=54i5::>5<#9>h185k4n05b>1=5<#9>h185k4n05b>3=5<#9>h185k4n05b>==5<5<5<#9>h18464n05b>4=6=4+16`90<>5<#9>h18464n05b>6=5<#9>h18464n05b>0=5<#9>h18464n05b>2=5<#9>h18l<4n05b>5=5<#9>h18l<4n05b>7=54i5;g>5<#9>h18l<4n05b>1=5<#9>h18l<4n05b>3=5<#9>h18l<4n05b>==5<5<5<5<#9>h189o4n05b>5=5<#9>h189o4n05b>7=54o516>5<#9>h189o4n05b>1=5<#9>h189o4n05b>3=5<#9>h189o4n05b>==;6=4+16`901g5<#9>h189o4n05b>d=5<#9>h189o4n05b>f=5<#9>h189o4n05b>`=5<#9>h189o4n05b>46<3f>8<7>5$05a>12f3g;;:k741<72-;4?:%34f?25?2d:;l4>;:k747<72-;1e=:o51098m6`7290/=:l54358j41f28807d=jf;29 41e2=8<7c?8a;30?>o4ml0;6)?8b;613>h6?h0:865f3df94?"6?k0?>:5a16c950=8:9j7`?=83.:;o4;269m52g=9010e9>n:18'52d=<;=0b<9n:0c8?l2713:1(<9m:504?k70i3;i76g;0983>!70j3>9;6`>7`82g>=n<9=1<7*>7c8762=i9>k1=i54i525>5<#9>h18?94n05b>4c<3`>;97>5$05a>1403g;1e=:o52098m6c?290/=:l54358j41f2;807d=j7;29 41e2=8<7c?8a;00?>o4l00;66a;ae83>!70j3>jj6`>7`83?>i3ij0;6)?8b;6bb>h6?h0:76a;ac83>!70j3>jj6`>7`81?>i3ih0;6)?8b;6bb>h6?h0876a;a883>!70j3>jj6`>7`87?>i3i10;6)?8b;6bb>h6?h0>76a;a683>!70j3>jj6`>7`85?>i3i?0;6)?8b;6bb>h6?h0<76a;a483>!70j3>jj6`>7`8;?>i3i=0;6)?8b;6bb>h6?h0276a;c383>!70j3>h?6`>7`83?>i3k80;6)?8b;6`7>h6?h0:76a;c183>!70j3>h?6`>7`81?>i3jo0;6)?8b;6`7>h6?h0876a;bd83>!70j3>h?6`>7`87?>i3jm0;6)?8b;6`7>h6?h0>76a;bb83>!70j3>h?6`>7`85?>i3jk0;6)?8b;6`7>h6?h0<76a;b`83>!70j3>h?6`>7`8;?>i3>;0;66g;5e83>>i4m?0;66g;a283>>i3j?0;66l4<729q/=5o5d99K7f`<@:i?7bj8:188yg5c93:1=7>50z&21<729q/=5o5d59K7f`<@:i?7)k::79j03<722c><7>5;h34g?6=3f;5;|`052<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n3:187>50z&25;h6`>5<?54c78 `3=:2c?:7>5;h73>5<8`8g5>N4ko1C?n:4H518 4562=h>7)k::39j03<722c><7>5;n34`?6=3th8n=4?:283>5}#91k1h<5G3bd8L6e33A>87)?<1;6a1>"b=380e9850;9j15<722e:;i4?::a7gg=83?1<7>t$0:b>a3<@:im7E=l4:J77>"6;80?n85f4783>>o3?3:17d;?:188m41d2900c<9k:188yg5ej3:1?7>50z&27=n0<729q/=5o5d49K7f`<@:i?7E:<;%305?2e=2c?:7>5;h64>5<n1<75rb2`:>5<3290;w)?7a;f7?M5dn2B8o95+e485?l212900e8>50;9j52e=831d=:j50;9~f6d?290?6=4?{%3;e?b33A9hj6F=6=44i4294?=n9>i1<75`16f94?=zj:h<6=4;:183!7?i3n?7E=lf:J0g1=#m<0=7d:9:188m06=831b=:m50;9l52b=831vn>m=:187>5<7s-;3m7j;;I1`b>N4k=1/i849;h65>5<n1<75rb2a2>5<3290;w)?7a;f7?M5dn2B8o95+e485?l212900e8>50;9j52e=831d=:j50;9~f4gc290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e9hi1<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th:mo4?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo?na;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb0c:>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a5d>=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd6i>0;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<54;294~"60h0o>6F6g;6;29?l2d2900e8>50;9l52b=831vn5<7s-;3m7j=;I1`b>N4k=1/i84=;h65>5<>i6?m0;66sm20694?2=83:p(<6n:e08L6ea3A9h86*j5;08m10=831b8n4?::k64?6=3f;5;|`156<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n50z&25;h6`>5<<>50;694?6|,82j6i<4H2ae?M5d<2.n97<4i5494?=n1<729q/=5o5d39K7f`<@:i?7)k::39j03<722c?o7>5;h73>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f76c290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e:9i1<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th99n4?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo<:b;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb37b>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a60?=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd5=10;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<;7>54;294~"60h0o>6F6g;6;29?l2d2900e8>50;9l52b=831vn?;9:187>5<7s-;3m7j=;I1`b>N4k=1/i84=;h65>5<>i6?m0;66sm24794?2=83:p(<6n:e08L6ea3A9h86*j5;08m10=831b8n4?::k64?6=3f;5;|`111<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n50z&25;h6`>5<f783>1<729q/=5o5d39K7f`<@:i?7)k::39j03<722c?o7>5;h73>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f4`3290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e9o91<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th:j?4?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo?i1;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb36b>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb36:>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb36;>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb364>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb365>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb366>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb367>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb360>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb361>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g4>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g5>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g6>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g7>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g0>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g1>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g2>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g3>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0fe>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0ff>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0f0>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a5a4=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd6l80;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<54;294~"60h0o>6F6g;6;29?l2d2900e8>50;9l52b=831vn5<7s-;3m7j=;I1`b>N4k=1/i84=;h65>5<>i6?m0;66sm1bg94?2=83:p(<6n:e08L6ea3A9h86*j5;08m10=831b8n4?::k64?6=3f;5;|`2ga<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n50z&25;h6`>5<1<729q/=5o5d39K7f`<@:i?7)k::39j03<722c?o7>5;h73>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f751290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e::?1<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th9?94?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo<<3;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb311>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a667=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd5;90;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a6a1=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo0(h;52:k72?6=3`><6=44i5a94?=n=90;66a>7e83>>{e:m>1<7;50;2x 4>f2m90D>mi;I1`0>"b=380e9850;9j02<722c?o7>5;h73>5<8`8g7>N4ko1C?n:4$d796>o3>3:17d:8:188m1e=831b9=4?::m23a<722wi>i=50;794?6|,82j6i=4H2ae?M5d<2.n97<4i5494?=n<>0;66g;c;29?l372900c<9k:188yg4c:3:197>50z&25;h64>5<>i6?m0;66sm2e294?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o96F50;9j52e=831d=:j50;9~f7b6290>6=4?{%3;e?b43A9hj6F=6=44i5594?=n6<729q/=5o53bg8L6ea3A9h86g;9;29?l7503:17b?86;29?xd5k;0;6>4?:1y'5=g=;jo0D>mi;I1`0>o313:17d?=8;29?j70>3:17pl=b983>1<729q/=5o51208L6ea3A9h86g;9;29?l352900e<6<:188k4112900qo3:187>50z&22900e8<50;9j5=5=831d=:850;9~f7e729086=4?{%3;e?5dm2B8ok5G3b68m1?=831b=?650;9l520=831vn?l;:187>5<7s-;3m7?<2:J0gc=O;j>0e9750;9j17<722c:4>4?::m233<722wi>oh50;194?6|,82j6>mj;I1`b>N4k=1b844?::k26=<722e:;;4?::a6g4=83>1<7>t$0:b>4553A9hj6F>7>5;h3;7?6=3f;<:7>5;|`1f`<72:0;6=u+19c97fc<@:im7E=l4:k7=?6=3`;947>5;n342?6=3th9n=4?:583>5}#91k1=><4H2ae?M5d<2c?57>5;h71>5<5<53;294~"60h08oh5G3bd8L6e33`>26=44i00;>5<8`8277=O;jl0D>m;;h6:>5<<1<75rb3``>5<4290;w)?7a;1`a>N4ko1C?n:4i5;94?=n9;21<75`16494?=zj;kh6=4;:183!7?i3;8>6F>o60:0;66a>7783>>{e:kh1<7=50;2x 4>f2:in7E=lf:J0g1=n<00;66g>2983>>i6??0;66sm2`c94?2=83:p(<6n:011?M5dn2B8o95f4883>>o2:3:17d?73;29?j70>3:17pl=b`83>6<729q/=5o53bg8L6ea3A9h86g;9;29?l7503:17b?86;29?xd5i10;694?:1y'5=g=9:80D>mi;I1`0>o313:17d;=:188m4>42900c<99:188yg4bk3:197>50z&25;h64>5<>i6?m0;66sm2d`94?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a6`?=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo0(h;52:k72?6=3`><6=44i5a94?=n=90;66a>7e83>>{e:l=1<7;50;2x 4>f2m90D>mi;I1`0>"b=380e9850;9j02<722c?o7>5;h73>5<8`8g7>N4ko1C?n:4$d796>o3>3:17d:8:188m1e=831b9=4?::m23a<722wi>h;50;794?6|,82j6i=4H2ae?M5d<2.n97<4i5494?=n<>0;66g;c;29?l372900c<9k:188yg4b<3:197>50z&25;h64>5<>i6?m0;66sm2d194?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<54;294~"60h0o86F0(h;56:k72?6=3`?;6=44i05`>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f70>290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e:1o1<7:50;2x 4>f28997E=lf:J0g1=n<00;66g:2;29?l7?;3:17b?86;29?xd50m0;694?:1y'5=g=9:80D>mi;I1`0>o313:17d;=:188m4>42900c<99:188yg4?k3:187>50z&22900e8<50;9j5=5=831d=:850;9~f7>e290?6=4?{%3;e?74:2B8ok5G3b68m1?=831b9?4?::k2<6<722e:;;4?::a6=g=83>1<7>t$0:b>4553A9hj6F>7>5;h3;7?6=3f;<:7>5;|`13g<72=0;6=u+19c9564<@:im7E=l4:k7=?6=3`?96=44i0:0>5<8`8277=O;jl0D>m;;h6:>5<<1<75rb35:>5<3290;w)?7a;306>N4ko1C?n:4i5;94?=n=;0;66g>8283>>i6??0;66sm26:94?2=83:p(<6n:011?M5dn2B8o95f4883>>o2:3:17d?73;29?j70>3:17pl=7683>1<729q/=5o51208L6ea3A9h86g;9;29?l352900e<6<:188k4112900qo=?9;290?6=8r.:4l4>339K7f`<@:i?7d:6:188m04=831b=5=50;9l520=831vn>>7:187>5<7s-;3m7?<2:J0gc=O;j>0e9750;9j17<722c:4>4?::m233<722wi?=950;694?6|,82j6<==;I1`b>N4k=1b844?::k66?6=3`;3?7>5;n342?6=3th8<;4?:583>5}#91k1=><4H2ae?M5d<2c?57>5;h71>5<5<54;294~"60h0:??5G3bd8L6e33`>26=44i4094?=n9191<75`16494?=zj;l=6=4;:183!7?i3;8>6F>o60:0;66a>7783>>{e:o?1<7:50;2x 4>f28997E=lf:J0g1=n<00;66g:2;29?l7?;3:17b?86;29?xd5n=0;694?:1y'5=g=9:80D>mi;I1`0>o313:17d;=:188m4>42900c<99:188yg4a;3:187>50z&22900e8<50;9j5=5=831d=:850;9~f7`5290?6=4?{%3;e?74:2B8ok5G3b68m1?=831b9?4?::k2<6<722e:;;4?::a70d=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo=:9;291?6=8r.:4l4k5:J0gc=O;j>0(h;56:k72?6=3`><6=44i4294?=n9>i1<75`16f94?=zj:?j6=4::183!7?i3n87E=lf:J0g1=#m<097d:9:188m11=831b8n4?::k64?6=3f;5;|`01f<72<0;6=u+19c9`6=O;jl0D>m;;%g6>7=n50;9l52b=831vn>;k:186>5<7s-;3m7j<;I1`b>N4k=1/i84=;h65>5<>o283:17b?8d;29?xd4=l0;684?:1y'5=g=l:1C?nh4H2a7?!c22;1b8;4?::k73?6=3`>h6=44i4294?=h9>n1<75rb27e>5<2290;w)?7a;f0?M5dn2B8o95+e481?l212900e9950;9j0f<722c><7>5;n34`?6=3th8:=4?:483>5}#91k1h>5G3bd8L6e33-o>6?5f4783>>o3?3:17d:l:188m06=831d=:j50;9~f606290>6=4?{%3;e?b43A9hj6F=6=44i5594?=n0<729q/=5o5d29K7f`<@:i?7)k::39j03<722c?;7>5;h6`>5<n6=4::183!7?i3n87E=lf:J0g1=#m<097d:9:188m11=831b8n4?::k64?6=3f;5;|`00f<72<0;6=u+19c9`6=O;jl0D>m;;%g6>7=n50;9l52b=831vn>:m:186>5<7s-;3m7j<;I1`b>N4k=1/i84=;h65>5<>o283:17b?8d;29?xd4h6=44i4294?=h9>n1<75rb26b>5<2290;w)?7a;f0?M5dn2B8o95+e481?l212900e9950;9j0f<722c><7>5;n34`?6=3th8844?:483>5}#91k1h>5G3bd8L6e33-o>6?5f4783>>o3?3:17d:l:188m06=831d=:j50;9~f620290>6=4?{%3;e?b43A9hj6F=6=44i5594?=n0<729q/=5o5d49K7f`<@:i?7)k::79j03<722c?;7>5;h73>5<5<53;294~"60h08oh5G3bd8L6e33`>26=44i00;>5<8`80g`=O;jl0D>m;;h6:>5<5<7>54;294~"60h0:??5G3bd8L6e33`>26=44i4094?=n9191<75`16494?=zj:9j6=4<:183!7?i39hi6F<1<75rb213>5<3290;w)?7a;306>N4ko1C?n:4i5;94?=n=;0;66g>8283>>i6??0;66sm32;94?5=83:p(<6n:2af?M5dn2B8o95f4883>>o6:10;66a>7783>>{e;;o1<7:50;2x 4>f28997E=lf:J0g1=n<00;66g:2;29?l7?;3:17b?86;29?xd4;10;6>4?:1y'5=g=;jo0D>mi;I1`0>o313:17d?=8;29?j70>3:17pl<2b83>1<729q/=5o51208L6ea3A9h86g;9;29?l352900e<6<:188k4112900qo=<7;297?6=8r.:4l450z&22900e8<50;9j5=5=831d=:850;9~f65129086=4?{%3;e?5dm2B8ok5G3b68m1?=831b=?650;9l520=831vn><7:187>5<7s-;3m7?<2:J0gc=O;j>0e9750;9j17<722c:4>4?::m233<722wi?>;50;194?6|,82j6>mj;I1`b>N4k=1b844?::k26=<722e:;;4?::a770=83>1<7>t$0:b>4553A9hj6F>7>5;h3;7?6=3f;<:7>5;|`071<72:0;6=u+19c97fc<@:im7E=l4:k7=?6=3`;947>5;n342?6=3th8>94?:583>5}#91k1=><4H2ae?M5d<2c?57>5;h71>5<5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a724=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo=81;291?6=8r.:4l4k3:J0gc=O;j>0(h;52:k72?6=3`><6=44i5a94?=n=90;66a>7e83>>{e;>:1<7;50;2x 4>f2m90D>mi;I1`0>"b=380e9850;9j02<722c?o7>5;h73>5<8`8g7>N4ko1C?n:4$d796>o3>3:17d:8:188m1e=831b9=4?::m23a<722wi?;k50;794?6|,82j6i=4H2ae?M5d<2.n97<4i5494?=n<>0;66g;c;29?l372900c<9k:188yg51l3:197>50z&25;h64>5<>i6?m0;66sm37a94?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a7<6=83?1<7>t$0:b>a0<@:im7E=l4:&f1?4>o283:17d?8e;29?j70l3:17pl<8g83>0<729q/=5o5d79K7f`<@:i?7)k::39j03<722c?;7>5;h73>5<5<55;294~"60h0o:6F6g;6;29?l202900e8>50;9j52c=831d=:j50;9~f6>c290>6=4?{%3;e?b13A9hj6F=6=44i5594?=n=90;66g>7d83>>i6?m0;66sm39a94?3=83:p(<6n:e48L6ea3A9h86*j5;08m10=831b8:4?::k64?6=3`;5;n34`?6=3th84o4?:483>5}#91k1h;5G3bd8L6e33-o>6?5f4783>>o3?3:17d;?:188m41b2900c<9k:188yg5?i3:197>50z&22B8ok5G3b68 `3=:2c?:7>5;h64>5<n1<75rb2::>5<2290;w)?7a;f5?M5dn2B8o95+e481?l212900e9950;9j15<722c:;h4?::m23a<722wi?4650;794?6|,82j6i84H2ae?M5d<2.n97<4i5494?=n<>0;66g:0;29?l70m3:17b?8d;29?xd41>0;684?:1y'5=g=l?1C?nh4H2a7?!c22;1b8;4?::k73?6=3`?;6=44i05f>5<8`8g2>N4ko1C?n:4$d796>o3>3:17d:8:188m06=831b=:k50;9l52b=831vn>7::186>5<7s-;3m7j9;I1`b>N4k=1/i84=;h65>5<>o6?l0;66a>7e83>>{e;0>1<7;50;2x 4>f2m<0D>mi;I1`0>"b=380e9850;9j02<722c><7>5;h34a?6=3f;5;|`0=6<72<0;6=u+19c9`3=O;jl0D>m;;%g6>7=n0(h;52:k72?6=3`><6=44i4294?=n9>o1<75`16f94?=zj:3:6=4::183!7?i3n=7E=lf:J0g1=#m<097d:9:188m11=831b9=4?::k23`<722e:;i4?::a7=>=83?1<7>t$0:b>a0<@:im7E=l4:&f1?4>o283:17d?8e;29?j70l3:17pl<8683>0<729q/=5o5d79K7f`<@:i?7)k::39j03<722c?;7>5;h73>5<5<53;294~"60h0:>i5G3bd8L6e33-o>6<74ie;94?=nlh0;66a>7783>>{e;k91<7=50;2x 4>f288o7E=lf:J0g1=#m<0:56gk9;29?lbf2900c<99:188yg46>3:1?7>50z&2t$0:b>44c3A9hj6F5;hfb>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm18c94?5=83:p(<6n:00g?M5dn2B8o95+e482`>oc13:17djn:188k4112900qo?69;297?6=8r.:4l4>2e9K7f`<@:i?7)k::0f8ma?=831bhl4?::m233<722wi=4650;194?6|,82j6<N4k=1/i84>d:kg=?6=3`nj6=44o055>5<53;294~"60h0:>i5G3bd8L6e33-o>67783>>{e90<1<7=50;2x 4>f288o7E=lf:J0g1=#m<0:h6gk9;29?lbf2900c<99:188yg7>=3:1?7>50z&2t$0:b>44c3A9hj6F5;hfb>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm18094?5=83:p(<6n:00g?M5dn2B8o95+e482`>oc13:17djn:188k4112900qo?61;297?6=8r.:4l4>2e9K7f`<@:i?7)k::0f8ma?=831bhl4?::m233<722wi=4>50;194?6|,82j6<N4k=1/i84>d:kg=?6=3`nj6=44o055>5<53;294~"60h0:>i5G3bd8L6e33-o>67783>>{e91o1<7=50;2x 4>f288o7E=lf:J0g1=#m<0:h6gk9;29?lbf2900c<99:188yg7?l3:1?7>50z&2t$0:b>44c3A9hj6F5;hfb>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm27g94?2=83:p(<6n:00f?M5dn2B8o95+e48``>oc13:17djn:188mad=831d=:850;9~f77?290?6=4?{%3;e?75m2B8ok5G3b68 `3=:=1bh44?::kge?6=3`ni6=44o055>5<54;294~"60h0:>h5G3bd8L6e33-o>6?:4ie;94?=nlh0;66gkb;29?j70>3:17pl=6b83>0<729q/=5o513d8L6ea3A9h86*j5;3b?lb>2900eio50;9j`g<722coo7>5;n342?6=3th9=l4?:483>5}#91k1=?h4H2ae?M5d<2.n97?i;hf:>5<>ock3:17b?86;29?xd6j:0;684?:1y'5=g=9;l0D>mi;I1`0>"b=3;m7dj6:188mag=831bho4?::kgg?6=3f;<:7>5;|`137<72<0;6=u+19c957`<@:im7E=l4:&f1?463`n26=44iec94?=nlk0;66gkc;29?j70>3:17pl<1`83>6<729q/=5o513f8L6ea3A9h86*j5;33?lb>2900eio50;9l520=831vn?89:187>5<7s-;3m7?=e:J0gc=O;j>0(h;52b9j`<<722com7>5;hfa>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm1c794?5=83:p(<6n:00g?M5dn2B8o95+e482`>oc13:17djn:188k4112900qo<>e;290?6=8r.:4l4>2d9K7f`<@:i?7)k::368ma?=831bhl4?::kgf?6=3f;<:7>5;|`2f2<72=0;6=u+19c957c<@:im7E=l4:&f1?433`n26=44iec94?=nlk0;66a>7783>>{e:;:1<7;50;2x 4>f288m7E=lf:J0g1=#m<0:j6gk9;29?lbf2900eil50;9j`f<722e:;;4?::a5g?=83?1<7>t$0:b>44a3A9hj6F5;hfb>5<>i6??0;66sm3`f94?2=83:p(<6n:00f?M5dn2B8o95+e4865>oc13:17djn:188mad=831d=:850;9~f702290>6=4?{%3;e?75n2B8ok5G3b68 `3=9;1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb230>5<4290;w)?7a;31`>N4ko1C?n:4$d7967=nl00;66gka;29?j70>3:17pl<0183>6<729q/=5o513f8L6ea3A9h86*j5;01?lb>2900eio50;9l520=831vn?77:186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<6=4::183!7?i3;9j6F>5fd883>>oci3:17djm:188mae=831d=:850;9~f675290>6=4?{%3;e?75n2B8ok5G3b68 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb3de>5<2290;w)?7a;31b>N4ko1C?n:4$d7966=nl00;66gka;29?lbe2900eim50;9l520=831vn?78:186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<=5fd883>>oci3:17djm:188mae=831d=:850;9~f676290>6=4?{%3;e?75n2B8ok5G3b68 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb3df>5<2290;w)?7a;31b>N4ko1C?n:4$d7966=nl00;66gka;29?lbe2900eim50;9l520=831vn?79:186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<=5fd883>>oci3:17djm:188mae=831d=:850;9~f677290>6=4?{%3;e?75n2B8ok5G3b68 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb3dg>5<2290;w)?7a;31b>N4ko1C?n:4$d7966=nl00;66gka;29?lbe2900eim50;9l520=831vn?7::186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<=5fd883>>oci3:17djm:188mae=831d=:850;9~f7?c290?6=4?{%3;e?75m2B8ok5G3b68 `3=ko1bh44?::kge?6=3`ni6=44o055>5<54;294~"60h0:>h5G3bd8L6e33-o>63:17pl=8083>1<729q/=5o513g8L6ea3A9h86*j5;32?lb>2900eio50;9j`g<722e:;;4?::a74?=83?1<7>t$0:b>44a3A9hj6F5;hfb>5<>i6??0;66sm31d94?3=83:p(<6n:00e?M5dn2B8o95+e4817>oc13:17djn:188mad=831bhn4?::m233<722wi>km50;794?6|,82j6<N4k=1/i84=3:kg=?6=3`nj6=44ie`94?=nlj0;66a>7783>>{e:;91<7=50;2x 4>f288o7E=lf:J0g1=#m<09>6gk9;29?lbf2900c<99:188yg7ek3:1?7>50z&21<7>t$0:b>44b3A9hj6F5;hfb>5<>oci3:17djm:188k4112900qo2b9K7f`<@:i?7)k::028ma?=831d=:850;9~f7d029096=4?{%3;e?75k2B8ok5G3b68 `3=991bh44?::m233<722wi>o;50;094?6|,82j6<N4k=1/i84>0:kg=?6=3f;<:7>5;|`1f6<72;0;6=u+19c957e<@:im7E=l4:&f1?773`n26=44o055>5<52;294~"60h0:>n5G3bd8L6e33-o>6<>4ie;94?=h9><1<75rb3ce>5<5290;w)?7a;31g>N4ko1C?n:4$d7955=nl00;66a>7783>>{e:hn1<7<50;2x 4>f288h7E=lf:J0g1=#m<0:<6gk9;29?j70>3:17pl=ac83>7<729q/=5o513a8L6ea3A9h86*j5;33?lb>2900c<99:188yg4f13:1>7>50z&2=<:181>5<7s-;3m7?=c:J0gc=O;j>0(h;5119j`<<722e:;;4?::a767=8381<7>t$0:b>44d3A9hj6F5;n342?6=3th8>k4?:383>5}#91k1=?m4H2ae?M5d<2.n97??;hf:>5<8`826f=O;jl0D>m;;%g6>46>i6??0;66sm33;94?4=83:p(<6n:00`?M5dn2B8o95+e4824>oc13:17b?86;29?xd4:>0;6?4?:1y'5=g=9;i0D>mi;I1`0>"b=3;;7dj6:188k4112900qo==5;296?6=8r.:4l4>2b9K7f`<@:i?7)k::028ma?=831d=:850;9~f7e329096=4?{%3;e?75k2B8ok5G3b68 `3=991bh44?::m233<722wi?>j50;094?6|,82j6<N4k=1/i84>0:kg=?6=3f;<:7>5;|`167<72?0;6=u+19c9566<@:im7E=l4:&f1?423`n26=44iec94?=nlk0;66gkc;29?j7513:17b?86;29?xd6jk0;6;4?:1y'5=g=9::0D>mi;I1`0>"b=38>7dj6:188mag=831bho4?::kgg?6=3f;957>5;n342?6=3th8mo4?:9594?6|@:i?7)?7a;34b>\3=3kp47<9:e821?7428h1i7?9:0695f0=#m80>7)k=:49'a6<23-ii6i>4$d491>"b?3?0(h655:&f=?3<,lk196*jb;78 `e==2.nh7;4$dg91>"bn3?0(k>55:&e5?3<,o8196*i3;78 c2==2.m97;4$g491>"a?3?0(k655:&e=?3<,ok196*ib;78 ce==2.mh7;4$gg91>"an3?0(<>?:49'557==2.:"68?0>7)??7;78 46?2<1/==755:&24d<23-;;n7;4$02`>0=#99n196*>0d86?!77n3?0("69?0>7)?>7;78 47?2<1/=<755:&25d<23-;:n7;4$03`>0=#98n196*>1d86?!76n3?0(<?4:;%317?3<,88?685+13791>"6:?087)?74;61?!c32<1/=5853:&0g<<6091/?no51928j4n0:2>4444=831b=5650;9j<0<72-;k1<65f3483>!70j39=7c?8a;38?l53290/=:l5379m52g=:21b?>4?:%34f?513g;5<#9>h1?;5a16c90>=n;80;6)?8b;15?k70i3?07d=?:18'52d=;?1e=:o56:9j6c<72-;k1465f2e83>!70j39=7c?8a;;8?l26290/=:l5419m52g=821b?k4?:%34f?273g;5<#9>h18=5a16c96>=n;m0;6)?8b;63?k70i3907d=l:18'52d=<91e=:o54:9j7g<72-;k1:65f3883>!70j3>;7c?8a;58?l5?290/=:l5419m52g=021b;i4?:%34f?1d3g;4;h5a>5<#9>h1;n5a16c95>=n?00;6)?8b;5`?k70i3807d97:18'52d=?j1e=:o53:9j32<72-;k1965f7483>!70j3=h7c?8a;48?l13290/=:l57b9m52g=?21b;>4?:%34f?1d3g;5<#9>h1;n5a16c9=>=n?80;6)?8b;5`?k70i3k07d9?:18'52d=?j1e=:o5b:9j2`<72-;k1h65f6b83>!70j3=h7c?8a;g8?l0e290/=:l57b9m52g=n21b:l4?:%34f?1d3g;47<3`<36=4+16`93f=i9>k1=?54i7594?"6?k07`827>=n>?0;6)?8b;5`?k70i3;?76g95;29 41e2>i0b<9n:078?l>3290/=:l57b9m52g=9?10e5=50;&23g<0k2d:;l4>7:9j<7<72-;5$05a>2e5<#9>h1;n5a16c95d=l1<7*>7c84g>h6?h0:n65f7d83>!70j3=h7c?8a;3`?>o0i3:1(<9m:6a8j41f28n07d8i:18'52d=?j1e=:o51d98m32=83.:;o48c:l23d<6n21b4n4?:%34f?>e3g;4;h:b>5<#9>h14o5a16c95>=n000;6)?8b;:a?k70i3807d67:18'52d=0k1e=:o53:9l=1<72-;k1=65`9083>!70j3387c?8a;08?j?7290/=:l5929m52g=;21d4k4?:%34f??43g;5<#9>h15>5a16c91>=h1m0;6)?8b;;0?k70i3<07b7l:18'52d=1:1e=:o57:9l=g<72-;<3f3j6=4+16`9=6=i9>k1565`9883>!70j3387c?8a;c8?j??290/=:l5929m52g=j21d5:4?:%34f??43g;5<#9>h15>5a16c9`>=h1<0;6)?8b;;0?k70i3o07b6k:18'52d=1:1e=:o5f:9lg6<72-;k1=65fc`83>>o6000;66g>o2i3:1(<9m:4;8j41f2910e8650;&23g<212d:;l4>;:k63?6=,8=i6874n05b>7=7c86=>h6?h0876g:5;29 41e2<30b<9n:598m02=83.:;o4:9:l23d<232c=?7>5$05a>0?56`>7`84?>o193:1(<9m:4;8j41f2110e;>50;&23g<212d:;l46;:k6b?6=,8=i6874n05b>d=7c86=>h6?h0i76g:d;29 41e2<30b<9n:b98m0e=83.:;o4:9:l23dn7>5$05a>0?56`>7`8e?>o??3:1(<9m:948j41f2910co650;&23g4=1<7*>7c8a3>h6?h0976am3;29 41e2k=0b<9n:298kg4=83.:;o4m7:l23d<332ei=7>5$05a>g17`85?>ifn3:1(<9m:c58j41f2>10clk50;&23g<=7c8a3>h6?h0j76anb;29 41e2k=0b<9n:c98kd?=83.:;o4m7:l23d5$05a>g17`8f?>if>3:1(<9m:c58j41f2o10cl;50;&23g0:9le1<72-;5$05a>g15<#9>h1n:5a16c956=7c8a3>h6?h0:865`a183>!70j3h<7c?8a;36?>ien3:1(<9m:c58j41f28<07blj:18'52d=j>1e=:o51698kgb=83.:;o4m7:l23d<6021dnn4?:%34f?d03g;4g<3fhj6=4+16`9f2=i9>k1=o54oc;94?"6?k0i;6`>7`82g>=hj<0;6)?8b;`4?k70i3;o76ana;29 41e2k=0b<9n:0g8?j?a290/=:l5b69m52g=9o10cn650;&23g4=7c8`3>h6?h0976al4;29 41e2j=0b<9n:298yv2e83:1:vP;b19>63c=lh16>;m5d89>624=lj16>;85dc9>633=l01v9oj:1853~X4m?1U?i64^5`;?[2e>2T8h:5Q4c18Z1063W>i;6P;639]0=2k?;_1gb>X4ll1U?ij4^2f`?[2d:2T?o<5Q4b28Z1da3W>ii6P;be9]0geX3i01U8l64^5c4?[2f>2T?m85Q4`6896b72m=01>ln:42896ga2<:01>l6:42896d?2<:01>l8:42896e52<:01>m>:42897d?2<801?l9:40897d32<801?l=:40897d72<801?oj:40897gd2<801?on:40897g?2<801?6j:40897>c2<801?6l:40897>e2<801?6n:408971e2<801?9n:408971>2<801?97:40897102<801>>6:408966?2<801>>8:40896612<801>>::40897`12<801?h::40897`32<801?h<:40897`52<801>==:40896572<801><9:40896432<801>om:97896ge282270=nb;1`3>;4ik0>m63;4ik0>;63;4ik0>963;4ik0=?63;4ik0==63;4ik0>j63;4ik0>h63;4ik0>n63;4ik03;6s|4c094?5|V=h970=ma;34g>;4io0:;n5rs353>5<5sW>>:63=71823a=z{=i?6=4<{_6`0>;49h0o563<188g=>{t;51k0?:63;4j90?:63;4j00?:63;4j>0?:63=15872>;59:0?:63=13872>;5980?:63=11872>;58o0?:63=0d872>;58m0?:63=0b872>;5=j0?:63=5c872>;5=h0?:63=58872>;5=10?:63=56872>;5=?0?:63=54872>;5==0?:63=4`872>;5<00?:63=49872>;5<>0?:63=47872>;5<<0?:63=45872>;5<:0?:63=43872>;6l:0?:63>d3872>;6l80?:63>d1872>;6ko0?:63>cd872>;6km0?:63>cb872>;6kk0?:63>c`872>;5l10?:63=d6872>;5l<0?:63=d5872>;5l?0?:63=d2872>;5l;0?:63=d1872>;5ko0?:63=d0872>;5mj0?:63=ec872>;5mh0?:63=e8872>;5m10?:63=e6872>;5m?0?:63=e4872>;5m=0?:63=e2872>;5>o0?:63=71872>;5>h0?:63=68872>;4190?:63<8g872>;40l0?:63<8e872>;40j0?:63<8c872>;40h0?:63<88872>;4110?:63<96872>;41?0?:63<94872>;41=0?:63<92872>;41;0?:63<90872>;4010?:63<86872>;4ik0?m6s|30594?4|V=?h70=>7;34`>{t;49>0?:63<17872>;4jj0?:63;4jk0?:63;4k80?:63>ae872>;6ij0?:63>ac872>;6ih0?:63>a8872>;6i10?:63>a6872>;6i?0?:63>a4872>;6n00?:63>f9872>;6n>0?:63>f7872>;6n<0?:63>f5872>;6n:0?:63>f3872>;6n80?:63>e6872>;6m?0?:63>e4872>;6m=0?:63>e2872>;6m;0?:63>e0872>;6m90?:63>dg872>;6ll0?:63=39872>;5;>0?:63=37872>;5;<0?:63=35872>;5;:0?:63=33872>;5;80?:63=31872>;4=k0?:63<58872>;4=h0?:63<5b872>;4=m0?:63<5d872>;4=o0?:63<61872>;4>80?:63<4g872>;4;4;4;4<>0?:63<49872>;4?:0?:63<73872>;4?80?:63<71872>;4>o0?:63<6d872>;4>m0?:63<6b872>;4>k0?:63{t;>n1<783;{t;>h1<7{t;>31<7{t;>=1<7{t;1<1<703;;70=67;34`>{t;1>1<7>3;{t;181<7<3;{t;1:1<7:3;{t;>o1<7{t<;21<77}Y<9901>om:7c8yv25=3:1>vP;039>7dd=>01v9<;:181[279278mo498:p075=838pR9>?;<1bf?003ty?>?4?:3y]7c`<5:ki6;84}r614?6=:rT8ji523``920=z{=;m6=4={_1eg>;4ik0386s|40g94?4|V:li70=nb;:0?xu39m0;6?uQ3gc896ge2120q~:>c;296~X4n016?ll5839~w17e2909wS=i8:?0eg2`:47>52z\0b0=:;hh1;h5rs534>5<5sW9m863{t<8?1<77}Y;o;01>om:768yv26;3:1>vP7dd=0j1v9?=:181[5bn278mo48d:p047=838pR>kj;<1bf?1e3ty?==4?:3y]7`b<5:ki6:74}r63b?6=:rT8in523``93==z{=:n6=4={_1ff>;4ik0<;6s|41f94?4|V:oj70=nb;55?xu38j0;6?uQ3d;896ge2>?0q~:=f;296~X38h16?ll5759~w14b2909wS:?9:?0eg249n7>52z\743=:;hh1;<5rs50b>5<5sW>;963{t<;31<77}Y;o901>om:7f8yv26>3:1>vP7dd=>j1v9>m:181[5b?278mo49b:p563=833p1>j>:05;?84ei3>270270<87;6:?857=3>270270==4;6:?xu51j0;6?u228`915=::0n1=:84}r1a2?6=9hq6>4l516a896d>28=o70h70h70h70h70;5l80?o63=eb87g>;5mk0?o63=e`87g>;5m00?o63=e987g>;5m>0?o63=e787g>;5m<0?o63=e587g>;5m:0?o63=6g823f=::>:1=:m4=34b>1e<5;<269m4}r0:f?6=7e9>63e=lj16?lj5d89>633=lh1v>li:181<~;49>0?o63<1787g>;4k80:;i521`f90f=:9hi18n521``90f=:9hk18n521`;90f=:9h218n521`590f=:9h<18n521`790f=:9o318n521g:90f=:9o=18n521g490f=:9o?18n521g690f=:9o918n521g090f=:9o;18n521d590f=:9l<18n521d790f=:9l>18n521d190f=:9l818n521d390f=:9l:18n521ed90f=:9mo18n5222:90f=:::=18n5222490f=:::?18n5222690f=:::918n5222090f=:::;18n5222290f=z{:;36=4<{<123?37349::7;?;<12=?70>2wx?<850;1x967128=o70=>a;fb?85613nj7p}6}:;k;19=523c2952b<5:km6994}r1a5?6=:r78n<4>7e9>7g5=l01v>lm:18085ek3?;70=ma;64?85ej3;3ty8mk4?:2y>7g6==916?lh516f896d42mk0q~=ma;297~;4jh0:;i523c`915=:;ko1hl5rs2`1>5<3s49i57?8c:?0f=<6?j16?o9516a896d428==7p}70|5:h36<9k;<020?2d348:?7:l;<026?2d348:=7:l;<024?2d348;j7:l;<03a?2d348;h7:l;<03g?2d348>o7:l;<06f?2d348>m7:l;<06=?2d348>47:l;<063?2d348>:7:l;<061?2d348>87:l;<07e?2d348?57:l;<07;40o0:;h5239g952c<5:2o6<9j;<1;g?70m2784o4>7d9>7=g=9>o01>66:05f?85>03;41b349287?8e:?0=6<6?l16?4<516g896?628=n70=78;34a>;40>0:;h523`f9`d=:;hh1=564}r1a`?6=;r78o?4>7b9>7f7=9>i01>lj:055?xu4k90;641c349>n7:l;<16=?70k2789l4;c:?01f<3k2789i4;c:?01`<3k2789k4;c:?025<3k278:<4;c:?00c<3k2788h4;c:?00f<3k2788o4;c:?00a<3k2788l4;c:?00<<3k2788:4;c:?00=<6?j16?:=54b9>724=726=73c=73e=w0?nd;73?87a13;ag8ge>;6j80o563>b28gg>{t9h>1<7=t=0cg>41c349:?7jn;<134?bf3ty:mh4?:3y>5de==916=lh51648yv7f;3:1?v3>ab823a=:;881h4522gd9`<=z{8h;6=4={<3bf?3734;i=7?86:p5d4=839p1ag<58h<6i74=0`:>ae<58hi6im4}r3b5?6=;r7:ml4>7e9>747=l016>kk5d89~w4d32909w0?n9;73?87e=3;<:6s|1`294?5|58k26<9k;<125?be348mi7jm;|q2f3<72;q6=l65519>5g1=9><0q~?6f;297~;6i10:;i523029`<=::on1h45rs0`;>5<5s4;j;7;?;<3a=?70>2wx=4k50;1x94g028=o70=>0;fa?84al3ni7p}>b`83>7}:9h<19=521ca952053z?2e3<6?m16?=h5d89>6ce=l01v{t90i1<7=t=0c6>41c349;j7jm;<0eg?be3ty99>4?:4y>642==916>8m516f897712mk01??7:e;8977f2mi0q~5<5s48:?7;?;<022?70>2wx>=o50;1x977428=o70<68;f:?84?=3nh7p}=1683>7}::8819=5220:952053z?157<6?m16>495d`9>6=2=lh1v??6:18584693?;70<>a;342>;59j0om63=1d8g=>;5:90oo63=238gg>{t:921<7=t=332>41c3482;7j6;<0;0?b>3ty9=o4?:3y>646==916>i:05g?84>>3n270<73;f:?xu59o0;6?u221g915=::;:1=:84}r031?6=;r79

7e9>6<3=lh16>5<5d`9~w7462909w03483>7j6;|q160<72;q6>=m5519>670=9><0q~5<5s48>o7;?;<07e?70l2wx>9>50;0x973e2<:01?:6:05g?xu5=;0;69u224`952b<5;;=6i74=33;>ag<5;;j6il4}r00b?6=:r799l4:0:?10=<6?m1v?;>:180842i3;;59h0om6s|22g94?4|5;?268>4=364>41c3ty99=4?:3y>60?=9>n01??n:e;8yv44l3:1>v3=59864>;55<2s48>47?8d:?15f?4kb:p66e=838p1?;8:428972228=o7p}=4d83>1}::<=1=:j4=33f>ad<5;8;6io4=301>ag52z?113<28279894>7e9~w72c2908w0<:6;34`>;5:90o563=238g=>{t::k1<706<5;>86<9k;|q10f<72:q6>8;516f897442m301?<9:ec8yv4413:1>v3=55864>;5<;0:;i5rs36a>5<5s48>87?8d:?1632<:017e9>5d`=l016=o?5d`9>5g5=lk1v{t9lo1<7=t=0d4>41c34;i=7jm;<3a7?bf3ty:hl4?:3y>5c0==916=h:516f8yv7bl3:1>v3>f7823a=:9k91h45rs0f:>5<5s4;m97;?;<3f7?70l2wx=hm50;7x94`228=o70?m5;f:?87e?3nj70?m9;fa?87ej3ni7p}>d983>7}:9o>19=521d0952b54z?2b1<6?m16=o95dc9>5g?=lh16=ol5d`9~w4b02909w0?i3;73?87b93;34;in7j6;|q2`3<72;q6=k<5519>5`6=9>n0q~?j9;297~;6n;0:;i521ca9`<=:9kl1hl5rs0f6>5<5s4;m=7;?;<3gb?70l2wx=h650;0x94`628=o70?mf;f:?xu5:o0;6?u225c915=:::21=:j4}r01a?6=:r79844:0:?172<6?m1v?{t:;i1<706<5;9>6<9k;|q16g<72;q6>985519>662=9>n0q~<=a;296~;5<<0><63=32823a=z{;826=4={<070?373488>7?8d:p67>=838p1?:<:428975628=o7p}=2683>7}::=819=52222952b52z?2a2<2827:h>4>7e9~w4e?2909w0?j6;73?87c:3;68>4=0f2>41c3ty:o;4?:3y>5`2==916=i>516f8yv7d=3:1>v3>e2864>;6ko0:;i5rs0a7>5<5s4;n>7;?;<3`a?70l2wx=n=50;0x94c62<:01{t9m>1<7?t=0ff>41c3ty9i?4?:4y>5a5==916>hm516f894>e2m301?6::e;896ge2:=0q~?ia;296~;6l;0><63>8c8233=z{8li6=4={<3g5?3734;3o7?86:p5ce=838p1c28==7p}>fe83>7}:9jl19=5219g952052z?2g`<2827:4k4>779~w4`a2909w0?ld;73?87>83;<:6s|21294?4|58ih68>4=0;2>4113ty9<<4?:3y>5fd==916=4<51648yv47:3:1>v3>c`864>;61:0:;;5rs24b>5<3s48847;?;<147?70l27:594k9:?0eg<392wx>8j50;0x97502<:01<7;:055?xu5=l0;6?u2224915=:90?1=:84}r06b?6=:r79?84:0:?2=3<6??1v?8?:181844<3?;70?67;342>{t:?;1<706<58336<99;|q127<72;q6>><5519>5<0q~<93;296~;5;80><63>9`8233=z{;<70<70<70<70<70<70<70<70<70<70=nd;fa?841=3;<:63=9e8g=>{t:h=1<706<5;i86<99;|q1g`<72=q6>i6516f897cd2<:01?77:ea897e32m30q~0><63=c38233=z{;io6=4;{<0g3?70l279io4:0:?1==1}::m?1=:j4=3g:>06<5;3<6il4=3`6>a?52z?1`1<28279nk4>779~w7ef290?w0;5m10><63=978gg>;5j:0o56s|2`794?4|5;n=68>4=3a2>4113ty9on4?:5y>6a0=9>n01?kn:42897?02mi01?l8:e;8yv4f:3:1>v3=d2864>;5jl0:;;5rs3a:>5<3s48o?7?8d:?1a2<282795;4kb:?1f4l?50;0x97b52<:01?lk:055?xu5k10;69u22e0952b<5;o=68>4=3;6>ae<5;km6i74}r0:b?6=:r79h=4:0:?1fg<6??1v?m9:18784c83;;51=0on63=ac8g=>{t:0o1<706<5;hj6<99;|q1g0<72=q6>nh516f897c42<:01?7;:ec897g>2m30q~<63=bb8233=z{;i<6=4;{<0g5?70l279i84:0:?1=0=838p1?m<:5;897d?28==7p}=c583>7}::j91=?64=3a7>4113ty9n;4?:2y>6f4=<016>o65489>6g0=9><0q~5522c:95=5<5;h26<99;|q1f1<72:q6>n?5489>6g0=<016>o:51648yv4e?3:1?v3=c0826==::k<1=5=4=3`4>4113ty9n?4?:2y>6f6=<016>o:5489>6g4=9><0q~5522c695=5<5;h>6<99;|q1f5<72:q6>oh5489>6g4=<016>o>51648yv4e;3:1?v3=bg826==::k81=5=4=3`0>4113ty9mh4?:2y>6gc=<016>o>5489>6dc=9><0q~5522c295=5<5;h:6<99;|q1ef<72:q6>oj5489>6dc=<016>lm51648yv4fn3:1?v3=be826==::ho1=5=4=3ce>4113ty9ml4?:2y>6ge=<016>lm5489>6dg=9><0q~5522`a95=5<5;ko6<99;|q1e=<72:q6>ol5489>6dg=<016>l651648yv4fj3:1?v3=bc826==::hk1=5=4=3ca>4113ty9m44?:2y>6gg=9;201?o7:0:0?84f13;<:6s|2d394?3|5;oi6<9k;<3;g?b>34;3n7jn;<0;1?be349jn7=:;|q1a5<72ho516f894>c2m301<6l:ec897>32mi01>om:268yv4cn3:19v3=e8823a=:91o1h45219f9`d=::1>1ho523``976=z{;nn6=4:{<0f4kc:?0eg<4:2wx>ij50;7x97c028=o70?60;f:?87?n3nj70<73;fa?85fj39:7p}=db83>0}::l<1=:j4=0;2>a?<583;6io4=3:1>ae<5:ki6>>4}r0gf?6==r79i84>7e9>5<4=l016=4?5d`9>6=4=lk16?ll52g9~w7bf290>w0;61:0o563>938ge>;5080on63{t:m31<7:t=3g0>41c34;2?7jn;<0;5?bf349jn7;h5519>626==916>:<51648yv41n3:1>v3=6g823a=::>81h45rs34a>5<5s48=m7;?;<05g?70>2wx>;650;4x970f28=o70<9e;fa?841k3ni70<82;fa?841>3n270<95;fa?xu5>m0;6?u227;915=::?o1=:84}r053?6=>r79:44>7e9>63c=l016>;m5d`9>624=lh16>;85d`9>633=lj1v?66:18184?m3>270<7d;342>{t:091<74>4348247?86:p6l3nj7p}=8983>7}::1n1845229a95207>52z?14951648yv4??3:1>v3=8b87=>;50k0:;;5rs3;2>5<5s483o7?73:?1=3<6??1v?69:18184?j3>270<7a;342>{t:0:1<74>4348297?86:p6=`=838p1?6n:0:0?84><3;<:6s|26494?4|5;=i6974=35b>4113ty94=4?:3y>62d=91901?6::055?xu5100;6?u226`9520<5;3o6il4}r041?6=:r79;l4;9:?13<<6??1v?9i:181840i3;3?63=858233=z{;=?6=4={<04=?2>348<47?86:p62c=838p1?96:0:0?84?;3;<:6s|26194?4|5;=36974=354>4113ty9;i4?:3y>62>=91901?6=:055?xu5?j0;6?u226595=5<5;2:6<99;|q041<72;q6?=75489>75>=9><0q~=?e;296~;4800:4>52301952052z?04<<6??16?<75db9~w6642909w0=?8;6:?857?3;<:6s|31f94?4|5::36<6<;<126?70>2wx?=<50;0x96602=301>>9:055?xu48j0;6?u231595=5<5:;:6<99;|q044<72;q6?=85489>753=9><0q~=?b;296~;48?0:4>52302952052z?040<60:16?=h51648yv4a93:1>v3=f787=>;5n<0:;;5rs3da>5<5s48m:7?73:?045<6??1v>?;:18184a>3;<:63<188gf>{t:o:1<71?<5;l?6<99;|q1bd<72;q6>k;5191897`a28==7p}=eg83>7}::o>184522g1952052z?1b1<60:16>kk51648yv4bm3:1>v3=f287=>;5n;0:;;5rs3d;>5<5s48m?7?73:?1ba<6??1v?h8:18184a:3;3?63=fb8233=z{:=?6=4>ez?01g<3?278944;7:?01d<3?2789n4;7:?01a<3?2789h4;7:?01c<3?278:=4;7:?024<3?2788k4;7:?00`<3?2788n4;7:?00g<3?2788i4;7:?00d<3?278844;7:?002<3?278854;7:?036<3?278;?4;7:?034<3?278;=4;7:?02c<3?278:h4;7:?02a<3?278:n4;7:?02g<3?278=l4>779>7dd=;j201>om:bc8yv5383:18v3<5c864>;4<00:;i523029`f=:;;31h45rs271>5<4s49>n7?8d:?02a<28279ji4kc:p76c=83>p1>;6:428962028=o70=?f;f`?855=3n27p}<5183>6}:;<31=:j4=24a>06<5;lh6im4}r10b?6=771=l01v>;>:180852i3;;5nj0om6s|35394?2|5:?h68>4=26b>41c349:<7jn;<11f?b>3ty89>4?:2y>70e=9>n01>8j:42897`c2mk0q~=;2;290~;4=m0><63<4c823a=:;8;1hn5233f9`<=z{:??6=4<{<16`?70l278:k4:0:?1b`:l:05g?85693nj70==f;f:?xu4=<0;6>u234g952b<5:=;68>4=3df>ag54z?01c<282788i4>7e9>744=lj16?>?5d89~w6312908w0=:f;34`>;4?80><63=fg8gg>{t;=?1<7:t=243>06<5:>n6<9k;<126?bf3498?7j6;|q012<72:q6?;>516f896152<:01?hi:ec8yv53>3:18v3<60864>;45<4s49==7?8d:?036<28278<=4k9:p775=838p1>:i:428965d28==7p}<2383>7}:;=o19=5232`952052z?00f<28278?44>779~w67a2909w0=;b;73?85403;<:6s|33394?4|5:>o68>4=21b>4113ty8=h4?:3y>71g==916?>951648yv56l3:1>v3<48864>;4;?0:;;5rs23a>5<5s49?;7;?;<100?70>2wx?=::055?xu4;;0;6?u232a90<=:;:81=:84}r10`?6=:r78?n4>299>76b=9><0q~=<0;297~;4;k0?563<3387=>;4;90:;;5rs210>5<4s498n7?=8:?077<60:16?>=51648yv55m3:1?v3<3`87=>;4;90?563<2d8233=z{:9:6=4<{<10e?750278?=4>829>767=9><0q~==c;297~;4;00?563<2d87=>;4:j0:;;5rs20e>5<4s49857?=8:?06`<60:16??h51648yv55i3:1?v3<3987=>;4:j0?563<2`8233=z{:8o6=4<{<10n4>829>77b=9><0q~==8;297~;4;>0?563<2`87=>;4:10:;;5rs20a>5<4s498;7?=8:?06d<60:16??l51648yv55>3:1?v3<3787=>;4:10?563<278233=z{:826=4<{<102?750278>54>829>77?=9><0q~==4;297~;4;<0?563<2787=>;4:=0:;;5rs204>5<4s49897?=8:?063<60:16??951648yv55=3:1?v3<35826==:;;>1=5=4=206>4113ty8:44?:5y>724=9>n01<7::e;894?32mk01>om:2d8yv5103:18v3<70823a=:90<1h4521879`d=:;hh1?h5rs244>5<3s49<<7?8d:?2=2?3nj70=nb;1`?xu4><0;69u237g952b<58326i74=0;;>ag<5:ki6>l4}r150?6=7e9>57dd=;h1v>8<:187851k3;9c8g=>;61h0om63{t;?81<7=t=24a>41c34;2n7jn;<1bf?5?3ty8mh4?:01x96?72==01>6i:55896>b2==01>6k:55896>d2==01>6m:55896>f2==01>66:55896??2==01>78:55896?12==01>7::55896?32==01>7<:55896?52==01>7>:55896>?2==01>68:558970128==7p}7}:;0:19=523``9g6=z{:k;6=4={<1;b?37349jn77;;|q0=c<72;q6?5k5519>7dd=1;1v>7j:18185?l3?;70=nb;;2?xu41m0;6?u239a915=:;hh15=5rs2;`>5<5s493n7;?;<1bf?>a3ty85o4?:3y>7=g==916?ll58d9~w6?f2909w0=79;73?85fj33o7p}7}:;0219=523``9=f=z{:k26=4={<1:3?37349jn7m>;|q0e=<72;q6?485519>7dd=1k1v>o8:18185>=3?;70=nb;;b?xu4i?0;6?u2386915=:;hh1545rs2c6>5<5s492?7;?;<1bf???3ty8m94?:3y>7<4==916?ll5969~w6g42909w0=61;73?85fj33=7p}7}:;1219=523``9=0=z{:326=4={<1;3?37349jn76k;|q0ef<72;q6?lj5164896ge2j30q~?<7;296~;5::0om63=23826<=z{8?86=4={<3ag?bf34;in7?=9:p672=838p1?<9:e`8974528==7p}>be83>7}:9kl1ho521c`952018o<4$2a0>4163ty?n44?:3y]0g?<5=>18o74$2a0>4153ty?m>4?:3y]0d5<5=>18l=4$2a0>4143ty?>54?:3y]052<5=>18=:4$2a0>4503ty?>;4?:3y]055<5=>18==4$2a0>4253ty?>84?:3y]054<5=>18=<4$2a0>42e3ty?>94?:3y]057<5=>18=?4$2a0>42c3ty?>>4?:3y]056<5=>18=>4$2a0>42b3ty?>?4?:3y]7c`<5=>1?kh4$2a0>42a3ty?>=4?:3y]7cb<5=>1?kj4$2a0>4373ty?=k4?:3y]7ce<5=>1?km4$2a0>4363ty?=h4?:3y]7cd<5=>1?kl4$2a0>4353ty?=i4?:3y]7cg<5=>1?ko4$2a0>4333ty?=n4?:3y]7c?<5=>1?k74$2a0>4323ty?=o4?:3y]7c><5=>1?k64$2a0>4313ty?=l4?:3y]7c1<5=>1?k94$2a0>4303ty?=44?:3y]7c0<5=>1?k84$2a0>43?3ty?=54?:3y]7c3<5=>1?k;4$2a0>43>3ty?=:4?:3y]7c2<5=>1?k:4$2a0>43f3ty?=84?:3y]7c4<5=>1?k<4$2a0>43e3ty?=94?:3y]7c7<5=>1?k?4$2a0>43d3ty?=>4?:3y]7c6<5=>1?k>4$2a0>43c3ty?=?4?:3y]7``<5=>1?hh4$2a0>43b3ty?=<4?:3y]7`c<5=>1?hk4$2a0>43a3ty?==4?:3y]7`b<5=>1?hj4$2a0>4073ty?1?hm4$2a0>4063ty?1?hl4$2a0>4053ty?1?ho4$2a0>4043ty?1?h74$2a0>4033ty?>k4?:3y]05g<5=>18=o4$2a0>4023ty?>h4?:3y]05?<5=>18=74$2a0>4013ty?>i4?:3y]05><5=>18=64$2a0>4003ty?>n4?:3y]051<5=>18=94$2a0>40?3ty?>o4?:3y]050<5=>18=84$2a0>40>3ty?>l4?:3y]053<5=>18=;4$2a0>40f3ty?>44?:3y]7cc<5=>1?kk4$2a0>40e3ty?><4?:3y]7c5<5=>1?k=4$2a0>40d3ty?=;4?:3y]7`><5=>1?h64$2a0>40c3ty?1?h94$2a0>40b3ty?o94?:3y]0f2<5=>18n:4$2a0>40a3ty?n=4?:3y]0g6<5=>18o>4$2a0>4173ty?8o4?:3y]06?<5=>18>74$2a0>4513ty?844?:3y]06><5=>18>64$2a0>45?3ty?854?:3y]061<5=>18>94$2a0>45>3ty?8:4?:3y]060<5=>18>84$2a0>45f3ty?8;4?:3y]063<5=>18>;4$2a0>45e3ty?884?:3y]062<5=>18>:4$2a0>45d3ty?894?:3y]065<5=>18>=4$2a0>45c3ty?8>4?:3y]064<5=>18><4$2a0>45b3ty?994?:3y]017<5=>189?4$2a0>45a3ty?9>4?:3y]016<5=>189>4$2a0>4273ty?9?4?:3y]06`<5=>18>h4$2a0>4263ty?9<4?:3y]06c<5=>18>k4$2a0>4243ty?9=4?:3y]06b<5=>18>j4$2a0>4233ty?8k4?:3y]06e<5=>18>m4$2a0>4223ty?8h4?:3y]06d<5=>18>l4$2a0>4213ty?8i4?:3y]06g<5=>18>o4$2a0>4203ty?8n4?:3y]067<5=>18>?4$2a0>42?3ty?8?4?:3y]066<5=>18>>4$2a0>42>3ty?9n4?:3y]00e<5=>188m4$2a0>42f3ty?9;4?:3y]000<5=>18884$2a0>42d3twe4oh50;0xL6e33td3o=4?:3yK7f252zJ0g1=zf1i96=4={I1`0>{i0j91<7d=3:1>vFm;;|l;g=<72;qC?n:4}o:`=?6=:rB8o95rn9ab>5<5sA9h86sa8b`94?4|@:i?7p`7cb83>7}O;j>0qc6ld;296~N4k=1vb5mj:181M5d<2we4nh50;0xL6e33td3h=4?:3yK7f252zJ0g1=zf1n96=4={I1`0>{i0m91<7c=3:1>vFm;;|l;`=<72;qC?n:4}o:g=?6=:rB8o95rn9fb>5<5sA9h86sa8e`94?4|@:i?7p`7db83>7}O;j>0qc6kd;296~N4k=1vb5jj:181M5d<2we4ih50;0xL6e33td3i=4?:3yK7f252zJ0g1=zf1o96=4={I1`0>{i0l91<7b=3:1>vFm;;|l;a=<72;qC?n:4}o:f=?6=:rB8o95rn9gb>5<5sA9h86sa8d`94?4|@:i?7p`7eb83>7}O;j>0qc6jd;296~N4k=1vb5kj:181M5d<2we4hh50;0xL6e33td3j=4?:3yK7f252zJ0g1=zf1l96=4={I1`0>{i0o91<7a=3:1>vFm;;|l;b=<72;qC?n:4}o:e=?6=:rB8o95rn9db>5<5sA9h86sa8g`94?4|@:i?7p`85683>4}O;j>0qc964;295~N4k=1vb:7::182M5d<2we;4850;3xL6e33td<5:4?:0yK7f251zJ0g1=zf>326=4>{I1`0>{i?0k1<7?tH2a7?xh01k0;6k3:1=vFm;;|l4=c<728qC?n:4}o5b4?6=9rB8o95rn6c2>5<6sA9h86sa7`094?7|@:i?7p`8a283>4}O;j>0qc9n4;295~N4k=1vb:o::182M5d<2we;l850;3xL6e33td51zJ0g1=zf>k26=4>{I1`0>{i?hk1<7?tH2a7?xh0ik0;6m;;|l4ec<728qC?n:4}o5a4?6=9rB8o95rn6`2>5<6sA9h86sa7c094?7|@:i?7p`8b283>4}O;j>0qc9m4;295~N4k=1vb:l::182M5d<2we;o850;3xL6e33td51zJ0g1=zf>h26=4>{I1`0>{i?kk1<7?tH2a7?xh0jk0;6m;;|l4fc<728qC?n:4}o5`4?6=9rB8o95rn6a2>5<6sA9h86sa7b094?7|@:i?7p`8c283>4}O;j>0qc9l4;295~N4k=1vb:m::182M5d<2we;n850;3xL6e33td51zJ0g1=zf>i26=4>{I1`0>{i?jk1<7?tH2a7?xh0kk0;6m;;|l4gc<728qC?n:4}o5g4?6=9rB8o95rn6f2>5<6sA9h86sa7e094?7|@:i?7p`8d283>4}O;j>0qc9k4;295~N4k=1vb:j::182M5d<2we;i850;3xL6e33td51zJ0g1=zf>n26=4>{I1`0>{i?mk1<7?tH2a7?xh0lk0;6m;;|l4`c<728qC?n:4}o5f4?6=9rB8o95rn6g2>5<6sA9h86sa7d094?7|@:i?7p`8e283>4}O;j>0qc9j4;295~N4k=1vb:k::182M5d<2we;h850;3xL6e33td51zJ0g1=zf>o26=4>{I1`0>{i?lk1<7?tH2a7?xh0mk0;6m;;|l4ac<728qC?n:4}o5e4?6=9rB8o95rn6d2>5<6sA9h86sa7g094?7|@:i?7p`8f283>4}O;j>0qc9i4;295~N4k=1vb:h::182M5d<2we;k850;3xL6e33td51zJ0g1=zf>l26=4>{I1`0>{i?ok1<7?tH2a7?xh0nk0;6m;;|l4bc<728qC?n:4}o:34?6=9rB8o95rn922>5<6sA9h86sa81094?7|@:i?7p`70283>4}O;j>0qc6?4;295~N4k=1vb5>::182M5d<2we4=850;3xL6e33td3<:4?:0yK7f251zJ0g1=zf1:26=4>{I1`0>{i09k1<7?tH2a7?xh?8k0;67k3:1=vFm;;|l;4c<728qC?n:4}o:24?6=9rB8o95rn932>5<6sA9h86sa80094?7|@:i?7p`71283>4}O;j>0qc6>4;295~N4k=1vb5?::182M5d<2we4<850;3xL6e33td3=:4?:0yK7f251zJ0g1=zf1;26=4>{I1`0>{i08k1<7?tH2a7?xh?9k0;66k3:1=vFm;;|l;5c<728qC?n:4}o:14?6=9rB8o95rn902>5<6sA9h86sa83094?7|@:i?7p`72283>4}O;j>0qc6=4;295~N4k=1vb5<::182M5d<2we4?850;3xL6e33td3>:4?:0yK7f251zJ0g1=zf1826=4>{I1`0>{i0;k1<7?tH2a7?xh?:k0;65k3:1=vFm;;|l;6c<728qC?n:4}o:04?6=9rB8o95rn912>5<6sA9h86sa82094?7|@:i?7p`73283>4}O;j>0qc6<4;295~N4k=1vb5=::182M5d<2we4>850;3xL6e33td3?:4?:0yK7f251zJ0g1=zf1926=4>{I1`0>{i0:k1<7?tH2a7?xh?;k0;64k3:1=vFm;;|l;7c<728qC?n:4}o:74?6=9rB8o95rn962>5<6sA9h86sa85094?7|@:i?7p`74283>4}O;j>0qc6;4;295~N4k=1vb5:::182M5d<2we49850;3xL6e33td38:4?:0yK7f251zJ0g1=zf1>26=4>{I1`0>{i0=k1<7?tH2a7?xh?3k3:1=vFm;;|l;0c<728qC?n:4}o:64?6=9rB8o95rn972>5<6sA9h86sa84094?7|@:i?7p`75283>4}O;j>0qc6:4;295~N4k=1vb5;::182M5d<2we48850;3xL6e33td39:4?:0yK7f247>51zJ0g1=zf1?26=4>{I1`0>{i02k3:1=vFm;;|l;1c<728qC?n:4}o:54?6=9rB8o95rn942>5<6sA9h86sa87094?7|@:i?7p`76283>4}O;j>0qc694;295~N4k=1vb58::182M5d<2we4;850;3xL6e33td3::4?:0yK7f251zJ0g1=zf1<26=4>{I1`0>{i0?k1<7?tH2a7?xh?>k0;61k3:1=vFm;;|l;2c<728qC?n:4}o:44?6=9rB8o95rn952>5<6sA9h86sa86094?7|@:i?7p`77283>4}O;j>0qc684;295~N4k=1vb59::182M5d<2we4:850;3xL6e33td3;:4?:0yK7f251zJ0g1=zf1=26=4>{I1`0>{i0>k1<7?tH2a7?xh??k0;60k3:1=vFm;;|l;3c<728qC?n:4}o:;4?6=9rB8o95rn9:2>5<6sA9h86sa89094?7|@:i?7p`78283>4}O;j>0qc674;295~N4k=1vb56::182M5d<2we45850;3xL6e33td34:4?:0yK7f251zJ0g1=zf1226=4>{I1`0>{i01k1<7?tH2a7?xh?0k0;6?k3:1=vFc290:wE=l4:m<=c=83;pD>m;;|l;5<6sA9h86sa88094?7|@:i?7p`79283>4}O;j>0qc664;295~N4k=1vb57::182M5d<2we44850;3xL6e33td35:4?:0yK7f251zJ0g1=zf1326=4>{I1`0>{i00k1<7?tH2a7?xh?1k0;6>k3:1=vFm;;|l;=c<728qC?n:4}o:b4?6=9rB8o95rn9c2>5<6sA9h86sa8`094?7|@:i?7p`7a283>4}O;j>0qc6n4;295~N4k=1vb5o::182M5d<2we4l850;3xL6e33td3m:4?:0yK7f251zJ0g1=zf1k26=4>{I1`0>{i0hk1<7?tH2a7?xh?ik0;6fk3:1=vFm;;|l;ec<728qC?n:4}o:a4?6=9rB8o95rn9`2>5<6sA9h86sa8c094?7|@:i?7p`7b283>4}O;j>0qc6m4;295~N4k=1vb5l::182M5d<2we4o850;3xL6e33td3n:4?:0yK7f251zJ0g1=zf1h26=4>{I1`0>{i0kk1<7?tH2a7?xh?jk0;6ek3:1=vFm;;|~yEFDsh<>69>i25f;exFGJr:vLM^t}AB diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco index 9f47c073c..cee995891 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco @@ -1,7 +1,7 @@ ############################################################## # -# Xilinx Core Generator version K.39 -# Date: Tue Aug 10 23:09:39 2010 +# Xilinx Core Generator version 12.1 +# Date: Thu Aug 12 21:06:13 2010 # ############################################################## # diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xise b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xise index d9013a131..cfe983130 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xise +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xise @@ -29,331 +29,29 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - + + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.lso b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.lso deleted file mode 100644 index f1a6f7899..000000000 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_fifo_generator_v4_3_xst_1.lso +++ /dev/null @@ -1,3 +0,0 @@ -blkmemdp_v6_2 -blk_mem_gen_v2_6 -fifo_generator_v4_3 -- cgit v1.2.3 From d4b6fa72eb3fec872a41dea136a5845d3c6ff1ec Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Thu, 19 Aug 2010 12:46:04 -0700 Subject: Regenerated FIFO with lower trigger level for almost full flag to reflect logic removed from nobl_fifo. Improved ext_fifo_tb further, try to simulate more combinations of decomation rates and packet arrival patterns. Strip out the logic in nobl_fifo that made it look like a Xilinx fall-through FIFO...it is now very simple logic but a propriatory interface that exposes the high inetrnal latency of reads. Allow the USED size of the external FIFO to be parameterized from the core level. Currently set at only 256 Corrected a bug in vita_tx_deframer.v that can write to a FIFO when its full causing illegal state. Made further edits that are currently commented becuase simulation indicates they cause problems, however suspect a further bug is in this code. --- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc | 2 +- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.v | 4 +- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xco | 8 +- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.xise | 4 +- usrp2/extramfifo/ext_fifo.v | 29 +-- usrp2/extramfifo/ext_fifo_tb.v | 70 +++++++- usrp2/extramfifo/nobl_fifo.v | 229 +++--------------------- usrp2/top/u2_rev3/u2_core_udp.v | 3 +- 8 files changed, 113 insertions(+), 236 deletions(-) diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc index b583362cd..608a5f2fb 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc @@ -1,3 +1,3 @@ XILINX-XDB 0.1 STUB 0.1 ASCII XILINX-XDM V1.6e -$45540<,[o}e~g`n;"2*726&;$:,)<6;.vnt*Ydo&lbjbQwloz\144;?U9oaeP19vl73(iof;0<85?0123=>6789:;<=>;0:23456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?01084<7<9:1:"=?<;029MKVR\3KOH_O39;2=5`=683CE\XZ5psmd[cskdV~c~h}g<883:73<990BB][[:qplcZ`rdeUdk|h^cpw`ts400;2?;4118JJUSS2yxdkRhzlm]wlwct`Vdnklzj<883:4?<990DYY^ZT;fbpdYdg|d044?>0a855113922?OIX\^1HDO31483:45<9?0DYY^ZT;FLE972294:>6?7:HLSQQ11:07?754;8;0>7GAPTV9@LVF480;2<<42;MVPUSS2ME[M1?50?31?64=AGZ^X7JFB=12>586;2996B[[PTV9@JD;;80;2<:4378LQQVR\3ndyy2<5;2=`>5t:9:;jj::6,72?12<<9LM=<5;:HLSQQ11397>JSSX\^1HB^M<283:4=1:2<286869768<567<22N4L?4959:45?530;>585=231EC^ZT;rqkbYbey~rSyf}erj\evubz}636=0=5:;9MKVR\3zycjQjmqvz[qnumzbTbhintd>;>586j231CXZ_UU8q`Zbf|hUhcx`{<983:7=F:11JHI\N<1<;?DBCZH6:255NDEPB878?3HNO^L2<>99B@ATF4=437LJKR@>6:==FLMXJ0;07;@FGVD:0611JHI\N<9611JHI\M<1<;?DBCZK6:255NDEPA878?3HNO^O2<>99B@ATE4=437LJKRC>6:==FLMXI0;07;@FGVG:06h1JHI\M<983:==FLMXI050<;@NO=>GTQGIT^HI<;CW1<>DR[VCEJB?4C39@A44EKCK90OA\6;BMNILRSMM;?7NA]E^EFJ@TF\@EESD@IO69@V@GSMM;0H?5KC39GM3=CAH6;2:5KI@>24;169GMD:6<730HDO31483:2=CAH6:9384DHC?5;0384DHC?7;01OEO2>3?58@LD;9=4<7IGM<07=3>BNJ5;=2:5KIC>23;12NBN1?17:FJF9476>1OEO2=1?58@LD;:;4<7IGM<31=3>BNJ58?2:5KIC>11;1;08;EKA8719?2NBN1<7>69GMG:517<0HDL32?58@LD;;9427IGM<2394;119:FJTD:6294<7IG_A=3=3>BNXK6;2:5KIQ@?5;1BHI5;:2:5KO@>26;108;EMB842912NDM1?::1<4?AIF48?5:6J@A=3=2>BHI585:6J@A=1=2>BHI5>5:6J@A=7=2>BHI5<5:6J@A=5=2>BHI525:6J@A=;=3>BHIVXNK;5KOC>3:2=CGK6:<394DN@?54803MEI0<<17:FLF9746>1OCO2>4?58@JD;9<4<7IAM<04=3>BHJ5;<2:5KOC>2<;117:FLF9466>1OCO2=2?58@JD;::4<7IAM<36=3>BHJ58>2:5KOC>12;1:08;EMA87>9?2NDN1<6>79GKG:56>1OCO2<0?;8@JD;;80;2:5KOC>05;019:FLTD:6294<7IA_A=3=3>BHXK6;2:5KOQ@?5;16H75:DBHVC53ON87KJL4:DGG@56G>2:K16>O402CEEY^P01:8MKOSXV::46GAIUR\47><8:KMMQVX8=20ECG[P^26<>OIA]ZT<;64IOKWTZ6012CEEY][AUG4?LHN\V:;;6GAIU]352=NF@^T;7:KMMQY7=>1BBDZP0758MKOSW9=<7D@FT^2;3>OIA]U;5:5FNHV\4D11BBDZP1758MKOSW8=<7D@FT^3;3>OIA]U:5:5FNHV\5D1D69JJLRX9L=0ECG[_0D4?LHN\V8;;6GAIU]152=NF@^T>?94IOKW[7503@DBXR<;7:KMMQY5=>1BBDZP2758MKOSW;=<7D@FT^0;3>OIA]U95:5FNHV\6D11BBDZP3758MKOSW:=<7D@FT^1;3>OIA]U85:5FNHV\7D1L8;HLJPZ5D?2CEEYQ6B@6:NLEACC?2FDKDMNL59OQQ733E__>95CUU17?ISS0168J466<2D:H68=>0B<>:4:L24320968J46>;2D:=95A1027?K769=1E=<<;;O3271=I98>?7C?>559M54033G;:;95A10:7?K761:1E=?:4N0030>H6:8>0B<<=4:L26622468J441<2D:>::4N00;7>H6;=1E=>?<;O377>H6=:1E=;:4N0477>H6?:1E=5=4N0;1?K443G8;?6@=129M675H51;1E?>5A3108J0480B4=4N830?K?5;2D2?>5A9518J<343G3=?6@6729M==56^Q2h1YILJPFHPPPf=UMHNT[DJ[H^C`?WCFLV]BHYFPB09P56=TADUHCABFSHMM[FNBKB<0_B[]CD58WWPFDVK<7^\YAM]A0>UTZH>0_^\M4:VZT@553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?012\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4566W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;>R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?02]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3452XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:>S_k|umv277=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwY`kVrd~=>?6^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\vaYwf}xTknQwos2342YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt789:T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=>>_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1236ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678:UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=:PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^uq[uhszVmhSua}0126[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYpzVzexQhc^zlv567>VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT{Qnup\cfYg{:;<:Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_vp\tkruWniTtb|?01:\V`urd};9=6[?/fpe*w`(ojr%oaew/sf\tkruWkce0=0=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<0<15>S7'nxm"h gbz-gim'{nT|cz}_ckm878592_;#j|i.sd,cf~)keas#jPpovq[goi4:49=6[?/fpe*w`(ojr%oaew/sf\tkruWkce090=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<4<15>S7'nxm"h gbz-gim'{nT|cz}_ckm838592_;#j|i.sd,cf~)keas#jPpovq[goi4>49=6[?/fpe*w`(ojr%oaew/sf\tkruWkce050=0:W3+bta&{l$knv!cmi{+wbXxg~ySoga_103?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\576<]9%l~k }f.e`|+ekcq%yhR~ats]amkY5:91^<"i}f/pe+be&jf`t"|k_qlwvZdnfV99<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS9 gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?01213>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:;=?84U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos2344403\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=?>279V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567:;=0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?03312>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:8>:5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r12377413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=:=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45639;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0404?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789?:>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r12327><]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<;?>269V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567>;8i7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?014\fab7:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?7358Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678>;9<6[?/fpe*w`(ojr%oaew/sf\tkruWni7<3>328Q5)`zo$yj"ilx/aoo})ulVzexQhc=0=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`868582_;#j|i.sd,cf~)keas#jPpovq[be;<78;7X> gsd-vc)`kq$h`fv re]sjqtXoj6>2?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo181219V4*aun'xm#jmw.bnh|*tcWyd~Ril<6<14>S7'nxm"h gbz-gim'{nT|cz}_fa?<;7a3\:$kh!rg-dg}(ddbr$~iQnup\cfY79o1^<"i}f/pe+be&jf`t"|k_qlwvZadW8;m7X> gsd-vc)`kq$h`fv re]sjqtXojU9=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS>?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ;1g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_43e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]55c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[27a3\:$kh!rg-dg}(ddbr$~iQnup\cfY?:?1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyij2?>348Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;978=7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh<3<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo595>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>7:70<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlm793<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8385>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk191279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:?6;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP0378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX9;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP2378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX;;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP4378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX=;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP6378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX?;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP83;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86;2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:66;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>1:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<2<>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86?2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:26;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>5:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<28>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8632?64U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4Y7:11^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1^31<>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:S?<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X;;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]76==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R;=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W?837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\37><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh>249V4*aun'xm#jmw.bnh|*tcWyd~Ril_ymq4565:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWqey<=><249V4*aun'xm#jmw.bnh|*tcWyd~Ril_ymq4563:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWqey<=>:249V4*aun'xm#jmw.bnh|*tcWyd~Ril_ymq4561:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWqey<=>8209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=3=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj949:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf595><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb1:1209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=7=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj909:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf5=5><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb161209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=;=65=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ7582_;#j|i.sd,cf~)keas#z|Ppovq[goiW;8;7X> gsd-vc)`kq$h`fv ws]sjqtXj`dT??>4U1-dvc(un&mht#mcky-tvZvi|{UiecQ;219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^714>S7'nxm"h gbz-gim'~xT|cz}_ckm[3473\:$kh!rg-dg}(ddbr${Qnup\flhX?;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU3>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR7=6:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq4567:>1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?0005?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt789;9;6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}0122570<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;?3358Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678:89:6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012762=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;8<<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34535?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>:1348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678?837X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?0142571<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<;<=b:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq4561Wkno219V4*aun'xm#jmw.bnh|*quWyd~Ril<1<14>S7'nxm"h gbz-gim'~xT|cz}_fa?5;473\:$kh!rg-dg}(ddbr${Qnup\cf:56;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k595>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh090=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm35?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>5:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg919:91^<"i}f/pe+be&jf`t"y}_qlwvZad4149<6[?/fpe*w`(ojr%oaew/vp\tkruWni753?i;T2,cw`)zo%lou lljz,swYwf}xTknQ?1g9V4*aun'xm#jmw.bnh|*quWyd~Ril_03e?P6(o{l%~k!hcy,`hn~({U{by|Pgb]15c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[67a3\:$kh!rg-dg}(ddbr${Qnup\cfY39o1^<"i}f/pe+be&jf`t"y}_qlwvZadW<;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU==k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS:?i;T2,cw`)zo%lou lljz,swYwf}xTknQ71g9V4*aun'xm#jmw.bnh|*quWyd~Ril_805?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4949:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=3=63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn692?84U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde?7;413\:$kh!rg-dg}(ddbr${Qnup\cfYf{{ol090=6:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfc939:?1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyij29>348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;?78=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<9<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo535>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]360=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU:>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]160=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU8>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]760=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU>>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]560=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU<>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef];60=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU2>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5979:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=0=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1=1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95>5>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5939:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=4=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=191289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9525>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g59?9:11^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1^31<>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S?<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X;;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]76==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R;=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W?837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\37><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmThS7'nxm"h gbz-gim'~xT|cz}_fa\|jt789;996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01011>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt7899996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01611>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt789?996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01411>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt789=996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01:04>S7'nxm"h gm2-va)`z8$yjzh{/Lov|ZTFEVXOSH@PFVDW644a3\:$kh!rg-dh5(ul&my=#|iwgv,IhsW[KFS_KHOTV\AK76:m1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwa969:m1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwa979:j1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwaZ65k2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[4523\:$kh!rg-dh5(ul&my=#|iwgv,gptuWo}mxR}{aug\ip~789;7<3=9;T2,cw`)zo%l`= }d.eq5+tao~$ox|}_guepZusi}oTaxv?013?4;74=2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[hs89::0<0<6:W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nS`{w01228486:11^<"i}f/pe+bj7&{n$k?!rguep*cjx}sTjzh{_g`13>S7'nxm"h gm2-va)`z8$yjzh{/dosp|Yao~Te?h4U1-dvc(un&mg<#|k/fp2*w`pn}%na}zv_guepZoXe|r;<=><0:W3+bta&{l$ka>!re-dv4(un~l#hctx]escrXaVg~t=>?000:?P6(o{l%~k!hl1,q`*auiz$yy} c1-`ewt~fl~7<3<6;T2,cw`)zo%l`= }d.eqev(u{}y$o=!laspzj`r;97827X> gsd-vc)`d9$yh"i}ar,qwqu(k9%hm|vndv?6;4>3\:$kh!rg-dh5(ul&mym~ }suq,g5)di{xrbhz33?0e?P6(o{l%~k!hl1,q`*auiz$yy} c1-dip~)odQ;Q#ib1/o26c=R8&myj#|i/fn3*wb(o{kx"}{s.a3+bkrp'mfW gsd-vc)`d9$yh"i}ar,qwqu(k9%laxv!glY7Y+aj{'gx>>5Z0.eqb+ta'nf;"j gscp*wus{&i;#{?30?00?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5979::1^<"i}f/pe+bj7&{n$ko|.sqww*e7';7>3<<;T2,cw`)zo%l`= }d.eqev(u{}y$o=!y1=1=66=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7;<78i7X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=R>Paof34566:k1^<"i}f/pe+bj7&{n$ko|.sqww*e7';T=Road123444e3\:$kh!rg-dh5(ul&mym~ }suq,g5)q9V8Tmcj?01226g=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7X;Vkeh=>?000a?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5Z2Xff~;<=>>289V4*aun'xm#jb?.sf,cwgt&{y"m>/bcqv|hb|5:5>45Z0.eqb+ta'nf;"j gscp*wus{&i:#no}rxlfp979:01^<"i}f/pe+bj7&{n$ko|.sqww*e6'jky~t`jt=0=6<=R8&myj#|i/fn3*wb(o{kx"}{s.a2+fguzpdnx1=12g9V4*aun'xm#jb?.sf,cwgt&{y"m>/fov|+ajS9W%k`?!m00e?P6(o{l%~k!hl1,q`*auiz$yy} c0-dip~)odQ:Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a2+bkrp'mfW?S!glq-iv4a3\:$kh!rg-dh5(ul&mym~ }suq,g4)`e|r%k`U<]/enw+kt:o1^<"i}f/pe+bj7&{n$ko|.sqww*e6'ng~t#ib[5_-chu)ez887X> gsd-vc)`d9$yh"i}ar,qwqu(k8%}=1>1229V4*aun'xm#jb?.sf,cwgt&{y"m>/w3?5;443\:$kh!rg-dh5(ul&mym~ }suq,g4)q9585>>5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?33?00?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5929:k1^<"i}f/pe+bj7&{n$ko|.sqww*e6';T?000a?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5Z5Xign;<=>>2c9V4*aun'xm#jb?.sf,cwgt&{y"m>/w3\0Zhh|9:;<<S7'nxm"h gm2-va)`zhy%~~z|/scn[`kw|pUmnRgPos234575;2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex?:4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov261=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}8986[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at207?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphs<;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz:259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq05<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex:<;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw<7?<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2?>3a8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6;2R|{289V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5;5>n5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}979W{~956[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az8785k2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<3<\vq4>3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw33?0`?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7?3Q}t3;8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6?2?m4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:36Vx>45Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}939:j1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=7=[wr512_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<7<1g>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0;0Pru0:?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7;3 gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8485i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=0=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc2<>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx7834:7g<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|38?0g?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWqey050Pru3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=2=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?5;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9499o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;;7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5>5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~793?i;T2,cw`)zo%l`= }d.psjqt(kfex1811g9V4*aun'xm#jb?.sf,vuhsz&idycz37?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=:=5`=R8&myj#|i/fn3*wb(zyd~"m`uov\44c<]9%l~k }f.eo4+tc'{zex!lotlw[47b3\:$kh!rg-dh5(ul&x{by| cnwmpZ46m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY49l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX<8o0Y=!hrg,qb*ak8'xo#~ats-`kphsW<;n7X> gsd-vc)`d9$yh"|nup,gjsi|V<:i6[?/fpe*w`(oe:%~i!}povq+firf}U<=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T4?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?30?01?P6(o{l%~k!hl1,q`*twf}x$ob{at^f28485:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc9585>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<2<>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?0;453\:$kh!rg-dh5(ul&x{by| cnwmpZb64<49>6[?/fpe*w`(oe:%~i!}povq+firf}Uo=181239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>4:74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;078:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S=<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_002?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[7463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W:8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S9<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_402?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[3463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W>8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S5<;;T2,cw`)zo%l`= }d.psjqt(kfexR``t12356`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8584n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:66:l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Ze~4;48j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xkp682>h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir090!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:Tot2:>2d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>4:6`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8=84n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:>6=;0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5;;29>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vf~x1?1479V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Sa{{<0<\MKPX8=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5858=5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567We0>0;0:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:T`xz34?63?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,IdbcWmcmjR~ats]seaYflm:;<=Qcuu>6:16<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp909<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[iss4>4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xd|~743:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Ugyy26>538Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?0^zlv979<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[}iu4;4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xpfx7?3:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Usc2;>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?_ymq838382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\|jt;?7>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yg{6329>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vrd~171319V4*aun'xm#jb?.vp,crgt&nzm"z|f.fjbcYwf}xT|lj311<1b>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae>2:7`<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg8785n2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]sea:46;l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugc4=49j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwim6>2?h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWyko0;0=f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{mi28>3d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok<9<1b>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae>::7c<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[44a3\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(l`lmS}`{r^rb`Z77:l1^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&nbjkQnup\tdbX:;o0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcW:8n7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$hdhi_qlwvZvflV>9i6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimU>>h5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"jffg]sjqtXxhnT:?k4U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWykoS:!ws-dsdu)oyl%{~i/ekebZvi|{U{miQ6399V4*aun'xm#jb?.vp,crgt&nzm"z|f.fjbcYwf}xT|ljPaef3456;9948;6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimUjhi>?01>2:61<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[dbc89:;0?0<7:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{miQnde2345:46:=0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcWhno<=>?<5<03>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae]b`a67896>2>94U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWykoSljk01238384?2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaYflm:;<=28>258Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok_`fg45674148;6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimUjhi>?01>::7g<]9%l~k }f.eo4+qu'n}j#if/uqtc)wzfmTjxbc_h11?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,twi`Wog`RgPmtz34554<2_;#j|i.sd,ci6){%l{l}!gqd-swva'yxdkRhzlm]j[hs89:8=8=;;T2,cw`)zo%l`= xr.etev(`xo$|~}h psmd[cskdVcTaxv?0112<6><]9%l~k }f.eo4+qu'n}j#if/uqtc)wzfmTjxbc_h]nq}678:;3S^Y?339V4*aun'xm#jb?.vp,crgt&nzm"z|f.rqkbYa}efTeR``t12357?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2?>3;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6:2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:56;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>0:7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV>R.fo2*h75n2_;#j|i.sd,ci6){%l{l}!wrvp+f7(ods"jcT1\,div(j{;l0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&mfyu hmZ0^*bkt&dy9j6[?/fpe*w`(oe:%{!hw`q-svrt'j;$k`{w.foX7X(`ez$f?h4U1-dvc(un&mg<#y}/fubw+qt|z%h="ibuy,di^2Z&ngx"`}=3:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0>3:75<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p64849?6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z<2=>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28685;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~86?2?l4U1-dvc(un&mg<#y}/fubw+qt|z%h="x>_1]bja6789;9n6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z_`lg45679;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S?Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U8Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W=Ujbi>?0131=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0=0=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs484956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw878512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<2<1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP

"x><1<17>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4:66;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0?0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>0:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64=49n6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y3Whdo<=>?1328Q5)`zo$yj"ic0/uq+bqf{'}xx~!lolr265=R8&myj#|i/fn3*rt(o~kx"z}{s.aliu4582_;#j|i.sd,ci6){%l{l}!wrvp+fijx:8o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;878o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;978o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;:78o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;;7987X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!hmtz-ch]7U'mf=#c>329V4*aun'xm#jb?.vp,crgt&~y"inf/a0+bkrp'mfW5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m1^<"i}f/pe+bj7&~x$kzo|.vqww*afn'i8#{?30?04?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q95;5>:5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m gsd-vc)`d9$|~"ixar,twqu(ohl%o>!y1^2\ekb789::>k5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m>2g9V4*aun'xm#jb?.vp,crgt&~y"inf/a0+s7X;Vkeh=>?000e?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q9V>Tmcj?01226f=R8&myj#|i/fn3*rt(o~kx"z}{s.pbiZgkefySk{cl^k00>S7'nxm"h gm2-sw)`hy%{~z|/scn[djjgz~Tjxbc_h]nq}67899>7X> gsd-vc)`d9$|~"ixar,twqu(zhgTmac`su]eqijXaVg~t=>?001a?P6(o{l%~k!hl1,tv*apiz$|y} r`o\eikh{}UmyabPi^llp56798UBB[Q?299V4*aun'xm#jb?.vp,crgt&~y"|nm^dvhiYajVc996[?/fpe*w`(oe:%{!hw`q-svrt'{kfSk{cl^k1`>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVcTaxv?0121a>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVcTaxv?01225a=R8&myj#|i/fn3*rt(zhgT{Qjn^k25c=R8&myj#|i/fn3*rt(zhgT{Qjn^k2[4443\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d>95Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu310>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|;8?7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{3368Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkr3:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by;=4:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp3433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d;?:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov;61=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}3956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8585k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<1<\vq4>3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw31?0`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7=3Q}t3;8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp692?m4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\g|:56Vx>45Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}959:j1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=1=[wr512_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<5<1g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir090Pru0:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7935:Zts:01^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=5=6f=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu191_sv1=>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir050=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~414T~y1:7g<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|33?0b?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey090=a:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZ~hz5?5>l5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]{kw:16;k0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPxnp?3;4f3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSua}<9<1e>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vrd~1712e9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{622R|{1g9V4*aun'xm#jb?.vp,suhsz&idycz30?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=3=5c=R8&myj#|i/fn3*rt(yd~"m`uov?6;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9599o1^<"i}f/pe+bj7&~x${}`{r.alqkr;<7;m7X> gsd-vc)`d9$|~"ynup,gjsi|5?5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~7:3?i;T2,cw`)zo%l`= xr.usjqt(kfex1911g9V4*aun'xm#jb?.vp,suhsz&idycz38?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=;=5`=R8&myj#|i/fn3*rt(yd~"m`uov\44c<]9%l~k }f.eo4+qu'~zex!lotlw[47b3\:$kh!rg-dh5(pz&}{by| cnwmpZ46m2_;#j|i.sd,ci6){%||cz}/bmvjqY49l1^<"i}f/pe+bj7&~x${}`{r.alqkrX<8o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW<;n7X> gsd-vc)`d9$|~"ynup,gjsi|V<:i6[?/fpe*w`(oe:%{!xpovq+firf}U<=h5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T4<1<16>S7'nxm"h gm2-sw)pxg~y#naznu]g5979:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl8692?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?33?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28185:2_;#j|i.sd,ci6){%||cz}/bmvjqYc95?5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<29>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3?3;453\:$kh!rg-dh5(pz&}{by| cnwmpZb64149>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=171209V4*aun'xm#jb?.vp,suhsz&idyczPd0]364=R8&myj#|i/fn3*rt(yd~"m`uov\`4Y6:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl8U9><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;6;2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<31?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f18785:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:595>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?2;>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?1;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54?49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>191239V4*aun'xm#jb?.vp,suhsz&idyczPd3>;:74<]9%l~k }f.eo4+qu'~zex!lotlw[a4;178:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S=<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_002?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[7463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W:8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S9<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_402?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[3463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W>8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S5<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_801?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f08585:2_;#j|i.sd,ci6){%||cz}/bmvjqYc;5;5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>2=>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1?7;453\:$kh!rg-dh5(pz&}{by| cnwmpZb44=49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo?1;1239V4*aun'xm#jb?.vp,suhsz&idyczPd2>5:74<]9%l~k }f.eo4+qu'~zex!lotlw[a5;?7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn8050=2:W3+bta&{l$ka>!ws-ttkru'je~byQk3=;=64=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y7:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U:><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q=209V4*aun'xm#jb?.vp,suhsz&idyczPd2]064=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y3:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U>><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q9209V4*aun'xm#jb?.vp,suhsz&idyczPd2]464=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y?:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U2>95Z0.eqb+ta'nf;"z| wqlwv*eh}g~Tbbz?01323>S7'nxm"h mdo,`jssW`6;2<64U1-dvc(un&gna"j`uu]j8469911^<"i}f/pe+hcj'me~xRg310<2<>S7'nxm"h mdo,`jssW`6:>3?7;T2,cw`)zo%fi`!kotv\m9746820Y=!hrg,qb*kbe&ndyyQf<06=5==R8&myj#|i/lgn+air|Vc7=80>8:W3+bta&{l$ahc dnww[l:6>7;37X> gsd-vc)jmd%ocxzPi=34:4><]9%l~k }f.ofi*bh}}Ub0<61199V4*aun'xm#`kb/emvpZo;904:;6[?/fpe*w`(elg$hb{{_h>2:4><]9%l~k }f.ofi*bh}}Ub0?>1199V4*aun'xm#`kb/emvpZo;:84:46[?/fpe*w`(elg$hb{{_h>16;7?3\:$kh!rg-nah)cg|~Te1<<>0:8Q5)`zo$yj"cjm.flqqYn4;>5=55Z0.eqb+ta'dof#iazt^k?608602_;#j|i.sd,i`k(lfSd2=6?3;?P6(o{l%~k!bel-gkprXa58<2<64U1-dvc(un&gna"j`uu]j87>9911^<"i}f/pe+hcj'me~xRg328<23>S7'nxm"h mdo,`jssW`692<64U1-dvc(un&gna"j`uu]j8669911^<"i}f/pe+hcj'me~xRg330<2<>S7'nxm"h mdo,`jssW`68>3?7;T2,cw`)zo%fi`!kotv\m9546820Y=!hrg,qb*kbe&ndyyQf<26=5==R8&myj#|i/lgn+air|Vc7?80>7:W3+bta&{l$ahc dnww[l:468=0Y=!hrg,qb*kbe&ndyyQf<5<23>S7'nxm"h mdo,`jssW`6>2<94U1-dvc(un&gna"j`uu]j8386?2_;#j|i.sd,i`k(lfSd28>058Q5)`zo$yj"cjm.flqqYn414:;6[?/fpe*w`(elg$hb{{_h>::40<]9%l~k }f.ofi*bh}}UbS=?9;T2,cw`)zo%fi`!kotv\mZ76?2_;#j|i.sd,i`k(lfSdQ>0058Q5)`zo$yj"cjm.flqqYnW8;:;6[?/fpe*w`(elg$hb{{_h]2641<]9%l~k }f.ofi*bh}}UbS<=>7:W3+bta&{l$ahc dnww[lY6<8=0Y=!hrg,qb*kbe&ndyyQf_0723>S7'nxm"h mdo,`jssW`U::<94U1-dvc(un&gna"j`uu]j[416?2_;#j|i.sd,i`k(lfSdQ>8058Q5)`zo$yj"cjm.flqqYnW83::6[?/fpe*w`(elg$hb{{_h]152=R8&myj#|i/lgn+air|VcT>=?8;T2,cw`)zo%fi`!kotv\mZ469>1^<"i}f/pe+hcj'me~xRgP2334?P6(o{l%~k!bel-gkprXaV88=:5Z0.eqb+ta'dof#iazt^k\61703\:$kh!rg-nah)cg|~TeR<:169V4*aun'xm#`kb/emvpZoX:?;<7X> gsd-vc)jmd%ocxzPi^0452=R8&myj#|i/lgn+air|VcT>5?8;T2,cw`)zo%fi`!kotv\mZ4>9?1^<"i}f/pe+hcj'me~xRgP3058Q5)`zo$yj"cjm.flqqYnW:::;6[?/fpe*w`(elg$hb{{_h]0541<]9%l~k }f.ofi*bh}}UbS><>7:W3+bta&{l$ahc dnww[lY4;8=0Y=!hrg,qb*kbe&ndyyQf_2623>S7'nxm"h mdo,`jssW`U89<84U1-dvc(un&gna"j`uu]j[1713\:$kh!rg-nah)cg|~TeR;>6:W3+bta&{l$ahc dnww[lY19?1^<"i}f/pe+hcj'me~xRgP7048Q5)`zo$yj"cjm.flqqYnW1;=7X> gsd-vc)jmd%ocxzPi^;2=>S7'nxm"h mdo,`jssWdof0=0>a:W3+bta&{l$ahc dnww[hcj48:5=l5Z0.eqb+ta'dof#iazt^ofi97668k0Y=!hrg,qb*kbe&ndyyQbel>26;7f3\:$kh!rg-nah)cg|~Tahc312<2e>S7'nxm"h mdo,`jssWdof0<:11`9V4*aun'xm#`kb/emvpZkbe5;>27;j7X> gsd-vc)jmd%ocxzPmdo?5286i2_;#j|i.sd,i`k(lfS`kb<0:=5d=R8&myj#|i/lgn+air|Vgna1?6>0;8Q5)`zo$yj"cjm.flqqYjmd6:2 gsd-vc)jmd%ocxzPmdo?6486i2_;#j|i.sd,i`k(lfS`kb<30=5d=R8&myj#|i/lgn+air|Vgna1<<>0c8Q5)`zo$yj"cjm.flqqYjmd6983?n;T2,cw`)zo%fi`!kotv\i`k;:<4:m6[?/fpe*w`(elg$hb{{_lgn87099h1^<"i}f/pe+hcj'me~xRcjm=04:4g<]9%l~k }f.ofi*bh}}Ufi`2=8?3b?P6(o{l%~k!bel-gkprXelg7>40>9:W3+bta&{l$ahc dnww[hcj4;4:m6[?/fpe*w`(elg$hb{{_lgn86699h1^<"i}f/pe+hcj'me~xRcjm=12:4g<]9%l~k }f.ofi*bh}}Ufi`2<2?3b?P6(o{l%~k!bel-gkprXelg7?>0>a:W3+bta&{l$ahc dnww[hcj4:>5=l5Z0.eqb+ta'dof#iazt^ofi9526830Y=!hrg,qb*kbe&ndyyQbel>0:4?<]9%l~k }f.ofi*bh}}Ufi`2;>0;8Q5)`zo$yj"cjm.flqqYjmd6>2<74U1-dvc(un&gna"j`uu]nah:16830Y=!hrg,qb*kbe&ndyyQbel>4:4?<]9%l~k }f.ofi*bh}}Ufi`27>0;8Q5)`zo$yj"cjm.flqqYjmd622::4U1-dvc(un&gna"imm/eaib(`jdmj"cijcb,aib)edbUfi`Qheogqeqiu'kgei lsup,vdkkgfzP

1d9V4*aun'xm#}{bmi,vaYu{}Uyij2?>0g8Q5)`zo$yj"||tcnh+wbXzz~T~hi31?3f?P6(o{l%~k!}su`oo*tcW{ySkh<3<2`>S7'nxm"h rrvahn)ulVxxxR|jg^22`>S7'nxm"h rrvahn)ulVxxxR|jg^32`>S7'nxm"h rrvahn)ulVxxxR|jg^02`>S7'nxm"h rrvahn)pzVxxxRo|rde14>S7'nxm"h rrvahn)pzVxxxRo|rde\`4473\:$kh!rg-qwqdkc&}yS}{_`qqabYc:8i0Y=!hrg,qb*tt|kf`#z|Prrv\gjke9m1^<"i}f/pe+wusjea${Q}su]`khd69l1^<"i}f/pe+wusjea${Q}su]qab:768o0Y=!hrg,qb*tt|kf`#z|Prrv\v`a;97;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W9;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W8k0Y^K]_@NJEVe<]ZOYS[G\ICNF7>PDK01]EHYPTXRF7>QBI:1\IOm4WSKWAZKHLLUJo6Y]IUG\IJBBWKn0[_G[E^UJ@QNXIm1\^DZJ_VKGPMYE9m1SEAGAX,ZGF%6)9)Y_YO.?.0"BWFON=2RD^NW9;YQWHLD03QY_SJ@K7:ZPPZPDKk1SSNA]E^KMBJ00:ZgiZKfbfx]i}foo33?]bjWDcecXjrrkljf=fddexxRkbpu{a?djjgz~Tjxbc6:`bgnswl2hjof{_lcqo`t43jf`h6jnt`]`kphs 9#o7io{a^alqkr/9 n0hlzn_bmvjq.5!m1omyoPcnwmp-5.l2njxlQlotlw,1/c3mkmRm`uov+1,bbf|hUhcx`{(9+g?agsiVidycz'9(d8`drfWje~by26:1<4?adn|lxy:6jfn)2*2>bnf!;";6jfn)33-2=cag":=$94dhl+57/03mce$<=&7:fjj-73!>1oec&>5(58`lh/9?#<7iga(05*2>bnf!8":6jfn)1*2>bnf!>":6jfn)7*2>bnf!<":6jfn)5*2>bnf!2":6jfn);*2>bnf5:5;6jfn=33:2=cag6:=394dhl?57803mce0<=17:fjj9736>1oec2>5?58`lh;9?427iga<0594;1&7:flqq.6!11ocxz'11+;?air|!;:%55kotv+57/?3me~x%?<)99gkpr/9=#37iazt)36-==cg|~#=;'7;emvp-70!11ocxz'19+;?air|!;2%:5kotv+6,>&8:flqq.59 20hb{{(30*<>bh}}"9?$64dnww,72.02ndyy&=5(:8`jss ;<"46j`uu*13,> =0hb{{(6+4?air|!2";6j`uu*:-2=cg|~7<364dnww846902ndyy2>1?:8`jss488546j`uu>27;>bh}}6:;364dnww84>902ndyy2>9?58`jss48437iazt=03:==cg|~7><07;emvp945611ocxz322<;?air|58?255kotv?608?3me~x1<9>99gkpr;:>437iazt=0;:==cg|~7>408;emvp94902ndyy2<0?:8`jss4:;546j`uu>06;>=18:flqq:4<7k0hb{{<2794;>;17:flqq:46>1ocxz34?58`jss4<4<7iazt=4=3>bh}}6<2:5kotv?<;12y15[7ekcV;3xb=9,gkekZabflxjxb|Pv7]2(KIIM%DDBH:?3:djbjYdgrT9<,b]kevYulVnjxlQlotlw95*dWmceSzgkti?2<)eX`hyT{Qkauc\gjsi|4:'oRhzlm]ehdatW{yS{oc=1.`[lkwdlgnbyo{inl\p|vb5;&hSx}j_doaaabblVxnk0>#c^uq[ctby4;'oR{|e^flqqYu{}7: nQznegqbiipWee|1="l_icp[jpbzofd{0>#c^rqaiiflVfjxh`ly<2/gZbh}}U|eizg=24/gZktofdTzlb21-a\vaYcmy~c18?=,b]fvwiuW`dainzfoo]w}uc:8%iTdl}Puoffvcjh4:'oRfns^coijusWog`0?#c^jbwZtt|4;'oRjnt`]`kphsW~coxe3>0-a\lduX{Ujof3?,b]vw`Ybkj7; nQlololjZekgja65)eXlfS}{_wco95*dWakxSio{a^alqkr:8%iT|ah_gwohZrozlycSckhaug\rdj:99;= nQxr^fftqn:998? nQrne\ahvsqV~c~h}g_ogdeqcX~hf69!mPpsmd[`kw|pUdk|h^cpw`tsWkg19"l_icp[sgkam7; nQrne\bpjkW}byi~fParqfvqYqie7:<<9#cnoskkci|Vdjah3iigm\|ihW<;9t>8P2bnh[4>sg:<'oRxnlhf\hjq:8%iT|gb_gkekZr~xl7:gu?7,b]svjaXn|fgSywe<3/gZkbefxrSywe<3/y60oiblihog{espg?lhmmj~xndzjrs58mkrXkea37cilbtko`==h~lxm`byn;qplcZcjx}s:86~}of]fiur~W}byi~f'0(37?uthoVof|ywPtipfwm.6!8>0|ah_dosp|Ys`{oxd%<&159svjaXmdzuRzgrdqk,6/6<2zycjQjmqvz[qnumzb#8$?;;qplcZcjx}sTxe|jsi*6-42vugnUna}zv_ujqavn/0 ;=7}|`g^gntqX|axne27:1<2f>vugnUna}zv_ujqavnXizyn~y&?)0`8twi`Wlg{xtQ{hsgplZgt{lx$<'>b:rqkbYbey~rSyf}erj\evubz}"9%vugnUna}zv_ujqavnXizyn~y&7)0f8twi`Wlg{xtQ{hsgplZgt{lx054?>0`8twi`Wlg{xtQ{hsgplZhboh~n$='>b:rqkbYbey~rSyf}erj\j`af|l":%vugnUna}zv_ujqavnXflmjxh&8)0`8twi`Wlg{xtQ{hsgplZhboh~n$5'>d:rqkbYbey~rSyf}erj\j`af|l636=06;qplcZ`rde;87}|`g^dvhiYs`{oxd%>&129svjaXn|fgSyf}erj+5,743yxdkRhzlm]wlwct`!8"=>5rne\bpjkW}byi~f'3(30?uthoVl~`aQ{hsgpl-2.9:1{~biPftno[qnumzb#9$?<;qplcZ`rdeUdk|h)4*56=wzfmTjxbc_ujqavn/? ;87}|`g^dvhiYs`{oxd%6&129svjaXn|fgSyf}erj+=,723yxdkRhzlm]wlwct`531<3?n;qplcZ`rdeUdk|h^cpw`ts 9#:m6~}of]eqijX|axneQnsrgqp-7.9h1{~biPftno[qnumzbTm~}jru*1-4ga:rqkbYa}efTxe|jsi]bwvcu|!?"=l5rne\bpjkW}byi~fParqfvq.1!8k0|ah_gwohZrozlycSl}|esv+3,7f3yxdkRhzlm]wlwct`Vkxh|{(9+2e>vugnUmyabPtipfwmYf{zoyx%7&1b9svjaXn|fgSyf}erj\evubz}626=0>a:rqkbYa}efTxe|jsi]mabgsm!:"=l5rne\bpjkW}byi~fPndebp`.6!8k0|ah_gwohZrozlycSckhaug+6,7f3yxdkRhzlm]wlwct`Vdnklzj(2+2e>vugnUmyabPtipfwmYimnki%:&1`9svjaXn|fgSyf}erj\j`af|l">% ;j7}|`g^dvhiYs`{oxdR`jg`vf,2/6i2zycjQiumn\pmtb{aUeijo{e):*5d=wzfmTjxbc_ujqavnXflmjxh&6)0a8twi`Wog`Rzgrdqk[kc`i}o757>16:pg[fjl991yhRjnt`]`kphs 9#:<6|k_ecweZeh}g~#=$??;sf\`drfWje~by&=)028vaYci}kTob{at)1*55=ulVnjxlQlotlw,1/682xoSio{a^alqkr/= ;;7jPd`vb[firf}"=%<>4re]geqgXkfex%9&119q`Zbf|hUhcx`{(9+24>tcWmkmRm`uov?4;753{nThlzn_bmvjq:?294>7jPeo48vaYu{}90~~z8;r`jp`tu<2yyy:4tswf=>sillxm`by:;wcoma0<{Ujof84ws]`hn773~xThlzn_bmvjq.7!8:0{Qkauc\gjsi|!;"==5xr^fbpdYdg|d$?'>0:uq[agsiVidycz'3(33?rtXlh~jSnaznu*7-46<{UomyoPcnwmp-3.991|~Rjnt`]`kphs ?#:<6y}_ecweZeh}g~#;$??;vp\`drfWje~by&7)028swYci}kTob{at);*57=pzVnjxlQlotlw8<<76<1|~Rka6:uq[wusuIJ{oi64@Az2>C<328qX8k4:048;>455j?ih6>=:48ym0=2=92d?4849;%6;6?20k2wX8i4:048;>455j?ih6>=:489P57e==8:1<7?<2c4`g?54==30_9j550294?74:k:082g5}T<847:011f3ed2:9>845+467957b<^=286?uz12495>s6;>0;7p*>8182=>d2810;6>h53;1eM20;2P?970603`?>j7>5;n6;3?6=3f?8=7>5;h740?6=3f?;o7>5;n732?6=3`?=47>5;h755?6=3f>o57>5$0:1>1`d3g;3=7>4;n6go;7>5$0:1>1`d3g;3=7<4;n6g2?6=,82969hl;o3;5?5<3f>o97>5$0:1>1`d3g;3=7:4;n6g0?6=,82969hl;o3;5?3<3f>o>7>5$0:1>1`d3g;3=784;n6g5?6=,82969hl;o3;5?1<3f>o<7>5$0:1>1`d3g;3=764;n6`b?6=,82969hl;o3;5??<3f>hi7>5$0:1>1`d3g;3=7o4;n6``?6=,82969hl;o3;5?d<3f>ho7>5$0:1>1`d3g;3=7m4;n6`f?6=,82969hl;o3;5?b<3f>hm7>5$0:1>1`d3g;3=7k4;n6`=?6=,82969hl;o3;5?`<3f>h;7>5$0:1>1`d3g;3=7??;:m7g3<72-;3>7:ic:l2<4<6921d8n;50;&2<7<3nj1e=5?51398k1e3290/=5<54ga8j4>628907b:l3;29 4>52=lh7c?71;37?>i3k;0;6)?72;6eg>h6080:965`4b394?"60;0?jn5a193953=9:9l0a`=83.:4?4;fb9m5=7=9h10c9jj:18'5=4=:0`8?j2cl3:1(<6=:5d`?k7?93;h76a;db83>!7?:3>mo6`>8082`>=h8387bf=i91;1=h54o5fb>5<#91818km4n0:2>4`<3f>o?7>5$0:1>1`d3g;3=77:ic:l2<4<5921d8oj50;&2<7<3nj1e=5?52398k1dd290/=5<54ga8j4>62;907d:n0;29 4>52=h:7c?71;28?l2>n3:1(<6=:5`2?k7?93;07d:6e;29 4>52=h:7c?71;08?l2>l3:1(<6=:5`2?k7?93907d:6c;29 4>52=h:7c?71;68?l2>j3:1(<6=:5`2?k7?93?07d:6a;29 4>52=h:7c?71;48?l2>13:1(<6=:5`2?k7?93=07d:n8;29 4>52=h:7c?71;:8?l2f?3:1(<6=:5`2?k7?93307d:n6;29 4>52=h:7c?71;c8?l2f=3:1(<6=:5`2?k7?93h07d:n4;29 4>52=h:7c?71;a8?l2f;3:1(<6=:5`2?k7?93n07d:n2;29 4>52=h:7c?71;g8?l2f93:1(<6=:5`2?k7?93l07d:68;29 4>52=h:7c?71;33?>o31>0;6)?72;6a5>h6080:=65f54194?=e<>>1<7?50;2xL1143-;2=7:84:m23c<722wih54?:083>5}O<>90(<7>:e:8ka1=831vn9:50;c5>4>328i;wE:83:X71?71s;31>54=a;f9e?d=k3;36ao4=9;32>f62910e8<;:18'5=4==;<0b<6>:098m044290/=5<55348j4>62;10e8<=:18'5=4==;<0b<6>:298m046290/=5<55348j4>62=10e8:498m07a290/=5<55348j4>62?10e8?j:18'5=4==;<0b<6>:698m07c290/=5<55348j4>62110e8>j:188m0072900e88<:188k0012900e8?m:18'5=4==8i0b<6>:198m07f290/=5<550a8j4>62810e8?6:18'5=4==8i0b<6>:398m07?290/=5<550a8j4>62:10e8?8:18'5=4==8i0b<6>:598m071290/=5<550a8j4>62<10e8?::18'5=4==8i0b<6>:798m073290/=5<550a8j4>62>10e8?<:18'5=4==8i0b<6>:998m03a2900c8?>:188m04a290/=5<55228j4>62910e8:098m04c290/=5<55228j4>62;10e8:298m04e290/=5<55228j4>62=10e8:498m04>290/=5<55228j4>62?10e8<7:18'5=4==::0b<6>:698m040290/=5<55228j4>62110c968:188k1?3290/=5<54878j4>62910c97<:18'5=4=<0?0b<6>:098k1?5290/=5<54878j4>62;10c97>:18'5=4=<0?0b<6>:298k1?7290/=5<54878j4>62=10c96i:18'5=4=<0?0b<6>:498k1>b290/=5<54878j4>62?10c96k:18'5=4=<0?0b<6>:698k1>d290/=5<54878j4>62110c96m:18'5=4=<0?0b<6>:898k0562900e89;:188m05e290/=5<552a8j4>62910e8=n:18'5=4==:i0b<6>:098m05>290/=5<552a8j4>62;10e8=7:18'5=4==:i0b<6>:298m050290/=5<552a8j4>62=10e8=9:18'5=4==:i0b<6>:498m052290/=5<552a8j4>62?10e8=;:18'5=4==:i0b<6>:698m054290/=5<552a8j4>62110e8==:18'5=4==:i0b<6>:898k06d2900c8>9:188m00?2900e966:188m021290/=5<55558j4>62910e8:::18'5=4====0b<6>:098m023290/=5<55558j4>62;10e8:<:18'5=4====0b<6>:298m025290/=5<55558j4>62=10e8:>:18'5=4====0b<6>:498m027290/=5<55558j4>62?10e8=i:18'5=4====0b<6>:698m05b290/=5<55558j4>62110e8=k:18'5=4====0b<6>:898m036290/=5<55408j4>62910e8;?:18'5=4==<80b<6>:098m02a290/=5<55408j4>62;10e8:j:18'5=4==<80b<6>:298m02c290/=5<55408j4>62=10e8:l:18'5=4==<80b<6>:498m02e290/=5<55408j4>62?10e8:n:18'5=4==<80b<6>:698m02>290/=5<55408j4>62110e8:7:18'5=4==<80b<6>:898k1>12900e8>i:188m1>f2900e89::188k0052900c888:188m0062900c9j6:18'5=4=:198k1b?290/=5<54ga8j4>62810c9j8:18'5=4=:398k1b1290/=5<54ga8j4>62:10c9j::18'5=4=:598k1b3290/=5<54ga8j4>62<10c9j=:18'5=4=:798k1b6290/=5<54ga8j4>62>10c9j?:18'5=4=:998k1ea290/=5<54ga8j4>62010c9mj:18'5=4=:`98k1ec290/=5<54ga8j4>62k10c9ml:18'5=4=:b98k1ee290/=5<54ga8j4>62m10c9mn:18'5=4=:d98k1e>290/=5<54ga8j4>62o10c9m8:18'5=4=:028?j2d>3:1(<6=:5d`?k7?93;:76a;c483>!7?:3>mo6`>80826>=h1<7*>8387bf=i91;1=>54o5a0>5<#91818km4n0:2>42<3f>h>7>5$0:1>1`d3g;3=7?:;:m7g4<72-;3>7:ic:l2<4<6>21d8n>50;&2<7<3nj1e=5?51698k1da290/=5<54ga8j4>628207b:me;29 4>52=lh7c?71;3:?>i3lo0;6)?72;6eg>h6080:m65`4eg94?"60;0?jn5a19395g=e:9l0ag=83.:4?4;fb9m5=7=9o10c9j<:18'5=4=:328?j2d03:1(<6=:5d`?k7?938:76a;be83>!7?:3>mo6`>80816>=h8387bf=i91;1>>54i5c3>5<#91818o?4n0:2>5=5<#91818o?4n0:2>7=54i5;`>5<#91818o?4n0:2>1=5<#91818o?4n0:2>3=5<#91818o?4n0:2>==5<#91818o?4n0:2>d=6=4+19090g75<#91818o?4n0:2>f=5<#91818o?4n0:2>`=5<#91818o?4n0:2>46<3`>2;7>5$0:1>1d63g;3=7?>;:k7<=<722e>9n4?:%3;6?32m2d:4<4?;:m61g<72-;3>7;:e:l2<4<632e>9l4?:%3;6?32m2d:4<4=;:m61<<72-;3>7;:e:l2<4<432e>954?:%3;6?32m2d:4<4;;:m612<72-;3>7;:e:l2<4<232e>9;4?:%3;6?32m2d:4<49;:m610<72-;3>7;:e:l2<4<032e>994?:%3;6?32m2d:4<47;:m637<72-;3>7;83:l2<4<732e>;<4?:%3;6?30;2d:4<4>;:m635<72-;3>7;83:l2<4<532e>:k4?:%3;6?30;2d:4<4<;:m62`<72-;3>7;83:l2<4<332e>:i4?:%3;6?30;2d:4<4:;:m62f<72-;3>7;83:l2<4<132e>:o4?:%3;6?30;2d:4<48;:m62d<72-;3>7;83:l2<4:44?:%3;6?30;2d:4<46;:m657<722c>9>4?::m620<722h?;k4?:083>5}#90;1h55G46g8L1143fn<6=44}c6;4?6=93:1908731=O<>o0D99<;n34b?6=3th9m?4?:583>5}#90;1h>5G46g8L1143-o=6:5f4783>>o283:17d?73;29?j7?<3:17pl;6183>6<729q/=4?5d19K02c<@==87E:<;%300?31<2.n:7<4i5494?=n=90;66a>8583>>{eN3;2.:?94:659'a3<53`>=6=44i4294?=h91>1<75rb57e>5<4290;w)?61;f3?M20m2B?;>5G429'562==?>0(h852:k72?6=3`?;6=44o0:7>5<=57>55;294~"6180o86F;7d9K025<@=90(<=;:447?l212900e9950;9j15<722c:4>4?::m2<1<722wi8;o50;194?6|,83:6i>4H55f?M20;2B??6*>358621=#m?097d:9:188m06=831d=5:50;9~f13b290>6=4?{%3:5?b33A>19;:4i5494?=n<>0;66g:0;29?l7?;3:17b?74;29?xd3>10;694?:1y'5<7=l:1C8:k4H550?!c12>1b8;4?::k64?6=3`;3?7>5;n3;0?6=3th?::4?:583>5}#90;1h>5G46g8L1143-o=6:5f4783>>o283:17d?73;29?j7?<3:17pl;6783>1<729q/=4?5d29K02c<@==87)k9:69j03<722c><7>5;h3;7?6=3f;387>5;|`734<72=0;6=u+1839`6=O<>o0D99<;%g5>2=n1b8;4?::k64?6=3`;3?7>5;n3;0?6=3th9=;4?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo<>5;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb337>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a645=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd59;0;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn???:187>5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm21d94?2=83:p(<7>:e38L11b3A>5;|`14`<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi=o<50;694?6|,83:6i?4H55f?M20;2.n:7<4i5494?=nb083>1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f4ga290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e9ho1<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th:mi4?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo?nc;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb341>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a637=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd5>90;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<j7>54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn?;j:187>5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm24f94?2=83:p(<7>:e38L11b3A>5;|`11f<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi=km50;694?6|,83:6i?4H55f?M20;2.n:7<4i5494?=nfc83>1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f4`>290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e9o21<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th:j:4?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo?i6;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb0d6>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a5c2=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd5=90;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd5>o283:17b?74;29?xd5>o283:17b?74;29?xd5>o283:17b?74;29?xd5>o283:17b?74;29?xd5>o283:17b?74;29?xd5>o283:17b?74;29?xd5<00;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd5<10;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd5<>0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6mh0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m00;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m10;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m>0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m?0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m<0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m=0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m:0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6m;0;694?:1y'5<7=l81C8:k4H550?M243-;887;94:&f2?4>o283:17b?74;29?xd6l10;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm1e794?2=83:p(<7>:e38L11b3A>5;|`2`1<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi=i?50;694?6|,83:6i?4H55f?M20;2.n:7<4i5494?=nd183>1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f75e290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e::k1<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th9?44?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo<<8;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb314>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a660=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd5;<0;694?:1y'5<7=l81C8:k4H550?!c12;1b8;4?::k7g?6=3`?;6=44o0:7>5<54;294~"6180o=6F;7d9K025<,l<1>6g;6;29?l2d2900e8>50;9l5=2=831vn?=<:187>5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm2e;94?3=83:p(<7>:e08L11b3A>5<55;294~"6180o>6F;7d9K025<,l<1>6g;6;29?l202900e9m50;9j15<722e:494?::a6a1=83?1<7>t$0;2>a4<@==n7E:83:&f2?4>o3k3:17d;?:188k4>32900qo90(h852:k72?6=3`><6=44i5a94?=n=90;66a>8583>>{e:m?1<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi>i<50;794?6|,83:6i<4H55f?M20;2.n:7<4i5494?=n<>0;66g;c;29?l372900c<6;:188yg4c93:197>50z&2=45;h64>5<1<75rb3f0>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th9o;4?:283>5}#90;18:j4H55f?M20;2c?57>5;h31e?6=3f;5;|`1g0<72:0;6=u+183902b<@==n7E:83:k7=?6=3`;9m7>5;n34`?6=3th9nn4?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<53;294~"6180?;i5G46g8L1143`>26=44i00b>5<908270=O<>o0D99<;h6:>5<n1<75rb3a0>5<4290;w)?61;64`>N3?l1C8:=4i5;94?=n9;k1<75`16f94?=zj;h36=4;:183!7>93;896F;7d9K025>o60h0;66a>7e83>>{e:j81<7=50;2x 4?62==o7E:8e:J736=n<00;66g>2`83>>i6?m0;66sm2c494?2=83:p(<7>:016?M20m2B?;>5f4883>>o2:3:17d?7a;29?j70l3:17pl=c083>6<729q/=4?546f8L11b3A>o313:17d;=:188m4>f2900c<9k:188yg4d83:1?7>50z&2=4<3?m1C8:k4H550?l2>2900e<349K02c<@==87d:6:188m04=831b=5o50;9l52b=831vn?li:180>5<7s-;2=7:8d:J73`=O<>90e9750;9j57g=831d=:j50;9~f7d7290?6=4?{%3:5?74=2B?;h5G4618m1?=831b9?4?::k2t$0;2>11c3A>l4?::m23a<722wi>lk50;694?6|,83:6<=:;I64a>N3?:1b844?::k66?6=3`;3m7>5;n34`?6=3th9io4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f7cf290>6=4?{%3:5?b53A>=6=44i5594?=n0<729q/=4?5d39K02c<@==87)k9:39j03<722c?;7>5;h6`>5<93n97E:8e:J736=#m?097d:9:188m11=831b8n4?::k64?6=3f;387>5;|`1a2<72<0;6=u+1839`7=O<>o0D99<;%g5>7=n50;9l5=2=831vn?k9:186>5<7s-;2=7j=;I64a>N3?:1/i;4=;h65>5<>o283:17b?74;29?xd5m<0;684?:1y'5<7=l;1C8:k4H550?!c12;1b8;4?::k73?6=3`>h6=44i4294?=h91>1<75rb3g7>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th9i>4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f711290?6=4?{%3:5?b43A>=6=44i4294?=n9191<75`19694?=zj;=<6=4;:183!7>93n87E:8e:J736=#m?0<7d:9:188m06=831b=5=50;9l5=2=831vn?9>:187>5<7s-;2=7j>;I64a>N3?:1/i;4=;h65>5<>i60=0;66sm26294?2=83:p(<7>:e38L11b3A>5;|`047<72:0;6=u+183902b<@==n7E:83:k7=?6=3`;9m7>5;n34`?6=3th85}#90;18:j4H55f?M20;2c?57>5;h31e?6=3f;5;|`1b3<72=0;6=u+1839563<@==n7E:83:k7=?6=3`?96=44i0:b>5<90873a=O<>o0D99<;h6:>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj::26=4<:183!7>93>n1<75rb3d7>5<3290;w)?61;301>N3?l1C8:=4i5;94?=n=;0;66g>8`83>>i6?m0;66sm31:94?5=83:p(<7>:55g?M20m2B?;>5f4883>>o6:h0;66a>7e83>>{e:o91<7:50;2x 4?6289>7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd48>0;6>4?:1y'5<7=<>n0D99j;I647>o313:17d?=a;29?j70l3:17pl=f383>1<729q/=4?51278L11b3A>50z&2=4<6;<1C8:k4H550?l2>2900e8<50;9j5=g=831d=:j50;9~f66229086=4?{%3:5?20l2B?;h5G4618m1?=831b=?o50;9l52b=831vn?h?:187>5<7s-;2=7?<5:J73`=O<>90e9750;9j17<722c:4l4?::m23a<722wi?=:50;194?6|,83:699k;I64a>N3?:1b844?::k26d<722e:;i4?::a6``=83>1<7>t$0;2>4523A>>7>5;h3;e?6=3f;5;|`046<72:0;6=u+183902b<@==n7E:83:k7=?6=3`;9m7>5;n34`?6=3th9ih4?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj:;<6=4;:183!7>93n:7E:8e:J736=#m?097d:9:188m1e=831b9=4?::m2<1<722wi?1<729q/=4?5d09K02c<@==87)k9:39j03<722c?o7>5;h73>5<908g5>N3?l1C8:=4$d496>o3>3:17d:l:188m06=831d=5:50;9~f67d290?6=4?{%3:5?b63A>=6=44i5a94?=n=90;66a>8583>>{e;8h1<7:50;2x 4?62m;0D99j;I647>"b>380e9850;9j0f<722c><7>5;n3;0?6=3th8=l4?:583>5}#90;1h<5G46g8L1143-o=6?5f4783>>o3k3:17d;?:188k4>32900qo=>9;290?6=8r.:5<4k1:J73`=O<>90(h852:k72?6=3`>h6=44i4294?=h91>1<75rb23;>5<3290;w)?61;f2?M20m2B?;>5+e781?l212900e9m50;9j15<722e:494?::a740=83>1<7>t$0;2>a7<@==n7E:83:&f2?4>o283:17b?74;29?xd4:h0;684?:1y'5<7=l;1C8:k4H550?!c12;1b8;4?::k73?6=3`>h6=44i4294?=h91>1<75rb3;6>5<3290;w)?61;301>N3?l1C8:=4i5;94?=n=;0;66g>8`83>>i6?m0;66sm28694?2=83:p(<7>:016?M20m2B?;>5f4883>>o2:3:17d?7a;29?j70l3:17pl=9283>1<729q/=4?51278L11b3A>349K02c<@==87d:6:188m04=831b=5o50;9l52b=831vn?7>:187>5<7s-;2=7?<5:J73`=O<>90e9750;9j17<722c:4l4?::m23a<722wi>5<50;694?6|,83:6<=:;I64a>N3?:1b844?::k66?6=3`;3m7>5;n34`?6=3th94<4?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj;=m6=4;:183!7>93;896F;7d9K025>o60h0;66a>7e83>>{e:>o1<7:50;2x 4?6289>7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd4jm0;684?:1y'5<7=l;1C8:k4H550?!c12;1b8;4?::k73?6=3`>h6=44i4294?=h91>1<75rb2`a>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th8nn4?:483>5}#90;1h95G46g8L1143-o=6:5f4783>>o3?3:17d;?:188m4>42900c<6;:188yg5em3:197>50z&2=45;h64>5<>i60=0;66sm3cd94?3=83:p(<7>:e08L11b3A>5<7>55;294~"6180o>6F;7d9K025<,l<1>6g;6;29?l202900e9m50;9j15<722e:494?::a7f6=83?1<7>t$0;2>a4<@==n7E:83:&f2?4>o3k3:17d;?:188k4>32900qo=l1;291?6=8r.:5<4k2:J73`=O<>90(h852:k72?6=3`><6=44i5a94?=n=90;66a>8583>>{e;j91<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi?i?50;794?6|,83:6i<4H55f?M20;2.n:7<4i5494?=n<>0;66g;c;29?l372900c<6;:188yg5dn3:197>50z&2=45;h64>5<1<75rb2f3>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th8h?4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f6b4290>6=4?{%3:5?b53A>=6=44i5594?=n0<729q/=4?5d39K02c<@==87)k9:39j03<722c?;7>5;h6`>5<93n97E:8e:J736=#m?097d:9:188m11=831b8n4?::k64?6=3f;387>5;|`0`0<72<0;6=u+1839`7=O<>o0D99<;%g5>7=n50;9l5=2=831vn>j8:186>5<7s-;2=7j=;I64a>N3?:1/i;4=;h65>5<>o283:17b?74;29?xd4l10;684?:1y'5<7=l;1C8:k4H550?!c12;1b8;4?::k73?6=3`>h6=44i4294?=h91>1<75rb2ce>5<2290;w)?61;f1?M20m2B?;>5+e781?l212900e9950;9j0f<722c><7>5;n3;0?6=3th8mh4?:483>5}#90;1h?5G46g8L1143-o=6?5f4783>>o3?3:17d:l:188m06=831d=5:50;9~f6d7290>6=4?{%3:5?b53A>=6=44i5594?=n0<729q/=4?5d39K02c<@==87)k9:39j03<722c?;7>5;h6`>5<93n97E:8e:J736=#m?097d:9:188m11=831b8n4?::k64?6=3f;387>5;|`0ea<72<0;6=u+1839`7=O<>o0D99<;%g5>7=n50;9l5=2=831vn>o6:186>5<7s-;2=7j=;I64a>N3?:1/i;4=;h65>5<>o283:17b?74;29?xd4i10;684?:1y'5<7=l=1C8:k4H550?!c12>1b8;4?::k73?6=3`?;6=44i0:0>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi?l950;794?6|,83:6i:4H55f?M20;2.n:794i5494?=n<>0;66g:0;29?l7?;3:17b?74;29?xd41k0;6>4?:1y'5<7=<>n0D99j;I647>o313:17d?=a;29?j70l3:17pl<9`83>6<729q/=4?546f8L11b3A>o313:17d;=:188m4>f2900c<9k:188yg5>13:1?7>50z&2=4<3?m1C8:k4H550?l2>2900e<349K02c<@==87d:6:188m04=831b=5o50;9l52b=831vn>77:180>5<7s-;2=7:8d:J73`=O<>90e9750;9j57g=831d=:j50;9~f6>d290?6=4?{%3:5?74=2B?;h5G4618m1?=831b9?4?::k2t$0;2>11c3A>l4?::m23a<722wi?5o50;694?6|,83:6<=:;I64a>N3?:1b844?::k66?6=3`;3m7>5;n34`?6=3th85;4?:283>5}#90;18:j4H55f?M20;2c?57>5;h31e?6=3f;5;|`0<=<72=0;6=u+1839563<@==n7E:83:k7=?6=3`?96=44i0:b>5<90873a=O<>o0D99<;h6:>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj:3?6=4<:183!7>93>n1<75rb2:7>5<3290;w)?61;301>N3?l1C8:=4i5;94?=n=;0;66g>8`83>>i6?m0;66sm38194?5=83:p(<7>:55g?M20m2B?;>5f4883>>o6:h0;66a>7e83>>{e;181<7:50;2x 4?6289>7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd41;0;6>4?:1y'5<7=<>n0D99j;I647>o313:17d?=a;29?j70l3:17pl<8183>1<729q/=4?51278L11b3A>90(h852:k72?6=3`><6=44i5a94?=n=90;66a>8583>>{e;lh1<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908g6>N3?l1C8:=4$d496>o3>3:17d:8:188m1e=831b9=4?::m2<1<722wi?h750;794?6|,83:6i<4H55f?M20;2.n:7<4i5494?=n<>0;66g;c;29?l372900c<6;:188yg5b03:197>50z&2=45;h64>5<>i60=0;66sm3d594?3=83:p(<7>:e08L11b3A>5<55;294~"6180o>6F;7d9K025<,l<1>6g;6;29?l202900e9m50;9j15<722e:494?::a7`3=83?1<7>t$0;2>a4<@==n7E:83:&f2?4>o3k3:17d;?:188k4>32900qo=j4;291?6=8r.:5<4k2:J73`=O<>90(h852:k72?6=3`><6=44i5a94?=n=90;66a>8583>>{e;l91<7;50;2x 4?62m80D99j;I647>"b>380e9850;9j02<722c?o7>5;h73>5<908270=O<>o0D99<;h6:>5<n1<75rb216>5<3290;w)?61;301>N3?l1C8:=4i5;94?=n=;0;66g>8`83>>i6?m0;66sm32494?2=83:p(<7>:016?M20m2B?;>5f4883>>o2:3:17d?7a;29?j70l3:17pl<3683>1<729q/=4?51278L11b3A>349K02c<@==87d:6:188m04=831b=5o50;9l52b=831vn>:8:187>5<7s-;2=7?<5:J73`=O<>90e9750;9j17<722c:4l4?::m23a<722wi?9650;694?6|,83:6<=:;I64a>N3?:1b844?::k66?6=3`;3m7>5;n34`?6=3th8844?:583>5}#90;1=>;4H55f?M20;2c?57>5;h71>5<5<54;294~"6180:?85G46g8L1143`>26=44i4094?=n91k1<75`16f94?=zj:>i6=4;:183!7>93;896F;7d9K025>o60h0;66a>7e83>>{e;7E:8e:J736=n<00;66g:2;29?l7?i3:17b?8d;29?xd4=l0;694?:1y'5<7=9:?0D99j;I647>o313:17d;=:188m4>f2900c<9k:188yg52n3:187>50z&2=4<6;<1C8:k4H550?l2>2900e8<50;9j5=g=831d=:j50;9~f607290?6=4?{%3:5?74=2B?;h5G4618m1?=831b9?4?::k21<7>t$0;2>4523A>>7>5;h3;e?6=3f;5;|`035<72=0;6=u+1839`4=O<>o0D99<;%g5>7=n50z&2=45;h6`>5<93n97E:8e:J736=#m?097d:9:188m11=831b8n4?::k64?6=3f;387>5;|`76c<72<0;6=u+1839`0=O<>o0D99<;%g5>7=n32900qo:=e;291?6=8r.:5<4k5:J73`=O<>90(h852:k72?6=3`><6=44i4294?=n91?1<75`19694?=zj=8o6=4::183!7>93n>7E:8e:J736=#m?097d:9:188m11=831b9=4?::k2<0<722e:494?::a07e=83?1<7>t$0;2>a3<@==n7E:83:&f2?4>o283:17d?75;29?j7?<3:17pl;2c83>0<729q/=4?5d49K02c<@==87)k9:39j03<722c?;7>5;h73>5<6=44o0:7>5<9m7>55;294~"6180o96F;7d9K025<,l<1>6g;6;29?l202900e8>50;9j5=3=831d=5:50;9~f14?290>6=4?{%3:5?b23A>=6=44i5594?=n=90;66g>8483>>i60=0;66sm43594?3=83:p(<7>:e78L11b3A>5;n3;0?6=3th?>;4?:483>5}#90;1h85G46g8L1143-o=6?5f4783>>o3?3:17d;?:188m4>22900c<6;:188yg25=3:197>50z&2=45;h64>5<1<75rb507>5<2290;w)?61;f6?M20m2B?;>5+e781?l212900e9950;9j15<722c:484?::m2<1<722wi8?=50;794?6|,83:6i;4H55f?M20;2.n:7<4i5494?=n<>0;66g:0;29?l7?=3:17b?74;29?xd3:;0;684?:1y'5<7=l<1C8:k4H550?!c12;1b8;4?::k73?6=3`?;6=44i0:6>5<908g1>N3?l1C8:=4$d496>o3>3:17d:8:188m06=831b=5;50;9l5=2=831vn95<7s-;2=7j:;I64a>N3?:1/i;4=;h65>5<>o60<0;66a>8583>>{e<8l1<7;50;2x 4?62m?0D99j;I647>"b>380e9850;9j02<722c><7>5;h3;1?6=3f;387>5;|`75a<72<0;6=u+1839`0=O<>o0D99<;%g5>7=n32900qo:>c;291?6=8r.:5<4k5:J73`=O<>90(h852:k72?6=3`><6=44i4294?=n91?1<75`19694?=zj=;i6=4::183!7>93n>7E:8e:J736=#m?097d:9:188m11=831b9=4?::k2<0<722e:494?::a04g=83?1<7>t$0;2>a3<@==n7E:83:&f2?4>o283:17d?75;29?j7?<3:17pl;1883>0<729q/=4?5d49K02c<@==87)k9:39j03<722c?;7>5;h73>5<6=44o0:7>5<:47>55;294~"6180o96F;7d9K025<,l<1>6g;6;29?l202900e8>50;9j5=3=831d=5:50;9~f170290>6=4?{%3:5?b23A>=6=44i5594?=n=90;66g>8483>>i60=0;66sm40494?3=83:p(<7>:e78L11b3A>5;n3;0?6=3th?=84?:483>5}#90;1h85G46g8L1143-o=6?5f4783>>o3?3:17d;?:188m4>22900c<6;:188yg26<3:197>50z&2=45;h64>5<1<75rb516>5<2290;w)?61;f6?M20m2B?;>5+e781?l212900e9950;9j15<722c:484?::m2<1<722wi8>:50;794?6|,83:6i;4H55f?M20;2.n:7<4i5494?=n<>0;66g:0;29?l7?=3:17b?74;29?xd3;:0;684?:1y'5<7=l<1C8:k4H550?!c12;1b8;4?::k73?6=3`?;6=44i0:6>5<908g1>N3?l1C8:=4$d496>o3>3:17d:8:188m06=831b=5;50;9l5=2=831vn9=>:186>5<7s-;2=7j:;I64a>N3?:1/i;4=;h65>5<>o60<0;66a>8583>>{e<::1<7;50;2x 4?62m?0D99j;I647>"b>380e9850;9j02<722c><7>5;h3;1?6=3f;387>5;|`76<<72<0;6=u+1839`0=O<>o0D99<;%g5>7=n32900qo:>e;291?6=8r.:5<4k5:J73`=O<>90(h852:k72?6=3`><6=44i4294?=n91?1<75`19694?=zj=;86=4::183!7>93n>7E:8e:J736=#m?097d:9:188m11=831b9=4?::k2<0<722e:494?::a044=83?1<7>t$0;2>a3<@==n7E:83:&f2?4>o283:17d?75;29?j7?<3:17pl;6e83>6<729q/=4?513d8L11b3A>5<7s-;2=7?=f:J73`=O<>90(h851`9j`d<722con7>5;n34`?6=3th9=54?:283>5}#90;1=?h4H55f?M20;2.n:7?j;hfb>5<93;9j6F;7d9K025<,l<1=h5fd`83>>ocj3:17b?8d;29?xd6i;0;6>4?:1y'5<7=9;l0D99j;I647>"b>3;n7djn:188mad=831d=:j50;9~f4g629086=4?{%3:5?75n2B?;h5G4618 `0=9l1bhl4?::kgf?6=3f;5;|`2e5<72:0;6=u+183957`<@==n7E:83:&f2?7b3`nj6=44ie`94?=h9>n1<75rb0;e>5<4290;w)?61;31b>N3?l1C8:=4$d495`=nlh0;66gkb;29?j70l3:17pl>9d83>6<729q/=4?513d8L11b3A>5<7s-;2=7?=f:J73`=O<>90(h851d9j`d<722con7>5;n34`?6=3th:5n4?:283>5}#90;1=?h4H55f?M20;2.n:7?j;hfb>5<93;9j6F;7d9K025<,l<1=h5fd`83>>ocj3:17b?8d;29?xd61h0;6>4?:1y'5<7=9;l0D99j;I647>"b>3;n7djn:188mad=831d=:j50;9~f4?>29086=4?{%3:5?75n2B?;h5G4618 `0=9l1bhl4?::kgf?6=3f;5;|`2==<72:0;6=u+183957`<@==n7E:83:&f2?7b3`nj6=44ie`94?=h9>n1<75rb0;4>5<4290;w)?61;31b>N3?l1C8:=4$d495`=nlh0;66gkb;29?j70l3:17pl>9783>6<729q/=4?513d8L11b3A>5<7s-;2=7?=f:J73`=O<>90(h851d9j`d<722con7>5;n34`?6=3th:594?:283>5}#90;1=?h4H55f?M20;2.n:7?j;hfb>5<93;9j6F;7d9K025<,l<1=h5fd`83>>ocj3:17b?8d;29?xd61;0;6>4?:1y'5<7=9;l0D99j;I647>"b>3;n7djn:188mad=831d=:j50;9~f712290?6=4?{%3:5?7482B?;h5G4618 `0=km1bhl4?::kgf?6=3`nh6=44o05g>5<54;294~"6180:?=5G46g8L1143-o=6?;4iec94?=nlk0;66gkc;29?j70l3:17pl>b983>1<729q/=4?51228L11b3A>t$0;2>4563A>5;hfa>5<>i6?m0;66sm20a94?3=83:p(<7>:012?M20m2B?;>5+e7814>oci3:17djm:188mae=831bhi4?::m23a<722wi=oo50;794?6|,83:6<=>;I64a>N3?:1/i;4=0:kge?6=3`ni6=44iea94?=nlm0;66a>7e83>>{e:>31<7;50;2x 4?6289:7E:8e:J736=#m?09>6gka;29?lbe2900eim50;9j`a<722e:;i4?::a63b=83>1<7>t$0;2>4573A>5;hfa>5<93;9j6F;7d9K025<,l<1=h5fd`83>>ocj3:17b?8d;29?xd6jj0;6>4?:1y'5<7=9;l0D99j;I647>"b>3;n7djn:188mad=831d=:j50;9~f747290?6=4?{%3:5?7482B?;h5G4618 `0=:<1bhl4?::kgf?6=3`nh6=44o05g>5<54;294~"6180:?=5G46g8L1143-o=6?;4iec94?=nlk0;66gkc;29?j70l3:17pl=2383>0<729q/=4?51238L11b3A>5;n34`?6=3th:o=4?:483>5}#90;1=>?4H55f?M20;2.n:75<>ocl3:17b?8d;29?xd3=j0;694?:1y'5<7=9::0D99j;I647>"b>3?:7djn:188mad=831bhn4?::m23a<722wi>;m50;794?6|,83:6<=>;I64a>N3?:1/i;4>3:kge?6=3`ni6=44iea94?=nlm0;66a>7e83>>{e:0l1<7=50;2x 4?6288m7E:8e:J736=#m?09?6gka;29?lbe2900c<9k:188yg4?k3:1?7>50z&2=4<6:o1C8:k4H550?!c12;90eio50;9j`g<722e:;i4?::a73d=83?1<7>t$0;2>4563A>5;hfa>5<>i6?m0;66sm34794?3=83:p(<7>:012?M20m2B?;>5+e7810>oci3:17djm:188mae=831bhi4?::m23a<722wi?9<50;794?6|,83:6<=>;I64a>N3?:1/i;4=4:kge?6=3`ni6=44iea94?=nlm0;66a>7e83>>{e;?k1<7;50;2x 4?6289:7E:8e:J736=#m?0986gka;29?lbe2900eim50;9j`a<722e:;i4?::a702=83?1<7>t$0;2>4563A>5;hfa>5<>i6?m0;66sm35394?3=83:p(<7>:012?M20m2B?;>5+e7810>oci3:17djm:188mae=831bhi4?::m23a<722wi>4k50;794?6|,83:6<=>;I64a>N3?:1/i;4=4:kge?6=3`ni6=44iea94?=nlm0;66a>7e83>>{e:1h1<7;50;2x 4?6289:7E:8e:J736=#m?0986gka;29?lbe2900eim50;9j`a<722e:;i4?::a73?=83?1<7>t$0;2>4563A>5;hfa>5<>i6?m0;66sm34194?3=83:p(<7>:012?M20m2B?;>5+e7810>oci3:17djm:188mae=831bhi4?::m23a<722wi?9>50;794?6|,83:6<=>;I64a>N3?:1/i;4=4:kge?6=3`ni6=44iea94?=nlm0;66a>7e83>>{e:0n1<7;50;2x 4?6289:7E:8e:J736=#m?0986gka;29?lbe2900eim50;9j`a<722e:;i4?::a6=g=83?1<7>t$0;2>4563A>5;hfa>5<>i6?m0;66sm37:94?3=83:p(<7>:012?M20m2B?;>5+e7810>oci3:17djm:188mae=831bhi4?::m23a<722wi?8<50;794?6|,83:6<=>;I64a>N3?:1/i;4=4:kge?6=3`ni6=44iea94?=nlm0;66a>7e83>>{e;:l1<7;50;2x 4?6289:7E:8e:J736=#m?0986gka;29?lbe2900eim50;9j`a<722e:;i4?::a6t$0;2>4563A>5;hfa>5<>i6?m0;66sm29;94?3=83:p(<7>:012?M20m2B?;>5+e7810>oci3:17djm:188mae=831bhi4?::m23a<722wi?:=50;694?6|,83:6<=?;I64a>N3?:1/i;4le:kge?6=3`ni6=44iea94?=h9>n1<75rb24f>5<3290;w)?61;304>N3?l1C8:=4$d49g`=nlh0;66gkb;29?lbd2900c<9k:188yg4f<3:187>50z&2=4<6;91C8:k4H550?!c12jo0eio50;9j`g<722coo7>5;n34`?6=3th8::4?:583>5}#90;1=>>4H55f?M20;2.n:784iec94?=nlk0;66gkc;29?j70l3:17pl<5083>1<729q/=4?51228L11b3A>5;|`07`<72=0;6=u+1839566<@==n7E:83:&f2?0>ock3:17b?8d;29?xd51k0;684?:1y'5<7=9:;0D99j;I647>"b>38?7djn:188mad=831bhn4?::kg`?6=3f;5;|`1<=<72<0;6=u+1839567<@==n7E:83:&f2?433`nj6=44ie`94?=nlj0;66gkd;29?j70l3:17pl=2483>6<729q/=4?513d8L11b3A>5<7s-;2=7?=f:J73`=O<>90(h85229j`d<722con7>5;n34`?6=3th9>54?:583>5}#90;1=>>4H55f?M20;2.n:7?i;hfb>5<>i6?m0;66sm1b494?2=83:p(<7>:013?M20m2B?;>5+e782b>oci3:17djm:188mae=831d=:j50;9~f61329086=4?{%3:5?75n2B?;h5G4618 `0=9;1bhl4?::kgf?6=3f;5;|`1fa<72;0;6=u+183957c<@==n7E:83:&f2?753`nj6=44o05g>5<52;294~"6180:>h5G46g8L1143-o=6<<4iec94?=h9>n1<75rb3`:>5<5290;w)?61;31a>N3?l1C8:=4$d4957=nlh0;66a>7e83>>{e:k=1<7<50;2x 4?6288n7E:8e:J736=#m?0:>6gka;29?j70l3:17pl=b483>7<729q/=4?513g8L11b3A>7>50z&2=4<6:l1C8:k4H550?!c12880eio50;9l52b=831vn?l>:181>5<7s-;2=7?=e:J73`=O<>90(h85139j`d<722e:;i4?::a6d`=8381<7>t$0;2>44b3A>5;n34`?6=3th85<4?:383>5}#90;1=?k4H55f?M20;2.n:7?=;hfb>5<90826`=O<>o0D99<;%g5>4493;9i6F;7d9K025<,l<1=?5fd`83>>i6?m0;66sm39`94?4=83:p(<7>:00f?M20m2B?;>5+e7826>oci3:17b?8d;29?xd4000;6?4?:1y'5<7=9;o0D99j;I647>"b>3;97djn:188k41c2900qo=77;296?6=8r.:5<4>2d9K02c<@==87)k9:008mag=831d=:j50;9~f6>229096=4?{%3:5?75m2B?;h5G4618 `0=9;1bhl4?::m23a<722wi?5=50;094?6|,83:6<N3?:1/i;4>2:kge?6=3f;5;|`0<4<72;0;6=u+183957c<@==n7E:83:&f2?753`nj6=44o05g>5<52;294~"6180:>h5G46g8L1143-o=6<<4iec94?=h9>n1<75rb2;`>5<5290;w)?61;31a>N3?l1C8:=4$d4957=nlh0;66a>7e83>>{e:ok1<7=50;2x 4?6288m7E:8e:J736=#m?09?6gka;29?lbe2900c<9k:188yg4aj3:1?7>50z&2=4<6:o1C8:k4H550?!c12;90eio50;9j`g<722e:;i4?::a6ce=8391<7>t$0;2>44a3A>5;hfa>5<90826c=O<>o0D99<;%g5>75>i6?m0;66sm2gg94?5=83:p(<7>:00e?M20m2B?;>5+e7817>oci3:17djm:188k41c2900qo2g9K02c<@==87)k9:318mag=831bho4?::m23a<722wi?=>50;194?6|,83:6<N3?:1/i;4=3:kge?6=3`ni6=44o05g>5<53;294~"6180:>k5G46g8L1143-o=6?=4iec94?=nlk0;66a>7e83>>{e:o=1<7=50;2x 4?6288m7E:8e:J736=#m?09?6gka;29?lbe2900c<9k:188yg55m3:197>50z&2=4<6;81C8:k4H550?!c12m<0eio50;9j`g<722coo7>5;hfg>5<908274=O<>o0D99<;%g5>77>ock3:17djk:188k41c2900qo=85;297?6=8r.:5<4>2g9K02c<@==87)k9:008mag=831bho4?::m23a<722wi>k750;094?6|,83:6<<6;I64a>N3?:1bh44?::m23a<722wi?;h50;094?6|,83:6<<6;I64a>N3?:1bh44?::m23a<722wi??m50;794?6|,83:6<=<;I64a>N3?:1/i;4=1:kge?6=3`ni6=44iea94?=nlm0;66a>2c83>>{e:;>1<7850;2x 4?628997E:8e:J736=#m?09:6gka;29?lbe2900eim50;9j`a<722e:>o4?::m23a<722wi=n<50;494?6|,83:6<==;I64a>N3?:1/i;4=6:kge?6=3`ni6=44iea94?=nlm0;66a>2c83>>i6?m0;66sm44c94?>0290;wE:83:&2=4<60?1Q884n{8813?`=9?0:87?l:02952<6=3;o6p*>2987?!bb2<1/hk4:;%g3>0=#m80>7)k=:49'a6<23-o?685+cc8`b>"b?3?0(h655:&f=?3<,lk196*jb;78 `e==2.nh7;4$dg91>"bn3?0(k>55:&e5?3<,o8196*i3;78 c2==2.m97;4$g491>"a?3?0(k655:&e=?3<,ok196*ib;78 ce==2.mh7;4$gg91>"an3?0(<>?:49'557==2.:"68?0>7)??7;78 46?2<1/==755:&24d<23-;;n7;4$02`>0=#99n196*>0d86?!77n3?0("69?0>7)?>7;78 47?2<1/=<755:&25d<23-;:n7;4$03`>0=#98n196*>1d86?!76n3?0(<?4:;%317?3<,88?685+13791>"6:?0>7)?=7;18 4>e2=80(h;55:&2<47?77:&73<<60>1e5h4?;oa3>5=i9121=?5a19;961=i<>k1=?5a46`961=#kj0hj6*>8d87?l2f2900e9l50;9j020=831bol4?::k;6=8083?>o4=3:1(<6=:248j4>62810e>:50;&2<7<4>2d:4<4=;:k07?6=,8296>84n0:2>6=83802>h6080?76g<1;29 4>52:<0b<6>:498m66=83.:4?4<6:l2<4<132c9j7>5$0:1>60808;?>o5l3:1(<6=:248j4>62010e9?50;&2<7<382d:4<4?;:k0b?6=,82969>4n0:2>4=83874>h6080976g52=:0b<6>:298m6e=83.:4?4;0:l2<4<332c8n7>5$0:1>168085?>o413:1(<6=:528j4>62>10e>650;&2<7<382d:4<47;:k6e?6=,8296874n0:2>5=8386=>h6080:76g:7;29 4>52<30b<6>:398m00=83.:4?4:9:l2<4<432c>97>5$0:1>0?56`>8086?>o1;3:1(<6=:4;8j4>62?10e;<50;&2<7<212d:4<48;:k55?6=,8296874n0:2>==8386=>h6080276g:f;29 4>52<30b<6>:`98m0c=83.:4?4:9:l2<4h7>5$0:1>0?56`>808g?>o2j3:1(<6=:4;8j4>62l10e8=50;&2<7<212d:4<4i;:k;3?6=,8296584n0:2>5=838;2>h6080:76am8;29 4>52k=0b<6>:198kg0=83.:4?4m7:l2<4<632ei87>5$0:1>g18080?>ie:3:1(<6=:c58j4>62=10co?50;&2<73=838a3>h6080<76ane;29 4>52k=0b<6>:998kdb=83.:4?4m7:l2<4<>32ejo7>5$0:1>g1808a?>if13:1(<6=:c58j4>62j10cl650;&2<7`=838a3>h6080m76an5;29 4>52k=0b<6>:028?jg3290/=5<5b69m5=7=9810cl=50;&2<72:9le7<72-;3>7l8;o3;5?7432ej=7>5$0:1>g15<#9181n:5a193950=838a3>h6080::65`bd83>!7?:3h<7c?71;34?>iel3:1(<6=:c58j4>628207bll:18'5=4=j>1e=5?51898kgd=83.:4?4m7:l2<4<6i21dnl4?:%3;6?d03g;3=7?m;:ma=?6=,8296o94n0:2>4e<3fh>6=4+1909f2=i91;1=i54o`c94?"60;0i;6`>8082a>=h1o0;6)?72;`4?k7?93;m76al8;29 4>52j=0b<6>:198kf0=83.:4?4l7:l2<4<632eh97>5$0:1>f18080?>od13:17d?7f;29?l20?3:17d9k:18'5=4=?j1e=5?50:9j3g<72-;3>79l;o3;5?7<3`=26=4+19093f=i91;1>65f7983>!7?:3=h7c?71;18?l10290/=5<57b9m5=7=<21b;;4?:%3;6?1d3g;3=7;4;h56>5<#9181;n5a19392>=n?=0;6)?72;5`?k7?93=07d9<:18'5=4=?j1e=5?58:9j37<72-;3>79l;o3;5??<3`=:6=4+19093f=i91;1m65f7183>!7?:3=h7c?71;`8?l0b290/=5<57b9m5=7=k21b:i4?:%3;6?1d3g;3=7j4;h4`>5<#9181;n5a1939a>=n>k0;6)?72;5`?k7?93l07d8n:18'5=4=?j1e=5?51198m3?=83.:4?48c:l2<4<6921b:54?:%3;6?1d3g;3=7?=;:k53?6=,8296:m4n0:2>45<3`<=6=4+19093f=i91;1=954i7794?"60;080821>=n0=0;6)?72;5`?k7?93;=76g73;29 4>52>i0b<6>:058?l>5290/=5<57b9m5=7=9110e5?50;&2<7<0k2d:4<4>9:9j<5<72-;3>79l;o3;5?7f32c5$0:1>2e5<#9181;n5a19395f=k1<7*>8384g>h6080:h65f6g83>!7?:3=h7c?71;3f?>o1<3:1(<6=:6a8j4>628l07d6l:18'5=4=0k1e=5?50:9j76m;o3;5?7<3`226=4+190965`9583>!7?:3387c?71;28?j?5290/=5<5929m5=7=921d5<4?:%3;6??43g;3=7<4;n;3>5<#91815>5a19397>=h0o0;6)?72;;0?k7?93>07b6j:18'5=4=1:1e=5?55:9l=a<72-;3>77<;o3;5?0<3f3h6=4+1909=6=i91;1;65`9c83>!7?:3387c?71;:8?j?f290/=5<5929m5=7=121d544?:%3;6??43g;3=7o4;n;;>5<#91815>5a1939f>=h1>0;6)?72;;0?k7?93i07b79:18'5=4=1:1e=5?5d:9l=0<72-;3>77<;o3;5?c<3f2o6=4+1909=6=i91;1j65`c283>!7?:3i97c?71;28?je6290/=5<5c39m5=7=921v8;i:185[32n279;84kb:?136X2981U9;84^431?[2><2T?5>5Q4808Z1?63W>2<6P;8g9]0=c80R89>;_744>X2>o1U9;k4^44g?[31k2T>:o5Q57c8Z00>3W?>o6P:5c9]10g;3?o0o;63;68864>;3=l0><63;69864>;3>>0><63;67864>;3?80><63;71864>;5jj0>>63=b`866>;5j10>>63=b7866>;5j=0>>63=b3866>;5j90>>63=ad866>;5mm0:4l52287917=::0>19?52281917=::0819?52283917=::1819?52293917=::1:19?5226d917=::>o19?52382917=:;1o19?5239a917=:;1k19?5239:917=:;1<19?52396917=:;1819?52392917=:;:>19?52327917=:;:<19?52325917=:;:219?52355917=:;=219?5235;917=:;=k19?5235`917=:;11034>>m79k;<66e?1e34>>m796;<66e?1?34>>m798;<66e?1134>>m79:;<66e?1334>>m79<;<66e?1534>>m79>;<66e?1734>>m78j;<66e?0c34>>m78l;<66e?0e34>>m78n;<66e?0>34>>m787;<66e?0034>>m789;<66e?0234>>m76;;<66e?>434>>m76=;<66e?>634>>m76?;<66e?1a34>>m79j;<66e?1f34>>m78i;<66e?0334>>m76l;<66e?>f34>>m766;|q02f<72;qU8594=24`>4>33ty>:<4?:2y]137<5=<26<6<;<66a?7?;2wx>:950;0xZ061348<;7?74:p122=839pR89;;<140?bf349<97jn;|q616<72?2pR8;<;<0b6?2134>=<7:9;<66b?2134>>i7:9;<65=;7:9;<652?21348::7:9;<021?21348:87:9;<027?21348:>7:9;<025?21348:<7:9;<03b?21348;i7:9;<056?21348==7:9;<054?21348>j7:9;<06a?21348>h7:9;<06g?21348>n7:9;<06e?21348><7:9;<07b?21348?i7:9;<07`?21348?o7:9;<07f?21348?m7:9;<07=?21348?47:9;<073?2134;o47:9;<3g3?2134;o:7:9;<3g1?2134;o87:9;<3g7?2134;o>7:9;<3g5?2134;o<7:9;<0g=?21348o47:9;<0g3?21348o:7:9;<0g1?21348o87:9;<0g6?21348o=7:9;<0g7?21348nn7:9;<0fe?21348n57:9;<0f9i7:9;<61`?2134>9o7:9;<61f?2134>9m7:9;<619;7:9;<612?2134>997:9;<610?2134>9?7:9;<616?2134>9=7:9;<614?2134>:j7:9;<62`?2134>:o7:9;<62f?2134>:m7:9;<62=?2134>:47:9;<623?2134>::7:9;<621?2134>:87:9;<601?2134>887:9;<607?2134>8>7:9;<605?2134>8<7:9;<61=?2134>:i7:9;<627?2134>:>7:9;<66e?2e3ty8;<4?:3y]15e<5:=:6<6;;|q62=<72?8pR887;<65f?2134>=57:9;<65e?2134><=7:9;<644?2134;i87:9;<3a7?2134;i>7:9;<3a5?2134;i<7:9;<3bb?2134;ji7:9;<3b`?2134;jo7:9;<3eg?2134;mn7:9;<3ee?2134;m57:9;<3e7:9;<00g?213488n7:9;<00e?21348857:9;<00l4?:3y]167<5:8j6<6;;|q0b3<72;qU8i74=53a>4>33ty8j84?:3y]0a><5=;j6<6;;|q0b1<72;qU8i94=53:>4>33ty8j>4?:3y]0a0<5=;36<6;;|q0b7<72;qU8i;4=534>4>33ty8j<4?:3y]0a2<5=;=6<6;;|q0b5<72;qU8i<4=536>4>33ty8ik4?:3y]0a7<5=;?6<6;;|q754<72;qU8i>4=516>4>33ty?==4?:3y]0f`<5=9?6<6;;|q74c<72;qU8nk4=510>4>33ty?4>33ty?4>33ty?<94?:3y]0f?<5=;n6<6;;|q0b<<72;qU8n94=530>4>33ty8ih4?:3y]0f0<5=;96<6;;|q74d<72;qU8n;4=50e>4>33ty?<44?:3y]0f2<5=8n6<6;;|q74=<72;qU8n=4=50g>4>33ty?<:4?:3y]0f4<5=8h6<6;;|q743<72;qU8n?4=50a>4>33ty?<84?:3y]0f6<5=8j6<6;;|q746<72;qU8oh4=50;>4>33ty?4>33ty?<=4?:3y]0ac<5=8>6<6;;|q0bc<72;qU8ij4=507>4>33ty8jh4?:3y]0ae<5=886<6;;|q0ba<72;qU8il4=501>4>33ty8jn4?:3y]0ag<5=8:6<6;;|q0bg<72;qU8i=4=503>4>33ty8jl4?:3y]0f><5=;m6<6;;|q0b=<72;qU8oj4=53g>4>33ty8j:4?:3y]0ge<5=;h6<6;;|q7f7<72;qU8l>4=57b>=1i<7>52z\7=c=:<5<5sW>2i63;5`86<>{t7}Y<0i019;n:448yv2fk3:1>vP;9c9>00g==<1v9om:181[2>i27?9l4:4:p0dg=838pR976;<66e?043ty?no4?:3y]0d><5=?j6;<4}r6ae?6=:rT?m:5244c9<0=z{=h26=4={_6b2>;3=h0==6s|4c:94?4|V=k>70::a;43?xu3j>0;6?uQ4`68913f2>m7;l;|q7f6<72;qU8464=57b>0dj57>52z\7=2=:<5rs01:>53<7?8f:?1f`<31279mh4;9:?1a`<2:279ii4;9:?1=4<31279;h4;9:?0=7<312784=4;9:?071<312788:4;9:?01a<312wx>l=50;0x97g52<:01?o;:05g?xu3><0;6<6t=3c1>4>434>=47?74:?1`<<3k279h54;c:?1`2<3k279h;4;c:?1`0<3k279h94;c:?1`7<3k279h<4>829>6a5=hl54b9>6`g=h754b9>6`>=h954b9>6`0=h;54b9>6`2=h=54b9>620=91901?98:0:0?84093>h70<80;6`?xu5i;0;69u22`095=2<5;=86ij4=57`>ag<5;;3>;0om6s|47c94?5|5=4=54:>11<5=<63;5d82<1=:5<4s4>=57?74:?72d<2827?:i4kb:p037=83>p1987:0:0?821?3;3?63;6782<6=::5a897772=i01?>i:5a8976b2=i01?8=:5a897062=i01?8?:5a8973a2=i01?;j:5a8973c2=i01?;l:5a8973e2=i01?;n:5a897372=i01?:i:5a8972b2=i01?:k:5a8972d2=i01?:m:5a8972f2=i01?:6:5a8972?2=i01?:8:5a894b?2=i01:5a894b72=i0q~:93;2962}:4>234>9i7?75:?76a<60<168?m51978914e282>70:=a;3;1>;3:10:485243595=3<5=8=6<6:;<611?7?=27?>94>849>075=91?019<=:0:6?82593;3963;2182<0=:<8l1=5;4=53g>4>234>:o7?75:?75g<60<168282>70:>8;3;1>;39>0:485240495=3<5=;>6<6:;<620?7?=27??84>849>062=91?019=<:0:6?824:3;3963;3082<0=:<::1=5;4=50:>4>234>:i7?75:?756<60<168<<51978913d2mh019;n:0;3?xu3>j0;6>u246395=5<5==;6<6<;<65`?70l2wx8;h50;1082093;3863<1687g>;49o0?o63<1d87g>;49m0?o63<1b87g>;49k0?o63<1`87g>;4900?o63<1987g>;49?0?o63;4jk0?o6318n523e390f=:;jl1=5=4=2f3>1e<5:n969m4=2f0>1e<5:n=69m4=2f7>1e<5:n>69m4=2f4>1e<5:n369m4=2ce>1e<5:kn69m4=2`3>1e<5:kh69m4=2ca>1e<5:ko69m4=2c:>1e<5:k36<6<;<1be?2d349j;7?73:?0af<3k278io4;c:?0ad<3k278i44;c:?0a=<3k278i:4;c:?0a3<3k278i84;c:?0a1<3k278i>4;c:p03c=838jw0:80;3;0>;6j=0?o63>b287g>;6j;0?o63>b087g>;6j90?o63>ag87g>;6il0?o63>ae87g>;6ij0?o63>fb87g>;6nk0?o63>f`87g>;6n00?o63>f987g>;6n>0?o63>f787g>;6n<0?o63>f587g>;6mh0?o63>e887g>;6m10?o63>e687g>;6m?0?o63>e487g>;6m=0?o63>e287g>;6m;0?o63=3b87g>;5;k0?o63=3`87g>;5;00?o63=3987g>;5;>0?o63=3787g>;5;<0?o63=3587g>;5;:0?o63<2`87g>;4?90?o63<7087g>;4>j0?o6s|24;94?3|5;;=68>4=341>4>3348:47jm;<02e?bf348:o7jk;|q14a<72:q6><85196897?a2mk01?6l:ec8yv46?3:1>v3=14864>;5910:;i5rs32`>5<4s48:97?74:?1=`6}::8>1=5:4=3;f>ab<5;2i6ij4}r02f?6=>r79=>4:0:?15f<6?m16>676=lh16>?<5db9>672=lm1v?>n:180846;3;3863=9e8gf>;50h0on6s|20f94?4|5;;968>4=33f>41c3ty9<44?:2y>644=91>01?7k:ef897>f2mn0q~<>f;296~;5980><63=21823a=z{;:36=4<{<025?7?<2795n4kb:?1<<??50;0x97772<:01?<=:05g?xu58>0;6>u220295=2<5;3h6ij4=3::>ab52z?14c<28279>84>7e9~w7612908w0;51k0on63=898gf>{t:;=1<706<5;836<9k;|q140<72:q6>=k5196897?e2mn01?67:ef8yv7a;3:19v3>b5864>;6nj0:49521c49`g=:9k21hl521cc9`a=z{8ki6=4:{<3a0?7?<278:o4ka:?010ae<5:>96im4=222>ad52z?2f7<2827:n54>7e9~w4g>290>w0?m2;3;0>;4>h0om63<558ge>;4<80om63<018gf>{t9k31<78t=0`2>06<58hj6<9k;<3ag?be34;ii7jn;<3`4?bd34;h>7jk;|q2e=<72;;:ea896262mi01?hi:e`8yv7ej3:1>v3>b1864>;6jj0:;i5rs0c4>5<2s4;i<7?74:?02<4ka:?005a783>0}:9hl1=5:4=24:>ae<5:?86im4=263>ae<5;lo6il4}r3ab?6=:r7:mh4:0:?2g5<6?m1v;4=;0om63<3g8ge>;5nj0on6s|1b394?4|58ko68>4=0a0>41c3ty:m94?:4y>5db=91>01>87:ea896352mi01>=i:ea897`e2mh0q~?l5;296~;6ij0><63>c7823a=z{8k86=4:{<3bg?7?<278::4ka:?0149850;0x97052<:01?;?:0:7?xu5<<0;6?u2273915=::=l1=5:4}r06859>64>=lh16>64e=lj1v?:;:18184183?;70<;e;3;0>{t:<=1<7=t=343>4>3348:m7jl;<02g?be3ty98>4?:3y>60`==916>9j51968yv42>3:1>v3=5g82<1=::8i1hl5rs361>5<5s48>i7;?;<07g?7?<2wx>8;50;7x973b282?70<>e;fb?84583ni70<=2;fg?845<3nh7p}=4083>7}::87>54z?11a<60=16>?>5db9>674=lh16>?:5dc9~w7272909w0<:c;73?843i3;386s|24194?5|5;?h6<6;;<016?be348987jn;|q17c<72;q6>8l5519>61?=91>0q~<:2;297~;5=k0:49522379`d=::;21ho5rs31f>5<5s48>m7;?;<078?50;0x973f282?70<=8;fb?xu6m80;6?u21ga915=:9lk1=5:4}r3f4?6=:r7:jo4:0:?2a<<60=1vb78ge>;6j10on63>b`8gg>{t9ml1<706<58o36<6;;|q2b4<72:q6=ko5196894d?2mi01v3>f8864>;6m>0:495rs0d3>5<5s4;m57?74:?2fdad<58i;6ij4=0a1>ae52z?2b2<2827:i84>859~w4cb290?w0?i7;3;0>;6jl0oo63>c18ge>;6k;0on6s|1e`94?4|58l=68>4=0g7>4>33ty:ii4?:2y>5c0=91>01<63>e282<1=z{8oh6=4<{<3e1?7?<27:o>4ka:?2g3:181843n3?;70<{t:::1<706<5;9j6<6;;|q16c<72;q6>9j5519>66?=91>0q~<=e;296~;5<63=3982<1=z{;8o6=4={<07f?373488;7?74:p67e=838p1?:n:4289751282?7p}=2c83>7}::=319=5222795=252z?10=<28279?94>859~w74>2909w0<;7;73?844;3;386s|22f94?7|5;><6<6;;|q2gc<72;q6=ho5519>5a>=91>0q~?le;296~;6m00><63>d682<1=z{8io6=4={<3fcc83>7}:9l<19=521e695=252z?2a0<2827:h>4>859~w4e>2909w0?j4;73?87c:3;386s|1b:94?4|58o868>4=0f2>4>33ty:o:4?:3y>5`4==916=i>51968yv4b:3:19v3>d9864>;5mk0:49521809`d=::1i1ho5244c904=z{8lo6=4={<3g3?3734;2>7?8d:p5cc=838p1fg83>7}:9m?19=52186952b52z?2`1<2827:584>7e9~w7662909w0?k3;73?87>>3;4=0;4>41c3ty9<>4?:3y>5a7==916=46516f8yv47<3:1>v3>d1864>;6100:;i5rs2g1>5<3s488o7;?;<1fg?7?<27:5l4ka:?71d<4?2wx>;=50;0x975e2<:01<7n:05g?xu5>=0;6?u222c915=:90h1=:j4}r051?6=:r79?44:0:?2=f<6?m1v?89:18184403?;70?6d;34`>{t:?=1<706<583n6<9k;|q12=<72;q6>>85519>5<`=9>n0q~<99;296~;5;<0><63>a1823a=z{;43|5;n26994=3f;>11<5;n<6994=3f5>11<5;n>6994=3f7>11<5;n96994=3f2>11<5;n86994=3ga>11<5;oj6994=3g:>11<5;o36994=3g4>11<5;o=6994=3g6>11<5;o?6994=3g0>11<5=?h6im4=34`>41c348j87jm;|q1ea<72;q6>i75519>6f0=9>n0q~p1?j7:0:7?84bi3?;70<6e;fb?84el3nj7p}=ac83>7}::m=19=522b6952b54z?1`2<60=16>h75519>6ol5d`9~w7gf2909w06a3==916>n<516f8yv4dk3:18v3=d482<1=::l=19=5228f9`f=::k=1hl5rs3c;>5<5s48o87;?;<0`5?70l2wx>nl50;6x97b3282?70k3nj70859>6`2==916>4l5d`9>6g7=lh1v?o::18184c93?;70{t:j21<7:t=3f2>4>3348n?7;?;<0:f?bd348jj7jn;|q1e2<72;q6>i=5519>6f6=9>n0q~348io7?8d:p6f1=838p1?m9:00b?84d?3;6974=3``>1?<5;hj6<9k;|q1fa<72:q6>n;513c897dd282j70{t:k21<7=t=3a7>1?<5;hj6974=3`;>41c3ty9no4?:2y>6f2=9;k01?ln:0:b?84ej3;1?<5;h=6<9k;|q1f<<72:q6>n=513c897d?282j70{t:k>1<7=t=3a1>1?<5;h=6974=3`7>41c3ty9n:4?:2y>6f4=9;k01?l9:0:b?84e?3;1?<5;h96<9k;|q1f0<72:q6>n?513c897d3282j70{t:k:1<7=t=3a3>1?<5;h96974=3`3>41c3ty9n>4?:2y>6f6=9;k01?l=:0:b?84e;3;1?<5;kn6<9k;|q1f4<72:q6>oh513c897d7282j70{t:hl1<7=t=3`f>44f348ji7?7a:?1ec<6?m1v?k>:18684bi3;3863>928ge>;61;0on63=8c8ge>;3=h08j6s|2d294?3|5;o26<6;;<3:0?bf34;2?7jm;<0;f?bd34>>m7=j;|q1`c<72h65196894?22mk01<7;:e`897>f2mk019;n:2f8yv4cm3:19v3=e682<1=:90<1hl521879`g=::1k1hn5244c97f=z{;no6=4:{<0f2?7?<27:5:4ka:?2=3im50;7x97c2282?70?68;fb?87>?3ni70<79;f`?822i39j7p}=dc83>0}::l>1=5:4=0;:>ag<58336il4=3:;>ag<5=?j6>74}r0ge?6=4>859>5565db9>00g=;11v?97:180840>3?;70<87;73?84013;627==916>:=516f8yv41n3:1:v3=7082<1=::>?1hn522619`f=::>31hn5227f9`d=::?i1hi5rs357>5<5s48<<7;?;<041?70l2wx>;k50;4x9717282?70<85;fb?840;3ni70<89;fa?841l3ni70<9c;f`?xu5n?0;6?u231090<=::o<1=:j4}r0e3?6=:r782`9>6c1=9>n0q~==0;296~;48;0:;i52305915=z{;l>6=4<{<13f?2>348m:7:6;<0e1?70l2wx?=?50;1x966e288j70;4880:;i5rs20:>5<5s49;n7?8d:?05c<282wx?nj50;7x97`12<801>j8:0:7?85bj3?;70=;2;fg?85793nj7p}=f583>6}:;9k184522g790<=::o>1=:j4}r134?6=;r782`9>6c3=91k01>>?:05g?xu4:10;6?u231c952b<5:;n68>4}r1`g?6==r79j84:2:?0`3<60=16?ho5519>717=lk16?=>5d`9~w7`42908w0=?9;6:?84a<3>270{t:ol1<7=t=22:>44f348m87?7a:?1bc<6?m1v><8:18185713;{t;jh1<7;t=3d7>04<5:n>6<6;;<1f=?37349?=7jk;<0eb?bf3ty9j?4?:2y>75>=<016>k=5489>6c4=9>n0q~l522g195=g<5;ln6<9k;|q063<72;q6?=6516f8967d2<:0q~=la;291~;5n:0>>635<4s49;;7:6;<0e6?2>348m=7?8d:p6cb=839p1>>8:00b?84a:3;3m63=fe823a=z{:8>6=4={<133?70l278=o4:0:p7f?=83?p1?h=:40896b4282?70=j7;73?85383no70u231490<=::o;184522g2952b53z?043<6:h16>k?519c897`d28=o7p}<2583>7}:;9<1=:j4=23b>0655z?1b4<2:278h?4>859>7`0==916?>h5dc9>6ce=lh1v?ki:180857=3>2706<7e9~w6442909w0=?5;34`>;4900><6s|3b594?3|5;l;68<4=2f2>4>3349n97;?;<10b?bc348mn7jn;|q1a`<72:q6?=:5489>6``=<016>hk516f8yv4ai3:1?v3<05826d=::ll1=5o4=3db>41c3ty8>?4?:3y>752=9>n01>?7:428yv5d>3:19v3=eg866>;4l90:49523d6915=:;:o1ho522gc9`d=z{;oo6=4<{<137?2>348ni7:6;<0f`?70l2wx>k650;1x9664288j70;5n00:;i5rs202>5<5s49;?7?8d:?053<282wx?::50;0b84bl3?970=md;64?85ej3><70=mc;64?85em3><70=mf;64?85d:3><70=l0;64?85d93><70=l3;64?85d<3><70=k1;64?85dn3><70=k0;64?85c:3><70=k3;64?85c>3><70=k4;64?85c=3><70=k7;64?85c03><70=nf;64?85fm3><70=m0;64?85fk3><70=nb;64?85fl3><70=n9;64?85f03><70=na;64?85f?3><70=jc;64?85bj3><70=ja;64?85b13><70=j8;64?85b?3><70=j6;64?85b=3><70=j4;64?85b;3><70=85;34`>{t;9i1<74>33499h7jn;|q050<72;q6?4;296~;49l0:495233a9`a=z{:;86=4={<12`?7?<278>n4kc:p744=838p1>?l:0:7?855k3ni7p}<1083>7}:;8h1=5:4=20`>ag52z?05d<60=16??j5dc9~w66a2909w0=>9;3;0>;4:l0om6s|31g94?4|5:;36<6;;<11a?be3ty8740=91>01>;4>j0?;63<6g823a=z{:8i6=4={<11e?373499h7?8d:p6<6=838p1?7::5;897?328=o7p}=9`83>7}::0?1=5o4=3;e>41c3ty9m<4?:3y>6<3=9>n01?o;:ec8yv4?n3:1>v3=9587=>;51:0:;i5rs3;:>5<5s48287?7a:?1=`<6?m1v?6j:18184>;3>270<62;34`>{t:021<74>f3482h7?8d:p6=b=838p1?7=:5;897?628=o7p}=9683>7}::081=5o4=3;`>41c3ty95;4?:3y>6<7=91k01?7m:05g?xu5?m0;6?u229090<=::1;1=:j4}r0;3?6=:r794?4>8`9>6=e=9>n0q~3483<7?8d:p6=0=838p1?6>:0:b?84?j3;41c3ty9484?:3y>6=6=91k01?6n:05g?xu5?h0;6?u226d90<=::>o1=:j4}r0;0?6=:r79;k4>8`9>6=?=9>n0q~<73;296~;5?l0:4l5229:952b54z?0fa<28278m44>859>73>=lm16?5;5d`9~w6d42908w0=md;3;0>;4l80><63<538g`>{t;0n1<7:t=2`a>06<5:k<6<6;;<153?bd3493=7jn;|q0f4<72:q6?ol5196896ea2<:01>;>:ea8yv5>m3:18v3;4i10:49523759`g=:;191hl5rs2`1>5<4s49io7?74:?0`5<282789<4kb:p7d6=83>p1>lj:42896gf282?70=98;fa?85??3nj7p}6}:;ko1=5:4=2f1>06<5:?96il4}r1b5?6=7=?=lh1v>l::18085en3;3863;4=:0oh6s|3`694?2|5:i968>4=2cf>4>3349=m7jm;<1;b?bf3ty8n54?:2y>7f4=91>01>j9:42896332mh0q~=n2;290~;4k90><63ok:0:7?851i3no70=7d;fb?xu4j>0;6>u23b395=2<5:n>68>4=277>ab54z?0g6<28278mk4>859>73d=lm16?4?5d`9~w6d>2908w0=l3;3;0>;4l>0><63<548g`>{t;h<1<7:t=2a7>06<5:h;6<6;;<15f?be3492o7jn;|q0fd<72:q6?n:5196896b?2<:01>;::e`8yv5d=3:18v35<3s49o47?74:?0af<282788?4kb:?1b27n:05g?xu4?m0;6?u23`g915=:;031=:j4}r14b?6=:r78n=4:0:?0=g<6?m1v>9m:18185fk3?;70=67;34`>{t;>k1<706<5:3=6<9k;|q03f<72;q6?lj5519>7<>=9>n0q~=88;296~;4i00><63<95823a=z{:=<6=4={<1bon:42896?228=o7p}<7783>7}:;h=19=52380952b52z?0=g<312785=4>7e9~w6?d2909w0=6b;31e>;41j0:;i5rs2:f>5<4s492m7:6;<1:4?2>3493i7?8d:p7<7=839p1>7n:00b?85>83;3m63<90823a=z{:2h6=4<{<1:=?2>3493i7:6;<1;g?70l2wx?5h50;1x96?>288j70=7e;3;e>;40o0:;i5rs2:b>5<4s49247:6;<1;g?2>3493m7?8d:p7=b=839p1>77:00b?85?k3;3m63<8e823a=z{:236=4<{<1:3?2>3493m7:6;<1;;40k0:;i5rs2:5>5<4s492:7:6;<1;3493:7?8d:p7=?=839p1>79:00b?85?03;3m63<88823a=z{:2?6=4<{<1:1?2>3493:7:6;<1;0?70l2wx?5950;1x96?2288j70=76;3;e>;40>0:;i5rs2:1>5<4s49287:6;<1;0?2>3493>7?8d:p7=3=839p1>7;:00b?85?<3;3m63<84823a=z{:2;6=4<{<1:7?2>3493>7:6;<1;4?70l2wx?5=50;1x96?4288j70=72;3;e>;40:0:;i5rs2:2>5<4s492>7?=a:?0<5<60h16?5?516f8yv5b93:18v35<3s49nm7?74:?2=f282?70?6d;fb?87>k3ni70::a;10?xu4ll0;69u23d:95=2<583n6io4=0;g>ad<5=?j6><4}r1g`?6=859>5<`=lh16=4k5dc9>00g=;81v>jl:18785b>3;3863>a18ge>;61o0on63;5`804>{t;mh1<7:t=2g6>4>334;j=7jn;<3b4?be34>>m7:e`8913f2;o0q~=k9;297~;4m:0:49521`09`g=:<i5rs21:>5<5s49887?7a:?07`<6?m1v>=?:181854<3;{t;:k1<74>f3498j7?8d:p767=838p1>=::05g?854>3>27p}<3c83>7}:;:<1=5o4=263>41c3ty8??4?:3y>760=9>n01>=8:5;8yv54k3:1>v3<36827e9>76>=<01v>=k:18185403;3m63<43823a=z{:?=6=4={<104kc:p71e=838p1>:8:0:b?85293;<6<9k;<173ty88i4?:3y>71>=91k01>;=:05g?xu4<=0;6?u235:952b<5:>26974}r17a?6=:r78844>8`9>705=9>n0q~=;5;296~;4<00:;i5235c90<=z{:>m6=4={<17e?7?i278994>7e9~w6212909w0=;a;34`>;4i6<6n;<161?70l2wx?8950;1x962e28=o70=83;fb?851m3nh7p}<6383>7}:;41c3ty8944?:3y>70b=9>n01>;j:5;8yv51;3:1>v3<5d827e9>70`=<01v>8;:181852n3;3m63<68823a=z{:?i6=4={<16b?70l278:=4;9:p733=838p1>8?:0:b?851i3;3ty8:;4?:3y>737=91k01>8m:05g?xu4=10;6?u2373952b<5:4>7e9~w617290?w0=80;3;0>;4?=0on63<748gf>;4>o0o56s|37f94?4|5:4=24f>41c3ty?9i4?:37x914a2==019:55891472==019?i:558917c2==019?l:558917e2==019?n:558917>2==019?7:55891702==019?9:55891722==019?;:55891522==019=;:55891542==019==:55891562==019=?:558914>2==019?j:55891742==019?=:558970c28=o7p};5383>7}:<;l19=5244c9g==z{=?:6=4={<61a?3734>>m7l7;|q715<72;q68?j5519>00g=j?1v9:i:181825k3?;70::a;`7?xu35rs56g>5<5s4>9m7;?;<66e?d53ty?8o4?:3y>07>==91688o5b09~w12f2909w0:=7;73?822i3h;7p};4883>7}:<;<19=5244c9ec=z{=>36=4={<611?3734>>m7m9;|q702<72;q68?:5519>00g=il1v9:9:181825;3?;70::a;cg?xu3<<0;6?u2430915=:<5<5s4>9=7;?;<66e?ge3ty?8>4?:3y>076==91688o5a89~w1252909w0:>f;73?822i3k37p};4183>7}:<8n19=5244c9e2=z{=9m6=4={<62g?3734>>m7o9;|q77`<72;q6800g=k<1v9=k:181826i3?;70::a;c6?xu3;j0;6?u240;915=:<5<5s4>:47;?;<66e?g43ty??l4?:3y>041==91688o5a39~w15>2909w0:>6;73?822i3k:7p};3983>7}:<8?19=5244c9e5=z{=9<6=4={<620?3734>>m7li;|q71<<72;q68>;5519>00g=jl1v9;7:181824<3?;70::a;a7?xu3=>0;6?u2421915=:<5<5s4>8>7;?;<66e?dd3ty?984?:3y>067==91688o5bc9~w1332909w0:<0;73?822i3hj7p};5283>7}:<;319=5244c9f<=z{=>h6=4={<62a?3734>>m7l:;|q704<72;q68<=5519>00g=ih1v9=9:181826:3?;70::a;;e?xu3=k0;6?u244a952b<5=?j6no4}r1f`?6==r78;>4kb:?02`7e9>00g=<><019;n:b;8yv71:3:1>v3=248gf>;5:=0:>o5rs04g>5<5s4;h?7jm;<3`6?75j2wx>?850;0x974?2mi01?<;:05g?xu6k=0;6?u21b49`f=:9j81=:j4}r11g?6=:r78>h4kd:?06f<6:k1v<=7:181855m3;{z{<<:6=4={_755>;3<3?==6*;73822c=z{<<36=4={_75<>;3<3?=46*;738235=z{;3<3?>?6*;738234=z{=h96=4={_6b4>;3<3>j<6*;738201=z{=h;6=4={_6:b>;3<3>2j6*;73820c=z{=km6=4={_6:a>;3<3>2i6*;73821<=z{=kn6=4={_6:`>;3<3>2h6*;73821g=z{=ko6=4={_6:g>;3<3>2o6*;73821f=z{=kh6=4={_6:f>;3<3>2n6*;73821a=z{=ki6=4={_6:e>;3<3>2m6*;73821c=z{=kj6=4={_6:=>;3<3>256*;738225=z{=hi6=4={_6b<>;3<3>j46*;738224=z{=hj6=4={_6b3>;3<3>j;6*;738226=z{=h26=4={_6b2>;3<3>j:6*;738221=z{=h36=4={_6b1>;3<3>j96*;738220=z{=h<6=4={_6b0>;3<3>j86*;738223=z{=h=6=4={_6b7>;3<3>j?6*;738222=z{=h>6=4={_6b6>;3<3>j>6*;73822==z{=h?6=4={_6b5>;3<3>j=6*;73822<=z{=h86=4={_6:<>;3<3>246*;73822d=z{=k26=4={_6:3>;3<3>2;6*;73822g=z{<=?6=4={_740>;3<3?<86*;73822f=z{;3<3?>j6*;73822`=z{=lo6=4={_6g=>;3<3>o56*;738237=z{=li6=4={_6g<>;3<3>o46*;738236=z{=lj6=4={_6g3>;3<3>o;6*;738231=z{=l26=4={_6g2>;3<3>o:6*;738230=z{=l36=4={_6g1>;3<3>o96*;738233=z{=l<6=4={_6g0>;3<3>o86*;738232=z{=l>6=4={_6g6>;3<3>o>6*;73823==z{=l?6=4={_6g5>;3<3>o=6*;73823<=z{=l86=4={_6g4>;3<3>o<6*;73823d=z{=l96=4={_6`b>;3<3>hj6*;73827d=z{=l:6=4={_6`a>;3<3>hi6*;73827g=z{=l;6=4={_6``>;3<3>hh6*;73827f=z{=om6=4={_6`g>;3<3>ho6*;73827a=z{=on6=4={_6`f>;3<3>hn6*;73827`=z{=oo6=4={_6`e>;3<3>hm6*;73827c=z{=oh6=4={_6`=>;3<3>h56*;738205=z{=oj6=4={_6`3>;3<3>h;6*;738204=z{=o26=4={_6`2>;3<3>h:6*;738207=z{=o36=4={_6`1>;3<3>h96*;738206=z{=o<6=4={_6`0>;3<3>h86*;738200=z{=o=6=4={_6`7>;3<3>h?6*;738203=z{=o>6=4={_6`6>;3<3>h>6*;738202=z{=o?6=4={_6`5>;3<3>h=6*;73820==z{=o86=4={_6`4>;3<3>h<6*;73820<=z{=o96=4={_6ab>;3<3>ij6*;73820d=z{=o:6=4={_6aa>;3<3>ii6*;73820g=z{<:?6=4={_6gb>;3<3>oj6*;73820f=z{<:86=4={_6ga>;3<3>oi6*;73820a=z{<:96=4={_6g`>;3<3>oh6*;73820`=z{<::6=4={_6gg>;3<3>oo6*;738215=z{<:;6=4={_6gf>;3<3>on6*;738214=z{=lm6=4={_6ge>;3<3>om6*;738217=z{=ln6=4={_6g7>;3<3>o?6*;738216=z{=l=6=4={_6`<>;3<3>h46*;738211=z{=oi6=4={_6a`>;3<3>ih6*;738210=z{=o;6=4={_6ag>;3<3>io6*;738213=z{<:h6=4={_73g>;3<3?;o6*;738212=z{=2<6=4={_6;3>;3<3>3;6*;73821==z{<:=6=4={_732>;3<3?;:6*;73821d=z{<9:6=4={_705>;3<3?8=6*;73821`=zugko57>52zJ736=zfhnj6=4={I647>{iimh1<7vF;729~jdbb2909wE:83:mea`=838pD99<;|lba5<72;qC8:=4}ocf5?6=:rB?;>5rn`g1>5<5sA>7}O<>90qcoj5;296~N3?:1vblk9:181M20;2wemh950;0xL1143tdji54?:3yK02552zJ736=zfhoj6=4={I647>{iilh1<7vF;729~jdcb2909wE:83:me``=838pD99<;|lbb5<72;qC8:=4}oce5?6=:rB?;>5rn`d1>5<5sA>7}O<>90qcoi5;296~N3?:1vblh9:181M20;2wemk950;0xL1143tdjj54?:3yK02552zJ736=zfhlj6=4={I647>{iioh1<7vF;729~jd`b2909wE:83:mec`=838pD99<;|la45<72;qC8:=4}o`35?6=:rB?;>5rnc21>5<5sA>7}O<>90qcl?5;296~N3?:1vbo>9:181M20;2wen=950;0xL1143tdi<54?:3yK02552zJ736=zfk:j6=4={I647>{ij9h1<7vF;729~jg6b2909wE:83:mf5`=838pD99<;|la55<72;qC8:=4}o`25?6=:rB?;>5rnc31>5<5sA>7}O<>90qcl>5;296~N3?:1vbo?9:181M20;2wen<950;0xL1143td2=l4?:0yK02557>51zJ736=zf0?j6=4>{I647>{i1=j0;65rn841>5<6sA>4}O<>90qc795;295~N3?:1vb489:182M20;2we5;950;3xL1143td2:54?:0yK02551zJ736=zf0{I647>{i1?h1<7?tH550?xh>>j0;65rn851>5<6sA>4}O<>90qc785;295~N3?:1vb499:182M20;2we5:950;3xL1143td2;54?:0yK02551zJ736=zf0=j6=4>{I647>{i1>h1<7?tH550?xh>?j0;65rn8:1>5<6sA>4}O<>90qc775;295~N3?:1vb469:182M20;2we55950;3xL1143td2454?:0yK02551zJ736=zf02j6=4>{I647>{i11h1<7?tH550?xh>0j0;6b290:wE:83:m==`=83;pD99<;|l:=5<728qC8:=4}o;:5?6=9rB?;>5rn8;1>5<6sA>4}O<>90qc765;295~N3?:1vb479:182M20;2we54950;3xL1143td2554?:0yK02551zJ736=zf03j6=4>{I647>{i10h1<7?tH550?xh>1j0;6l3:1=vF;729~j5rn8c1>5<6sA>4}O<>90qc7n5;295~N3?:1vb4o9:182M20;2we5l950;3xL1143td2m54?:0yK02551zJ736=zf0kj6=4>{I647>{i1hh1<7?tH550?xh>ij0;65rn8`1>5<6sA>4}O<>90qc7m5;295~N3?:1vb4l9:182M20;2we5o950;3xL1143td2n54?:0yK02551zJ736=zf0hj6=4>{I647>{i1kh1<7?tH550?xh>jj0;65rn8a1>5<6sA>4}O<>90qc7l5;295~N3?:1vb4m9:182M20;2we5n950;3xL1143td2o54?:0yK02551zJ736=zf0ij6=4>{I647>{i1jh1<7?tH550?xh>kj0;65rn8f1>5<6sA>4}O<>90qc7k5;295~N3?:1vb4j9:182M20;2we5i950;3xL1143td2h54?:0yK02551zJ736=zf0nj6=4>{I647>{i1mh1<7?tH550?xh>lj0;65rn8g1>5<6sA>4}O<>90qc7j5;295~N3?:1vb4k9:182M20;2we5h950;3xL1143td2i54?:0yK02551zJ736=zf0oj6=4>{I647>{i1lh1<7?tH550?xh>mj0;65rn8d1>5<6sA>4}O<>90qc7i5;295~N3?:1vb4h9:182M20;2we5k950;3xL1143td2j54?:0yK02551zJ736=zf0lj6=4>{I647>{i1oh1<7?tH550?xh>nj0;65rn`21>5<6sA>4}O<>90qco?5;295~N3?:1vbl>9:182M20;2wem=950;3xL1143tdj<54?:0yK02551zJ736=zfh:j6=4>{I647>{ii9h1<7?tH550?xhf8j0;65rn`31>5<6sA>4}O<>90qco>5;295~N3?:1vbl?9:182M20;2wem<950;3xL1143tdj=54?:0yK02551zJ736=zfh;j6=4>{I647>{ii8h1<7?tH550?xhf9j0;65rn`01>5<6sA>4}O<>90qco=5;295~N3?:1vbl<9:182M20;2wem?950;3xL1143tdj>54?:0yK02551zJ736=zfh8j6=4>{I647>{ii;h1<7?tH550?xhf:j0;65rn`11>5<6sA>4}O<>90qco<5;295~N3?:1vbl=9:182M20;2wem>950;3xL1143tdj?54?:0yK02551zJ736=zfh9j6=4>{I647>{ii:h1<7?tH550?xhf;j0;65rn`61>5<6sA>4}O<>90qco;5;295~N3?:1vbl:9:182M20;2wem9950;3xL1143tdj854?:0yK02551zJ736=zfh>j6=4>{I647>{ii=h1<7?tH550?xhf5rn`71>5<6sA>4}O<>90qco:5;295~N3?:1vbl;9:182M20;2wem8950;3xL1143tdj954?:0yK02557>51zJ736=zfh?j6=4>{I647>{ii5rn`41>5<6sA>4}O<>90qco95;295~N3?:1vbl89:182M20;2wem;950;3xL1143tdj:54?:0yK02551zJ736=zfh{I647>{ii?h1<7?tH550?xhf>j0;65rn`51>5<6sA>4}O<>90qco85;295~N3?:1vbl99:182M20;2wem:950;3xL1143tdj;54?:0yK02551zJ736=zfh=j6=4>{I647>{ii>h1<7?tH550?xhf?j0;65rn`:1>5<6sA>4}O<>90qco75;295~N3?:1vbl69:182M20;2wem5950;3xL1143tdj454?:0yK02551zJ736=zfh2j6=4>{I647>{ii1h1<7?tH550?xhf0j0;6b290:wE:83:me=`=83;pD99<;|lb=5<728qC8:=4}oc:5?6=9rB?;>5rn`;1>5<6sA>4}O<>90qco65;295~N3?:1vbl79:182M20;2wem4950;3xL1143tdj554?:0yK02551zJ736=zfh3j6=4>{I647>{ii0h1<7?tH550?xhf1j0;6l3:1=vF;729~jd?b290:wE:83:me<`=83;pD99<;|lbe5<728qC8:=4}ocb5?6=9rB?;>5rn`c1>5<6sA>4}O<>90qcon5;295~N3?:1vblo9:182M20;2weml950;3xL1143tdjm54?:0yK02551zJ736=zfhkj6=4>{I647>{iihh1<7?tH550?xhfij0;65rn``1>5<6sA>4}O<>90qcom5;295~N3?:1vbll9:182M20;2wemo950;3xL1143tdjn54?:0yK02551zJ736=zfhhj6=4>{I647>{iikh1<7?tH550?xhfjj0;65rn`a1>5<6sA>4}O<>90qcol5;295~N3?:1vblm9:182M20;2wemn950;3xL1143tdjo54?:0yK02551zJ736=zfhij6=4>{I647>{iijh1<7?tH550?xhfkj0;65rn`f1>5<6sA>4}O<>90qcok5;295~N3?:1vblj9:182M20;2wemi950;3xL1143tdjh54?:0yK025?01274>6789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123454<80;0=>5>.130?46=AGZ^X7OKDSC?=?699l1:<7GAPTV9twi`Wog`Rzgrdqk8<<76;?0==4FNQWW>uthoVl~`aQ{hsgplZgt{lx044?>378553CE\XZ5DHC?50<76890=;4@UURVP?BHI5;>6=0>2:3;>LHW]]0oec2>7;2=5>433;98?0086?IR\Y__6IA_A=394;753:81EC^ZT;FJF956294:?6==:NWWTPR=LFH7?<4?>0687301?69l29x>=>?ff662(363=>08=HI1097>LHW]]0OE]L33;2=57=32F__\XZ5DNRA86<7681=>6864:4:=32<09:;866J8@38=1=>8939748;;845=44<13CE\XZ5AEFQF9>=87;n744FNQWW>uthoVof|ywPtipfwm:?29499675IORVP?vugnUna}zv_ujqavnXizyn~y27:1<11>?=AGZ^X7~}of]fiur~W}byi~fPndebp`:?294:n675OTVSQQ55NDEPB858?3HNO^L2>>99B@ATF4;437LJKR@>0:==FLMXJ0907;@FGVD:2611JHI\N<7<;?DBCZH6<255NDEPB8=8f3HNO^L26:1<;?DBCZH62255NDEPA858?3HNO^O2>>99B@ATE4;437LJKRC>0:==FLMXI0907;@FGVG:2611JHI\M<7<;?DBCZK6<2l5NDEPA8=<7611JHI\M<9<0?DJK12KXUCMPRDE0?GS502H^_RGAFN38G7=DM880OEKLK^NJG@HTMV^R\H<4CH68GIMF<2IGGO=4CMP:?FIJE@^_II?;;BMQAZABFLXJXDAA_HLEK2=DZLK_II?4D39GG7=CA?1OEL2?>69GMD:687=0HDO310<4?AOF4885;6JFA=30:2=CAH6:8374DHC?50<76>1OEL2>5?48@LG;97<0HDO32?48@LG;;7<0HDO34?48@LG;=7<0HDO36?48@LG;?7<0HDO38?48@LG;17<0HDL30?58@LD;994<7IGM<03=3>BNJ5;92:5KIC>27;169GMG:6?7=0HDL319<4?AOE4835:6JFB=3=3>BNJ58;2:5KIC>15;1?08;EKA8759?2NBN1<;>69GMG:5=7=0HDL327<4?AOE4;=5;6JFB=0;:2=CAK695384DH@?6;14=7IGM<9<5?AOE404<7IG_A=2==>BNXH6:6=08;EKSE979?2NB\O2?>69GMUD;97=0HD^M<3<:?AOWJ591<394DHRA86813MEJ0=08;EMB8469?2NDM1?>>69GKD:6:7=0HBO312<4?AIF48>556J@A=36>5803MEJ0<;16:FLE979>2NDM1<16:FLE959>2NDM1:16:FLE939>2NDM1816:FLE919>2NDM1616:FLE9?9?2NDMR\JG79GKG:76>1OCO2>0?58@JD;984<7IAM<00=3>BHJ5;82:5KOC>20;169GKG:607=0HBL318<5?AIE484<7IAM<32=3>BHJ58:2:5KOC>16;1>08;EMA8729?2NDN1<:>69GKG:5>7=0HBL326<4?AIE4;25;6J@B=0::3=CGK692:5KOC>04;?69GKG:497<0HBL33?48@JD;<7<0HBL35?48@JD;>7<0HBL37?48@JD;07<0HBL39?58@JDXZLM<7IA_A=2==>BHXH6:6=08;EMSE979?2ND\O2?>69GKUD;97=0HB^M<3<:?AIWJ591<394DNRA86843LDJ?6KABc9FJZCDKVXNMIm4EO]FGFYPZ@^N>6H=2:D;1>@FDZO97KJ<;GF@0>@CKL90JI^;;GFSA1=AL[O?7KH7009D7>AIL81B>6G?2:K26>O5:2C846GAIUR\45>>8:KMMQVX8;20ECG[P^20<>OIA]ZT<964IOKWTZ6202CEEY^P07:8MKOSXV:<56GAIUQWEQC03@DBXR>?7:KMMQY79>1BBDZP0358MKOSW99<7D@FT^273>OIA]U;9:5FNHV\4311BBDZP1358MKOSW89<7D@FT^373>OIA]U:9:5FNHV\531969JJLRX9H=0ECG[_0@4?LHN\V;H;6GAIU]2@2=NF@^T=H94IOKW[4@03@DBXR1BBDZP2358MKOSW;9<7D@FT^073>OIA]U99:5FNHV\631H94IOKW[7@03@DBXR=?7:KMMQY49>1BBDZP3358MKOSW:9<7D@FT^173>OIA]U89:5FNHV\73198;HLJPZ5??2CEEYQ<969JJLRX;H=0ECG[_2@4?LHN\V9H;6GAIU]0@2=NF@^T?H94IOKW[6@13@DBXRO9;HLJPZD43@D]>6BF2:NL2>JHIMOO;6B@GHABH1=K]];?7A[[259OQQ533E__8;5CUU6\@0=J[NEE96CZXB[`?Hgmg{\n~~g`nb9Nmkiu^lxxeb`<;O226>H6<2D:<=:4N0220>H68;>0B<><4:L241286@>0768J460<2D:<5:4N02:7>H69=1E=<>;;O3251=I988?7C?>359M54233G;:995A1047?K76?=1E=<6;;O32=6=I9;>0B<2268J443<2D:>8:4N0050>H6:>>0B<<73:L271=I9:;87C?;3:L216=I9?>0B<8;3:L236=I9190B<7=;O00?K47;2D9=>5A2318J7543G8??6@=529M635H>;:1E59=4N870?K?1;2D2;>5A9918JIL92Z?7]O]T`9SMKYE]ZCOTo5_IO]AQVHFEL90\_K>;P38V`=UIDH::R]>8^Q02d=UMHNTJD\\Tb9QADBX_@N_DROl;SGB@ZQNL]BTN<5\129PMHYDGEFB_DAA_BJFGN0<[F_YOH94SSTBHZG03ZX]MAQM4:QPVD2<[ZXI86ZVPD11?P6(o{l%~k!hcy,`hn~(EqeySjPpovq[beXpfx;<=>PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^pg[uhszVmhSua}0122[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYulVzexQhc^zlv567:VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;<>Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?016\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4562W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;:R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?06]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[rtXxg~ySjmPxnp3456XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^e`[}iu89::S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?2^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2346YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt789>T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=>:_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1232ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678>UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=6PRdqvhq7592_;#j|i.sd,cf~)keas#jPpovq[goi4949=6[?/fpe*w`(ojr%oaew/sf\tkruWkce0<0=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<3<15>S7'nxm"h gbz-gim'{nT|cz}_ckm868592_;#j|i.sd,cf~)keas#jPpovq[goi4=49=6[?/fpe*w`(ojr%oaew/sf\tkruWkce080=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<7<15>S7'nxm"h gbz-gim'{nT|cz}_ckm828592_;#j|i.sd,cf~)keas#jPpovq[goi4149<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS= gsd-vc)`kq$h`fv re]sjqtXj`dT9?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ9219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^514>S7'nxm"h gbz-gim'{nT|cz}_ckm[=413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=>=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45679;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0004?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789;:>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123671<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?3305?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789>9;6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0127570<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<8<8;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34536:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?63:8Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678?;:>:5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123274e3\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=8Pbef363=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;;?94U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos23427582_;#j|i.sd,cf~)keas#jPpovq[be;878;7X> gsd-vc)`kq$h`fv re]sjqtXoj6:2?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo1<1219V4*aun'xm#jmw.bnh|*tcWyd~Ril<2<14>S7'nxm"h gbz-gim'{nT|cz}_fa?0;473\:$kh!rg-dg}(ddbr$~iQnup\cf:26;:0Y=!hrg,qb*adp'iggu!}d^rmpwY`k5<5>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmh0:0=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm38?3e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]35c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[47a3\:$kh!rg-dg}(ddbr$~iQnup\cfY59o1^<"i}f/pe+be&jf`t"|k_qlwvZadW:;m7X> gsd-vc)`kq$h`fv re]sjqtXojU?=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS8?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ91g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_63e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb];63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn6;2?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?5;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol0?0=6:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfc959:?1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyij2;>348Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;=78=7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh<7<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo5=5>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>;:73<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\773<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT8?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\173<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT:?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\373<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT4?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:76;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>2:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<2=>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8682?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:36;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>6:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<29>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86<2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:?6;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]36==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012360=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89::>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012160=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:8>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012760=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:>>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012560=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:<><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb1?1209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=0=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj959:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf5>5><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb1;1209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=4=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj919:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf525><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb171219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^314>S7'nxm"h gbz-gim'~xT|cz}_ckm[7473\:$kh!rg-dg}(ddbr${Qnup\flhX;;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU?>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR;=0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_703?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\376<]9%l~k }f.e`|+ekcq%|~R~ats]amkY?:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV39:6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012362=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;<<<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34575?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>>1348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678;8<7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?010263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;??94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234645>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>;269V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567<88=7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01713>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:>=?84U1-dvc(un&mht#mcky-tvZvi|{UiecQwos23434?3\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=8>1358Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678?89n6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}0125[gbc8;<0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?0604?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt789=:>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh0=0=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm31?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>1:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg959:91^<"i}f/pe+be&jf`t"y}_qlwvZad4=49<6[?/fpe*w`(ojr%oaew/vp\tkruWni793328Q5)`zo$yj"ilx/aoo})pzVzexQhc=5=65=R8&myj#|i/fa{*fjlp&}yS}`{r^e`8=8582_;#j|i.sd,cf~)keas#z|Ppovq[be;17;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU;=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU3=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS4<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8585>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk1?1279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:56;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi33?05?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4=49:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=7=63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn6=2?84U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde?3;413\:$kh!rg-dg}(ddbr${Qnup\cfYf{{ol050=6:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfc9?9:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ?249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY6:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ=249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY4:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ;249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY2:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ9249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY0:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ7249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY>:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=3=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1<1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9595>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5929:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=7=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=181289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95=5>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g59>9:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=;=6==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh55Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5Z?5=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=>=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34575=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=<=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34555=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=:=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34535=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=8=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34515=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=6<0:W3+bta&{l$ka>!re-dv4(un~l#@czx^PBIZTCWLDTJZH[200e?P6(o{l%~k!hl1,q`*au9'xm{kz Mlw{[WGJW[OLCXZPEO326a=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e=2=6a=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e=3=6f=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e^21g>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_016?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykPmtz3457;879=7X> gsd-vc)`d9$yh"i}1/pescr(k|xySkyit^qweqcXe|r;<=?30?301>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_lw{45664848:6[?/fpe*w`(oe:%~i!hr0,qbr`s'jy~Rhxfu]ppdrbWds<=>><0<26==R8&myj#|i/fn3*wb(o{;%~kyit.gntqXn~lSkl=7:W3+bta&{l$ka>!re-dv4(un~l#hctx]escrXa;l0Y=!hrg,qb*ak8'xo#j|>.sdtbq)bey~rSkyit^k\ip~789:8<6[?/fpe*w`(oe:%~i!hr0,qbr`s'lg{xtQiwgv\mZkrp9:;<<<6;T2,cw`)zo%l`= }d.eqev(u{}y$o=!laspzj`r;87827X> gsd-vc)`d9$yh"i}ar,qwqu(k9%hm|vndv?5;4>3\:$kh!rg-dh5(ul&mym~ }suq,g5)di{xrbhz32?0:?P6(o{l%~k!hl1,q`*auiz$yy} c1-`ewt~fl~7?32g9V4*aun'xm#jb?.sf,cwgt&{y"m?/fov|+ajS8W%k`}!mr0e?P6(o{l%~k!hl1,q`*auiz$yy} c1-dip~)odQ9Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a3+bkrp'mfW>S!glq-iv4a3\:$kh!rg-dh5(ul&mym~ }suq,g5)`e|r%k`U;]/enw+kt::1^<"i}f/pe+bj7&{n$ko|.sqww*e7';7<3<<;T2,cw`)zo%l`= }d.eqev(u{}y$o=!y1=3=66=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7;:7887X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=1=1229V4*aun'xm#jb?.sf,cwgt&{y"m?/w3?0;4e3\:$kh!rg-dh5(ul&mym~ }suq,g5)q9V:Tmcj?01226g=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7X9Vkeh=>?000a?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5Z4Xign;<=>>2c9V4*aun'xm#jb?.sf,cwgt&{y"m?/w3\7Zgil9:;<<45Z0.eqb+ta'nf;"j gscp*wus{&i:#no}rxlfp969:01^<"i}f/pe+bj7&{n$ko|.sqww*e6'jky~t`jt=3=6<=R8&myj#|i/fn3*wb(o{kx"}{s.a2+fguzpdnx1<1289V4*aun'xm#jb?.sf,cwgt&{y"m>/bcqv|hb|595>k5Z0.eqb+ta'nf;"j gscp*wus{&i:#jczx/en_5[)od;%a</fov|+ajS;W%k`}!mr0e?P6(o{l%~k!hl1,q`*auiz$yy} c0-dip~)odQ8Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a2+bkrp'mfW9S!glq-iv443\:$kh!rg-dh5(ul&mym~ }suq,g4)q95:5>>5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?31?00?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5949::1^<"i}f/pe+bj7&{n$ko|.sqww*e6';7?3<<;T2,cw`)zo%l`= }d.eqev(u{}y$o?000a?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5Z7Xign;<=>>2c9V4*aun'xm#jb?.sf,cwgt&{y"m>/w3\6Zgil9:;<<o5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?P4^llp567888;7X> gsd-vc)`d9$yh"i}ar,qwqu(kfg{4U1-dvc(un&mg<#|k/fpbw+tt|z%hc`~>289V4*aun'xm#jb?.sf,cwgt&{y"|nm^gntqXnkUb?=5Z0.eqb+ta'nf;"j gscp*wus{&xjaRkbpu{\bgYnWfx;<=><1:W3+bta&{l$ka>!re-dvdu)zz~x#ob_dosp|YajVcTc>?01317>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz>259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq45<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex><;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw072<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~>>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu410>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|>8?7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{83;8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6;2?m4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:76Vx>45Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}979:j1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=3=[wr512_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<3<1g>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0?0Pru0:?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7?37:Zts:01^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=7=6f=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1;1_sv1=>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0;0=c:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4?4T~y<6;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[f;?78h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?3;Yu|;k0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?4;4f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSua}<0<1e>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1<12`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{682?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;<78j7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8085i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=4=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc28>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx74311g9V4*aun'xm#jb?.sf,vuhsz&idycz31?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=0=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?7;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9299o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;=7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5<5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~7;3?i;T2,cw`)zo%l`= }d.psjqt(kfex1611d9V4*aun'xm#jb?.sf,vuhsz&idyczP00g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_03f?P6(o{l%~k!hl1,q`*twf}x$ob{at^02a>S7'nxm"h gm2-va)uxg~y#naznu]05`=R8&myj#|i/fn3*wb(zyd~"m`uov\04c<]9%l~k }f.eo4+tc'{zex!lotlw[07b3\:$kh!rg-dh5(ul&x{by| cnwmpZ06m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY09l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX0;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;7<3<=;T2,cw`)zo%l`= }d.psjqt(kfexRj><0<16>S7'nxm"h gm2-va)uxg~y#naznu]g5949:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl8682?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?34?01?P6(o{l%~k!hl1,q`*twf}x$ob{at^f28085:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc95<5>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<28>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?<;463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W98:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S<<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_302?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[6463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W=8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S8<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_702?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[2463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W18?7X> gsd-vc)`d9$yh"|nup,gjsi|Vddx=>?12d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>2:6`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8784n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:46:l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Ze~4=48j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xkp6>2>h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir0;0!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:Tot28>2d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>::17<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp9776=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5;58;5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567We0<0PIOT\416<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp949<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[iss4:4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xd|~783:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Ugyy2:>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?_mww828382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\hpr;07>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yk}}6229?4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vrd~1??>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?_ymq878382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\|jt;;7>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yg{6?29>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vrd~1;1419V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Sua}<7<74>S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pxnp?3;273\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(EhnoSigif^rmpwYwimUjhi>?01]{kw:?6=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Z~hz535?=5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"jffg]sjqtXxhn7==0=f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{mi2>>3d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok<3<1b>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae>0:7`<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg8185n2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]sea:26;l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugc4?49j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwim6<2?h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWyko050=f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{mi26>3g8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok_00e?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,`l`aWyd~R~nd^336`=R8&myj#|i/fn3*rt(o~kx"j~i.vpsb*bnnoU{by|Pp`f\67c<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[64b3\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(l`lmS}`{r^rb`Z25m2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaY2:l1^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&nbjkQnup\tdbX>;o0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcW>8n7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$hdhi_qlwvZvflV29i6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimU2?55Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"jffg]sjqtXxhnTmij?012?5584?2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaYflm:;<=2>>258Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok_`fg45674;48;6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimUjhi>?01>0:61<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[dbc89:;090<7:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{miQnde2345:26:=0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcWhno<=>?<7<03>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae]b`a67896<2>94U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWykoSljk01238=84?2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaYflm:;<=26>3c8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-svjaXn|fgSd==;T2,cw`)zo%l`= xr.etev(`xo$|~}h psmd[cskdVcTaxv?01100>S7'nxm"h gm2-sw)`hy%k}h!wsre+uthoVl~`aQf_lw{4564989?7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$|ah_gwohZoXe|r;<==>92:8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-svjaXn|fgSdQbuy23467>WZ];??5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"~}of]eqijXaVddx=>?13;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6;2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:66;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>1:7?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2<>3d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(`eR:V"jc>.l31b>S7'nxm"h gm2-sw)`hy%{~z|/b3,chs&ngP=P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28485;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8692?=4U1-dvc(un&mg<#y}/fubw+qt|z%h="x><2<17>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4:36;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S=Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U:Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W;Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4Y4Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t2[1Yffm:;<=?=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs494956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw848512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<3<1=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0>0=f:W3+bta&{l$ka>!ws-dsdu)z~x#n< glw{*bk\8T$la< b13d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.enq}(`eR;V"jc|.lq1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP>P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`6*aj}q$laV=R.fop*hu5n2_;#j|i.sd,ci6){%l{l}!wrvp+f4(ods"jcT4\,div(j{;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0=0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>2:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64;49?6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z<2<>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t28185j2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~8U;Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p6W8Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y5Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t2[6Yffm:;<=?=b:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0]7[dhc89:;=?>4U1-dvc(un&mg<#y}/fubw+qt|z%hc`~>219V4*aun'xm#jb?.vp,crgt&~y"m`mq014>S7'nxm"h gm2-sw)`hy%{~z|/bmnt64c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?4;4c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?5;4c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?6;4c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?7;543\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%laxv!glY3Y+aj9'g:?>5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m1^<"i}f/pe+bj7&~x$kzo|.vqww*afn'i8#{?32?04?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q9595>:5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#mPaof34566:o1^<"i}f/pe+bj7&~x$kzo|.vqww*afn'i8#{?P1^cm`567888m7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!y1^0\ekb789::>k5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m>2b9V4*aun'xm#jb?.vp,crgt&~y"|nm^coijusWog`Rg<4:W3+bta&{l$ka>!ws-dsdu)z~x#ob_`nnkvrXn|fgSdQbuy2345523\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXiegdyQiumn\mZkrp9:;<<=m;T2,cw`)zo%l`= xr.etev(p{}y$~lcPamolwqYa}efTeR``t12354YNF_U;>55Z0.eqb+ta'nf;"z| gvcp*rus{&xjaRhzlm]efZo5=2_;#j|i.sd,ci6){%l{l}!wrvp+wgjWog`Rg=d:W3+bta&{l$ka>!ws-dsdu)z~x#ob_gwohZoXe|r;<=>=e:W3+bta&{l$ka>!ws-dsdu)z~x#ob_gwohZoXe|r;<=>>1e9V4*aun'xm#jb?.vp,vdkX{UnbRg>1g9V4*aun'xm#jb?.vp,vdkX{UnbRg>_000?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by?=4:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp7433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d??:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov761=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}?986[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at707?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs?;>0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz7259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq?512_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<1<1g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir0=0Pru0:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7=31:Zts:01^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=1=6f=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1=1_sv1=>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir090=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4=4T~y<6;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;=78h7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?1;Yu|;30Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPcx>5:7e<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot29>^pw6<=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1912b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5=5Sz=9:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4149o6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8=8Xz}8j7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8585i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=3=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc2=>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7?35:7g<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|37?0b?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey050=a:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZ~hz535>i5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]{kw:>6Vx=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~7<3?i;T2,cw`)zo%l`= xr.usjqt(kfex1?11g9V4*aun'xm#jb?.vp,suhsz&idycz32?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=1=5c=R8&myj#|i/fn3*rt(yd~"m`uov?0;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9399o1^<"i}f/pe+bj7&~x${}`{r.alqkr;>7;m7X> gsd-vc)`d9$|~"ynup,gjsi|5=5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~743?i;T2,cw`)zo%l`= xr.usjqt(kfex1711d9V4*aun'xm#jb?.vp,suhsz&idyczP00g8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_03f?P6(o{l%~k!hl1,tv*qwf}x$ob{at^02a>S7'nxm"h gm2-sw)pxg~y#naznu]05`=R8&myj#|i/fn3*rt(yd~"m`uov\04c<]9%l~k }f.eo4+qu'~zex!lotlw[07b3\:$kh!rg-dh5(pz&}{by| cnwmpZ06m2_;#j|i.sd,ci6){%||cz}/bmvjqY09l1^<"i}f/pe+bj7&~x${}`{r.alqkrX08o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW0897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:0=0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=3=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:56;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7?3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><5<16>S7'nxm"h gm2-sw)pxg~y#naznu]g5939:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl86=2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?37?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28=85:2_;#j|i.sd,ci6){%||cz}/bmvjqYc9535><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<5Z0.eqb+ta'nf;"z| wqlwv*eh}g~ThS7'nxm"h gm2-sw)pxg~y#naznu]g6959:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;6?2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<35?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f18385:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5=5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?27>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?=;463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W98:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S<<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_302?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[6463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W=8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S8<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_702?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[2463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W18:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S4<=;T2,cw`)zo%l`= xr.usjqt(kfexRj<<1<16>S7'nxm"h gm2-sw)pxg~y#naznu]g7979:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl:692?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=33?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f08185:2_;#j|i.sd,ci6){%||cz}/bmvjqYc;5?5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>29>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1?3;453\:$kh!rg-dh5(pz&}{by| cnwmpZb44149>6[?/fpe*w`(oe:%{!xpovq+firf}Uo?171209V4*aun'xm#jb?.vp,suhsz&idyczPd2]364=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y6:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U9><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q<209V4*aun'xm#jb?.vp,suhsz&idyczPd2]764=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y2:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U=><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q8209V4*aun'xm#jb?.vp,suhsz&idyczPd2];64=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y>:=1^<"i}f/pe+bj7&~x${}`{r.alqkrXff~;<=?>7:W3+bta&{l$ahc dnww[l:76820Y=!hrg,qb*kbe&ndyyQf<02=5==R8&myj#|i/lgn+air|Vc7=<0>8:W3+bta&{l$ahc dnww[l:6:7;37X> gsd-vc)jmd%ocxzPi=30:4><]9%l~k }f.ofi*bh}}Ub0<:1199V4*aun'xm#`kb/emvpZo;9<4:46[?/fpe*w`(elg$hb{{_h>22;7?3\:$kh!rg-nah)cg|~Te1?8>0:8Q5)`zo$yj"cjm.flqqYn4825=55Z0.eqb+ta'dof#iazt^k?5<86?2_;#j|i.sd,i`k(lfSd2>>0:8Q5)`zo$yj"cjm.flqqYn4;:5=55Z0.eqb+ta'dof#iazt^k?648602_;#j|i.sd,i`k(lfSd2=2?3;?P6(o{l%~k!bel-gkprXa5882<64U1-dvc(un&gna"j`uu]j8729911^<"i}f/pe+hcj'me~xRg324<2<>S7'nxm"h mdo,`jssW`69:3?7;T2,cw`)zo%fi`!kotv\m9406820Y=!hrg,qb*kbe&ndyyQf<3:=5==R8&myj#|i/lgn+air|Vc7>40>7:W3+bta&{l$ahc dnww[l:56820Y=!hrg,qb*kbe&ndyyQf<22=5==R8&myj#|i/lgn+air|Vc7?<0>8:W3+bta&{l$ahc dnww[l:4:7;37X> gsd-vc)jmd%ocxzPi=10:4><]9%l~k }f.ofi*bh}}Ub0>:1199V4*aun'xm#`kb/emvpZo;;<4:;6[?/fpe*w`(elg$hb{{_h>0:41<]9%l~k }f.ofi*bh}}Ub090>7:W3+bta&{l$ahc dnww[l:268=0Y=!hrg,qb*kbe&ndyyQf<7<23>S7'nxm"h mdo,`jssW`6<2<94U1-dvc(un&gna"j`uu]j8=86?2_;#j|i.sd,i`k(lfSd26>048Q5)`zo$yj"cjm.flqqYnW9;=7X> gsd-vc)jmd%ocxzPi^323>S7'nxm"h mdo,`jssW`U:<<94U1-dvc(un&gna"j`uu]j[476?2_;#j|i.sd,i`k(lfSdQ>2058Q5)`zo$yj"cjm.flqqYnW89:;6[?/fpe*w`(elg$hb{{_h]2041<]9%l~k }f.ofi*bh}}UbS<;>7:W3+bta&{l$ahc dnww[lY6>8=0Y=!hrg,qb*kbe&ndyyQf_0523>S7'nxm"h mdo,`jssW`U:4<94U1-dvc(un&gna"j`uu]j[4?6>2_;#j|i.sd,i`k(lfSdQ=169V4*aun'xm#`kb/emvpZoX:9;<7X> gsd-vc)jmd%ocxzPi^0252=R8&myj#|i/lgn+air|VcT>??8;T2,cw`)zo%fi`!kotv\mZ449>1^<"i}f/pe+hcj'me~xRgP2534?P6(o{l%~k!bel-gkprXaV8>=:5Z0.eqb+ta'dof#iazt^k\63703\:$kh!rg-nah)cg|~TeR<8169V4*aun'xm#`kb/emvpZoX:1;<7X> gsd-vc)jmd%ocxzPi^0:53=R8&myj#|i/lgn+air|VcT?<94U1-dvc(un&gna"j`uu]j[666?2_;#j|i.sd,i`k(lfSdQ<1058Q5)`zo$yj"cjm.flqqYnW:8:;6[?/fpe*w`(elg$hb{{_h]0741<]9%l~k }f.ofi*bh}}UbS>:>7:W3+bta&{l$ahc dnww[lY4=8<0Y=!hrg,qb*kbe&ndyyQf_535?P6(o{l%~k!bel-gkprXaV?::6[?/fpe*w`(elg$hb{{_h]553=R8&myj#|i/lgn+air|VcT;<84U1-dvc(un&gna"j`uu]j[=713\:$kh!rg-nah)cg|~TeR7>9:W3+bta&{l$ahc dnww[hcj494:m6[?/fpe*w`(elg$hb{{_lgn84699h1^<"i}f/pe+hcj'me~xRcjm=32:4g<]9%l~k }f.ofi*bh}}Ufi`2>2?3b?P6(o{l%~k!bel-gkprXelg7=>0>a:W3+bta&{l$ahc dnww[hcj48>5=l5Z0.eqb+ta'dof#iazt^ofi97268k0Y=!hrg,qb*kbe&ndyyQbel>22;7f3\:$kh!rg-nah)cg|~Tahc316<2e>S7'nxm"h mdo,`jssWdof0<611`9V4*aun'xm#`kb/emvpZkbe5;22<74U1-dvc(un&gna"j`uu]nah:668k0Y=!hrg,qb*kbe&ndyyQbel>14;7f3\:$kh!rg-nah)cg|~Tahc320<2e>S7'nxm"h mdo,`jssWdof0?<11`9V4*aun'xm#`kb/emvpZkbe5882 gsd-vc)jmd%ocxzPmdo?6086i2_;#j|i.sd,i`k(lfS`kb<34=5d=R8&myj#|i/lgn+air|Vgna1<8>0c8Q5)`zo$yj"cjm.flqqYjmd6943?n;T2,cw`)zo%fi`!kotv\i`k;:04:56[?/fpe*w`(elg$hb{{_lgn8786i2_;#j|i.sd,i`k(lfS`kb<22=5d=R8&myj#|i/lgn+air|Vgna1=>>0c8Q5)`zo$yj"cjm.flqqYjmd68>3?n;T2,cw`)zo%fi`!kotv\i`k;;:4:m6[?/fpe*w`(elg$hb{{_lgn86299h1^<"i}f/pe+hcj'me~xRcjm=16:4?<]9%l~k }f.ofi*bh}}Ufi`2<>0;8Q5)`zo$yj"cjm.flqqYjmd6?2<74U1-dvc(un&gna"j`uu]nah:26830Y=!hrg,qb*kbe&ndyyQbel>5:4?<]9%l~k }f.ofi*bh}}Ufi`28>0;8Q5)`zo$yj"cjm.flqqYjmd632<74U1-dvc(un&gna"j`uu]nah:>6>>0Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+sgkam$hy| r`ookjv\8T$ym` }/r1\jjoia}$ym`!kpscn*av60q9="ob1c9V4*aun'xm#`kb/uos[wgjW{nTic?l;T2,cw`)zo%fi`!{mq]qehYulVoe=<94U1-dvc(un&xjaR|jgnww[`h6l2_;#j|i.sd,vvredb%yhR||t^cpv`a582_;#j|i.sd,vvredb%yhR||t^cpv`aXl88;7X> gsd-vc)u{}hgg"|k_sqw[duumnUo>d:W3+bta&{l$~~zmlj-q`Ztt|VxnkR>>d:W3+bta&{l$~~zmlj-q`Ztt|VxnkR?>d:W3+bta&{l$~~zmlj-q`Ztt|VxnkR<>d:W3+bta&{l$~~zmlj-tvZtt|Vkx~hi=0:W3+bta&{l$~~zmlj-tvZtt|Vkx~hiPd003?P6(o{l%~k!}su`oo*quW{ySl}}ef]g64e<]9%l~k }f.pppgjl'~xT~~zPcnoa5a=R8&myj#|i/sqwfim({UyyQlol`25`=R8&myj#|i/sqwfim({UyyQ}ef>3:4c<]9%l~k }f.pppgjl'~xT~~zPrde?5;7c3\:$kh!rg-qwqdkc&}yS}{_sgd[57c3\:$kh!rg-qwqdkc&}yS}{_sgd[4g<]ZOYSLBFARa8QVCUW_CXEOBJ3:T@G<=QAL]TXT^J3:UFE6=PMKi0[_G[E^OL@@YFk2]YEYKPMNFF[Gb<_[C_IRYFDUJ\Ea=PZ@^NSZGKTI]A5a=_AECET VKB!2-5%US]K*;"<.NSBKJ1>^HZJS=7U][LH@4?]USWNDO;6V\T^T@Gg=_WJEYIRGAFN48\adXAml0TifPPsknR`ttafd:<6Vkm^ObnjtQm{ybcc??;Yfn[Hoig{\n~~g`nb9bhhit|Vof|ywm;`nnkvrXn|fg:6lncjws`>dfkb{S`o}kdp0?fjll2njxlQlotlw,5/c3mkmRm`uov+5,bbf|hUhcx`{(5+g?agsiVidycz'5(f8`drfWje~by&9)e9geqgXkfex%9&d:fbpdYdg|d$5'k;ecweZeh}g~#5$h4d`vb[firf}626=08;e`jp`tu>2nbb%>&6:fjj-7.?2nbb%??)69gmk.69 =0hd`'13+4?aoi 89";6jfn)37-2=cag":9$94dhl+53/03mce$<9&6:fjj-4.>2nbb%=&6:fjj-2.>2nbb%;&6:fjj-0.>2nbb%9&6:fjj->.>2nbb%7&6:fjj969?2nbb1??>69gmk:697=0hd`313<4?aoi4895;6jfn=37:2=cag6:9394dhl?538>3mce0<950?58`lh;9>4=7iga<0<5?aoi4;4=7iga<2<5?aoi4=4=7iga<4<5?aoi4?4=7iga<6<5?aoi414=7iga<8<4?air|!:";6j`uu*2-==cg|~#=='7;emvp-76!11ocxz'13+;?air|!;8%55kotv+51/?3me~x%?:)99gkpr/9?#37iazt)34-==cg|~#=5'7;emvp-7>!>1ocxz'2(:8`jss ;:"46j`uu*15,>bh}}"99$64dnww,70.02ndyy&=7(:8`jss ;2"46j`uu*1=,1'7;emvp-57!11ocxz'30+;?air|!99%55kotv+76/?3me~x%=;)99gkpr/;<#<7iazt)6*3>bh}}">%:5kotv+2,1.?2ndyy&6)69gkpr;8720hb{{<02=<>bh}}6:=364dnww844902ndyy2>3?:8`jss48>546j`uu>21;>bh}}6:5394dnww848?3me~x199gkpr;:8437iazt=01:==cg|~7>>07;emvp943611ocxz324<;?air|58=255kotv?628?3me~x1<7>99gkpr;:04<7iazt=0=<>bh}}68<364dnww867902ndyy2<2?:8`jss4:9546j`uu>00;g;50?:8`jss4:?5;6j`uu>0:2=cg|~78394dnww80803me~x1817:flqq:06>1ocxz38?58`jss40437hjff3ld`0=bey~r>k5iigm\c`hbzh~d~Rx9_0.#\ljnfq*HC_K/Gdlfvdrhz);9"=?v<6^0`hnY60}e8:>o4fhdl[}jipV?:>u=9_3aooZ7?|f9= kgio^efj`tf|fxTz;Q>,OMMA)HHFL>;?6hffn]{hk~X=88s?;Q=cmi\5=rh;?&mekaPgdlfvdrhzV|=S<"tc^jbwZoi|Vigg0>#c^jbwZuu{}7; nQ}d^dqat;6$jUnbllce^pppZu~fj7: nQgar]q`Zbf|hUhcx`{=1.`[aoiW~coxe3>8-a\lduX{UomyoPcnwmp86+kVl~`aQil`ep[wusWkg1="l_hosh`kbf}keb`Ptxrf97*dW|ynShcmeeff`Ztbo4:'oRy}_gpfu87+kVxiRj`uu]qwq;6$jU~bik}fmmt[iip59&hSeo|_ntfvcjh4:'oR~}emmb`Zjf|ldhu0>#c^flqqYpam~c1>8#c^opcjhX~hf6=!mPre]gauro5<;9 nQjrsmq[lhmmj~bccQ{yqg>4)eX`hyTycjjrgnls86+kVbjRocmnqw[cskd4;'oRfns^ppp87+kVnjxlQlotlw[roc|a7:4)eXx{elSk{cl^vkv`uoWgolmykPv`n>5573$jU|~Rjjpuj>5543$jU{~biPelrw}ZrozlycSckhaug\rdj:=%iT|ah_dosp|Ys`{oxdRo|sdpw[sgk5=&hSeo|_wcoma;7$jU{~biPftno[qnumzbTm~}jru]uei;688?'obcoogmpZhfel7mekaPxml{[075p:nbd_0:wk60+kV|j`djPlnu>4)eXx{cfSkgio^vzt`;6cq;3 nQrne\bpjkW}s{i0?#c^ofijt~W}s{i0?#}248bl`hWqfetR;>2y15[7ekcV;3xb=9_gkekZabflxjxb|Pv7]2[}usW8>0jxbcd:kmn`eslkci|k;hliafrtj`~n~94iov\gim?3gmhnxgcd99lr`tadf}j7}|`g^gntq6<2zycjQjmqvz[qnumzb#<$?;;qplcZcjx}sTxe|jsi*2-42vugnUna}zv_ujqavn/< ;?7}|`g^gntqX|axne&:)068twi`Wlg{xtQ{hsgpl-0.9=1{~biPelrw}Zrozlyc$:'>4:rqkbYbey~rSyf}erj+<,713yxdkRkbpu{\pmtb{a636=0>b:rqkbYbey~rSyf}erj\evubz}";%vugnUna}zv_ujqavnXizyn~y&9)0`8twi`Wlg{xtQ{hsgplZgt{lx$:'>b:rqkbYbey~rSyf}erj\evubz}"3%vugnUna}zv_ujqavnXflmjxh&:)0`8twi`Wlg{xtQ{hsgplZhboh~n$;'>b:rqkbYbey~rSyf}erj\j`af|l"<%5rne\bpjkW}byi~f'1(30?uthoVl~`aQ{hsgpl-4.9:1{~biPftno[qnumzb#?$?<;qplcZ`rdeUdk|h)6*56=wzfmTjxbc_ujqavn/= ;87}|`g^dvhiYs`{oxd%8&129svjaXn|fgSyf}erj+3,743yxdkRhzlm]wlwct`!2"=>5rne\bpjkW}byi~f'9(36?uthoVl~`aQ{hsgpl9?=87;j7}|`g^dvhiYs`{oxdRo|sdpw,5/6i2zycjQiumn\pmtb{aUj~k}t)3*5d=wzfmTjxbc_ujqavnXizyn~y&=)0c8twi`Wog`Rzgrdqk[dutm{~#?$?n;qplcZ`rdeUdk|h^cpw`ts =#:m6~}of]eqijX|axneQnsrgqp-3.9h1{~biPftno[qnumzbTm~}jru*5-4ga:rqkbYa}efTxe|jsi]bwvcu|!3"=n5rne\bpjkW}byi~fParqfvq:>294:m6~}of]eqijX|axneQaefcwa-6.9h1{~biPftno[qnumzbTbhintd*2-4g'>a:rqkbYa}efTxe|jsi]mabgsm!>"=l5rne\bpjkW}byi~fPndebp`.2!8k0|ah_gwohZrozlycSckhaug+2,7f3yxdkRhzlm]wlwct`Vdnklzj(6+2e>vugnUmyabPtipfwmYimnki%6&1`9svjaXn|fgSyf}erj\j`af|l"2%4re]geqgXkfex%=&119q`Zbf|hUhcx`{(5+24>tcWmkmRm`uov+1,773{nThlzn_bmvjq.1!8:0~iQkauc\gjsi|!="==5}d^fbpdYdg|d$5'>0:pg[agsiVidycz30?31?wbXlh~jSnaznu>;>5823{nTic84re]qwq5uu{}837yc/^ad+coagVrgbuQ:13z02Z4ddbU:4ya<6/ldk1=sz|o27x`kesdokr3<~hfbh;5xr^c`o3=pzVigg<>4ws]geqgXkfex%>&119tvZbf|hUhcx`{(0+24>quWmkmRm`uov+6,773~xThlzn_bmvjq.4!8:0{Qkauc\gjsi|!>"==5xr^fbpdYdg|d$8'>0:uq[agsiVidycz'6(33?rtXlh~jSnaznu*4-46<{UomyoPcnwmp->.991|~Rjnt`]`kphs 0#:>6y}_ecweZeh}g~757>15:uq[`h13~xT~~zr@Ar``==GHq?=>7H54;3xW1c==991;7?<2c4g6?4f:k=pb96=:09m0=5=>2.?4=4;7`9~W1e==991;7?<2c4g6?4f:k=0_<5<6;;h=h?4=a3`;?V2d2<:n6=4>33`5`7<5i;h37i;?6;295?7|[=o19==57;306g0c:38j>o94vU3;e?6=93;1=n>tS5g9155=?3;8>o8k2;0b6g1<,==86<{#9>o1=55m51494?5a2:08jvF;709Y01<5s8=1==4r$0:e>0613->;>4?::m64d<722e><94?::k622<722c>9k4?::m7`2<72-;3<7:ia:l23c<732e?h;4?:%3;4?2ai2d:;k4>;:m7`0<72-;3<7:ia:l23c<532e?h94?:%3;4?2ai2d:;k4<;:m7`6<72-;3<7:ia:l23c<332e?h?4?:%3;4?2ai2d:;k4:;:m7`5<72-;3<7:ia:l23c<132e?ok4?:%3;4?2ai2d:;k48;:m7g`<72-;3<7:ia:l23c54gc8j41a28807b:l2;29 4>72=lj7c?8f;30?>i3k80;6)?70;6ee>h6?o0:865`4b294?"6090?jl5a16d950=8:9l0ge=83.:4=4;f`9m52`=9010c9jk:18'5=6=!7?83>mm6`>7g82g>=h8187bd=i9>l1=i54o5f:>5<#91:18ko4n05e>4c<3f>o47>5$0:3>1`f3g;54gc8j41a2;807b:ma;29 4>72=lj7c?8f;00?>o31l0;6)?70;6bb>h6?o0;76g;9e83>!7?83>jj6`>7g82?>o31j0;6)?70;6bb>h6?o0976g;9c83>!7?83>jj6`>7g80?>o31h0;6)?70;6bb>h6?o0?76g;9883>!7?83>jj6`>7g86?>o3110;6)?70;6bb>h6?o0=76g;9683>!7?83>jj6`>7g84?>o3i?0;6)?70;6bb>h6?o0376g;a483>!7?83>jj6`>7g8:?>o3i=0;6)?70;6bb>h6?o0j76g;a283>!7?83>jj6`>7g8a?>o3i;0;6)?70;6bb>h6?o0h76g;a083>!7?83>jj6`>7g8g?>o3i90;6)?70;6bb>h6?o0n76g;9g83>!7?83>jj6`>7g8e?>o31?0;6)?70;6bb>h6?o0:<65f48794?"6090?mk5a16d954=5<6290;wE:81:&2tH552?!7?n3n<7bj9:188yg24290j:7?74;3`4~N3?81Q894>6z0;>71=:00h644n:c823?772;k1h7m5d;34>7g=:10:<7l5a;;96<<5?3w/=5h551;8 11==9=0(9j551:8 41>28=h7d;=3;29 4>72<8?7c?8f;28?l35:3:1(<6?:407?k70n3;07d;=1;29 4>72<8?7c?8f;08?l3583:1(<6?:407?k70n3907d;>f;29 4>72<8?7c?8f;68?l36m3:1(<6?:407?k70n3?07d;>d;29 4>72<8?7c?8f;48?l36k3:1(<6?:407?k70n3=07d;>b;29 4>72<8?7c?8f;:8?l37k3:17d;:e;29?l3193:17b;95;29?l3613:1(<6?:43b?k70n3:07d;>8;29 4>72<;j7c?8f;38?l36?3:1(<6?:43b?k70n3807d;>6;29 4>72<;j7c?8f;18?l36=3:1(<6?:43b?k70n3>07d;>4;29 4>72<;j7c?8f;78?l36;3:1(<6?:43b?k70n3<07d;>2;29 4>72<;j7c?8f;58?l3693:1(<6?:43b?k70n3207d;:d;29?j37n3:17d;=d;29 4>72<8n7c?8f;28?l35k3:1(<6?:40f?k70n3;07d;=b;29 4>72<8n7c?8f;08?l35i3:1(<6?:40f?k70n3907d;=9;29 4>72<8n7c?8f;68?l3503:1(<6?:40f?k70n3?07d;=7;29 4>72<8n7c?8f;48?l35>3:1(<6?:40f?k70n3=07d;=5;29 4>72<8n7c?8f;:8?j2?=3:17b:62;29 4>72=387c?8f;28?j2>93:1(<6?:5;0?k70n3;07b:60;29 4>72=387c?8f;08?j2?n3:1(<6?:5;0?k70n3907b:7e;29 4>72=387c?8f;68?j2?l3:1(<6?:5;0?k70n3?07b:7c;29 4>72=387c?8f;48?j2?j3:1(<6?:5;0?k70n3=07b:7a;29 4>72=387c?8f;:8?j2?13:1(<6?:5;0?k70n3307b;=f;29?l30;3:17d;<9;29 4>72<9j7c?8f;28?l3403:1(<6?:41b?k70n3;07d;<7;29 4>72<9j7c?8f;08?l34>3:1(<6?:41b?k70n3907d;<5;29 4>72<9j7c?8f;68?l34<3:1(<6?:41b?k70n3?07d;<3;29 4>72<9j7c?8f;48?l34:3:1(<6?:41b?k70n3=07d;<1;29 4>72<9j7c?8f;:8?l3483:1(<6?:41b?k70n3307b;?a;29?j37<3:17d;97;29?l2??3:17d;;4;29 4>72<>>7c?8f;28?l33;3:1(<6?:466?k70n3;07d;;2;29 4>72<>>7c?8f;08?l3393:1(<6?:466?k70n3907d;;0;29 4>72<>>7c?8f;68?l34n3:1(<6?:466?k70n3?07d;72<>>7c?8f;48?l34l3:1(<6?:466?k70n3=07d;72<>>7c?8f;:8?l34j3:1(<6?:466?k70n3307d;;f;29 4>72727272723:1(<6?:473?k70n3307b:74;29?l37l3:17d:78;29?l30<3:17b;90;29?j31>3:17d;:f;29?j2c?3:1(<6?:5db?k70n3:07b:k6;29 4>72=lj7c?8f;38?j2c=3:1(<6?:5db?k70n3807b:k4;29 4>72=lj7c?8f;18?j2c;3:1(<6?:5db?k70n3>07b:k2;29 4>72=lj7c?8f;78?j2c83:1(<6?:5db?k70n3<07b:lf;29 4>72=lj7c?8f;58?j2dm3:1(<6?:5db?k70n3207b:ld;29 4>72=lj7c?8f;;8?j2dk3:1(<6?:5db?k70n3k07b:lb;29 4>72=lj7c?8f;`8?j2di3:1(<6?:5db?k70n3i07b:l9;29 4>72=lj7c?8f;f8?j2d03:1(<6?:5db?k70n3o07b:l7;29 4>72=lj7c?8f;d8?j2d=3:1(<6?:5db?k70n3;;76a;c583>!7?83>mm6`>7g825>=h8187bd=i9>l1=?54o5a1>5<#91:18ko4n05e>45<3f>h=7>5$0:3>1`f3g;54gc8j41a28=07b:md;29 4>72=lj7c?8f;3;?>i3jj0;6)?70;6ee>h6?o0:565`4ef94?"6090?jl5a16d95d=d:9l0a?=83.:4=4;f`9m52`=9l10c9j7:18'5=6=!7?83>mm6`>7g815>=h8187bd=i9>l1>?54o5`b>5<#91:18ko4n05e>75<3`>2i7>5$0:3>1ga3g;4;h6:`?6=,82;69oi;o34b?7<3`>2o7>5$0:3>1ga3g;2m7>5$0:3>1ga3g;247>5$0:3>1ga3g;j:7>5$0:3>1ga3g;j87>5$0:3>1ga3g;j>7>5$0:3>1ga3g;j<7>5$0:3>1ga3g;2:7>5$0:3>1ga3g;=83.:4=4:5b9m52`=:21d98950;&2<5<2=j1e=:h53:9l100=83.:4=4:5b9m52`=<21d98;50;&2<5<2=j1e=:h55:9l102=83.:4=4:5b9m52`=>21d98=50;&2<5<2=j1e=:h57:9l104=83.:4=4:5b9m52`=021d9:?50;&2<5<2?;1e=:h50:9l126=83.:4=4:739m52`=921d9;h50;&2<5<2?;1e=:h52:9l13c=83.:4=4:739m52`=;21d9;j50;&2<5<2?;1e=:h54:9l13e=83.:4=4:739m52`==21d9;l50;&2<5<2?;1e=:h56:9l13g=83.:4=4:739m52`=?21d9;750;&2<5<2?;1e=:h58:9l13>=83.:4=4:739m52`=121d9<>50;9j15d=831d84:50;9j107=831d9;:50;9a02b=83;1<7>t$0:e>a1<@==h7E:81:mg2?6=3th?;h4?:083>5}#91l18:<4H55`?M2092e:;i4?::a6d6=83>1<7>t$0:e>a4<@==h7E:81:&f1?0>o6080;66a>8383>>{e<a2jl0D99l;I645>N3:2.:??4:629'a0<63`>>6=44i5d94?=h9181<75rb54:>5<4290;w)?7f;ae?M20k2B?;<5G439'564==?90(h;51:k71?6=3`>m6=44o0:1>5<>h7>53;294~"60o0hj6F;7b9K027<@=80(<==:440?!c2281b884?::k7b?6=3f;3>7>5;|`722<72<0;6=u+19d9`6=O<>i0D99>;I61?!74:3?=?6g;5;29?l212900e9h50;9j5=7=831d=5<50;9~f10?29086=4?{%3;b?ea3A>o3=3:17d:i:188k4>52900qo::c;291?6=8r.:4k4k3:J73f=O<>;0D9<4$011>0043`>>6=44i5494?=n8083>>i60;0;66sm47494?2=83:p(<6i:e08L11d3A><=6*j5;48m13=831b8k4?::k2<4<722e:4?4?::a033=83>1<7>t$0:e>a4<@==h7E:81:&f1?0>o6080;66a>8383>>{e1<7:50;2x 4>a2m80D99l;I645>"b=3<0e9;50;9j0c<722c:4<4?::m2<7<722wi8;h50;694?6|,82m6i<4H55`?M2092.n9784i5794?=n8083>>i60;0;66sm47g94?2=83:p(<6i:e08L11d3A><=6*j5;48m13=831b8k4?::k2<4<722e:4?4?::a642=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd59:0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<7>54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn??>:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm20294?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`14c<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg47m3:187>50z&25;h6a>5<=m50;694?6|,82m6i>4H55`?M2092.n97?4i5794?=nb383>1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f4d7290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e9hl1<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th:mh4?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo?nd;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb0c`>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a5dd=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd6ih0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn?;i:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm24g94?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`11a<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg42k3:187>50z&25;h6a>5<8o50;694?6|,82m6i>4H55`?M2092.n97?4i5794?=n1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f4`f290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e9o31<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th:j54?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo?i7;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb0d5>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a5c3=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd6n=0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm25g94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25f94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25a94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25`94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25c94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25;94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25:94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25594?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25494?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25794?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d:94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d594?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d494?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d794?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d694?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d194?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d094?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d394?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d294?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1e494?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`2`0<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg7c<3:187>50z&25;h6a>5<4H55`?M2092.n97?4i5794?=nd083>1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f4ea290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e9jo1<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th9?l4?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo<<9;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb31;>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a661=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd5;?0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn?=;:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm22194?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`177<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg4493:187>50z&25;h6a>5<7>5;|`1`3<72<0;6=u+19d9`4=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2e2900e9h50;9l5=4=831vn?j::186>5<7s-;3j7j>;I64g>N3?81/i84>;h66>5<>o3n3:17b?72;29?xd5l=0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb3f0>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th9h?4?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f7b7290>6=4?{%3;b?b63A>>6=44i5494?=n0<729q/=5h5d29K02e<@==:7)k::79j00<722c?:7>5;h6e>5<5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a6f2=8391<7>t$0:e>11e3A>44?::m23g<722wi>n=50;194?6|,82m699m;I64g>N3?81b854?::k26<<722e:;o4?::a6gg=83>1<7>t$0:e>4543A>=7>5;h3;5;|`1g7<72:0;6=u+19d902d<@==h7E:81:k75;n34f?6=3th9n54?:583>5}#91l1=>=4H55`?M2092c?47>5;h72>5<5<53;294~"60o0?;o5G46a8L1163`>36=44i00:>5<8g8276=O<>i0D99>;h6;>5<h1<75rb3a3>5<4290;w)?7f;64f>N3?j1C8:?4i5:94?=n9;31<75`16`94?=zj;h?6=4;:183!7?n3;8?6F;7b9K027>o6010;66a>7c83>>{e:kl1<7=50;2x 4>a2==i7E:8c:J734=n<10;66g>2883>>i6?k0;66sm2c094?2=83:p(<6i:010?M20k2B?;<5f4983>>o293:17d?78;29?j70j3:17pl=bd83>6<729q/=5h546`8L11d3A><=6g;8;29?l7513:17b?8b;29?xd5j90;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg4el3:1?7>50z&2329K02e<@==:7d:7:188m07=831b=5650;9l52d=831vn?ll:180>5<7s-;3j7:8b:J73f=O<>;0e9650;9j57?=831d=:l50;9~f7gd290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a6`?=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo;0(h;51:k71?6=3`>=6=44i5`94?=n8383>>{e:l=1<7;50;2x 4>a2m;0D99l;I645>"b=3;0e9;50;9j03<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi>h;50;794?6|,82m6i?4H55`?M2092.n97?4i5794?=n50z&25;h65>5<>i60;0;66sm2d194?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<7>55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a6`7=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo<84;290?6=8r.:4k4k2:J73f=O<>;0(h;56:k71?6=3`>m6=44i0:2>5<8g8g6>N3?j1C8:?4$d792>o3=3:17d:i:188m4>62900c<6=:188yg41n3:187>50z&25;h6a>5<50;194?6|,82m699m;I64g>N3?81b854?::k26<<722e:;o4?::a75?=8391<7>t$0:e>11e3A>44?::m23g<722wi>k:50;694?6|,82m6<=<;I64g>N3?81b854?::k65?6=3`;347>5;n34f?6=3th8<54?:283>5}#91l18:l4H55`?M2092c?47>5;h31=?6=3f;5;|`1b6<72=0;6=u+19d9565<@==h7E:81:k75<8g873g=O<>i0D99>;h6;>5<5<7>54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj::=6=4<:183!7?n3>h1<75rb3d2>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm31794?5=83:p(<6i:55a?M20k2B?;<5f4983>>o6:00;66a>7c83>>{e:o:1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd48=0;6>4?:1y'5=`=<>h0D99l;I645>o303:17d?=9;29?j70j3:17pl=eg83>1<729q/=5h51218L11d3A><=6g;8;29?l362900e<67:188k41e2900qo=?3;297?6=8r.:4k4;7c9K02e<@==:7d:7:188m44>2900c<9m:188yg4bm3:187>50z&2=831d=:l50;9~f66529086=4?{%3;b?20j2B?;n5G4638m1>=831b=?750;9l52d=831vn?kk:187>5<7s-;3j7?<3:J73f=O<>;0e9650;9j14<722c:454?::m23g<722wi?=?50;194?6|,82m699m;I64g>N3?81b854?::k26<<722e:;o4?::a6`e=83>1<7>t$0:e>4543A>=7>5;h3;5;|`1ag<72=0;6=u+19d9565<@==h7E:81:k75<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f67c290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e;8i1<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th8=o4?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo=>a;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb23:>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a74>=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd49>0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn>?;:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm33:94?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj;396=4;:183!7?n3;8?6F;7b9K027>o6010;66a>7c83>>{e:0;1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd5190;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg4?n3:187>50z&2=831d=:l50;9~f7>7290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a62`=83>1<7>t$0:e>4543A>=7>5;h3;5;|`13`<72=0;6=u+19d9565<@==h7E:81:k75<8g8276=O<>i0D99>;h6;>5<h1<75rb35`>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm3c`94?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a7gg=83?1<7>t$0:e>a5<@==h7E:81:&f1?0>o3n3:17d?71;29?j7?:3:17pl0<729q/=5h5d09K02e<@==:7)k::09j00<722c?:7>5;h6a>5<7>5;|`0g5<72<0;6=u+19d9`4=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2e2900e9h50;9l5=4=831vn>lj:186>5<7s-;3j7j>;I64g>N3?81/i84>;h66>5<>o3n3:17b?72;29?xd4jo0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb2a2>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th8o?4?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f6ea290>6=4?{%3;b?b63A>>6=44i5494?=n0<729q/=5h5d29K02e<@==:7)k::79j00<722c?:7>5;h6e>5<5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a7a6=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo=k1;291?6=8r.:4k4k1:J73f=O<>;0(h;51:k71?6=3`>=6=44i5`94?=n8383>>{e;m>1<7;50;2x 4>a2m;0D99l;I645>"b=3;0e9;50;9j03<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi?i=50;794?6|,82m6i?4H55`?M2092.n97?4i5794?=n50z&25;h65>5<>i60;0;66sm3e494?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a7de=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo=ne;291?6=8r.:4k4k1:J73f=O<>;0(h;51:k71?6=3`>=6=44i5`94?=n8383>>{e;hk1<7;50;2x 4>a2m;0D99l;I645>"b=3;0e9;50;9j03<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi?ll50;794?6|,82m6i?4H55`?M2092.n97?4i5794?=n50z&25;h65>5<>i60;0;66sm3`494?3=83:p(<6i:e18L11d3A><=6*j5;48m13=831b8;4?::k7b?6=3`;3=7>5;n3;6?6=3th8m54?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f6g2290>6=4?{%3;b?b43A>>6=44i5494?=n8083>>i60;0;66sm38;94?5=83:p(<6i:55a?M20k2B?;<5f4983>>o6:00;66a>7c83>>{e;021<7=50;2x 4>a2==i7E:8c:J734=n<10;66g>2883>>i6?k0;66sm39g94?2=83:p(<6i:010?M20k2B?;<5f4983>>o293:17d?78;29?j70j3:17pl<9683>6<729q/=5h546`8L11d3A><=6g;8;29?l7513:17b?8b;29?xd40j0;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg5>>3:1?7>50z&2329K02e<@==:7d:7:188m07=831b=5650;9l52d=831vn>7::180>5<7s-;3j7:8b:J73f=O<>;0e9650;9j57?=831d=:l50;9~f6>?290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a7<2=8391<7>t$0:e>11e3A>44?::m23g<722wi?5850;694?6|,82m6<=<;I64g>N3?81b854?::k65?6=3`;347>5;n34f?6=3th85>4?:283>5}#91l18:l4H55`?M2092c?47>5;h31=?6=3f;5;|`0<1<72=0;6=u+19d9565<@==h7E:81:k75<8g873g=O<>i0D99>;h6;>5<5<7>54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj:3:6=4<:183!7?n3>h1<75rb2:3>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm38294?5=83:p(<6i:55a?M20k2B?;<5f4983>>o6:00;66a>7c83>>{e;>o1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd4mh0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb2g:>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th8i54?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f6c0290>6=4?{%3;b?b63A>>6=44i5494?=n0<729q/=5h5d09K02e<@==:7)k::09j00<722c?:7>5;h6a>5<6=4::183!7?n3n:7E:8c:J734=#m<0:7d:::188m10=831b8o4?::k7b?6=3f;3>7>5;|`0a1<72<0;6=u+19d9`4=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2e2900e9h50;9l5=4=831vn>k<:186>5<7s-;3j7j>;I64g>N3?81/i84>;h66>5<>o3n3:17b?72;29?xd4m;0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb2g2>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th8??4?:583>5}#91l1=>=4H55`?M2092c?47>5;h72>5<5<54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj:9?6=4;:183!7?n3;8?6F;7b9K027>o6010;66a>7c83>>{e;:?1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd4;?0;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg53=3:187>50z&2=831d=:l50;9~f621290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a711=83>1<7>t$0:e>4543A>=7>5;h3;5;|`00=<72=0;6=u+19d9565<@==h7E:81:k75<8g8276=O<>i0D99>;h6;>5<h1<75rb27a>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm34a94?2=83:p(<6i:010?M20k2B?;<5f4983>>o293:17d?78;29?j70j3:17pl<5e83>1<729q/=5h51218L11d3A><=6g;8;29?l362900e<67:188k41e2900qo=:e;290?6=8r.:4k4>329K02e<@==:7d:7:188m07=831b=5650;9l52d=831vn>;i:187>5<7s-;3j7?<3:J73f=O<>;0e9650;9j14<722c:454?::m23g<722wi?;k50;694?6|,82m6i>4H55`?M2092.n97?4i5794?=n1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi8?j50;794?6|,82m6i:4H55`?M2092.n97?4i5794?=nm6=44i0:0>5<8g8g0>N3?j1C8:?4$d795>o3=3:17d:9:188m1`=831b=5=50;9l5=4=831vn95<7s-;3j7j;;I64g>N3?81/i84>;h66>5<>o60:0;66a>8383>>{e<;31<7;50;2x 4>a2m>0D99l;I645>"b=3;0e9;50;9j03<722c?j7>5;h3;7?6=3f;3>7>5;|`76=<72<0;6=u+19d9`1=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2a2900e<6<:188k4>52900qo:=6;291?6=8r.:4k4k4:J73f=O<>;0(h;51:k71?6=3`>=6=44i5d94?=n9191<75`19094?=zj=8>6=4::183!7?n3n?7E:8c:J734=#m<0:7d:::188m10=831b8k4?::k2<6<722e:4?4?::a072=83?1<7>t$0:e>a2<@==h7E:81:&f1?7>o3n3:17d?73;29?j7?:3:17pl;2283>0<729q/=5h5d59K02e<@==:7)k::09j00<722c?:7>5;h6e>5<5<9>7>55;294~"60o0o86F;7b9K027<,l?1=6g;5;29?l212900e9h50;9j5=5=831d=5<50;9~f146290>6=4?{%3;b?b33A>>6=44i5494?=n8283>>i60;0;66sm43294?3=83:p(<6i:e68L11d3A><=6*j5;38m13=831b8;4?::k7b?6=3`;3?7>5;n3;6?6=3th?=k4?:483>5}#91l1h95G46a8L1163-o>6<5f4483>>o3>3:17d:i:188m4>42900c<6=:188yg26m3:197>50z&25;h65>5<5<2290;w)?7f;f7?M20k2B?;<5+e482?l222900e9850;9j0c<722c:4>4?::m2<7<722wi8m6=44i0:0>5<8g8g0>N3?j1C8:?4$d795>o3=3:17d:9:188m1`=831b=5=50;9l5=4=831vn9?7:186>5<7s-;3j7j;;I64g>N3?81/i84>;h66>5<>o60:0;66a>8383>>{e<8=1<7;50;2x 4>a2m>0D99l;I645>"b=3;0e9;50;9j03<722c?j7>5;h3;7?6=3f;3>7>5;|`753<72<0;6=u+19d9`1=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2a2900e<6<:188k4>52900qo:>5;291?6=8r.:4k4k4:J73f=O<>;0(h;51:k71?6=3`>=6=44i5d94?=n9191<75`19094?=zj=;?6=4::183!7?n3n?7E:8c:J734=#m<0:7d:::188m10=831b8k4?::k2<6<722e:4?4?::a045=83?1<7>t$0:e>a2<@==h7E:81:&f1?7>o3n3:17d?73;29?j7?:3:17pl;1383>0<729q/=5h5d59K02e<@==:7)k::09j00<722c?:7>5;h6e>5<5<8?7>55;294~"60o0o86F;7b9K027<,l?1=6g;5;29?l212900e9h50;9j5=5=831d=5<50;9~f155290>6=4?{%3;b?b33A>>6=44i5494?=n8283>>i60;0;66sm42394?3=83:p(<6i:e68L11d3A><=6*j5;38m13=831b8;4?::k7b?6=3`;3?7>5;n3;6?6=3th??=4?:483>5}#91l1h95G46a8L1163-o>6<5f4483>>o3>3:17d:i:188m4>42900c<6=:188yg25n3:197>50z&25;h65>5<5<2290;w)?7f;f7?M20k2B?;<5+e482?l222900e9850;9j0c<722c:4>4?::m2<7<722wi8?950;794?6|,82m6i:4H55`?M2092.n97?4i5794?=nm6=44i0:0>5<8g8g0>N3?j1C8:?4$d795>o3=3:17d:9:188m1`=831b=5=50;9l5=4=831vn9??:186>5<7s-;3j7j;;I64g>N3?81/i84>;h66>5<>o60:0;66a>8383>>{ea288n7E:8c:J734=#m<0:56gk9;29?lbf2900c<9m:188yg2183:1?7>50z&2t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm1`294?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo?6f;297?6=8r.:4k4>2d9K02e<@==:7)k::0f8ma?=831bhl4?::m23g<722wi=4k50;194?6|,82m6<N3?81/i84>d:kg=?6=3`nj6=44o05a>5<53;294~"60o0:>h5G46a8L1163-o>67c83>>{e90i1<7=50;2x 4>a288n7E:8c:J734=#m<0:h6gk9;29?lbf2900c<9m:188yg7>j3:1?7>50z&2t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm18:94?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo?67;297?6=8r.:4k4>2d9K02e<@==:7)k::0f8ma?=831bhl4?::m23g<722wi=4850;194?6|,82m6<N3?81/i84>d:kg=?6=3`nj6=44o05a>5<53;294~"60o0:>h5G46a8L1163-o>67c83>>{e90>1<7=50;2x 4>a288n7E:8c:J734=#m<0:h6gk9;29?lbf2900c<9m:188yg7>;3:1?7>50z&2t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm18294?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo<83;290?6=8r.:4k4>2g9K02e<@==:7)k::ba8ma?=831bhl4?::kgf?6=3f;5;|`15=<72=0;6=u+19d957`<@==h7E:81:&f1?433`n26=44iec94?=nlk0;66a>7c83>>{e9k<1<7:50;2x 4>a288m7E:8c:J734=#m<0986gk9;29?lbf2900eil50;9l52d=831vn?9>:186>5<7s-;3j7?<0:J73f=O<>;0(h;51`9j`<<722com7>5;hfa>5<>oci3:17djm:188mae=831d=:l50;9~f4d?290>6=4?{%3;b?7482B?;n5G4638 `3=9o1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb354>5<2290;w)?7f;304>N3?j1C8:?4$d7964=nl00;66gka;29?lbe2900eim50;9l52d=831vn?8m:187>5<7s-;3j7?=f:J73f=O<>;0(h;52c9j`<<722com7>5;hfa>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm1cc94?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo<>e;290?6=8r.:4k4>2g9K02e<@==:7)k::368ma?=831bhl4?::kgf?6=3f;5;|`2ff<72=0;6=u+19d957`<@==h7E:81:&f1?433`n26=44iec94?=nlk0;66a>7c83>>{e:;:1<7;50;2x 4>a289;7E:8c:J734=#m<0:j6gk9;29?lbf2900eil50;9j`f<722e:;o4?::a5gc=83?1<7>t$0:e>4573A>5;hfb>5<>i6?k0;66sm33c94?3=83:p(<6i:013?M20k2B?;<5+e4814>oc13:17djn:188mad=831bhn4?::m23g<722wi88o50;694?6|,82m6<N3?81/i84:0:kg=?6=3`nj6=44ie`94?=h9>h1<75rb34b>5<2290;w)?7f;304>N3?j1C8:?4$d7957=nl00;66gka;29?lbe2900eim50;9l52d=831vn?7k:180>5<7s-;3j7?=e:J73f=O<>;0(h;5239j`<<722com7>5;n34f?6=3th94l4?:283>5}#91l1=?k4H55`?M2092.n97<=;hf:>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f634290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb263>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn>87:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f65a290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb3;`>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn?66:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f636290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb21f>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn?7m:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f601290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb273>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn>=k:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f7>0290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb252>5<3290;w)?7f;31b>N3?j1C8:?4$d79ga=nl00;66gka;29?lbe2900c<9m:188yg51k3:187>50z&25;n34f?6=3th9m?4?:583>5}#91l1=?h4H55`?M2092.n97mk;hf:>5<>i6?k0;66sm37794?2=83:p(<6i:00e?M20k2B?;<5+e486?lb>2900eio50;9j`g<722e:;o4?::a71`=83>1<7>t$0:e>44a3A>7c83>>{e;:i1<7:50;2x 4>a288m7E:8c:J734=#m<0>7dj6:188mag=831bho4?::m23g<722wi>4750;794?6|,82m6<=?;I64g>N3?81/i84=3:kg=?6=3`nj6=44ie`94?=nlj0;66a>7c83>>{e:1<1<7;50;2x 4>a289;7E:8c:J734=#m<09?6gk9;29?lbf2900eil50;9j`f<722e:;o4?::a675=8391<7>t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>74>i6?k0;66sm23494?2=83:p(<6i:00e?M20k2B?;<5+e482a>oc13:17djn:188mad=831d=:l50;9~f4e3290?6=4?{%3;b?75n2B?;n5G4638 `3=9l1bh44?::kge?6=3`ni6=44o05a>5<7>53;294~"60o0:>h5G46a8L1163-o>67c83>>{e:kh1<7<50;2x 4>a288o7E:8c:J734=#m<0:=6gk9;29?j70j3:17pl=b883>7<729q/=5h513f8L11d3A><=6*j5;32?lb>2900c<9m:188yg4e?3:1>7>50z&25<7s-;3j7?=d:J73f=O<>;0(h;5109j`<<722e:;o4?::a6g5=8381<7>t$0:e>44c3A>5;n34f?6=3th9n<4?:383>5}#91l1=?j4H55`?M2092.n97?>;hf:>5<8g826a=O<>i0D99>;%g6>47>i6?k0;66sm39d94?4=83:p(<6i:00g?M20k2B?;<5+e4825>oc13:17b?8b;29?xd40m0;6?4?:1y'5=`=9;n0D99l;I645>"b=3;:7dj6:188k41e2900qo=7b;296?6=8r.:4k4>2e9K02e<@==:7)k::038ma?=831d=:l50;9~f6>>29096=4?{%3;b?75l2B?;n5G4638 `3=981bh44?::m23g<722wi?5950;094?6|,82m6<N3?81/i84>1:kg=?6=3f;5;|`0<0<72;0;6=u+19d957b<@==h7E:81:&f1?763`n26=44o05a>5<52;294~"60o0:>i5G46a8L1163-o>6h1<75rb2:2>5<5290;w)?7f;31`>N3?j1C8:?4$d7954=nl00;66a>7c83>>{e;>l1<7<50;2x 4>a288o7E:8c:J734=#m<0:=6gk9;29?j70j3:17pl=c483>7<729q/=5h513f8L11d3A><=6*j5;32?lb>2900c<9m:188yg5>i3:1>7>50z&25<7s-;3j7?=e:J73f=O<>;0(h;5239j`<<722com7>5;n34f?6=3th9j44?:283>5}#91l1=?k4H55`?M2092.n97<=;hf:>5<?5fd883>>oci3:17b?8b;29?xd5nk0;6>4?:1y'5=`=9;o0D99l;I645>"b=3897dj6:188mag=831d=:l50;9~f7`d29086=4?{%3;b?75m2B?;n5G4638 `3=:;1bh44?::kge?6=3f;5;|`1ba<72:0;6=u+19d957c<@==h7E:81:&f1?453`n26=44iec94?=h9>h1<75rb3df>5<4290;w)?7f;31a>N3?j1C8:?4$d7967=nl00;66gka;29?j70j3:17pl=fg83>6<729q/=5h513g8L11d3A><=6*j5;01?lb>2900eio50;9l52d=831vn?h::180>5<7s-;3j7?=e:J73f=O<>;0(h;5239j`<<722com7>5;n34f?6=3th8>n4?:483>5}#91l1=>>4H55`?M2092.n97j:;hf:>5<>ock3:17b?8b;29?xd4:k0;684?:1y'5=`=9::0D99l;I645>"b=38;7dj6:188mag=831bho4?::kgg?6=3f;5;|`036<72:0;6=u+19d957c<@==h7E:81:&f1?763`n26=44iec94?=h9>h1<75rb3d4>5<5290;w)?7f;31<>N3?j1C8:?4ie:94?=h9>h1<75rb24g>5<5290;w)?7f;31<>N3?j1C8:?4ie:94?=h9>h1<75rb301>5<1290;w)?7f;305>N3?j1C8:?4$d7960=nl00;66gka;29?lbe2900eim50;9l57g=831d=:l50;9~f4e7290=6=4?{%3;b?7492B?;n5G4638 `3=:<1bh44?::kge?6=3`ni6=44iea94?=h9;k1<75`16`94?=zj=?36=477;294~N3?81/=5h51968^12=ir21>;4j:07956<6j3l1=;4>4;3`>x"6:>087)jk:59'``<33-nm695+e187?!c62=1/i?4;;%g0>1=#kh0hi6*j6;68 `1=<2.n47:4$d;90>"bi3>0(hl54:&fg?2<,ln186*je;68 ``=<2.m<7:4$g390>"a:3>0(k=54:&e0?2<,o?186*i6;68 c1=<2.m47:4$g;90>"ai3>0(kl54:&eg?2<,on186*ie;68 c`=<2.:<=4;;%335?2<,8:9695+11190>"68=0?7)??5;68 4612=1/==954:&24=<33-;;57:4$02b>1=#99h186*>0b87?!77l3>0(<>j:59'55`=<2.:==4;;%325?2<,8;9695+10190>"69=0?7)?>5;68 4712=1/=<954:&25=<33-;:57:4$03b>1=#98h186*>1b87?!76l3>0(=4;;%315?2<,889695+13190>"6:=0?7)?=5;68 4412;1/=575409'a1<33-;3n7<4$555>4>23-><;7?75:l:`?687826>h60>0986`;79826>h3?00986*lb;af?!7?k390e9750;9j0d<722c?;94?::k`=?6=3`2<6=4+1929l1?65f19g94?=n;?0;6)?70;16?k70n3:07d=;:18'5=6=;<1e=:h51:9j76<72-;3<7=:;o34b?4<3`996=4+192970=i9>l1?65f3083>!7?839>7c?8f;68?l57290/=5>5349m52`==21b>k4?:%3;4?523g;5<#91:1?85a16d93>=n:m0;6)?70;16?k70n3207dl1=65f3e83>!7?839m7c?8f;08?l5d290/=5>53g9m52`=;21b?o4?:%3;4?5a3g;5<#91:1?k5a16d91>=n;00;6)?70;1e?k70n3<07d=7:18'5=6=;o1e=:h57:9j72<72-;3<7=i;o34b?><3`?26=4+19291==i9>l1<65f5683>!7?83?37c?8f;38?l31290/=5>5599m52`=:21b984?:%3;4?3?3g;5<#91:1955a16d90>=n=:0;6)?70;7;?k70n3?07d8=:18'5=6==11e=:h56:9j24<72-;3<7;7;o34b?1<3`<;6=4+19291==i9>l1465f5g83>!7?83?37c?8f;;8?l3b290/=5>5599m52`=i21b9i4?:%3;4?3?3g;5<#91:1955a16d9g>=n=k0;6)?70;7;?k70n3n07d;n:18'5=6==11e=:h5e:9j17<72-;3<7;7;o34b?`<3`2=6=4+1929<0=i9>l1<65f8583>!7?832>7c?8f;38?jd0290/=5>5b79m52`=821dn84?:%3;4?d13g;5<#91:1n;5a16d96>=hj;0;6)?70;`5?k70n3907bl>:18'5=6=j?1e=:h54:9lf5<72-;3<7l9;o34b?3<3fkm6=4+1929f3=i9>l1:65`ad83>!7?83h=7c?8f;58?jgc290/=5>5b79m52`=021dmn4?:%3;4?d13g;5<#91:1n;5a16d9e>=hih0;6)?70;`5?k70n3h07bo7:18'5=6=j?1e=:h5c:9le2<72-;3<7l9;o34b?b<3fk=6=4+1929f3=i9>l1i65`a483>!7?83h=7c?8f;d8?jg3290/=5>5b79m52`=9910cl=50;&2<52d:;k4>1:9le7<72-;3<7l9;o34b?7532ej=7>5$0:3>g05<#91:1n;5a16d951=818a2>h6?o0:965`bd83>!7?83h=7c?8f;35?>iel3:1(<6?:c48j41a28=07bll:18'5=6=j?1e=:h51998kgd=83.:4=4m6:l23c<6121dnl4?:%3;4?d13g;4d<3fh36=4+1929f3=i9>l1=n54oc694?"6090i:6`>7g82`>=hi00;6)?70;`5?k70n3;n76a6e;29 4>72k<0b<9i:0d8?je0290/=5>5c79m52`=821do84?:%3;4?e13g;5<#91:1o;5a16d96>=hk:0;6)?70;a5?k70n3907dm7:188m4>c2900e99::188m2e=83.:4=48b:l23c<732c5$0:3>2d7g81?>o0?3:1(<6?:6`8j41a2:10e:850;&2<5<0j2d:;k4;;:k41?6=,82;6:l4n05e>0=>1<7*>8184f>h6?o0=76g83;29 4>72>h0b<9i:698m24=83.:4=48b:l23c5$0:3>2d7g8b?>o1n3:1(<6?:6`8j41a2k10e;j50;&2<5<0j2d:;k4l;:k5g?6=,82;6:l4n05e>a=8184f>h6?o0n76g9a;29 4>72>h0b<9i:g98m3?=83.:4=48b:l23c<6821b:54?:%3;4?1e3g;;:k53?6=,82;6:l4n05e>44<3`<=6=4+19293g=i9>l1=>54i7794?"60907g820>=n>=0;6)?70;5a?k70n3;>76g73;29 4>72>h0b<9i:048?l>5290/=5>57c9m52`=9>10e5?50;&2<5<0j2d:;k4>8:9j<5<72-;3<79m;o34b?7>32c5$0:3>2d5<#91:1;o5a16d95g=n1<7*>8184f>h6?o0:o65f7883>!7?83=i7c?8f;3g?>o1m3:1(<6?:6`8j41a28o07d8<:18'5=6=?k1e=:h51g98m=d=83.:4=47a:l23c<732c357>5$0:3>=g7g81?>i>;3:1(<6?:808j41a2910c4?50;&2<5<>:2d:;k4>;:m:4?6=,82;64<4n05e>7=818:6>h6?o0876a7e;29 4>72080b<9i:598k=b=83.:4=462:l23c<232e2o7>5$0:3><46`>7g84?>i>i3:1(<6?:808j41a2110c4750;&2<5<>:2d:;k46;:m:d=818:6>h6?o0i76a66;29 4>72080b<9i:b98k<3=83.:4=462:l23c5$0:3><46`>7g8e?>id:3:1(<6?:b38j41a2910cn>50;&2<5;:p10b=833ty>9o4?:6gxZ1?33W?=:6P:659]0=2X3191U85h4^5:f?[2?l2T?4n5Q49`8Z1>f3W>356P:709]126X2>01U9;64^47b?[3212T>955Q5458Z0313W?>96P:559]105m70::c;6e?821>3>m70:95;6e?821<3>m70:9f;6e?821m3>m70;51:0>=63=93865>;5180>=63=91865>;50o0>=63=81865>;5?o0>=63=7d865>;5?m0>=63=7b865>;40l0>=63<8b865>;40h0>=63<89865>;40?0>=63<85865>;40;0>=63<81865>;4?l0>=63<33865>;4;:0>=63<35865>;4;<0>=63<37865>;4<<0>=63<47865>;4<>0>=63<49865>;4<00>=63<5c865>;4=j0>=63<5e865>;4=l0>=63<5g865>;3=103;63;59822e<5=?36:o4=57;>2><5=?36:94=57;>20<5=?36:;4=57;>22<5=?36:=4=57;>24<5=?36:?4=57;>26<5=?36;h4=57;>3b<5=?36;m4=57;>3d<5=?36;o4=57;>3?<5=?36;64=57;>31<5=?36;84=57;>33<5=?36;:4=57;>=5<5=?365<4=57;>=7<5=?365>4=57;>2`<5=?36:k4=57;>2b<5=?36:74=57;>3c<5=?36;=4=57;>=d<5=?36574=57;>=>52z\7<0=:;?k1=5<4}r76b?6=;rT>9k5247595=7<5=?h6<6>;|q130<72;qU9=:4=356>4>53ty>;>4?:2y]125<5:=96i74=250>a?=7>569y]107<5;k;69;4=57f>13<5=?o69;4=57`>13<5=<=69;4=546>13<5=13<5;;869;4=331>13<5;;:69;4=333>13<5;:m69;4=32f>13<5;:o69;4=32`>13<5;<;69;4=37e>13<5;?n69;4=37g>13<5;?h69;4=37a>13<5;?j69;4=37:>13<5;?369;4=36f>13<5;>o69;4=36`>13<5;>i69;4=36b>13<5;>269;4=36;>13<5;><69;4=365>13<5;>>69;4=0f5>13<58n>69;4=0f7>13<58n869;4=0f1>13<58n:69;4=0f3>13<58im69;4=0af>13<5;n<69;4=3f5>13<5;n>69;4=3f7>13<5;n869;4=3f1>13<5;n;69;4=3ae>13<5;n:69;4=3g:>13<5;o369;4=3g4>13<5;o=69;4=3g6>13<5;o?69;4=3g0>13<5;o969;4=3g2>13<5;=?69;4=356>13<5;13<5=8o69;4=50`>13<5=8i69;4=50b>13<5=8269;4=50;>13<5=8=69;4=506>13<5=8?69;4=500>13<5=8969;4=502>13<5=8;69;4=53e>13<5=;n69;4=53g>13<5=;i69;4=53b>13<5=;269;4=53;>13<5=;<69;4=535>13<5=;>69;4=537>13<5=;869;4=531>13<5=9869;4=511>13<5=9:69;4=513>13<5=8m69;4=50f>13<5=8<69;4=53`>13<5=;:69;4=533>13<5=?369o4}r15b?6=:rT>563y]131<5=<269;4=544>13<5=<369;4=54e>13<5=13<58h:69;4=0`3>13<58km69;4=0cf>13<58ko69;4=0c`>13<58ki69;4=0cb>13<58lj69;4=0d:>13<58l369;4=0d4>13<58l=69;4=0d6>13<58l?69;4=0d0>13<58l969;4=0g;>13<58o<69;4=0g5>13<58o>69;4=0g7>13<58o869;4=0g1>13<58o:69;4=0g3>13<5;9j69;4=31:>13<5;9369;4=314>13<5;9=69;4=316>13<5;9?69;4=310>13<5;9969;4=312>13<5:;>69;4=23g>13<5:;h69;4=23a>13<5:;j69;4=23:>13<5:;369;4=234>13<5:;=69;4=237>13<5:8369;4=2`a>13<5:h269;4=2`b>13<5:hh69;4=2`g>13<5:i;69;4=2`f>13<5:hm69;4=2a2>13<5:i969;4=2ae>13<5:io69;4=2af>13<5:n;69;4=2f2>13<5:n?69;4=2f1>13<5:n869;4=2f6>13<5:n=69;4=2cg>13<5:kh69;4=2cf>13<5:kj69;4=2c:>13<5:ki69;4=2c4>13<5:k=69;4=2c;>13<5:k>69;4=2gb>13<5:o269;4=2g;>13<5:o<69;4=2g5>13<5:o>69;4=2g7>13<5:o869;4=2g1>13<5:o:69;4=24f>13<5:13<5=?36974}r11>k5233:95=452z\7`2=:<831=5<4}r1e7?6=:rT?h;5240:95=47>52z\7`0=:<8=1=5<4}r1e5?6=:rT?h95240495=452z\7`6=:<8?1=5<4}r1fb?6=:rT?h?5240695=452z\7`5=:<891=5<4}r1f`?6=:rT?ok5240095=4;j7>52z\7g`=:<:91=5<4}r63a?6=:rT?oi5242095=4;h7>52z\7gf=:<:;1=5<4}r63g?6=:rT?oo5242295=4;n7>52z\7gd=:<;l1=5<4}r63e?6=:rT?o45243g95=4;57>52z\7g==:<;=1=5<4}r636?6=:rT?o:5240a95=452z\7g0=:<8;1=5<4}r1fg?6=:rT?o95240295=4;47>52z\7g6=:<;n1=5<4}r633?6=:rT?o?5243a95=4;:7>52z\7g4=:<;h1=5<4}r631?6=:rT?o=5243c95=4;87>52z\7fc=:<;31=5<4}r637?6=:rT?nh5243:95=4;=7>52z\7fa=:<;<1=5<4}r634?6=:rT?nn5243795=452z\7`a=:<;>1=5<4}r1ea?6=:rT?hn5243195=452z\7`g=:<;81=5<4}r1eg?6=:rT?hl5243395=452z\7`<=:<;:1=5<4}r1ee?6=:rT?h55240d95=452z\7`4=:<8o1=5<4}r1e52z\7fg=:<8h1=5<4}r1e1?6=:rT?nl5240c95=4i<7>52z\7=`=:<<214;5rs5cf>5<5sW>2h63;5986=>{t7}Y<0h019;7:448yv2fj3:1>vP;9`9>00>==<1v9on:181[2>127?954:4:p0d?=838pR977;<66;3=10386s|4c594?4|V=k?70::8;43?xu3j?0;6?uQ4`18913?2>47;l;|q7f7<72;qU84h4=57;>0di=7>52z\7=3=:<<219l5rs5c4>5<5sW>2963;59866>{t9:=1<7mt=55f>41c348io7:7;<0bg?2?348no7;>;<0ff?2?3483j7:7;<04g?2?3492<7:7;<14a?2?3498>7:7;<171?2?349>n7:7;|q1e4<72;q6>l>54g9>6d4=9>h0q~:93;295=}::h:1=5?4=545>4>5348o;7:m;<0g2?2e348o97:m;<0g0?2e348o?7:m;<0g6?2e348o<7:m;<0`b?7?9279h<4;b:?1a<<3j279i54;b:?1a2<3j279i;4;b:?1a0<3j279i94;b:?1a6<3j279i?4;b:?1a4<3j279;94>809>623=91;01?8i:5`8970b2=h0q~>h7?72:?71f<3>2wx88k50;0x913b282970:90;f:?xu3>10;6>u247;90c=:=57>52z?72<<60;168;l5d89~w13d2908w0::d;6e?822k3;3>63;618ge>{t4>534>=47:i;<65f?bf3ty?9k4?:5y>030=91;0198::0:2?821<3;3=63;61823g=z{=<96=4=6z?720<60;16><:54c9>645=<<54c9>647=<>54c9>65`==k54c9>65b==m54c9>636=8h54c9>60c=8j54c9>60e=8l54c9>60g=8754c9>60>=9k54c9>61b=9m54c9>61d=9o54c9>61?=9654c9>611=9854c9>613=5a3=5a5=5a7=54c9>5f`=4>434>9n7?73:?76d<60:168?751918914?282870:=6;3;7>;3:<0:4>5243695=5<5=886<6<;<616?7?;27?><4>829>076=919019?i:0:0?826m3;3?63;1e82<6=:<8h1=5=4=53b>4>434>:57?73:?75=<60:168<9519189171282870:>5;3;7>;39=0:4>5240195=5<5=;96<6<;<607?7?;27???4>829>067=919019=?:0:0?825n3;3?63;2d82<6=:<;=1=5=4=53`>4>434>:=7?73:?755<60:1688o5d`9>00>=91o0q~:9a;297~;3>o0:4<5247g95=7<5=i70=>d;6a?856k3>i70=>b;6a?856i3>i70=>9;6a?85603>i70=>7;6a?856>3>i70=>4;6a?85ej3>i70=m9;6a?85ei3;3=63;4jm0?n63;4jl0?n63;4k80?n63;4ko0?n634>6349nm7:m;<1f=?2e349n47:m;<1f3?2e349n:7:m;<1f1?2e349n87:m;<1f7?2e349n>7:m;<1f5?2e3ty?:n4?:3cx910b282970?m2;6a?87e93>i70?m0;6a?87fn3>i70?ne;6a?87fl3>i70?nc;6a?87fj3>i70?na;6a?87ai3>i70?i9;6a?87a03>i70?i7;6a?87a>3>i70?i5;6a?87a<3>i70?i3;6a?87a:3>i70?j8;6a?87b?3>i70?j6;6a?87b=3>i70?j4;6a?87b;3>i70?j2;6a?87b93>i70?j0;6a?844i3>i70<<9;6a?84403>i70<<7;6a?844>3>i70<<5;6a?844<3>i70<<3;6a?844:3>i70<<1;6a?85503>i70=9e;6a?851n3>i70=9a;6a?xu5=>0;68u220690c=::?:1=5<4=335>ag<5;;36i74=33b>ae53z?151<60;16>4j5d89>6=g=l01v??::181846;3>m70<>6;34f>{t:9k1<7=t=330>4>53482o7jn;<0;=?bf3ty9=:4?:3y>644=<6516`8yv4713:1?v3=1382<7=::0i1hn5229;9`f=z{;;26=49{<025?2a348:m7?8b:?15f?4kc:p65>=839p1??>:0:1?84>j3nj70<78;fb?xu59k0;6?u220290c=::8i1=:l4}r033?6=;r79==4>839>6565db9~w77c2909w0=k54g9>676=9>h0q~5<5s48;h7:i;<017?70j2wx>=:50;1x976c282970<69;fb?84?>3nj7p}=2483>7}::9i18k52234952d53z?14f<60;16>475db9>6=0=lj1v:18687e:3>m70?ia;3;6>;6j=0om63>b78g=>;6j10oo6s|1`;94?3|58h96<6=;<15=?b>349>?7j6;<174?b>348m97jn;|q2f6<72;q6=o?54g9>5g2=9>h0q~?n8;291~;6j80:4?5237;9`g=:;<91ho523529`g=::ol1hl5rs0`6>5<5s4;i<7:i;<3a2?70j2wx=l950;7x94d7282970=98;f:?852:3n270=b683>3}:9hl18k521c:952d<58hj6io4=0``>a?<58hn6il4=0a3>ae55z?2ec<60;16?;65dc9>704=lk16?>h5dc9>6cb=lh1vm70?ma;34f>{t9h?1<7;t=0cf>4>5349=;7j6;<165?b>3498i7j6;<0eg?bf3ty:no4?:3y>5db=ae82<7=:;?=1ho523439`g=:;:o1ho522g`9`d=z{8ho6=4={<3bg?2a34;ii7?8b:p5d5=83?p13n270=:0;f:?854l3n270839>730=lk16?8>5dc9>76b=lk16>k75d`9~w4e42909w0?na;6e?87d<3;349?j7j6;<10g?b>348m47jn;|q101<72;q6>;>54g9>61c=9180q~<;3;296~;5=o0?j63=4e82<7=z{;?=6=4;{<06b?7?:279=;4k9:?15=6}::ad<5;;j6io4}r075?6=:r799i4;f:?10g<60;1v?;;:181842l3;3>63=1`8g=>{t:=:1<71`<5;>j6<6=;|q116<728m51908977d2m301??j:ec897472mi01?<=:e`8yv44n3:1>v3=5c87b>;5<00:4?5rs371>5<3s48>n7?72:?15`=4k9:?167>k50;0x973f2=l01?:7:0:1?xu5=80;6>u224c95=4<5;8;6io4=301>a?52z?11<<3n2798:4>839~w7372908w0<:9;3;6>;5::0o563=278ge>{t::i1<71`<5;>=6<6=;|q10c<72;q6>865190897412m30q~?kf;296~;6nh0?j63>e982<7=z{8nn6=4={<3e=?2a34;n;7?72:p5c6=83>p1de83>7}:9o218k521d495=453z?2b=<60;16=o85dc9>5g>=lh1vm70?j5;3;6>{t9lo1<74>534;i47j6;|q2`g<72;q6=k854g9>5`2=9180q~?jd;291~;6n?0:4?521cc9`<=:9ki1hl521cg9`f=:9j:1ho5rs0fb>5<5s4;m97:i;<3f7?7?:2wx=hm50;6x94`2282970?mc;fa?87em3n270?l0;fb?xu6l00;6?u21g690c=:9l81=5<4}r3ff?6=;r7:j94>839>5gc=lh16=n>5d89~w4b?2909w0?i3;6e?87b93;3>6s|1dc94?5|58l86<6=;<3`5?b>34;h87jn;|q2`2<72;q6=k<54g9>5`6=9180q~?j9;296~;6n;0:4?521b69`<=z{;9;6=4={<07a?2a3488m7?72:p67`=838p1?:k:5d8975>28297p}=2d83>7}::=i18k5222:95=452z?10g<3n279?:4>839~w74d2909w0<;a;6e?844>3;3>6s|23`94?4|5;>269h4=316>4>53ty9>l4?:3y>61>=>:51908yv4513:1>v3=4687b>;5;:0:4?5rs30;>5<5s48?:7:i;<006?7?:2wx>?950;0x97222=l01?=>:0:1?xu5;k0;652z?2a=<3n27:h;4>839~w4ed2909w0?j7;6e?87c=3;3>6s|1b`94?4|58o=69h4=0f7>4>53ty:ol4?:3y>5`3=v3>e587b>;6l;0:4?5rs0a;>5<5s4;n?7:i;<3g5?7?:2wx=n950;0x94c52=l013>m70;6190o563=8`8ge>;3=10?<6s|1g`94?4|58n>69h4=0;3>41e3ty:jn4?:3y>5a2=v3>d287b>;61;0:;o5rs0df>5<5s4;o>7:i;<3:7?70j2wx=kh50;0x94b62=l01<7;:05a?xu5890;6?u21e290c=:90?1=:l4}r035?6=:r7:ok4;f:?2=3<6?k1v?>=:18187dm3>m70?67;34f>{t;l:1<7:t=31b>1`<5:oj6<6=;<3:34>>47=9;|q124<72;q6>>754g9>5<>=9>h0q~<92;296~;5;10?j63>98823g=z{;<86=4={<003?2a34;2m7?8b:p632=838p1?=9:5d894?e28=i7p}=6483>7}:::?18k5218a952d52z?171<3n27:5i4>7c9~w7002909w0<<3;6e?87>m3;41e3ty9:44?:3y>667=516`8yv4bi3:1=8u22e5903=::m<18;522e7903=::m>18;522e1903=::m818;522e2903=::jl18;522e3903=::l318;522d:903=::l=18;522d4903=::l?18;522d6903=::l918;522d0903=::l;18;5244c9`g=::?k1=:l4=3c1>ag52z?1`2<3n279o94>7c9~w7eb290?w0;5m00?j63=9e8ge>;5k<0o56s|2`c94?4|5;n=69h4=3a0>41e3ty9oi4?:5y>6a0=91801?k7:5d897?d2m301?lm:e;8yv4f13:1>v3=d487b>;5k;0:;o5rs3a`>5<3s48o97?72:?1a2<3n2795n4kb:?1f<l650;0x97b32=l01?m>:05a?xu5kk0;69u22e695=4<5;o=69h4=3;a>a?<5;h<6i74}r0b3?6=:r79h>4;f:?1g5<6?k1v?mn:18784c;3;3>63=e487b>;51k0on63=b48g=>{t:h<1<71`<5;hm6<9m;|q1g<<72=q6>i<5190897c32=l01?7n:e;897d42m30q~1}::jl1=5<4=3g2>1`<5;326il4=3cg>a?52z?1`4<3n279nh4>7c9~w7e?290?w0;5m:0?j63=9`8gf>;5j80o56s|2cc94?4|5;i?6964=3`b>41e3ty9o84?:3y>6f2=9;301?m::05a?xu5j10;6>u22b190==::kk185522c:952d53z?1g6<6:016>oo519:897de28=i7p}=b783>6}::j8185522c:90==::k<1=:l4}r0a=?6=;r79o?4>289>6g>=91201?l6:05a?xu5j=0;6>u22b390==::k<185522c6952d53z?1g4<6:016>o8519:897d028=i7p}=b383>6}::j:185522c690==::k81=:l4}r0a1?6=;r79o=4>289>6g2=91201?l::05a?xu5j90;6>u22cd90==::k8185522c2952d53z?1fc<6:016>o<519:897d428=i7p}=ad83>6}::ko185522c290==::ho1=:l4}r0a5?6=;r79nh4>289>6g6=91201?l>:05a?xu5ij0;6>u22cf90==::ho185522`a952d53z?1fa<6:016>lk519:897ga28=i7p}=ae83>6}::ki1=?74=3c`>4>?348jh7?8b:p6a`=83?p1?k7:0:1?87>93n270?60;fb?84?13n270::8;1f?xu5ll0;68u22d595=4<58396i74=0;2>ag<5;226il4=57;>6b55z?1a3<60;16=4=5d89>5<4=lh16>565d89>00>=;j1v?jl:18684b=3;3>63>958g=>;61:0om63=898gf>;3=108n6s|2e`94?3|5;o?6<6=;<3:1?b>34;287jn;<0;3?b>34>>47=n;|q1`d<72h=5190894?12m301<7::ec897>02mh019;7:2;8yv4c13:19v3=e382<7=:90=1h4521849`d=::1<1h45244:97==z{;n36=4;{<0f5?7?:27:5:4ka:?1<363=728gf>;5?80on63=768gf>;5>k0o563=6`8gg>{t:>81<71`<5;=86<9m;|q12f<72?q6>;k5190897142m301?9>:ec897102mk01?8m:ec8970f2mh0q~6=4={<134?751279j84>7c9~w67b2909w0=?0;34f>;49<0?j6s|2g194?5|5::26964=3d7>1><5;l86<9m;|q1bc<72:q6?=7513;897`3282370{t;;=1<741e349:h7:i;|q0gg<72k:5509>7a3=91801>k6:5d896272mi01?hi:e;8yv4a:3:1?v3<0987<>;5n:0?463=f3823g=z{;ln6=4<{<134>899>6cc=9>h0q~==6;296~;4810:;o5230a90c=z{:ij6=4:{<0e7?36349o87?72:?0a=<3n278?k4ka:?1b`k?50;1x96602=201?h=:5:897`628=i7p}=fe83>6}:;9=1=?74=3d1>4>?348mh7?8b:p773=838p1>>8:05a?856j3>m7p}0}::o819<523e195=4<5:o<69h4=21e>ae<5;lo6i74}r0e4?6=;r78<;4;8:?1b4<30279j=4>7c9~w7`d2908w0=?6;31=>;5n80:45522ga952d52z?043<6?k16?w063;4;l0om63=fb8g=>{t:ll1<7=t=226>1><5;l;6964=3ge>41e3ty9jo4?:2y>753=9;301?h?:0:;?84aj3;6<9m;<12=?2a3ty8o:4?:4y>6c6==816?i?5190896c22=l01>=j:ea897`e2m30q~;5ml0:;o5rs3db>5<4s49;87?=9:?1ac<60116>ko516`8yv55:3:1>v3<05823g=:;8218k5rs2a5>5<2s48nj7;>;<1g4?7?:278i94;f:?07a><:5:897cb2=201?kk:05a?xu5n00;6>u2311957?<5;on6<67;<0e=?70j2wx???50;0x966428=i70=>7;6e?xu4k<0;68u22dg914=:;jl1=5<4=2g0>1`<5:9o6im4=3d:>a?53z?047<30279ii4;8:?1af<6?k1v?h7:180857:3;9563=ee82<==::o21=:l4}r114?6=:r787c9>740=m;:18684bl3?:70=le;3;6>;4m;0?j63<3b8ge>;5n10o56s|2d`94?5|5:::6964=3g`>1><5;oi6<9m;|q1b3<72:q6?=?513;897cd282370{t;8l1<741e349:87:i;|q037<72;kp1?km:43896de2=<01>l6:54896df2=<01>ll:54896dc2=<01>m?:54896db2=<01>li:54896e62=<01>m=:54896ea2=<01>mk:54896eb2=<01>j?:54896b62=<01>j;:54896b52=<01>j<:54896b22=<01>j9:54896gc2=<01>ol:54896gb2=<01>on:54896g>2=<01>om:54896g02=<01>o9:54896g?2=<01>o::54896cf2=<01>k6:54896c?2=<01>k8:54896c12=<01>k::54896c32=<01>k<:54896c52=<01>k>:548961428=i7p}<0`83>7}:;8?1=5<4=20b>ae52z?05a<60;16??o5dc9~w6752909w0=>c;3;6>;4:h0om6s|30394?4|5:;i6<6=;<11e?b>3ty8==4?:3y>74g=91801>v3<1882<7=:;;h1h45rs22f>5<5s49:47?72:?06f839>77e=l01v>=70=9a;65?851l3;41e3ty94h4?:3y>6<5=<116>4<516`8yv4>03:1>v3=9282<==::0n1=:l4}r0:b?6=:r795>4>7c9>6d4=l01v?6k:18184>:3>370<61;34f>{t:0=1<74>?3482o7?8b:p6=e=838p1?7>:5:897?728=i7p}=9783>7}::0;1=564=3;a>41e3ty94o4?:3y>6<6=<116>5h516`8yv4>=3:1>v3=9182<==::0k1=:l4}r0:0?6=:r794k4>899>6h0q~<8b;296~;5090?463=7g823g=z{;2>6=4={<0;4?7?02794l4>7c9~w7?b2909w0<70;34f>;5i;0on6s|26c94?4|5;=m6964=35f>41e3ty9494?:3y>62`=91201?66:05a?xu5?00;6?u226g90==::>n1=:l4}r0;7?6=:r79;h4>899>6=>=9>h0q~<88;296~;5?m0?463=7b823g=z{;296=4={<04`?7?02794:4>7c9~w7>62909w0<8c;3;<>;50?0:;o5rs2;g>5<3s49in7:i;<1b3?7?:278:;4kc:?0<61}:;k318k523`795=4<5:<>6il4=25e>a?53z?0f<<60;16?nj54g9>71`=lk1v>7l:18785ei3>m70=n6;3;6>;4><0om63<808g=>{t;k:1<7=t=2`b>4>5349hi7:i;<17b?bf3ty85h4?:5y>7ge=6::e;8yv5e:3:1?v3lk:0:1?85c93>m70=:1;f`?xu4i;0;69u23b290c=:;hi1=5<4=24;>ag<5:2o6i74}r1a2?6=;r78o=4>839>7a2=63<668ge>;4000o56s|3c694?5|5:hn6<6=;<1g6?2a349>=7jn;|q0e4<72=q6?oh54g9>7dd=91801>87:ea896>e2m30q~=m5;297~;4jo0:4?523e190c=:;<81hn5rs2c0>5<3s49h=7:i;<1b`?7?:278:44kc:?01}:;j818k523`g95=4<5:<26io4=2;b>a?53z?0g7<60;16?i854g9>705=lh1v>m<:18785dl3;3>63;4;j0on63=f68g<>{t;ji1<7:t=2f5>4>5349nm7:i;<174?bf348m97j6;|q03f<72;q6?lj54g9>7<>=9>h0q~=8b;296~;4ij0?j63<96823g=z{:=o6=4={<1ba?2a349257?8b:p72?=838p1>on:5d896?228=i7p}<7983>7}:;h318k52386952d52z?0eg<3n2785;4>7c9~w6112909w0=n7;6e?85>:3;41e3ty8;:4?:3y>7d>=v3;4190:;o5rs2:f>5<5s49257:7;<1;a?70j2wx?4o50;0x96?>288270=6a;34f>{t;1i1<7=t=2;;>1><5:2n6964=2:`>41e3ty84k4?:2y>7<>=9;301>6j:0:;?85?n3;1><5:2j6<9m;|q0d282370=7d;34f>{t;121<7=t=2;5>1><5:2j6964=2:;>41e3ty84o4?:2y>7<0=9;301>6n:0:;?85?j3;6964=2:;>1><5:2=6<9m;|q0<<<72:q6?4;513;896>?282370=79;34f>{t;1>1<7=t=2;7>1><5:2=6964=2:7>41e3ty84:4?:2y>7<2=9;301>69:0:;?85??3;1><5:296<9m;|q0<0<72:q6?4=513;896>3282370=75;34f>{t;1:1<7=t=2;1>1><5:296964=2:3>41e3ty84>4?:2y>7<4=9;301>6=:0:;?85?;3;1><5:=n6<9m;|q0<4<72:q6?4?513;896>7282370=71;34f>{t;>l1<7=t=2;3>44>349ji:18785b13;3>63>988g=>;6110om63;59800>{t;mo1<7:t=2g;>4>534;2m7j6;<3:=?bf34>>47=<;|q0`a<72=q6?h95190894?e2m301<7n:ec8913?2:80q~=kc;290~;4m?0:4?5218a9`<=:90h1hl5244:974=z{:ni6=4;{<1f1?7?:27:5i4k9:?2=fp1>k;:0:1?87>m3n270?6d;fb?822038m7p}1}:;l91=5<4=0;e>a?<583n6io4=57;>7c54z?0a7<60;16=l>5d89>5<`=lh1688652e9~w6b02908w0=j1;3;6>;6i90om63;5981g>{t;:=1<74>?3498o7?8b:p77c=838p1>==:05a?854;3>37p}<3983>7}:;:91=564=21g>41e3ty8>k4?:3y>765=9>h01>=;:5:8yv5413:1>v3<3582<==:;:o1=:l4}r104?6=:r78?94>7c9>763=<11v>=n:181854=3;3463<3g823g=z{:9:6=4={<101?70j278?;4;8:p76d=838p1>=9:0:;?85383;713=91201>:i:05a?xu4<80;6?u2357952d<5:>=6964}r17f?6=:r788;4>899>706=9>h0q~=;2;296~;4h6=4={<173?7?02789<4>7c9~w6242909w0=;7;34f>;4<10?46s|35f94?4|5:>36<67;<166?70j2wx?9:50;0x962?28=i70=;9;6;?xu4<5:?86<9m;|q010<72:q6?97516`896162m301>8l:e`8yv5183:1>v3<5c82<==:;??1=:l4}r163?6=:r789o4>7c9>70e=<11v>8>:181852k3;3463<67823g=z{:?36=4={<16g?70j2789i4;8:p734=838p1>;k:0:;?851?3;4?:3y>70c=91201>87:05a?xu4=h0;6?u234g952d<5:?m6964}r150?6=:r789k4>899>73?=9>h0q~=:6;296~;4=o0:;o5237a9`<=z{:=;6=4<{<15a?2a349=j7:i;<145?70j2wx?;k50;6x960b282970=82;fb?850;3nj70=9d;f;?xu4>k0;6?u237c90c=:;?i1=:l4}r66f?6=:07e=07g=07>=073=075=077=5479>04`=04b=04g=04>=040=042=044==5479>064=?5479>066=07c=04e=046=;l516`8yv2283:1>v3;2e87b>;3=10h;6s|45d94?4|5=8h69h4=57;>g1?i7>52z?76g<3n27?954m5:p01b=838p19{t<=h1<71`<5=?36o?4}r67=?6=:r7?>;4;f:?71=v3;2587b>;3=10ji6s|45494?4|5=8869h4=57;>f3?97>52z?767<3n27?954nd:p012=838p19<>:5d8913?2hi0q~:;3;296~;3:90?j63;598bf>{t<=81<71`<5=?36lo4}r675?6=:r7?=h4;f:?71=50;0x917c2=l019;7:`58yv24m3:1>v3;1c87b>;3=10j:6s|42f94?4|5=;j69h4=57;>d38o7>52z?75<<3n27?954l4:p06d=838p19?7:5d8913?2h>0q~:0?j63;598b7>{t<:31<71`<5=?36l<4}r60950;0x91732=l019;7:`28yv24>3:1>v3;1287b>;3=102j6s|42794?4|5=;969h4=57;>gc>;7>52z?776<3n27?954md:p000=838p19==:5d8913?2j90q~::5;296~;3;80?j63;598ag>{t<<>1<71`<5=?36ol4}r667?6=:r7?>k4;f:?71=v3;2687b>;3=10i46s|45c94?4|5=;h69h4=57;>g28j7>52z?754<3n27?954n9:p062=838p19??:5d8913?20o0q~==a;296~;4:h0:;o5233`9`g=z{=?26=4={<66e?70j27?954l9:p7`d=83?p1>9>:ec8960d2mk01>9=:05a?82203><863;598`<>{t9?:1<7ag<5;896<5f6=9;k0q~<=4;296~;5:?0on63=23823g=z{8i96=4={<3`0?be34;h<7?8b:p560=838p1>6s|4`g94?4|V=3o70:<:5;g?!2083;?h6s|4`f94?4|V=3h70:<:5;`?!2083;>;6s|4`a94?4|V=3i70:<:5;a?!2083;>56s|4``94?4|V=3j70:<:5;b?!2083;>m6s|4`c94?4|V=3270:<:5;:?!2083;>n6s|4`;94?4|V=3370:<:5;;?!2083;>h6s|4`:94?4|V=3<70:<:5;4?!2083;>i6s|4c;94?4|V=k=70:<:5c5?!2083;>j6s|4c:94?4|V=k>70:<:5c6?!2083;==6s|4c594?4|V=k?70:<:5c7?!2083;=>6s|4c494?4|V=k870:<:5c0?!2083;=?6s|4c794?4|V=k970:<:5c1?!2083;=86s|4c694?4|V=k:70:<:5c2?!2083;=96s|4c194?4|V=k;70:<:5c3?!2083;=:6s|4c094?4|V=3m70:<:5;e?!2083;=;6s|4c394?4|V=3=70:<:5;5?!2083;=46s|4`594?4|V=3>70:<:5;6?!2083;=56s|56194?4|V<=870:<:450?!2083;=m6s|54f94?4|V70:<:5f6?!2083;<>6s|4g594?4|V=n?70:<:5f7?!2083;70:<:5a6?!2083;8j6s|4d594?4|V=i?70:<:5a7?!2083;?<6s|4d494?4|V=i870:<:5a0?!2083;?=6s|4d794?4|V=i970:<:5a1?!2083;??6s|4d694?4|V=i:70:<:5a2?!2083;?86s|4d194?4|V=i;70:<:5a3?!2083;?96s|4d094?4|V=hm70:<:5`e?!2083;?:6s|4d394?4|V=hn70:<:5`f?!2083;?;6s|4d294?4|V=ho70:<:5`g?!2083;?46s|4ed94?4|V=hh70:<:5``?!2083;?56s|51094?4|V=no70:<:5fg?!2083;?m6s|51394?4|V=nh70:<:5f`?!2083;?n6s|51294?4|V=ni70:<:5fa?!2083;?o6s|4gd94?4|V=nj70:<:5fb?!2083;?i6s|4gg94?4|V=n270:<:5f:?!2083;?j6s|4gf94?4|V=n370:<:5f;?!2083;><6s|4ga94?4|V=n:70:<:5f2?!2083;>=6s|4g694?4|V=i=70:<:5a5?!2083;>>6s|4d;94?4|V=hi70:<:5`a?!2083;>?6s|4eg94?4|V=hj70:<:5`b?!2083;>86s|51c94?4|V<:j70:<:42b?!2083;>96s|49794?4|V=2>70:<:5:6?!2083;>:6s|51694?4|V<:?70:<:427?!2083;>46s|53d94?4|V<8m70:<:40e?!2083;>o6srn`f:>5<5sA><=6saaec94?4|@==:7p`ndc83>7}O<>;0qcokc;296~N3?81vbljk:181M2092wemik50;0xL1163tdjhk4?:3yK02752zJ734=zfho:6=4={I645>{iil81<7vF;709~jdc22909wE:81:me`0=838pD99>;|lba2<72;qC8:?4}ocf5<5sA><=6saadc94?4|@==:7p`nec83>7}O<>;0qcojc;296~N3?81vblkk:181M2092wemhk50;0xL1163tdjik4?:3yK02752zJ734=zfhl:6=4={I645>{iio81<7vF;709~jd`22909wE:81:mec0=838pD99>;|lbb2<72;qC8:?4}oce5<5sA><=6saagc94?4|@==:7p`nfc83>7}O<>;0qcoic;296~N3?81vblhk:181M2092wemkk50;0xL1163tdjjk4?:3yK02752zJ734=zfk::6=4={I645>{ij981<7vF;709~jg622909wE:81:mf50=838pD99>;|la42<72;qC8:?4}o`35<5sA><=6sab1c94?4|@==:7p`m0c83>7}O<>;0qcl?c;296~N3?81vbo>k:181M2092wen=k50;0xL1163tdi52zJ734=zfk;:6=4={I645>{ij881<7vF;709~jg722909wE:81:mf40=838pD99>;|la52<72;qC8:?4}o;2e?6=9rB?;<5rn87:>5<6sA><=6sa94c94?7|@==:7p`65c83>4}O<>;0qc7:c;295~N3?81vb4;k:182M2092we58k50;3xL1163td29k4?:0yK02751zJ734=zf0<:6=4>{I645>{i1?81<7?tH552?xh>>:0;6;|l:22<728qC8:?4}o;55<6sA><=6sa97c94?7|@==:7p`66c83>4}O<>;0qc79c;295~N3?81vb48k:182M2092we5;k50;3xL1163td2:k4?:0yK02751zJ734=zf0=:6=4>{I645>{i1>81<7?tH552?xh>?:0;6;|l:32<728qC8:?4}o;45<6sA><=6sa96c94?7|@==:7p`67c83>4}O<>;0qc78c;295~N3?81vb49k:182M2092we5:k50;3xL1163td2;k4?:0yK02751zJ734=zf02:6=4>{I645>{i1181<7?tH552?xh>0:0;62290:wE:81:m==0=83;pD99>;|l:<2<728qC8:?4}o;;5<6sA><=6sa99c94?7|@==:7p`68c83>4}O<>;0qc77c;295~N3?81vb46k:182M2092we55k50;3xL1163td24k4?:0yK02751zJ734=zf03:6=4>{I645>{i1081<7?tH552?xh>1:0;6<3:1=vF;709~j;|l:=2<728qC8:?4}o;:5<6sA><=6sa98c94?7|@==:7p`69c83>4}O<>;0qc76c;295~N3?81vb47k:182M2092we54k50;3xL1163td25k4?:0yK02751zJ734=zf0k:6=4>{I645>{i1h81<7?tH552?xh>i:0;6;|l:e2<728qC8:?4}o;b5<6sA><=6sa9`c94?7|@==:7p`6ac83>4}O<>;0qc7nc;295~N3?81vb4ok:182M2092we5lk50;3xL1163td2mk4?:0yK02751zJ734=zf0h:6=4>{I645>{i1k81<7?tH552?xh>j:0;6;|l:f2<728qC8:?4}o;a5<6sA><=6sa9cc94?7|@==:7p`6bc83>4}O<>;0qc7mc;295~N3?81vb4lk:182M2092we5ok50;3xL1163td2nk4?:0yK02751zJ734=zf0i:6=4>{I645>{i1j81<7?tH552?xh>k:0;6;|l:g2<728qC8:?4}o;`5<6sA><=6sa9bc94?7|@==:7p`6cc83>4}O<>;0qc7lc;295~N3?81vb4mk:182M2092we5nk50;3xL1163td2ok4?:0yK02751zJ734=zf0n:6=4>{I645>{i1m81<7?tH552?xh>l:0;6;|l:`2<728qC8:?4}o;g5<6sA><=6sa9ec94?7|@==:7p`6dc83>4}O<>;0qc7kc;295~N3?81vb4jk:182M2092we5ik50;3xL1163td2hk4?:0yK02751zJ734=zf0o:6=4>{I645>{i1l81<7?tH552?xh>m:0;6;|l:a2<728qC8:?4}o;f5<6sA><=6sa9dc94?7|@==:7p`6ec83>4}O<>;0qc7jc;295~N3?81vb4kk:182M2092we5hk50;3xL1163td2ik4?:0yK02751zJ734=zf0l:6=4>{I645>{i1o81<7?tH552?xh>n:0;6;|l:b2<728qC8:?4}o;e5<6sA><=6sa9gc94?7|@==:7p`6fc83>4}O<>;0qc7ic;295~N3?81vb4hk:182M2092we5kk50;3xL1163td2jk4?:0yK02751zJ734=zfh::6=4>{I645>{ii981<7?tH552?xhf8:0;6;|lb42<728qC8:?4}oc35<6sA><=6saa1c94?7|@==:7p`n0c83>4}O<>;0qco?c;295~N3?81vbl>k:182M2092wem=k50;3xL1163tdj51zJ734=zfh;:6=4>{I645>{ii881<7?tH552?xhf9:0;6;|lb52<728qC8:?4}oc25<6sA><=6saa0c94?7|@==:7p`n1c83>4}O<>;0qco>c;295~N3?81vbl?k:182M2092wem51zJ734=zfh8:6=4>{I645>{ii;81<7?tH552?xhf::0;6;|lb62<728qC8:?4}oc15<6sA><=6saa3c94?7|@==:7p`n2c83>4}O<>;0qco=c;295~N3?81vblk4?:0yK02751zJ734=zfh9:6=4>{I645>{ii:81<7?tH552?xhf;:0;6;|lb72<728qC8:?4}oc05<6sA><=6saa2c94?7|@==:7p`n3c83>4}O<>;0qcok50;3xL1163tdj?k4?:0yK02751zJ734=zfh>:6=4>{I645>{ii=81<7?tH552?xhf<:0;6;|lb02<728qC8:?4}oc75<6sA><=6saa5c94?7|@==:7p`n4c83>4}O<>;0qco;c;295~N3?81vbl:k:182M2092wem9k50;3xL1163tdj8k4?:0yK027<7>51zJ734=zfh?:6=4>{I645>{ii<81<7?tH552?xhf=:0;6;|lb12<728qC8:?4}oc65<6sA><=6saa4c94?7|@==:7p`n5c83>4}O<>;0qco:c;295~N3?81vbl;k:182M2092wem8k50;3xL1163tdj9k4?:0yK02751zJ734=zfh<:6=4>{I645>{ii?81<7?tH552?xhf>:0;6;|lb22<728qC8:?4}oc55<6sA><=6saa7c94?7|@==:7p`n6c83>4}O<>;0qco9c;295~N3?81vbl8k:182M2092wem;k50;3xL1163tdj:k4?:0yK02751zJ734=zfh=:6=4>{I645>{ii>81<7?tH552?xhf?:0;6;|lb32<728qC8:?4}oc45<6sA><=6saa6c94?7|@==:7p`n7c83>4}O<>;0qco8c;295~N3?81vbl9k:182M2092wem:k50;3xL1163tdj;k4?:0yK02751zJ734=zfh2:6=4>{I645>{ii181<7?tH552?xhf0:0;62290:wE:81:me=0=83;pD99>;|lb<2<728qC8:?4}oc;5<6sA><=6saa9c94?7|@==:7p`n8c83>4}O<>;0qco7c;295~N3?81vbl6k:182M2092wem5k50;3xL1163tdj4k4?:0yK02751zJ734=zfh3:6=4>{I645>{ii081<7?tH552?xhf1:0;6<3:1=vF;709~jd?2290:wE:81:me<0=83;pD99>;|lb=2<728qC8:?4}oc:5<6sA><=6saa8c94?7|@==:7p`n9c83>4}O<>;0qco6c;295~N3?81vbl7k:182M2092wem4k50;3xL1163tdj5k4?:0yK02751zJ734=zfhk:6=4>{I645>{iih81<7?tH552?xhfi:0;6;|lbe2<728qC8:?4}ocb5<6sA><=6saa`c94?7|@==:7p`nac83>4}O<>;0qconc;295~N3?81vblok:182M2092wemlk50;3xL1163tdjmk4?:0yK02751zJ734=zfhh:6=4>{I645>{iik81<7?tH552?xhfj:0;6;|lbf2<728qC8:?4}oca5<6sA><=6saacc94?7|@==:7p`nbc83>4}O<>;0qcomc;295~N3?81vbllk:182M2092wemok50;3xL1163tdjnk4?:0yK02751zJ734=zfhi:6=4>{I645>{iij81<7?tH552?xhfk:0;6;|lbg2<728qC8:?4}oc`5<6sA><=6saabc94?7|@==:7p`ncc83>4}O<>;0qcolc;295~N3?81vblmk:182M2092wemnk50;3xL1163tdjok4?:0yK02751zJ734=zfhn:6=4>{I645>{iim81<7?tH552?xhfl:0;6;|lb`2<728qC8:?4}ocg - - + + diff --git a/usrp2/extramfifo/ext_fifo.v b/usrp2/extramfifo/ext_fifo.v index 398e5ef81..c6a64fc65 100644 --- a/usrp2/extramfifo/ext_fifo.v +++ b/usrp2/extramfifo/ext_fifo.v @@ -15,8 +15,10 @@ // packed into the IO ring. // + //`define NO_EXT_FIFO + module ext_fifo - #(parameter INT_WIDTH=36,EXT_WIDTH=18,DEPTH=19) + #(parameter INT_WIDTH=36,EXT_WIDTH=18,RAM_DEPTH=19,FIFO_DEPTH=19) ( input int_clk, input ext_clk, @@ -24,7 +26,7 @@ module ext_fifo input [EXT_WIDTH-1:0] RAM_D_pi, output [EXT_WIDTH-1:0] RAM_D_po, output RAM_D_poe, - output [DEPTH-1:0] RAM_A, + output [RAM_DEPTH-1:0] RAM_A, output RAM_WEn, output RAM_CENn, output RAM_LDn, @@ -59,16 +61,15 @@ module ext_fifo .empty(empty1)); assign dst_rdy_o = ~full1; - -/* -----\/----- EXCLUDED -----\/----- + +`ifdef NO_EXT_FIFO assign space_avail = ~full2; assign data_avail = ~empty1; assign read_data = write_data; - -----/\----- EXCLUDED -----/\----- */ +`else - // External FIFO running at ext clock rate and 18 bit width. - nobl_fifo #(.WIDTH(EXT_WIDTH),.DEPTH(DEPTH),.FDEPTH(DEPTH)) + nobl_fifo #(.WIDTH(EXT_WIDTH),.RAM_DEPTH(RAM_DEPTH),.FIFO_DEPTH(FIFO_DEPTH)) nobl_fifo_i1 ( .clk(ext_clk), @@ -83,14 +84,14 @@ module ext_fifo .RAM_OEn(RAM_OEn), .RAM_CE1n(RAM_CE1n), .write_data(write_data), - .write_strobe(space_avail & ~empty1 ), + .write_strobe(~empty1 ), .space_avail(space_avail), .read_data(read_data), - .read_strobe(data_avail & ~full2), - .data_avail(data_avail), - .upstream_full(almost_full2) + .read_strobe(~almost_full2), + .data_avail(data_avail) ); - +`endif // !`ifdef NO_EXT_FIFO + // FIFO buffers data read from external FIFO into DSP clk domain and to TX DSP. fifo_xlnx_512x36_2clk_18to36 fifo_xlnx_512x36_2clk_18to36_i1 ( @@ -98,7 +99,7 @@ module ext_fifo .wr_clk(ext_clk), .rd_clk(int_clk), .din(read_data), // Bus [17 : 0] - .wr_en(data_avail & ~full2 ), + .wr_en(data_avail), .rd_en(dst_rdy_i), .dout(dataout), // Bus [35 : 0] .full(full2), @@ -106,5 +107,5 @@ module ext_fifo .empty(empty2)); assign src_rdy_o = ~empty2; - + endmodule // ext_fifo diff --git a/usrp2/extramfifo/ext_fifo_tb.v b/usrp2/extramfifo/ext_fifo_tb.v index a93d524d5..db5f31a9d 100644 --- a/usrp2/extramfifo/ext_fifo_tb.v +++ b/usrp2/extramfifo/ext_fifo_tb.v @@ -1,7 +1,8 @@ `timescale 1ns / 1ps `define INT_WIDTH 36 `define EXT_WIDTH 18 -`define DEPTH 19 +`define RAM_DEPTH 19 +`define FIFO_DEPTH 8 `define DUMP_VCD_FULL module ext_fifo_tb(); @@ -17,7 +18,7 @@ module ext_fifo_tb(); wire [`EXT_WIDTH-1:0] RAM_D_po; wire [`EXT_WIDTH-1:0] RAM_D; wire RAM_D_poe; - wire [`DEPTH-1:0] RAM_A; + wire [`RAM_DEPTH-1:0] RAM_A; wire RAM_WEn; wire RAM_CENn; wire RAM_LDn; @@ -30,6 +31,7 @@ module ext_fifo_tb(); reg [`INT_WIDTH-1:0] ref_dataout; wire src_rdy_o; // not EMPTY reg dst_rdy_i; + integer ether_frame; // Clocks @@ -39,7 +41,6 @@ module ext_fifo_tb(); begin int_clk <= 0; ext_clk <= 0; - datain <= 0; ref_dataout <= 1; src_rdy_i <= 0; dst_rdy_i <= 0; @@ -53,6 +54,9 @@ module ext_fifo_tb(); initial begin + datain <= 0; + ether_frame <= 0; + rst <= 1; repeat (5) @(negedge int_clk); rst <= 0; @@ -62,6 +66,18 @@ module ext_fifo_tb(); @(negedge int_clk); datain <= datain + dst_rdy_o; src_rdy_i <= dst_rdy_o; + // Simulate inter-frame time + if (ether_frame == 1500) + begin + ether_frame <= 0; + repeat(1600) + begin + @(negedge int_clk); + src_rdy_i <= 0; + end + end + else + ether_frame <= ether_frame + dst_rdy_o; end end // initial begin @@ -73,8 +89,20 @@ module ext_fifo_tb(); // Fall through fifo, first output already valid if (dataout !== ref_dataout) $display("Error: Expected %x, got %x",ref_dataout, dataout); - - while (ref_dataout < 10000) + // Decimate by 16 rate + while (ref_dataout < 2000) + begin + @(negedge int_clk); + ref_dataout <= ref_dataout + src_rdy_o ; + dst_rdy_i <= src_rdy_o; + if ((dataout !== ref_dataout) && src_rdy_o) + $display("Error: Expected %x, got %x",ref_dataout, dataout); + @(negedge int_clk); + dst_rdy_i <= 0; + repeat(14) @(negedge int_clk); + end // while (ref_dataout < 10000) + // Decimate by 8 rate + while (ref_dataout < 4000) begin @(negedge int_clk); ref_dataout <= ref_dataout + src_rdy_o ; @@ -84,7 +112,33 @@ module ext_fifo_tb(); @(negedge int_clk); dst_rdy_i <= 0; repeat(6) @(negedge int_clk); - end + end // while (ref_dataout < 10000) + // Decimate by 4 rate + while (ref_dataout < 6000) + begin + @(negedge int_clk); + ref_dataout <= ref_dataout + src_rdy_o ; + dst_rdy_i <= src_rdy_o; + if ((dataout !== ref_dataout) && src_rdy_o) + $display("Error: Expected %x, got %x",ref_dataout, dataout); + @(negedge int_clk); + dst_rdy_i <= 0; + repeat(2) @(negedge int_clk); + end // while (ref_dataout < 10000) + // Max rate + while (ref_dataout < 10000) + begin + @(negedge int_clk); + ref_dataout <= ref_dataout + src_rdy_o ; + dst_rdy_i <= src_rdy_o; + if ((dataout !== ref_dataout) && src_rdy_o) + $display("Error: Expected %x, got %x",ref_dataout, dataout); + + end // while (ref_dataout < 10000) + + @(negedge int_clk); + $finish; + end @@ -228,7 +282,7 @@ module ext_fifo_tb(); endgenerate - wire [`DEPTH-1:0] RAM_A_ext; + wire [`RAM_DEPTH-1:0] RAM_A_ext; wire RAM_WEn_ext,RAM_LDn_ext,RAM_CE1n_ext,RAM_OEn_ext,RAM_CENn_ext; assign #1 RAM_D_pi = RAM_D_pi_ext; @@ -292,7 +346,7 @@ module ext_fifo_tb(); ext_fifo - #(.INT_WIDTH(`INT_WIDTH),.EXT_WIDTH(`EXT_WIDTH),.DEPTH(`DEPTH)) + #(.INT_WIDTH(`INT_WIDTH),.EXT_WIDTH(`EXT_WIDTH),.RAM_DEPTH(`RAM_DEPTH),.FIFO_DEPTH(`FIFO_DEPTH)) ext_fifo_i1 ( .int_clk(int_clk), diff --git a/usrp2/extramfifo/nobl_fifo.v b/usrp2/extramfifo/nobl_fifo.v index 03e3f5223..19f5fb84e 100644 --- a/usrp2/extramfifo/nobl_fifo.v +++ b/usrp2/extramfifo/nobl_fifo.v @@ -1,18 +1,19 @@ // Since this FIFO uses a ZBT/NoBL SRAM for its storage which is a since port // device it can only sustain data throughput at half the RAM clock rate. // Fair arbitration to ensure this occurs is included in this logic and -// requests for transactions that can not be completed are held off by (re)using the -// "full" and "empty" flags. +// requests for transactions that can not be completed are held off. +// This FIFO requires a an external signal driving read_strobe that assures space for at least 6 +// reads since this the theopretical maximum number in flight due to pipeling. module nobl_fifo - #(parameter WIDTH=18,DEPTH=19,FDEPTH=10) + #(parameter WIDTH=18,RAM_DEPTH=19,FIFO_DEPTH=19) ( input clk, input rst, input [WIDTH-1:0] RAM_D_pi, output [WIDTH-1:0] RAM_D_po, output RAM_D_poe, - output [DEPTH-1:0] RAM_A, + output [RAM_DEPTH-1:0] RAM_A, output RAM_WEn, output RAM_CENn, output RAM_LDn, @@ -21,42 +22,32 @@ module nobl_fifo input [WIDTH-1:0] write_data, input write_strobe, output reg space_avail, - output reg [WIDTH-1:0] read_data, - input read_strobe, - output reg data_avail, - input upstream_full // (Connect to almost full flag upstream) + output [WIDTH-1:0] read_data, + input read_strobe, // Triggers a read, result in approximately 6 cycles. + output data_avail // Qulaifys read data available this cycle on read_data. ); - reg [FDEPTH-1:0] capacity; - reg [FDEPTH-1:0] wr_pointer; - reg [FDEPTH-1:0] rd_pointer; - wire [DEPTH-1:0] address; - reg supress; - reg data_avail_int; // Data available with high latency from ext FIFO flag - wire [WIDTH-1:0] data_in; - wire data_in_valid; - reg [WIDTH-1:0] read_data_pending; - reg pending_avail; - wire read_strobe_int; + reg [FIFO_DEPTH-1:0] capacity; + reg [FIFO_DEPTH-1:0] wr_pointer; + reg [FIFO_DEPTH-1:0] rd_pointer; + wire [RAM_DEPTH-1:0] address; + reg data_avail_int; // Internal not empty flag. - - - assign read = read_strobe_int && data_avail_int; - assign write = write_strobe && space_avail; + assign read = read_strobe && data_avail_int; + assign write = write_strobe && space_avail; - // When a read and write collision occur, supress the availability flags next cycle + // When a read and write collision occur, supress the space_avail flag next cycle // and complete write followed by read over 2 cycles. This forces balanced arbitration // and makes for a simple logic design. always @(posedge clk) if (rst) begin - capacity <= 1 << (FDEPTH-1); + capacity <= 1 << (FIFO_DEPTH-1); wr_pointer <= 0; rd_pointer <= 0; space_avail <= 0; data_avail_int <= 0; - supress <= 0; end else begin @@ -64,187 +55,15 @@ module nobl_fifo // Capacity is already zero; Capacity is 1 and write is asserted (lookahead); both read and write are asserted (collision) space_avail <= ~((capacity == 0) || (read&&write) || ((capacity == 1) && write) ); // Capacity has 1 cycle delay so look ahead here for corner case of read of last item in FIFO. - data_avail_int <= ~((capacity == (1 << (FDEPTH-1))) || (read&&write) || ((capacity == ((1 << (FDEPTH-1))-1)) && read) ); - supress <= read && write; + data_avail_int <= ~((capacity == (1 << (FIFO_DEPTH-1))) || ((capacity == ((1 << (FIFO_DEPTH-1))-1)) && read) ); wr_pointer <= wr_pointer + write; - rd_pointer <= rd_pointer + ((~write && read) || supress); - capacity <= capacity - write + ((~write && read) || supress); // REVISIT + rd_pointer <= rd_pointer + (~write && read); + capacity <= capacity - write + (~write && read) ; end // else: !if(rst) assign address = write ? wr_pointer : rd_pointer; - assign enable = write || read || supress; - - // - // Need to have first item in external FIFO moved into local registers for single cycle latency and throughput on read. - // 2 local registers are provided so that a read every other clock cycle can be sustained. - // No fowarding logic is provided to bypass the external FIFO as latency is of no concern. - // - always @(posedge clk) - if (rst) - begin - read_data <= 0; - data_avail <= 0; - read_data_pending <= 0; - pending_avail <= 0; - end - else - begin - case({read_strobe,data_in_valid}) - // No read externally, no new data arriving from external FIFO - 2'b00: begin - case({data_avail,pending_avail}) - // Start Data empty, Pending empty. - // - // End Data full, Pending empty - 2'b00: begin - read_data <= read_data; - data_avail <= data_avail; - read_data_pending <= read_data_pending ; - pending_avail <= pending_avail; - end - // Start Data empty, Pending full. - // Data <= Pending, - // End Data full, Penidng empty. - 2'b01: begin - read_data <= read_data_pending; - data_avail <= 1'b1; - read_data_pending <= read_data_pending ; - pending_avail <= 1'b0; - end - // Start Data full, Pending empty. - // - // End Data full, Pending empty - 2'b10: begin - read_data <= read_data; - data_avail <= data_avail; - read_data_pending <= read_data_pending ; - pending_avail <= pending_avail; - end - // Start Data full, Pending full. - // - // End Data full, Pending full. - 2'b11: begin - read_data <= read_data; - data_avail <= data_avail; - read_data_pending <= read_data_pending ; - pending_avail <= pending_avail; - end - endcase - end - // No read externally, new data arriving from external FIFO - 2'b01: begin - case({data_avail,pending_avail}) - // Start Data empty, Pending empty. - // Data <= FIFO - // End Data full, Pending empty - 2'b00: begin - read_data <= data_in; - data_avail <= 1'b1; - read_data_pending <= read_data_pending ; - pending_avail <= 1'b0; - end - // Start Data empty, Pending full. - // Data <= Pending, Pending <= FIFO - // End Data full, Penidng full. - 2'b01: begin - read_data <= read_data_pending; - data_avail <= 1'b1; - read_data_pending <= data_in ; - pending_avail <= 1'b1; - end - // Start Data full, Pending empty. - // Pending <= FIFO - // End Data full, Pending full - 2'b10: begin - read_data <= read_data; - data_avail <= 1'b1; - read_data_pending <= data_in ; - pending_avail <= 1'b1; - end - // Data full, Pending full. - // *ILLEGAL STATE* - 2'b11: begin - - end - endcase - end - // Read externally, no new data arriving from external FIFO - 2'b10: begin - case({data_avail,pending_avail}) - // Start Data empty, Pending empty. - // *ILLEGAL STATE* - 2'b00: begin - - end - // Start Data empty, Pending full. - // *ILLEGAL STATE* - 2'b01: begin - - end - // Start Data full, Pending empty. - // Out <= Data - // End Data empty, Pending empty. - 2'b10: begin - read_data <= read_data; - data_avail <= 1'b0; - read_data_pending <= read_data_pending ; - pending_avail <= 1'b0; - end - // Start Data full, Pending full. - // Out <= Data, - // End Data full, Pending empty - 2'b11: begin - read_data <= read_data_pending; - data_avail <= 1'b1; - read_data_pending <= read_data_pending ; - pending_avail <= 1'b0; - end - endcase - end - // Read externally, new data arriving from external FIFO - 2'b11: begin - case({data_avail,pending_avail}) - // Start Data empty, Pending empty. - // *ILLEGAL STATE* - 2'b00: begin - - end - // Start Data empty, Pending full. - // *ILLEGAL STATE* - 2'b01: begin - - end - // Start Data full, Pending empty. - // Out <= Data, Data <= FIFO - // End Data full, Pending empty. - 2'b10: begin - read_data <= data_in; - data_avail <= 1'b1; - read_data_pending <= read_data_pending ; - pending_avail <= 1'b0; - end - // Start Data full, Pending full. - // Out <= Data, Data <= Pending, Pending <= FIFO - // End Data full, Pending full - 2'b11: begin - read_data <= read_data_pending; - data_avail <= 1'b1; - read_data_pending <= data_in ; - pending_avail <= 1'b1; - end - endcase - end - endcase - end + assign enable = write || read; - // Start an external FIFO read as soon as a read of the buffer reg is strobed to minimise refill latency. - // If the buffer reg or the pending buffer reg is already empty also pre-emptively start a read. - // However there must be something in the main external FIFO to read for this to occur!. - // Pay special attention to upstream devices signalling full due to the number of potential in-flight reads\ that need - // to be stalled and stored somewhere. - // This means that there can be 3 outstanding reads to the ext FIFO active at any time helping to hide latency. - assign read_strobe_int = (read_strobe && data_avail && ~pending_avail && ~upstream_full) || (~data_avail && ~pending_avail && ~upstream_full); - // // Simple NoBL SRAM interface, 4 cycle read latency. @@ -265,10 +84,12 @@ module nobl_fifo .RAM_CE1n(RAM_CE1n), .address(address), .data_out(write_data), - .data_in(data_in), - .data_in_valid(data_in_valid), + .data_in(read_data), + .data_in_valid(data_avail), .write(write), .enable(enable) ); + + endmodule // nobl_fifo diff --git a/usrp2/top/u2_rev3/u2_core_udp.v b/usrp2/top/u2_rev3/u2_core_udp.v index b0c8e6d52..c2811c833 100644 --- a/usrp2/top/u2_rev3/u2_core_udp.v +++ b/usrp2/top/u2_rev3/u2_core_udp.v @@ -648,11 +648,12 @@ module u2_core wire tx_src_rdy, tx_dst_rdy; wire [31:0] debug_vt; - ext_fifo #(.EXT_WIDTH(18),.INT_WIDTH(36),.DEPTH(19)) + ext_fifo #(.EXT_WIDTH(18),.INT_WIDTH(36),.RAM_DEPTH(19),.FIFO_DEPTH(8)) ext_fifo_i1 ( .int_clk(dsp_clk), .ext_clk(clk_to_mac), +// .ext_clk(wb_clk), .rst(dsp_rst), .RAM_D_pi(RAM_D_pi), .RAM_D_po(RAM_D_po), -- cgit v1.2.3 From 9bfab308d55c2b253f1ec9f0c998ee9920e0468f Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Thu, 19 Aug 2010 17:28:07 -0700 Subject: Added a bunch of debug signals. --- usrp2/extramfifo/ext_fifo.v | 14 +++++++++++--- usrp2/extramfifo/ext_fifo_tb.cmd | 1 + usrp2/top/u2_rev3/u2_core_udp.v | 9 +++++---- usrp2/vrt/vita_tx_deframer.v | 4 ++-- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/usrp2/extramfifo/ext_fifo.v b/usrp2/extramfifo/ext_fifo.v index c6a64fc65..b17fde10b 100644 --- a/usrp2/extramfifo/ext_fifo.v +++ b/usrp2/extramfifo/ext_fifo.v @@ -37,7 +37,8 @@ module ext_fifo output dst_rdy_o, // not FULL output [INT_WIDTH-1:0] dataout, output src_rdy_o, // not EMPTY - input dst_rdy_i // READ + input dst_rdy_i, // READ + output reg [31:0] debug ); wire [EXT_WIDTH-1:0] write_data; @@ -46,7 +47,8 @@ module ext_fifo wire almost_full2, full2, empty2; wire [INT_WIDTH-1:0] data_to_fifo; wire [INT_WIDTH-1:0] data_from_fifo; - + wire [FIFO_DEPTH-1:0] capacity; + // FIFO buffers data from UDP engine into external FIFO clock domain. fifo_xlnx_512x36_2clk_36to18 fifo_xlnx_512x36_2clk_36to18_i1 ( @@ -88,7 +90,8 @@ module ext_fifo .space_avail(space_avail), .read_data(read_data), .read_strobe(~almost_full2), - .data_avail(data_avail) + .data_avail(data_avail), + .capacity(capacity) ); `endif // !`ifdef NO_EXT_FIFO @@ -107,5 +110,10 @@ module ext_fifo .empty(empty2)); assign src_rdy_o = ~empty2; + always @ (posedge int_clk) + debug[31:16] = {12'h0,empty2,full1,dst_rdy_i,src_rdy_i }; + + always @ (posedge ext_clk) + debug[15:0] = {3'h0,empty1,space_avail,data_avail,full2,almost_full2,capacity[7:0] }; endmodule // ext_fifo diff --git a/usrp2/extramfifo/ext_fifo_tb.cmd b/usrp2/extramfifo/ext_fifo_tb.cmd index b0ab830dc..521f88f21 100644 --- a/usrp2/extramfifo/ext_fifo_tb.cmd +++ b/usrp2/extramfifo/ext_fifo_tb.cmd @@ -1,6 +1,7 @@ /opt/Xilinx/12.1/ISE_DS/ISE/verilog/src/glbl.v -y . -y ../coregen/ +-y ../fifo -y ../models -y /home/ianb/usrp-fpga/usrp2/sdr_lib -y /home/ianb/usrp-fpga/usrp2/control_lib diff --git a/usrp2/top/u2_rev3/u2_core_udp.v b/usrp2/top/u2_rev3/u2_core_udp.v index c2811c833..f8ea5330b 100644 --- a/usrp2/top/u2_rev3/u2_core_udp.v +++ b/usrp2/top/u2_rev3/u2_core_udp.v @@ -171,7 +171,7 @@ module u2_core wire [31:0] atr_lines; wire [31:0] debug_rx, debug_mac, debug_mac0, debug_mac1, debug_tx_dsp, debug_txc, - debug_serdes0, debug_serdes1, debug_serdes2, debug_rx_dsp, debug_udp; + debug_serdes0, debug_serdes1, debug_serdes2, debug_rx_dsp, debug_udp, debug_extfifo; wire [15:0] ser_rx_occ, ser_tx_occ, dsp_rx_occ, dsp_tx_occ, eth_rx_occ, eth_tx_occ, eth_rx_occ2; wire ser_rx_full, ser_tx_full, dsp_rx_full, dsp_tx_full, eth_rx_full, eth_tx_full, eth_rx_full2; @@ -669,7 +669,8 @@ module u2_core .dst_rdy_o(rd1_ready_i), // not FULL .dataout(tx_data), .src_rdy_o(tx_src_rdy), // not EMPTY - .dst_rdy_i(tx_dst_rdy) + .dst_rdy_i(tx_dst_rdy), + .debug(debug_extfifo) ); vita_tx_chain #(.BASE_CTRL(SR_TX_CTRL), .BASE_DSP(SR_TX_DSP), @@ -712,8 +713,8 @@ module u2_core // ///////////////////////////////////////////////////////////////////////////////////////// // Debug Pins - assign debug_clk = 2'b00; - assign debug = 32'd0; + assign debug_clk = {dsp_clk, clk_to_mac}; + assign debug = debug_extfifo; assign debug_gpio_0 = 32'd0; assign debug_gpio_1 = 32'd0; diff --git a/usrp2/vrt/vita_tx_deframer.v b/usrp2/vrt/vita_tx_deframer.v index f9cd7d00d..b62507092 100644 --- a/usrp2/vrt/vita_tx_deframer.v +++ b/usrp2/vrt/vita_tx_deframer.v @@ -84,7 +84,7 @@ module vita_tx_deframer seqnum_err <= 0; end else - if((vita_state == VITA_STORE) & fifo_space) + if((vita_state == VITA_STORE) & fifo_space ) //& src_rdy_i) if(eop) if(has_trailer_reg) vita_state <= VITA_TRAILER; @@ -183,7 +183,7 @@ module vita_tx_deframer 3: sample_d <= data_i[31:0]; endcase // case (vector_phase) - wire store = (vita_state == VITA_STORE); + wire store = (vita_state == VITA_STORE) ; //& src_rdy_i; fifo_short #(.WIDTH(FIFOWIDTH)) short_tx_q (.clk(clk), .reset(reset), .clear(clear), .datain(fifo_i), .src_rdy_i(store), .dst_rdy_o(fifo_space), -- cgit v1.2.3 From 9d4fa0e2980766cafa51f3dc6d1b1a2e257ad58d Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Thu, 19 Aug 2010 17:30:31 -0700 Subject: Added capacity to the module pinout --- usrp2/extramfifo/nobl_fifo.v | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/usrp2/extramfifo/nobl_fifo.v b/usrp2/extramfifo/nobl_fifo.v index 19f5fb84e..cec2a5c4b 100644 --- a/usrp2/extramfifo/nobl_fifo.v +++ b/usrp2/extramfifo/nobl_fifo.v @@ -24,10 +24,11 @@ module nobl_fifo output reg space_avail, output [WIDTH-1:0] read_data, input read_strobe, // Triggers a read, result in approximately 6 cycles. - output data_avail // Qulaifys read data available this cycle on read_data. + output data_avail, // Qulaifys read data available this cycle on read_data. + output reg [FIFO_DEPTH-1:0] capacity ); - reg [FIFO_DEPTH-1:0] capacity; + //reg [FIFO_DEPTH-1:0] capacity; reg [FIFO_DEPTH-1:0] wr_pointer; reg [FIFO_DEPTH-1:0] rd_pointer; wire [RAM_DEPTH-1:0] address; @@ -43,7 +44,7 @@ module nobl_fifo always @(posedge clk) if (rst) begin - capacity <= 1 << (FIFO_DEPTH-1); + capacity <= (1 << FIFO_DEPTH) - 1; wr_pointer <= 0; rd_pointer <= 0; space_avail <= 0; -- cgit v1.2.3 From a782395e91a9d2e22369ca35f74421a91f266060 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Thu, 19 Aug 2010 20:25:15 -0700 Subject: capacity logic fix --- usrp2/extramfifo/nobl_fifo.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usrp2/extramfifo/nobl_fifo.v b/usrp2/extramfifo/nobl_fifo.v index cec2a5c4b..62229e6c2 100644 --- a/usrp2/extramfifo/nobl_fifo.v +++ b/usrp2/extramfifo/nobl_fifo.v @@ -56,7 +56,7 @@ module nobl_fifo // Capacity is already zero; Capacity is 1 and write is asserted (lookahead); both read and write are asserted (collision) space_avail <= ~((capacity == 0) || (read&&write) || ((capacity == 1) && write) ); // Capacity has 1 cycle delay so look ahead here for corner case of read of last item in FIFO. - data_avail_int <= ~((capacity == (1 << (FIFO_DEPTH-1))) || ((capacity == ((1 << (FIFO_DEPTH-1))-1)) && read) ); + data_avail_int <= ~((capacity == ((1 << FIFO_DEPTH)-1)) || ((capacity == ((1 << FIFO_DEPTH)-2)) && read) ); wr_pointer <= wr_pointer + write; rd_pointer <= rd_pointer + (~write && read); capacity <= capacity - write + (~write && read) ; -- cgit v1.2.3 From b4d3dba56fd7dd709ec26b89a2e17002e77b202a Mon Sep 17 00:00:00 2001 From: ianb Date: Wed, 25 Aug 2010 16:32:43 -0700 Subject: Corrected extfifo code so that all registers that are on SRAM signals are packed into IOBs Explcit drives and skews added to GPIO pins Corrected minor error in FIFO logic that showed data avail internally incorrectly --- usrp2/extramfifo/ext_fifo.v | 10 +++++-- usrp2/extramfifo/nobl_fifo.v | 4 +-- usrp2/extramfifo/nobl_if.v | 12 +++++--- usrp2/top/u2_rev3/u2_core_udp.v | 15 ++++++---- usrp2/top/u2_rev3/u2_rev3.ucf | 64 ++++++++++++++++++++--------------------- 5 files changed, 59 insertions(+), 46 deletions(-) diff --git a/usrp2/extramfifo/ext_fifo.v b/usrp2/extramfifo/ext_fifo.v index b17fde10b..2af59a75d 100644 --- a/usrp2/extramfifo/ext_fifo.v +++ b/usrp2/extramfifo/ext_fifo.v @@ -38,7 +38,8 @@ module ext_fifo output [INT_WIDTH-1:0] dataout, output src_rdy_o, // not EMPTY input dst_rdy_i, // READ - output reg [31:0] debug + output reg [31:0] debug, + output reg [31:0] debug2 ); wire [EXT_WIDTH-1:0] write_data; @@ -111,9 +112,12 @@ module ext_fifo assign src_rdy_o = ~empty2; always @ (posedge int_clk) - debug[31:16] = {12'h0,empty2,full1,dst_rdy_i,src_rdy_i }; + debug[31:28] <= {empty2,full1,dst_rdy_i,src_rdy_i }; always @ (posedge ext_clk) - debug[15:0] = {3'h0,empty1,space_avail,data_avail,full2,almost_full2,capacity[7:0] }; + debug[27:0] <= {RAM_WEn,RAM_CE1n,RAM_A[3:0],read_data[17:0],empty1,space_avail,data_avail,almost_full2 }; + always@ (posedge ext_clk) +// debug2[31:0] <= {write_data[15:0],read_data[15:0]}; + debug2[31:0] <= 0; endmodule // ext_fifo diff --git a/usrp2/extramfifo/nobl_fifo.v b/usrp2/extramfifo/nobl_fifo.v index 62229e6c2..4c009d980 100644 --- a/usrp2/extramfifo/nobl_fifo.v +++ b/usrp2/extramfifo/nobl_fifo.v @@ -47,7 +47,7 @@ module nobl_fifo capacity <= (1 << FIFO_DEPTH) - 1; wr_pointer <= 0; rd_pointer <= 0; - space_avail <= 0; + space_avail <= 1; data_avail_int <= 0; end else @@ -56,7 +56,7 @@ module nobl_fifo // Capacity is already zero; Capacity is 1 and write is asserted (lookahead); both read and write are asserted (collision) space_avail <= ~((capacity == 0) || (read&&write) || ((capacity == 1) && write) ); // Capacity has 1 cycle delay so look ahead here for corner case of read of last item in FIFO. - data_avail_int <= ~((capacity == ((1 << FIFO_DEPTH)-1)) || ((capacity == ((1 << FIFO_DEPTH)-2)) && read) ); + data_avail_int <= ~((capacity == ((1 << FIFO_DEPTH)-1)) || ((capacity == ((1 << FIFO_DEPTH)-2)) && (~write && read)) ); wr_pointer <= wr_pointer + write; rd_pointer <= rd_pointer + (~write && read); capacity <= capacity - write + (~write && read) ; diff --git a/usrp2/extramfifo/nobl_if.v b/usrp2/extramfifo/nobl_if.v index 24d463b1e..391a841e8 100644 --- a/usrp2/extramfifo/nobl_if.v +++ b/usrp2/extramfifo/nobl_if.v @@ -9,11 +9,11 @@ module nobl_if output [WIDTH-1:0] RAM_D_po, output reg RAM_D_poe, output [DEPTH-1:0] RAM_A, - output RAM_WEn, + output reg RAM_WEn, output RAM_CENn, output RAM_LDn, output RAM_OEn, - output RAM_CE1n, + output reg RAM_CE1n, input [DEPTH-1:0] address, input [WIDTH-1:0] data_out, output reg [WIDTH-1:0] data_in, @@ -54,11 +54,15 @@ module nobl_if else begin enable_pipe1 <= enable; + RAM_CE1n <= ~enable; // Creates IOB flob + if (enable) begin address_pipe1 <= address; write_pipe1 <= write; + RAM_WEn <= ~write; // Creates IOB flob + if (write) data_out_pipe1 <= data_out; @@ -68,8 +72,8 @@ module nobl_if // Pipeline 1 drives address, write_enable, chip_select on NoBL SRAM assign RAM_A = address_pipe1; assign RAM_CENn = 1'b0; - assign RAM_WEn = ~write_pipe1; - assign RAM_CE1n = ~enable_pipe1; + // assign RAM_WEn = ~write_pipe1; +// assign RAM_CE1n = ~enable_pipe1; // // Pipeline stage2 diff --git a/usrp2/top/u2_rev3/u2_core_udp.v b/usrp2/top/u2_rev3/u2_core_udp.v index f8ea5330b..38c840bc1 100644 --- a/usrp2/top/u2_rev3/u2_core_udp.v +++ b/usrp2/top/u2_rev3/u2_core_udp.v @@ -171,7 +171,7 @@ module u2_core wire [31:0] atr_lines; wire [31:0] debug_rx, debug_mac, debug_mac0, debug_mac1, debug_tx_dsp, debug_txc, - debug_serdes0, debug_serdes1, debug_serdes2, debug_rx_dsp, debug_udp, debug_extfifo; + debug_serdes0, debug_serdes1, debug_serdes2, debug_rx_dsp, debug_udp, debug_extfifo, debug_extfifo2; wire [15:0] ser_rx_occ, ser_tx_occ, dsp_rx_occ, dsp_tx_occ, eth_rx_occ, eth_tx_occ, eth_rx_occ2; wire ser_rx_full, ser_tx_full, dsp_rx_full, dsp_tx_full, eth_rx_full, eth_tx_full, eth_rx_full2; @@ -414,7 +414,7 @@ module u2_core .cyc_i(s4_cyc),.stb_i(s4_stb),.adr_i(s4_adr[3:0]),.we_i(s4_we), .dat_i(s4_dat_o),.dat_o(s4_dat_i),.ack_o(s4_ack), .atr(atr_lines),.debug_0(debug_gpio_0),.debug_1(debug_gpio_1), - .gpio( {io_tx,io_rx} ) ); + .gpio(/* {io_tx,io_rx}*/ ) ); // ///////////////////////////////////////////////////////////////////////// // Buffer Pool Status -- Slave #5 @@ -664,13 +664,16 @@ module u2_core .RAM_LDn(RAM_LDn), .RAM_OEn(RAM_OEn), .RAM_CE1n(RAM_CE1n), - .datain({rd1_flags,rd1_dat}), +// .datain({rd1_flags,rd1_dat}), + .datain({rd1_flags[3:2],rd1_dat[31:16],rd1_flags[1:0],rd1_dat[15:0]}), .src_rdy_i(rd1_ready_o), // WRITE .dst_rdy_o(rd1_ready_i), // not FULL - .dataout(tx_data), +// .dataout(tx_data), + .dataout({tx_data[35:34],tx_data[31:16],tx_data[33:32],tx_data[15:0]}), .src_rdy_o(tx_src_rdy), // not EMPTY .dst_rdy_i(tx_dst_rdy), - .debug(debug_extfifo) + .debug(debug_extfifo), + .debug2(debug_extfifo2) ); vita_tx_chain #(.BASE_CTRL(SR_TX_CTRL), .BASE_DSP(SR_TX_DSP), @@ -717,5 +720,7 @@ module u2_core assign debug = debug_extfifo; assign debug_gpio_0 = 32'd0; assign debug_gpio_1 = 32'd0; + assign {io_tx,io_rx} = debug_extfifo2; + endmodule // u2_core diff --git a/usrp2/top/u2_rev3/u2_rev3.ucf b/usrp2/top/u2_rev3/u2_rev3.ucf index 82d879446..bf9569fe4 100644 --- a/usrp2/top/u2_rev3/u2_rev3.ucf +++ b/usrp2/top/u2_rev3/u2_rev3.ucf @@ -264,22 +264,22 @@ NET "sdi_tx_adc" LOC = "J4" ; NET "sen_tx_dac" LOC = "H4" ; NET "sclk_tx_dac" LOC = "J5" ; NET "sdi_tx_dac" LOC = "J6" ; -NET "io_tx[0]" LOC = "K4" ; -NET "io_tx[1]" LOC = "K3" ; -NET "io_tx[2]" LOC = "G1" ; -NET "io_tx[3]" LOC = "G5" ; -NET "io_tx[4]" LOC = "H5" ; -NET "io_tx[5]" LOC = "F3" ; -NET "io_tx[6]" LOC = "F2" ; -NET "io_tx[7]" LOC = "F5" ; -NET "io_tx[8]" LOC = "G6" ; -NET "io_tx[9]" LOC = "E2" ; -NET "io_tx[10]" LOC = "E1" ; -NET "io_tx[11]" LOC = "E3" ; -NET "io_tx[12]" LOC = "F4" ; -NET "io_tx[13]" LOC = "D2" ; -NET "io_tx[14]" LOC = "D4" ; -NET "io_tx[15]" LOC = "E4" ; +NET "io_tx[0]" LOC = "K4" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[1]" LOC = "K3" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[2]" LOC = "G1" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[3]" LOC = "G5" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[4]" LOC = "H5" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[5]" LOC = "F3" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[6]" LOC = "F2" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[7]" LOC = "F5" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[8]" LOC = "G6" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[9]" LOC = "E2" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[10]" LOC = "E1" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[11]" LOC = "E3" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[12]" LOC = "F4" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[13]" LOC = "D2" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[14]" LOC = "D4" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[15]" LOC = "E4" |DRIVE = 12 |SLEW = FAST ; NET "sen_rx_db" LOC = "D22" ; NET "sclk_rx_db" LOC = "F19" ; NET "sdo_rx_db" LOC = "G20" ; @@ -291,22 +291,22 @@ NET "sdi_rx_adc" LOC = "H22" ; NET "sen_rx_dac" LOC = "J18" ; NET "sclk_rx_dac" LOC = "J19" ; NET "sdi_rx_dac" LOC = "J21" ; -NET "io_rx[0]" LOC = "L21" ; -NET "io_rx[1]" LOC = "L20" ; -NET "io_rx[2]" LOC = "L19" ; -NET "io_rx[3]" LOC = "L18" ; -NET "io_rx[4]" LOC = "L17" ; -NET "io_rx[5]" LOC = "K22" ; -NET "io_rx[6]" LOC = "K21" ; -NET "io_rx[7]" LOC = "K20" ; -NET "io_rx[8]" LOC = "G22" ; -NET "io_rx[9]" LOC = "G21" ; -NET "io_rx[10]" LOC = "F21" ; -NET "io_rx[11]" LOC = "F20" ; -NET "io_rx[12]" LOC = "G19" ; -NET "io_rx[13]" LOC = "G18" ; -NET "io_rx[14]" LOC = "G17" ; -NET "io_rx[15]" LOC = "E22" ; +NET "io_rx[0]" LOC = "L21" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[1]" LOC = "L20" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[2]" LOC = "L19" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[3]" LOC = "L18" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[4]" LOC = "L17" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[5]" LOC = "K22" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[6]" LOC = "K21" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[7]" LOC = "K20" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[8]" LOC = "G22" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[9]" LOC = "G21" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[10]" LOC = "F21" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[11]" LOC = "F20" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[12]" LOC = "G19" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[13]" LOC = "G18" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[14]" LOC = "G17" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[15]" LOC = "E22" |DRIVE = 12 |SLEW = FAST ; NET "clk_to_mac" TNM_NET = "clk_to_mac"; TIMESPEC "TS_clk_to_mac" = PERIOD "clk_to_mac" 8 ns HIGH 50 %; -- cgit v1.2.3 From c81569139be394d514994833644ef710be1c886c Mon Sep 17 00:00:00 2001 From: ianb Date: Wed, 25 Aug 2010 18:54:51 -0700 Subject: hangedddddddextrnal fifo size to use full NoBL SRAM --- usrp2/top/u2_rev3/u2_core_udp.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usrp2/top/u2_rev3/u2_core_udp.v b/usrp2/top/u2_rev3/u2_core_udp.v index 38c840bc1..189c4966f 100644 --- a/usrp2/top/u2_rev3/u2_core_udp.v +++ b/usrp2/top/u2_rev3/u2_core_udp.v @@ -648,7 +648,7 @@ module u2_core wire tx_src_rdy, tx_dst_rdy; wire [31:0] debug_vt; - ext_fifo #(.EXT_WIDTH(18),.INT_WIDTH(36),.RAM_DEPTH(19),.FIFO_DEPTH(8)) + ext_fifo #(.EXT_WIDTH(18),.INT_WIDTH(36),.RAM_DEPTH(19),.FIFO_DEPTH(19)) ext_fifo_i1 ( .int_clk(dsp_clk), -- cgit v1.2.3 From 0a272630e605b1ba71c0b7c8de9011c047cc578c Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Wed, 1 Sep 2010 00:44:39 -0700 Subject: Enhanced test bench to be more like real world application --- usrp2/extramfifo/ext_fifo_tb.sh | 3 ++- usrp2/extramfifo/ext_fifo_tb.v | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/usrp2/extramfifo/ext_fifo_tb.sh b/usrp2/extramfifo/ext_fifo_tb.sh index a56574102..dcfede37a 100644 --- a/usrp2/extramfifo/ext_fifo_tb.sh +++ b/usrp2/extramfifo/ext_fifo_tb.sh @@ -1 +1,2 @@ -fuse -prj ext_fifo_tb.prj -t work.glbl -t work.ext_fifo_tb -L unisims_ver -L xilinxcorelib_ver -o ext_fifo_tb +#fuse -prj ext_fifo_tb.prj -t work.glbl -t work.ext_fifo_tb -L unisims_ver -L xilinxcorelib_ver -o ext_fifo_tb +iverilog -c ext_fifo_tb.cmd -o ext_fifo_tb ext_fifo_tb.v diff --git a/usrp2/extramfifo/ext_fifo_tb.v b/usrp2/extramfifo/ext_fifo_tb.v index db5f31a9d..0eda89769 100644 --- a/usrp2/extramfifo/ext_fifo_tb.v +++ b/usrp2/extramfifo/ext_fifo_tb.v @@ -84,11 +84,17 @@ module ext_fifo_tb(); initial begin - repeat (20) @(negedge int_clk); + repeat (5) @(negedge int_clk); + dst_rdy_i <= 1; + + while (src_rdy_o !== 1) + @(negedge int_clk); // Fall through fifo, first output already valid if (dataout !== ref_dataout) - $display("Error: Expected %x, got %x",ref_dataout, dataout); + $display("Error: Expected %x, got %x @%d",ref_dataout, dataout, $time); + ref_dataout <= ref_dataout + src_rdy_o ; + // Decimate by 16 rate while (ref_dataout < 2000) begin @@ -96,7 +102,7 @@ module ext_fifo_tb(); ref_dataout <= ref_dataout + src_rdy_o ; dst_rdy_i <= src_rdy_o; if ((dataout !== ref_dataout) && src_rdy_o) - $display("Error: Expected %x, got %x",ref_dataout, dataout); + $display("Error: Expected %x, got %x @%d",ref_dataout, dataout, $time); @(negedge int_clk); dst_rdy_i <= 0; repeat(14) @(negedge int_clk); @@ -108,7 +114,7 @@ module ext_fifo_tb(); ref_dataout <= ref_dataout + src_rdy_o ; dst_rdy_i <= src_rdy_o; if ((dataout !== ref_dataout) && src_rdy_o) - $display("Error: Expected %x, got %x",ref_dataout, dataout); + $display("Error: Expected %x, got %x @%d",ref_dataout, dataout, $time); @(negedge int_clk); dst_rdy_i <= 0; repeat(6) @(negedge int_clk); @@ -120,7 +126,7 @@ module ext_fifo_tb(); ref_dataout <= ref_dataout + src_rdy_o ; dst_rdy_i <= src_rdy_o; if ((dataout !== ref_dataout) && src_rdy_o) - $display("Error: Expected %x, got %x",ref_dataout, dataout); + $display("Error: Expected %x, got %x @%d",ref_dataout, dataout, $time); @(negedge int_clk); dst_rdy_i <= 0; repeat(2) @(negedge int_clk); @@ -132,7 +138,7 @@ module ext_fifo_tb(); ref_dataout <= ref_dataout + src_rdy_o ; dst_rdy_i <= src_rdy_o; if ((dataout !== ref_dataout) && src_rdy_o) - $display("Error: Expected %x, got %x",ref_dataout, dataout); + $display("Error: Expected %x, got %x @%d",ref_dataout, dataout, $time); end // while (ref_dataout < 10000) -- cgit v1.2.3 From 0a28cb5e7fbe81009e50fe03c4ffc3ce8db5052a Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Wed, 1 Sep 2010 03:08:11 -0700 Subject: Added to DCM's and some BUFG's to align the internal 125MHz clock edge with its presentation externally at the NoBL SRAM. Since we don't have a board level trace to use to estimate clock propigation delay we just loop through the I/O on the FPGA. This hasn't been verified as working on a USRP2 yet. --- usrp2/top/u2_rev3/u2_core.v | 2 +- usrp2/top/u2_rev3/u2_core_udp.v | 3 +- usrp2/top/u2_rev3/u2_rev3.ucf | 1 + usrp2/top/u2_rev3/u2_rev3.v | 99 ++++++++++++++++++++++++++++++++++++++++- 4 files changed, 100 insertions(+), 5 deletions(-) diff --git a/usrp2/top/u2_rev3/u2_core.v b/usrp2/top/u2_rev3/u2_core.v index 9ba3cc136..a5963f6b1 100755 --- a/usrp2/top/u2_rev3/u2_core.v +++ b/usrp2/top/u2_rev3/u2_core.v @@ -123,7 +123,7 @@ module u2_core output [18:0] RAM_A, output RAM_CE1n, output RAM_CENn, - output RAM_CLK, + // output RAM_CLK, output RAM_WEn, output RAM_OEn, output RAM_LDn, diff --git a/usrp2/top/u2_rev3/u2_core_udp.v b/usrp2/top/u2_rev3/u2_core_udp.v index 189c4966f..b5d0ed72f 100644 --- a/usrp2/top/u2_rev3/u2_core_udp.v +++ b/usrp2/top/u2_rev3/u2_core_udp.v @@ -125,7 +125,7 @@ module u2_core output [18:0] RAM_A, output RAM_CE1n, output RAM_CENn, - output RAM_CLK, + // output RAM_CLK, output RAM_WEn, output RAM_OEn, output RAM_LDn, @@ -705,7 +705,6 @@ module u2_core assign RAM_CLK = clk_to_mac; - // ///////////////////////////////////////////////////////////////////////// // VITA Timing diff --git a/usrp2/top/u2_rev3/u2_rev3.ucf b/usrp2/top/u2_rev3/u2_rev3.ucf index bf9569fe4..175fbec8d 100644 --- a/usrp2/top/u2_rev3/u2_rev3.ucf +++ b/usrp2/top/u2_rev3/u2_rev3.ucf @@ -324,6 +324,7 @@ NET "ser_rx_clk" TNM_NET = "ser_rx_clk"; TIMESPEC "TS_ser_rx_clk" = PERIOD "ser_rx_clk" 10 ns HIGH 50 %; NET "cpld_clk" CLOCK_DEDICATED_ROUTE = FALSE; +NET "GMII_RX_CLK" CLOCK_DEDICATED_ROUTE = FALSE; #NET "adc_a<*>" TNM_NET = ADC_DATA_GRP; #NET "adc_b<*>" TNM_NET = ADC_DATA_GRP; diff --git a/usrp2/top/u2_rev3/u2_rev3.v b/usrp2/top/u2_rev3/u2_rev3.v index 5e32b368a..cef868df9 100644 --- a/usrp2/top/u2_rev3/u2_rev3.v +++ b/usrp2/top/u2_rev3/u2_rev3.v @@ -373,14 +373,109 @@ module u2_rev3 ); end // block: gen_RAM_D_IO endgenerate + + // + // DCM edits start here + // + + + wire RAM_CLK_buf; + wire clk_to_mac_buf; + wire clk125_ext_clk0; + wire clk125_ext_clk180; + wire clk125_ext_clk0_buf; + wire clk125_ext_clk180_buf; + wire clk125_int_buf; + wire clk125_int; + + IBUFG clk_to_mac_buf_i1 (.I(clk_to_mac), + .O(clk_to_mac_buf)); + DCM DCM_INST1 (.CLKFB(RAM_CLK_buf), + .CLKIN(clk_to_mac_buf), + .DSSEN(1'b0), + .PSCLK(1'b0), + .PSEN(1'b0), + .PSINCDEC(1'b0), + .RST(clk125_ext_RST_IN), + .CLK0(clk125_ext_clk0), + .CLK180(clk125_ext_clk180) ); + defparam DCM_INST1.CLK_FEEDBACK = "1X"; + defparam DCM_INST1.CLKDV_DIVIDE = 2.0; + defparam DCM_INST1.CLKFX_DIVIDE = 1; + defparam DCM_INST1.CLKFX_MULTIPLY = 4; + defparam DCM_INST1.CLKIN_DIVIDE_BY_2 = "FALSE"; + defparam DCM_INST1.CLKIN_PERIOD = 8.000; + defparam DCM_INST1.CLKOUT_PHASE_SHIFT = "NONE"; + defparam DCM_INST1.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS"; + defparam DCM_INST1.DFS_FREQUENCY_MODE = "LOW"; + defparam DCM_INST1.DLL_FREQUENCY_MODE = "LOW"; + defparam DCM_INST1.DUTY_CYCLE_CORRECTION = "TRUE"; + defparam DCM_INST1.FACTORY_JF = 16'h8080; + defparam DCM_INST1.PHASE_SHIFT = 0; + defparam DCM_INST1.STARTUP_WAIT = "FALSE"; + + IBUFG RAM_CLK_buf_i1 (.I(RAM_CLK), + .O(RAM_CLK_buf)); + BUFG clk125_ext_clk0_buf_i1 (.I(clk125_ext_clk0), + .O(clk125_ext_clk0_buf)); + BUFG clk125_ext_clk180_buf_i1 (.I(clk125_ext_clk180), + .O(clk125_ext_clk180_buf)); + + OFDDRRSE RAM_CLK_i1 (.Q(RAM_CLK), + .C0(clk125_ext_clk0_buf), + .C1(clk125_ext_clk180_buf), + .CE(1'b1), + .D0(1'b1), + .D1(1'b0), + .R(1'b0), + .S(1'b0)); + + SRL16 dcm2_rst_i1 (.D(1'b0), + .CLK(clk_to_mac_buf), + .Q(dcm2_rst), + .A0(1'b1), + .A1(1'b1), + .A2(1'b1), + .A3(1'b1)); + // synthesis attribute init of dcm2_rst_i2 is "000F"; + + DCM DCM_INST2 (.CLKFB(clk125_int_buf), + .CLKIN(clk_to_mac_buf), + .DSSEN(1'b0), + .PSCLK(1'b0), + .PSEN(1'b0), + .PSINCDEC(1'b0), + .RST(clk125_int_RST_IN), + .CLK0(clk125_int)); + defparam DCM_INST2.CLK_FEEDBACK = "1X"; + defparam DCM_INST2.CLKDV_DIVIDE = 2.0; + defparam DCM_INST2.CLKFX_DIVIDE = 1; + defparam DCM_INST2.CLKFX_MULTIPLY = 4; + defparam DCM_INST2.CLKIN_DIVIDE_BY_2 = "FALSE"; + defparam DCM_INST2.CLKIN_PERIOD = 8.000; + defparam DCM_INST2.CLKOUT_PHASE_SHIFT = "NONE"; + defparam DCM_INST2.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS"; + defparam DCM_INST2.DFS_FREQUENCY_MODE = "LOW"; + defparam DCM_INST2.DLL_FREQUENCY_MODE = "LOW"; + defparam DCM_INST2.DUTY_CYCLE_CORRECTION = "TRUE"; + defparam DCM_INST2.FACTORY_JF = 16'h8080; + defparam DCM_INST2.PHASE_SHIFT = 0; + defparam DCM_INST2.STARTUP_WAIT = "FALSE"; + + BUFG clk125_int_buf_i1 (.I(clk125_int), + .O(clk125_int_buf)); + + // + // DCM edits end here + // u2_core #(.RAM_SIZE(32768)) u2_core(.dsp_clk (dsp_clk), .wb_clk (wb_clk), .clock_ready (clock_ready), - .clk_to_mac (clk_to_mac), + .clk_to_mac (clk125_int_buf), .pps_in (pps_in), .leds (leds_int), .debug (debug[31:0]), @@ -463,7 +558,7 @@ module u2_rev3 .RAM_A (RAM_A), .RAM_CE1n (RAM_CE1n), .RAM_CENn (RAM_CENn), - .RAM_CLK (RAM_CLK), + // .RAM_CLK (RAM_CLK), .RAM_WEn (RAM_WEn), .RAM_OEn (RAM_OEn), .RAM_LDn (RAM_LDn), -- cgit v1.2.3 From 60a22a5273b58da49aec5c66f46738be2b7499ba Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Tue, 14 Sep 2010 11:46:58 -0700 Subject: Enabled phase offset adjustment on DCM_INST1 which drives the external Fast SRAM clock. Set phase shift to -12 after experimentation using logic analyzer to see results. This value gives near optimum 1.5nS setup times on the source sync signals FPGA -> SRAM under lab conditions. --- usrp2/top/u2_rev3/u2_rev3.v | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/usrp2/top/u2_rev3/u2_rev3.v b/usrp2/top/u2_rev3/u2_rev3.v index cef868df9..faf35d12f 100644 --- a/usrp2/top/u2_rev3/u2_rev3.v +++ b/usrp2/top/u2_rev3/u2_rev3.v @@ -397,7 +397,7 @@ module u2_rev3 .PSCLK(1'b0), .PSEN(1'b0), .PSINCDEC(1'b0), - .RST(clk125_ext_RST_IN), + .RST(1'b0), .CLK0(clk125_ext_clk0), .CLK180(clk125_ext_clk180) ); defparam DCM_INST1.CLK_FEEDBACK = "1X"; @@ -406,13 +406,13 @@ module u2_rev3 defparam DCM_INST1.CLKFX_MULTIPLY = 4; defparam DCM_INST1.CLKIN_DIVIDE_BY_2 = "FALSE"; defparam DCM_INST1.CLKIN_PERIOD = 8.000; - defparam DCM_INST1.CLKOUT_PHASE_SHIFT = "NONE"; + defparam DCM_INST1.CLKOUT_PHASE_SHIFT = "FIXED"; defparam DCM_INST1.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS"; defparam DCM_INST1.DFS_FREQUENCY_MODE = "LOW"; defparam DCM_INST1.DLL_FREQUENCY_MODE = "LOW"; defparam DCM_INST1.DUTY_CYCLE_CORRECTION = "TRUE"; defparam DCM_INST1.FACTORY_JF = 16'h8080; - defparam DCM_INST1.PHASE_SHIFT = 0; + defparam DCM_INST1.PHASE_SHIFT = -12; defparam DCM_INST1.STARTUP_WAIT = "FALSE"; IBUFG RAM_CLK_buf_i1 (.I(RAM_CLK), @@ -431,14 +431,14 @@ module u2_rev3 .R(1'b0), .S(1'b0)); - SRL16 dcm2_rst_i1 (.D(1'b0), - .CLK(clk_to_mac_buf), - .Q(dcm2_rst), - .A0(1'b1), - .A1(1'b1), - .A2(1'b1), - .A3(1'b1)); - // synthesis attribute init of dcm2_rst_i2 is "000F"; +// SRL16 dcm2_rst_i1 (.D(1'b0), +// .CLK(clk_to_mac_buf), +// .Q(dcm2_rst), +// .A0(1'b1), +// .A1(1'b1), +// .A2(1'b1), +// .A3(1'b1)); + // synthesis attribute init of dcm2_rst_i1 is "000F"; DCM DCM_INST2 (.CLKFB(clk125_int_buf), .CLKIN(clk_to_mac_buf), @@ -446,7 +446,7 @@ module u2_rev3 .PSCLK(1'b0), .PSEN(1'b0), .PSINCDEC(1'b0), - .RST(clk125_int_RST_IN), + .RST(1'b0), .CLK0(clk125_int)); defparam DCM_INST2.CLK_FEEDBACK = "1X"; defparam DCM_INST2.CLKDV_DIVIDE = 2.0; -- cgit v1.2.3 From 84b42223ce7d119ef89ffa4030c904c1b8efc243 Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Thu, 30 Sep 2010 15:54:03 -0700 Subject: Modified phase shift of DCM1 to -64 which is intended to give more timing margin on reads from the SRAM at the expense of Writes to the SRAM. Tested to be at least as stable as a phase shift of 12 and beter looking timing on the logic analyzer. Signals driven by the FPGA are observed changing on the SRAM pins about 4 nS after the rising edge of the RAM clock. --- usrp2/top/u2_rev3/u2_rev3.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usrp2/top/u2_rev3/u2_rev3.v b/usrp2/top/u2_rev3/u2_rev3.v index faf35d12f..4f7f9bf1a 100644 --- a/usrp2/top/u2_rev3/u2_rev3.v +++ b/usrp2/top/u2_rev3/u2_rev3.v @@ -412,7 +412,7 @@ module u2_rev3 defparam DCM_INST1.DLL_FREQUENCY_MODE = "LOW"; defparam DCM_INST1.DUTY_CYCLE_CORRECTION = "TRUE"; defparam DCM_INST1.FACTORY_JF = 16'h8080; - defparam DCM_INST1.PHASE_SHIFT = -12; + defparam DCM_INST1.PHASE_SHIFT = -64; defparam DCM_INST1.STARTUP_WAIT = "FALSE"; IBUFG RAM_CLK_buf_i1 (.I(RAM_CLK), -- cgit v1.2.3 From 2261035e69c033b37d9fe784ef8d1150f39f0e47 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Wed, 6 Oct 2010 18:15:17 -0700 Subject: reconnect GPIOs, remove debug pins, meets timing now --- usrp2/top/u2_rev3/u2_core_udp.v | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/usrp2/top/u2_rev3/u2_core_udp.v b/usrp2/top/u2_rev3/u2_core_udp.v index b5d0ed72f..067a75759 100644 --- a/usrp2/top/u2_rev3/u2_core_udp.v +++ b/usrp2/top/u2_rev3/u2_core_udp.v @@ -414,7 +414,7 @@ module u2_core .cyc_i(s4_cyc),.stb_i(s4_stb),.adr_i(s4_adr[3:0]),.we_i(s4_we), .dat_i(s4_dat_o),.dat_o(s4_dat_i),.ack_o(s4_ack), .atr(atr_lines),.debug_0(debug_gpio_0),.debug_1(debug_gpio_1), - .gpio(/* {io_tx,io_rx}*/ ) ); + .gpio({io_tx,io_rx}) ); // ///////////////////////////////////////////////////////////////////////// // Buffer Pool Status -- Slave #5 @@ -715,11 +715,9 @@ module u2_core // ///////////////////////////////////////////////////////////////////////////////////////// // Debug Pins - assign debug_clk = {dsp_clk, clk_to_mac}; - assign debug = debug_extfifo; + assign debug_clk = 2'b00; // {dsp_clk, clk_to_mac}; + assign debug = 32'd0; // debug_extfifo; assign debug_gpio_0 = 32'd0; assign debug_gpio_1 = 32'd0; - assign {io_tx,io_rx} = debug_extfifo2; - endmodule // u2_core -- cgit v1.2.3 From 8507271de44aadc564354a77c8b9259e24f0d246 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Thu, 7 Oct 2010 11:10:00 -0700 Subject: revert unneeded changes and incorrect comments --- usrp2/top/u2_rev3/u2_rev3.ucf | 64 +++++++++++++++++++++---------------------- usrp2/vrt/vita_tx_deframer.v | 4 +-- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/usrp2/top/u2_rev3/u2_rev3.ucf b/usrp2/top/u2_rev3/u2_rev3.ucf index 175fbec8d..6e0caedd5 100644 --- a/usrp2/top/u2_rev3/u2_rev3.ucf +++ b/usrp2/top/u2_rev3/u2_rev3.ucf @@ -264,22 +264,22 @@ NET "sdi_tx_adc" LOC = "J4" ; NET "sen_tx_dac" LOC = "H4" ; NET "sclk_tx_dac" LOC = "J5" ; NET "sdi_tx_dac" LOC = "J6" ; -NET "io_tx[0]" LOC = "K4" |DRIVE = 12 |SLEW = FAST ; -NET "io_tx[1]" LOC = "K3" |DRIVE = 12 |SLEW = FAST ; -NET "io_tx[2]" LOC = "G1" |DRIVE = 12 |SLEW = FAST ; -NET "io_tx[3]" LOC = "G5" |DRIVE = 12 |SLEW = FAST ; -NET "io_tx[4]" LOC = "H5" |DRIVE = 12 |SLEW = FAST ; -NET "io_tx[5]" LOC = "F3" |DRIVE = 12 |SLEW = FAST ; -NET "io_tx[6]" LOC = "F2" |DRIVE = 12 |SLEW = FAST ; -NET "io_tx[7]" LOC = "F5" |DRIVE = 12 |SLEW = FAST ; -NET "io_tx[8]" LOC = "G6" |DRIVE = 12 |SLEW = FAST ; -NET "io_tx[9]" LOC = "E2" |DRIVE = 12 |SLEW = FAST ; -NET "io_tx[10]" LOC = "E1" |DRIVE = 12 |SLEW = FAST ; -NET "io_tx[11]" LOC = "E3" |DRIVE = 12 |SLEW = FAST ; -NET "io_tx[12]" LOC = "F4" |DRIVE = 12 |SLEW = FAST ; -NET "io_tx[13]" LOC = "D2" |DRIVE = 12 |SLEW = FAST ; -NET "io_tx[14]" LOC = "D4" |DRIVE = 12 |SLEW = FAST ; -NET "io_tx[15]" LOC = "E4" |DRIVE = 12 |SLEW = FAST ; +NET "io_tx[0]" LOC = "K4" ; +NET "io_tx[1]" LOC = "K3" ; +NET "io_tx[2]" LOC = "G1" ; +NET "io_tx[3]" LOC = "G5" ; +NET "io_tx[4]" LOC = "H5" ; +NET "io_tx[5]" LOC = "F3" ; +NET "io_tx[6]" LOC = "F2" ; +NET "io_tx[7]" LOC = "F5" ; +NET "io_tx[8]" LOC = "G6" ; +NET "io_tx[9]" LOC = "E2" ; +NET "io_tx[10]" LOC = "E1" ; +NET "io_tx[11]" LOC = "E3" ; +NET "io_tx[12]" LOC = "F4" ; +NET "io_tx[13]" LOC = "D2" ; +NET "io_tx[14]" LOC = "D4" ; +NET "io_tx[15]" LOC = "E4" ; NET "sen_rx_db" LOC = "D22" ; NET "sclk_rx_db" LOC = "F19" ; NET "sdo_rx_db" LOC = "G20" ; @@ -291,22 +291,22 @@ NET "sdi_rx_adc" LOC = "H22" ; NET "sen_rx_dac" LOC = "J18" ; NET "sclk_rx_dac" LOC = "J19" ; NET "sdi_rx_dac" LOC = "J21" ; -NET "io_rx[0]" LOC = "L21" |DRIVE = 12 |SLEW = FAST ; -NET "io_rx[1]" LOC = "L20" |DRIVE = 12 |SLEW = FAST ; -NET "io_rx[2]" LOC = "L19" |DRIVE = 12 |SLEW = FAST ; -NET "io_rx[3]" LOC = "L18" |DRIVE = 12 |SLEW = FAST ; -NET "io_rx[4]" LOC = "L17" |DRIVE = 12 |SLEW = FAST ; -NET "io_rx[5]" LOC = "K22" |DRIVE = 12 |SLEW = FAST ; -NET "io_rx[6]" LOC = "K21" |DRIVE = 12 |SLEW = FAST ; -NET "io_rx[7]" LOC = "K20" |DRIVE = 12 |SLEW = FAST ; -NET "io_rx[8]" LOC = "G22" |DRIVE = 12 |SLEW = FAST ; -NET "io_rx[9]" LOC = "G21" |DRIVE = 12 |SLEW = FAST ; -NET "io_rx[10]" LOC = "F21" |DRIVE = 12 |SLEW = FAST ; -NET "io_rx[11]" LOC = "F20" |DRIVE = 12 |SLEW = FAST ; -NET "io_rx[12]" LOC = "G19" |DRIVE = 12 |SLEW = FAST ; -NET "io_rx[13]" LOC = "G18" |DRIVE = 12 |SLEW = FAST ; -NET "io_rx[14]" LOC = "G17" |DRIVE = 12 |SLEW = FAST ; -NET "io_rx[15]" LOC = "E22" |DRIVE = 12 |SLEW = FAST ; +NET "io_rx[0]" LOC = "L21" ; +NET "io_rx[1]" LOC = "L20" ; +NET "io_rx[2]" LOC = "L19" ; +NET "io_rx[3]" LOC = "L18" ; +NET "io_rx[4]" LOC = "L17" ; +NET "io_rx[5]" LOC = "K22" ; +NET "io_rx[6]" LOC = "K21" ; +NET "io_rx[7]" LOC = "K20" ; +NET "io_rx[8]" LOC = "G22" ; +NET "io_rx[9]" LOC = "G21" ; +NET "io_rx[10]" LOC = "F21" ; +NET "io_rx[11]" LOC = "F20" ; +NET "io_rx[12]" LOC = "G19" ; +NET "io_rx[13]" LOC = "G18" ; +NET "io_rx[14]" LOC = "G17" ; +NET "io_rx[15]" LOC = "E22" ; NET "clk_to_mac" TNM_NET = "clk_to_mac"; TIMESPEC "TS_clk_to_mac" = PERIOD "clk_to_mac" 8 ns HIGH 50 %; diff --git a/usrp2/vrt/vita_tx_deframer.v b/usrp2/vrt/vita_tx_deframer.v index b62507092..f9cd7d00d 100644 --- a/usrp2/vrt/vita_tx_deframer.v +++ b/usrp2/vrt/vita_tx_deframer.v @@ -84,7 +84,7 @@ module vita_tx_deframer seqnum_err <= 0; end else - if((vita_state == VITA_STORE) & fifo_space ) //& src_rdy_i) + if((vita_state == VITA_STORE) & fifo_space) if(eop) if(has_trailer_reg) vita_state <= VITA_TRAILER; @@ -183,7 +183,7 @@ module vita_tx_deframer 3: sample_d <= data_i[31:0]; endcase // case (vector_phase) - wire store = (vita_state == VITA_STORE) ; //& src_rdy_i; + wire store = (vita_state == VITA_STORE); fifo_short #(.WIDTH(FIFOWIDTH)) short_tx_q (.clk(clk), .reset(reset), .clear(clear), .datain(fifo_i), .src_rdy_i(store), .dst_rdy_o(fifo_space), -- cgit v1.2.3 From 7e75951d263c00e9f84bdf14d6176680cb3de833 Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Fri, 15 Oct 2010 11:37:23 -0700 Subject: Added external RAM FIFO to u2plus. Added code branch to ext_fifo.v using generate that instantiates different input and out fifo's and touched nobl_fifo code so that it works at 18 and 36bit widths. Added 2nd DCM to top level to generate off chip RAMCLK. Added explicit I/O instances to top level for tristate drivers and changed signals to core as needed. Creted new FIFO's in core gen to replace much larger FIFO's used on u2rev3 --- usrp2/coregen/Makefile.srcs | 2 + usrp2/coregen/coregen.cgp | 6 +- usrp2/coregen/fifo_xlnx_32x36_2clk.gise | 30 + usrp2/coregen/fifo_xlnx_32x36_2clk.ncf | 0 usrp2/coregen/fifo_xlnx_32x36_2clk.ngc | 3 + usrp2/coregen/fifo_xlnx_32x36_2clk.v | 3839 +++++++++++++++++++++++++ usrp2/coregen/fifo_xlnx_32x36_2clk.veo | 47 + usrp2/coregen/fifo_xlnx_32x36_2clk.xco | 84 + usrp2/coregen/fifo_xlnx_32x36_2clk.xise | 72 + usrp2/coregen/fifo_xlnx_32x36_2clk_flist.txt | 12 + usrp2/coregen/fifo_xlnx_32x36_2clk_readme.txt | 46 + usrp2/coregen/fifo_xlnx_32x36_2clk_xmdf.tcl | 68 + usrp2/extramfifo/ext_fifo.v | 115 +- usrp2/extramfifo/ext_fifo_tb.sh | 0 usrp2/extramfifo/ext_fifo_tb.v | 103 +- usrp2/extramfifo/nobl_fifo.v | 41 +- usrp2/top/u2plus/Makefile | 2 + usrp2/top/u2plus/u2plus.ucf | 8 + usrp2/top/u2plus/u2plus.v | 83 +- usrp2/top/u2plus/u2plus_core.v | 37 +- 20 files changed, 4498 insertions(+), 100 deletions(-) create mode 100644 usrp2/coregen/fifo_xlnx_32x36_2clk.gise create mode 100644 usrp2/coregen/fifo_xlnx_32x36_2clk.ncf create mode 100644 usrp2/coregen/fifo_xlnx_32x36_2clk.ngc create mode 100644 usrp2/coregen/fifo_xlnx_32x36_2clk.v create mode 100644 usrp2/coregen/fifo_xlnx_32x36_2clk.veo create mode 100644 usrp2/coregen/fifo_xlnx_32x36_2clk.xco create mode 100644 usrp2/coregen/fifo_xlnx_32x36_2clk.xise create mode 100644 usrp2/coregen/fifo_xlnx_32x36_2clk_flist.txt create mode 100644 usrp2/coregen/fifo_xlnx_32x36_2clk_readme.txt create mode 100644 usrp2/coregen/fifo_xlnx_32x36_2clk_xmdf.tcl mode change 100644 => 100755 usrp2/extramfifo/ext_fifo_tb.sh diff --git a/usrp2/coregen/Makefile.srcs b/usrp2/coregen/Makefile.srcs index a59696d15..f163877a9 100644 --- a/usrp2/coregen/Makefile.srcs +++ b/usrp2/coregen/Makefile.srcs @@ -16,6 +16,8 @@ fifo_xlnx_16x19_2clk.v \ fifo_xlnx_16x19_2clk.xco \ fifo_xlnx_16x40_2clk.v \ fifo_xlnx_16x40_2clk.xco \ +fifo_xlnx_32x36_2clk.v \ +fifo_xlnx_32x36_2clk.xco \ fifo_xlnx_512x36_2clk_36to18.v \ fifo_xlnx_512x36_2clk_36to18.xco \ fifo_xlnx_512x36_2clk_18to36.v \ diff --git a/usrp2/coregen/coregen.cgp b/usrp2/coregen/coregen.cgp index 4c9201aff..dd85a7f50 100644 --- a/usrp2/coregen/coregen.cgp +++ b/usrp2/coregen/coregen.cgp @@ -1,4 +1,4 @@ -# Date: Mon Jul 26 21:55:33 2010 +# Date: Fri Oct 15 07:50:19 2010 SET addpads = false SET asysymbol = false @@ -13,10 +13,10 @@ SET foundationsym = false SET implementationfiletype = Ngc SET package = fg456 SET removerpms = false -SET simulationfiles = Behavioral +SET simulationfiles = Structural SET speedgrade = -5 SET verilogsim = true SET vhdlsim = false SET workingdirectory = /tmp/ -# CRC: 394da717 +# CRC: 983b9b45 diff --git a/usrp2/coregen/fifo_xlnx_32x36_2clk.gise b/usrp2/coregen/fifo_xlnx_32x36_2clk.gise new file mode 100644 index 000000000..70ee54054 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_32x36_2clk.gise @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + 11.1 + + + + + + + + + + diff --git a/usrp2/coregen/fifo_xlnx_32x36_2clk.ncf b/usrp2/coregen/fifo_xlnx_32x36_2clk.ncf new file mode 100644 index 000000000..e69de29bb diff --git a/usrp2/coregen/fifo_xlnx_32x36_2clk.ngc b/usrp2/coregen/fifo_xlnx_32x36_2clk.ngc new file mode 100644 index 000000000..d1ed419a7 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_32x36_2clk.ngc @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$56140<,[o}e~g`n;"2*726&;$9,)<>;.vnt*Ydo&lbjbQwloz\77~4>V8h`f agn3847=7081:?6?!039244=5<288?>?=;249MKVR\3nbb1=::1<20>512F__\XZ5dnww863=87n0?~6D@_UU8svjaXmdzuRzgrdqk81<76;?097GAPTV9twi`Wlg{xtQ{hsgplZgt{lx094?>3781?OIX\^1|ah_dosp|Ys`{oxdR`jg`vf81<768n097GAPTV9twi`Wog`Rzgrdqk81<76;>097GAPTV9twi`Wog`Rzgrdqk[dutm{~787>12596>LHW]]0{~biPftno[qnumzbTbhintd>7>58602?1CXZ_UU8geqgXkfex1:50?3a?011c96>JSSX\^1{Qkauc\gjsi|5>1<3?46595=<053?K?7;ONA394B1=?:=;?75:=159;A=G630805=:491230>?780805;<4A108E44<4A7;8EV_IKVXNK>5MU3:8FPUXAGLD=6M=;BG26>EOMJAT@DMJNRG\P\VB:2IB?6MCR89@KHKN\]OO=95LOSG\C@HBZH^BCCQFNGM4?FTBI]OO=6J=;EK0?AVH=2N[^L>:;ERQE4385KPSC06>C3<2OHM=<4F308BA5O53@:97D?=;H01?L5>3@DBX^ZNTD18MKP53EC97AA9;MMB@@B03EELENOC4:NVP70JR\:UG86BZT548HPR3WE?0A^I@N49NQ]E^k2Gjfb|YesqjkkeH6<2D:<=:4N0220>H68;>0B<><4:L241286@>0768J460<2D:<5:4N02:7>H69=1E=<>;;O3251=I988?7C?>359M54233G;:995A1047?K76?=1E=<6;;O32=6=I9;>0B<<=3:L276=I9=>0B<:>3:L216=I9?90B<9<;O3;7>H61:1E>==4N330?K45;2D9?>5A2518J7343G8=?6@=729M6=5=<;O177>H4=:1E?;=4N250?K5?;2D85>5A4118J1743G>9?6@;329M015>5A9218J<243G3>?6@6629M=25VFZ]k0\D@PBTQJ@]d2YDY_MJ3:QSK1=SQYO8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4567W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;=R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?03]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3455XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^e`[}iu89:;S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?1^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2347YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt7899T^h}zlu315>S7'nxm"h gbz-gim'{nT|cz}_ckm858592_;#j|i.sd,cf~)keas#jPpovq[goi4849=6[?/fpe*w`(ojr%oaew/sf\tkruWkce0?0=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<2<15>S7'nxm"h gbz-gim'{nT|cz}_ckm818582_;#j|i.sd,cf~)keas#jPpovq[goiW98;7X> gsd-vc)`kq$h`fv re]sjqtXj`dT=?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ=219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^114>S7'nxm"h gbz-gim'{nT|cz}_ckm[1413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=>=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45679;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0004?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789;:>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123671<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;?3^QT476<]9%l~k }f.e`|+ekcq%yhR~ats]dg969:91^<"i}f/pe+be&jf`t"|k_qlwvZad4849<6[?/fpe*w`(ojr%oaew/sf\tkruWni7>3328Q5)`zo$yj"ilx/aoo})ulVzexQhc=6=5c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[57a3\:$kh!rg-dg}(ddbr$~iQnup\cfY69o1^<"i}f/pe+be&jf`t"|k_qlwvZadW;;m7X> gsd-vc)`kq$h`fv re]sjqtXojU8=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS9<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8585>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk1?1279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:56;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi33?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4=4996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^211>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV;996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^011>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV9996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^61=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0=0=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6484956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2878512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><2<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:090=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W9837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\57><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh gsd-vc)`kq$h`fv ws]sjqtXj`d7=3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`32?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?7;463\:$kh!rg-dg}(ddbr${Qnup\flh;<78;7X> gsd-vc)`kq$h`fv ws]sjqtXj`dT4U1-dvc(un&mht#mcky-tvZvi|{UiecQ>219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^014>S7'nxm"h gbz-gim'~xT|cz}_ckm[6473\:$kh!rg-dg}(ddbr${Qnup\flhX<;<0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?0104?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt789::>;5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r123571<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?2005?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt78999m6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}0120[VQ7:91^<"i}f/pe+be&jf`t"y}_qlwvZad4949<6[?/fpe*w`(ojr%oaew/vp\tkruWni7=3328Q5)`zo$yj"ilx/aoo})pzVzexQhc=1=65=R8&myj#|i/fa{*fjlp&}yS}`{r^e`8186n2_;#j|i.sd,cf~)keas#z|Ppovq[beX88l0Y=!hrg,qb*adp'iggu!xr^rmpwY`kV;:j6[?/fpe*w`(ojr%oaew/vp\tkruWniT>f:W3+bta&{l$knv!cmi{+rtXxg~ySjmP4348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;878=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<0<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo585>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>0:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm783<:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[5423\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olS<<:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[7423\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olS><:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[14>3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?30?0:?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;7=3<6;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7;:7827X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3?7;4>3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?34?0;?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;TS7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S><7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X<;?0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVrd~=>?0378Q5)`zo$yj"ilx/aoo})pzVzexQhc^zlv5679;?0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVrd~=>?2378Q5)`zo$yj"ilx/aoo})pzVzexQhc^zlv567;::0Y=!hrg,qb*ak8'xo#j|>.sdtbq)Je|rT^LCPRE]FJZ@PN]8:??5Z0.eqb+ta'nf;"j gs3-vcqa|&GfyuQ]AL]Q@ZCIWO]MX??P13d8Q5)`zo$yj"ic0/pg+bt6&{l|jy!Bmtz\VDKXZLMDYYQJN031`>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj<1<1`>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj<0<1g>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_10`?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykP1278Q5)`zo$yj"ic0/pg+bt6&{l|jy!lusp\br`sWz~jxhQbuy2344:76:<0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`Yj}q:;<<2?>016?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykPmtz3457;979=7X> gsd-vc)`d9$yh"i}1/pescr(k|xySkyit^qweqcXe|r;<=?31?31<>S7'nxm"h gm2-va)`z8$yjzh{/dosp|Yao~Tjo<8;T2,cw`)zo%l`= }d.eq5+tao~$i`~{y^dtbqYn:o1^<"i}f/pe+bj7&{n$k?!rguep*cjx}sTjzh{_h]nq}67899;7X> gsd-vc)`d9$yh"i}1/pescr(mdzuRhxfu]j[hs89:;=?74U1-dvc(un&mg<#|k/fpbw+tt|z%ym`Qjmqvz[cdXa::0Y=!hrg,qb*ak8'xo#j|ns/pppv)uidUna}zv_g`\mZiu89:;?>5Z0.eqb+ta'nf;"j gscp*wus{&xjaRkbpu{\bgYnWfx;<=>>1410?P6(o{l%~k!hl1,q`*auiz$yy} r`o\ahvsqVliSdQ`r1234431;:1^<"i}f/pe+bj7&{n$ko|.sqww*tfeVof|ywPfc]j[jt789::95=<;T2,cw`)zo%l`= }d.eqev(u{}y$~lcPelrw}Z`eW`Ud~=>?00:077=R8&myj#|i/fn3*wb(o{kx"}{s.pbiZcjx}sTjoQf_np34565>:80Y=!hrg,qb*ak8'xo#j|ns/pppv)uidUna}zv_g`\mZiu89:;:?==;T2,cw`)zo%l`= }d.eqev(u{}y$~lcPelrw}Z`eW`Ud~=>?07117>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz>259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq45<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex><;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw064<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|30?32[LHQW98h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq84869;i0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?6;76:m1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQwos>0:476:j1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQwos>0:445k2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=6=547f3\:$kh!rg-dh5(ul&x{by| N032b>S7'nxm"h gm2-va)uxg~y#naznu>3:4`<]9%l~k }f.eo4+tc'{zex!lotlw8486n2_;#j|i.sd,ci6)zm%y|cz}/bmvjq:568l0Y=!hrg,qb*ak8'xo#~ats-`kphs4:4:j6[?/fpe*w`(oe:%~i!}povq+firf}6?2e:W3+bta&{l$ka>!re-qtkru'je~byQ=1d9V4*aun'xm#jb?.sf,vuhsz&idyczP30g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_501?P6(o{l%~k!hl1,q`*twf}x$ob{at^f28585:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc95;5>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<2=>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?7;453\:$kh!rg-dh5(ul&x{by| cnwmpZb64=49=6[?/fpe*w`(oe:%~i!}povq+firf}Uo=R>=1:W3+bta&{l$ka>!re-qtkru'je~byQk1^315>S7'nxm"h gm2-va)uxg~y#naznu]g5Z4592_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc9V99=6[?/fpe*w`(oe:%~i!}povq+firf}Uo=R:=4:W3+bta&{l$ka>!re-qtkru'je~byQaou23445a3\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(EhnoSigif^rmpwYwimUjhi>?01]`}969;o1^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[f;979m7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Ydq585?k5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567Wjs7?3=i;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Uhu1:1419V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Sa{{<0<74>S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pltv?6;273\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(EhnoSigif^rmpwYwimUjhi>?01]oqq:46=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5>58=5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567We080;0:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:Ttb|34?63?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,IdbcWmcmjR~ats]seaYflm:;<=Qwos>6:7`<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg8185n2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]sea:26;o0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcW=8n7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$hdhi_qlwvZvflV?8;6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimUjhi>?01>7:61<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[dbc89:;080=a:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/qplcZ`rdeUb??5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"~}of]eqijXaVg~t=>?3218Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-svjaXn|fgSdQbuy234674:2_;#j|i.sd,ci6){%l{l}!gqd-swva'yxdkRhzlm]j[kis89::>;5Z0.eqb+ta'nf;"z| gvcp*rus{&i9#iazt^k1270<]9%l~k }f.eo4+qu'n}j#y|tr-`6*bh}}Ub:?<9;T2,cw`)zo%l`= xr.etev(p{}y$o?!kotv\m2>582_;#j|i.sd,ci6){%l{l}!wrvp+fijx;8h7X> gsd-vc)`d9$|~"ixar,twqu(zhgTmac`su]eqijXa:>0Y=!hrg,qb*ak8'}y#jyns/uppv)uidUj``a|t^dvhiYnWds<=>?369V4*aun'xm#jb?.vp,crgt&~y"|nm^coijusWog`RgPmtz345668>9=7X> gsd-vc)`d9$|~"ixar,twqu(zhgTmac`su]eqijXaVg~t=>?03402>S7'nxm"h gm2-sw)`hy%{~z|/scn[djjgz~Tjxbc_h]nq}6789<?319V4*aun'xm#jb?.vp,crgt&~y"|nm^dvhiYnWds<=>?1171b>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVcTaxv?012137`<]9%l~k }f.eo4+qu'n}j#y|tr-qehYa}efTeRczx1234355n2_;#j|i.sd,ci6){%l{l}!wrvp+wgjWog`RgPmtz3456018n0Y=!hrg,qb*ak8'}y#ob_vp\akYn98l0Y=!hrg,qb*ak8'}y#ob_vp\akYn9V;9?6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at368Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkr6:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by<=4:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp6433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d8><4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\|jt;87;:SD@Y_10`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey0<0>13a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7>3?>2e9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{6822b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{682<<=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZ~hz5>5=f:W3+bta&{l$ka>!ws-ttkru'je~by2=>0d8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{<2<2b>S7'nxm"h gm2-sw)pxg~y#naznu>7:4c<]9%l~k }f.eo4+qu'~zex!lotlw[57b3\:$kh!rg-dh5(pz&}{by| cnwmpZ76m2_;#j|i.sd,ci6){%||cz}/bmvjqY59l1^<"i}f/pe+bj7&~x${}`{r.alqkrX;8o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW=897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:0=0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=3=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:56;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7?3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><5<15>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z6592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V;9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo=R<=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^115>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z25:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5:5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?2>>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?6;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54:49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>1:1209V4*aun'xm#jb?.vp,suhsz&idyczPd3]364=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y6:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U9><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?Q<209V4*aun'xm#jb?.vp,suhsz&idyczPd3]767=R8&myj#|i/fn3*rt(yd~"m`uov\`6:76;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm97=3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj<<3<16>S7'nxm"h gm2-sw)pxg~y#naznu]g7959:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl:6?2??4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=P0338Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1\577<]9%l~k }f.eo4+qu'~zex!lotlw[a5X:;;0Y=!hrg,qb*ak8'}y#z~ats-`kphsWm9T???4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=P4368Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_omw45669>1^<"i}f/pe+hcj'me~xRg30?3;?P6(o{l%~k!bel-gkprXa5;;2<64U1-dvc(un&gna"j`uu]j8479911^<"i}f/pe+hcj'me~xRg313<2<>S7'nxm"h mdo,`jssW`6:?3?7;T2,cw`)zo%fi`!kotv\m9736820Y=!hrg,qb*kbe&ndyyQf<07=5==R8&myj#|i/lgn+air|Vc7=;0>8:W3+bta&{l$ahc dnww[l:6?7;37X> gsd-vc)jmd%ocxzPi=3;:4><]9%l~k }f.ofi*bh}}Ub0<71169V4*aun'xm#`kb/emvpZo;97;37X> gsd-vc)jmd%ocxzPi=03:4><]9%l~k }f.ofi*bh}}Ub0??1199V4*aun'xm#`kb/emvpZo;:;4:46[?/fpe*w`(elg$hb{{_h>17;7?3\:$kh!rg-nah)cg|~Te1<;>0:8Q5)`zo$yj"cjm.flqqYn4;?5=55Z0.eqb+ta'dof#iazt^k?638602_;#j|i.sd,i`k(lfSd2=7?3;?P6(o{l%~k!bel-gkprXa5832<64U1-dvc(un&gna"j`uu]j87?99>1^<"i}f/pe+hcj'me~xRg32?3;?P6(o{l%~k!bel-gkprXa59;2<64U1-dvc(un&gna"j`uu]j8679911^<"i}f/pe+hcj'me~xRg333<2<>S7'nxm"h mdo,`jssW`68?3?7;T2,cw`)zo%fi`!kotv\m9536820Y=!hrg,qb*kbe&ndyyQf<27=52=R8&myj#|i/lgn+air|Vc7?3?8;T2,cw`)zo%fi`!kotv\m9299>1^<"i}f/pe+hcj'me~xRg35?34?P6(o{l%~k!bel-gkprXa5<5=:5Z0.eqb+ta'dof#iazt^k?3;703\:$kh!rg-nah)cg|~Te161169V4*aun'xm#`kb/emvpZo;17;=7X> gsd-vc)jmd%ocxzPi^222>S7'nxm"h mdo,`jssW`U:=:5Z0.eqb+ta'dof#iazt^k\55703\:$kh!rg-nah)cg|~TeR?>169V4*aun'xm#`kb/emvpZoX9;;<7X> gsd-vc)jmd%ocxzPi^3052=R8&myj#|i/lgn+air|VcT=9?8;T2,cw`)zo%fi`!kotv\mZ729>1^<"i}f/pe+hcj'me~xRgP1734?P6(o{l%~k!bel-gkprXaV;<=:5Z0.eqb+ta'dof#iazt^k\5=703\:$kh!rg-nah)cg|~TeR?6179V4*aun'xm#`kb/emvpZoX:8=0Y=!hrg,qb*kbe&ndyyQf_3223>S7'nxm"h mdo,`jssW`U9=<94U1-dvc(un&gna"j`uu]j[746?2_;#j|i.sd,i`k(lfSdQ=3058Q5)`zo$yj"cjm.flqqYnW;>:;6[?/fpe*w`(elg$hb{{_h]1141<]9%l~k }f.ofi*bh}}UbS?8>7:W3+bta&{l$ahc dnww[lY5?8=0Y=!hrg,qb*kbe&ndyyQf_3:23>S7'nxm"h mdo,`jssW`U95<84U1-dvc(un&gna"j`uu]j[6703\:$kh!rg-nah)cg|~TeR=?169V4*aun'xm#`kb/emvpZoX;8;<7X> gsd-vc)jmd%ocxzPi^1152=R8&myj#|i/lgn+air|VcT?>?8;T2,cw`)zo%fi`!kotv\mZ539>1^<"i}f/pe+hcj'me~xRgP3435?P6(o{l%~k!bel-gkprXaV>::6[?/fpe*w`(elg$hb{{_h]653=R8&myj#|i/lgn+air|VcT:<84U1-dvc(un&gna"j`uu]j[2713\:$kh!rg-nah)cg|~TeR6>6:W3+bta&{l$ahc dnww[lY>9j1^<"i}f/pe+hcj'me~xRgPnnv34576m2_;#j|i.sd,i`k(omg%h`!Br`o\VDK69o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ99;m7X> gsd-vc)jmd%lh` km.OqehYUID;:=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF=??i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@?<1g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB153e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL365c=R8&myj#|i/lgn+bbj&mg$Aob_SCN537a3\:$kh!rg-nah)`ld$oa"C}al]QEH709o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ91;m7X> gsd-vc)jmd%lh` km.OqehYUID;2=h5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF>>f:W3+bta&{l$ahc geo-`h)JzhgT^LC=10d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM302b>S7'nxm"h mdo,cak)ld%F~lcPR@O174`<]9%l~k }f.ofi*ace'nf#@|nm^PBI726n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK5=8l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE;<:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG9;f:W3+bta&{l$ahc geo-`h)JzhgT^LC=90g8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM23e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL135c=R8&myj#|i/lgn+bbj&mg$Aob_SCN747a3\:$kh!rg-nah)`ld$oa"C}al]QEH559o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ;:;m7X> gsd-vc)jmd%lh` km.OqehYUID9?=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF?8?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@=91g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB363e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL1;5c=R8&myj#|i/lgn+bbj&mg$Aob_SCN7<7b3\:$kh!rg-nah)`ld$oa"C}al]QEH26n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK388l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE=;:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG?>f:W3+bta&{l$ahc geo-`h)JzhgT^LC;40d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM572b>S7'nxm"h mdo,cak)ld%F~lcPR@O724`<]9%l~k }f.ofi*ace'nf#@|nm^PBI116n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK308l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE=3:i6[?/fpe*w`(elg$kic!dl-NvdkXZHG>=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF9=?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@;>1g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB533e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL705c=R8&myj#|i/lgn+bbj&mg$Aob_SCN117a3\:$kh!rg-nah)`ld$oa"C}al]QEH329o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ=?;m7X> gsd-vc)jmd%lh` km.OqehYUID?<=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF95?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@;61d9V4*aun'xm#`kb/ffn*ak(E{kfS_OB60d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM722b>S7'nxm"h mdo,cak)ld%F~lcPR@O554`<]9%l~k }f.ofi*ace'nf#@|nm^PBI346n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK1;8l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE?>:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG=9f:W3+bta&{l$ahc geo-`h)JzhgT^LC970d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM7:2b>S7'nxm"h mdo,cak)ld%F~lcPR@O5=4c<]9%l~k }f.ofi*ace'nf#@|nm^PBI27a3\:$kh!rg-nah)`ld$oa"C}al]QEH179o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ?8;m7X> gsd-vc)jmd%lh` km.OqehYUID=9=h5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF4 gsd-vc)jmd%lh` km.L2467>3\:$kh!rg-nah)`ld$oa"@>043:?P6(o{l%~k!bel-d`h(ce&D:<:?6;T2,cw`)zo%fi`!hdl,gi*H680;37X> gsd-vc)jmd%lh` km.L254?<]9%l~k }f.ofi*ace'nf#C?>10;8Q5)`zo$yj"cjm.egi+bj'G;:?<74U1-dvc(un&gna"ikm/fn+K76=830Y=!hrg,qb*kbe&moa#jb/O3234?<]9%l~k }f.ofi*ace'nf#C?>90;8Q5)`zo$yj"cjm.egi+bj'G;9=<74U1-dvc(un&gna"ikm/fn+K75;830Y=!hrg,qb*kbe&moa#jb/O3114?<]9%l~k }f.ofi*ace'nf#C?=70;8Q5)`zo$yj"cjm.egi+bj'G;95<64U1-dvc(un&gna"ikm/fn+K74901^<"i}f/pe+hcj'nnf"ic N0125<=R8&myj#|i/lgn+bbj&mg$B<=<189V4*aun'xm#`kb/ffn*ak(F89>=45Z0.eqb+ta'dof#jjb.eo,J450901^<"i}f/pe+hcj'nnf"ic N01:5<=R8&myj#|i/lgn+bbj&mg$B<:>189V4*aun'xm#`kb/ffn*ak(F8>8=45Z0.eqb+ta'dof#jjb.eo,J422901^<"i}f/pe+hcj'nnf"ic N0645==R8&myj#|i/lgn+bbj&mg$B<;>8:W3+bta&{l$ahc geo-`h)I9>;37X> gsd-vc)jmd%lh` km.L2=4><]9%l~k }f.ofi*ace'nf#C<>199V4*aun'xm#`kb/ffn*ak(F;9:46[?/fpe*w`(elg$kic!dl-M607?3\:$kh!rg-nah)`ld$oa"@=70:8Q5)`zo$yj"cjm.egi+bj'G82=55Z0.eqb+ta'dof#jjb.eo,J67602_;#j|i.sd,i`k(omg%h`!A323;?P6(o{l%~k!bel-d`h(ce&D89<64U1-dvc(un&gna"ikm/fn+K50911^<"i}f/pe+hcj'nnf"ic N2;2<>S7'nxm"h mdo,cak)ld%E88:W3+bta&{l$ahc geo-`h)I<0;<7X> gsd-vc)jmd%lh` km.L65==R8&myj#|i/lgn+bbj&mg$B8?>8:W3+bta&{l$ahc geo-`h)I=:;37X> gsd-vc)jmd%lh` km.L614><]9%l~k }f.ofi*ace'nf#C;8199V4*aun'xm#`kb/ffn*ak(F<3:46[?/fpe*w`(elg$kic!dl-M247?3\:$kh!rg-nah)`ld$oa"@930:8Q5)`zo$yj"cjm.egi+bj'G<>=55Z0.eqb+ta'dof#jjb.eo,J31602_;#j|i.sd,i`k(omg%h`!A6834?P6(o{l%~k!bel-d`h(ce&D<=55Z0.eqb+ta'dof#jjb.eo,J27602_;#j|i.sd,i`k(omg%h`!A723;?P6(o{l%~k!bel-d`h(ce&D<9<64U1-dvc(un&gna"ikm/fn+K10911^<"i}f/pe+hcj'nnf"ic N6;2<>S7'nxm"h mdo,cak)ld%E48:W3+bta&{l$ahc geo-`h)I00;<7X> gsd-vc)jmd%lh` km.L:5==R8&myj#|i/lgn+bbj&mg$B4?>8:W3+bta&{l$ahc geo-`h)I1:;37X> gsd-vc)jmd%lh` km.L:14><]9%l~k }f.ofi*ace'nf#C78199V4*aun'xm#`kb/ffn*ak(F03996[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<1<12>S7'nxm"h mdo,cak)ld%Tzl|fneg{456748:5>;5Z0.eqb+ta'dof#jjb.eo,[sguagnnt=>?0=32:70<]9%l~k }f.ofi*ace'nf#Rxnrhlga}67896:>3<9;T2,cw`)zo%fi`!hdl,gi*Yqi{cehhv?012?5685>2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;0<:1279V4*aun'xm#`kb/ffn*ak(Wkyecjjx12349726;<0Y=!hrg,qb*kbe&moa#jb/^tbvlhcmq:;<=2>6?05?P6(o{l%~k!bel-d`h(ce&U}mgaddz3456;9>49:6[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<0:=63=R8&myj#|i/lgn+bbj&mg$S{o}ioff|56785;22?;4U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>2:70<]9%l~k }f.ofi*ace'nf#Rxnrhlga}678969<3<9;T2,cw`)zo%fi`!hdl,gi*Yqi{cehhv?012?6485>2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;0?<1279V4*aun'xm#`kb/ffn*ak(Wkyecjjx12349446;<0Y=!hrg,qb*kbe&moa#jb/^tbvlhcmq:;<=2=4?05?P6(o{l%~k!bel-d`h(ce&U}mgaddz3456;:<49:6[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<34=63=R8&myj#|i/lgn+bbj&mg$S{o}ioff|567858<2?84U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>1<;413\:$kh!rg-nah)`ld$oa"Qyaskm``~789:7>40=5:W3+bta&{l$ahc geo-`h)X~hxbbikw01238785>2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;0>>1279V4*aun'xm#`kb/ffn*ak(Wkyecjjx12349566;<0Y=!hrg,qb*kbe&moa#jb/^tbvlhcmq:;<=2<2?05?P6(o{l%~k!bel-d`h(ce&U}mgaddz3456;;:49:6[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<26=63=R8&myj#|i/lgn+bbj&mg$S{o}ioff|567859>2?;4U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>0:73<]9%l~k }f.ofi*ace'nf#Rxnrhlga}67896?2?;4U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>6:73<]9%l~k }f.ofi*ace'nf#Rxnrhlga}67896=2?;4U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>4:73<]9%l~k }f.ofi*ace'nf#Rxnrhlga}6789632?;4U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>::4c<]9%l~k }f.ofi*ace'nf#iazt^k?4;7a3\:$kh!rg-nah)`ld$oa"j`uu]j84699o1^<"i}f/pe+hcj'nnf"ic dnww[l:697;m7X> gsd-vc)jmd%lh` km.flqqYn4885=k5Z0.eqb+ta'dof#jjb.eo,`jssW`6:?3?i;T2,cw`)zo%fi`!hdl,gi*bh}}Ub0<:11g9V4*aun'xm#`kb/ffn*ak(lfSd2>5?3e?P6(o{l%~k!bel-d`h(ce&ndyyQf<04=5c=R8&myj#|i/lgn+bbj&mg$hb{{_h>23;7a3\:$kh!rg-nah)`ld$oa"j`uu]j84>99o1^<"i}f/pe+hcj'nnf"ic dnww[l:617;n7X> gsd-vc)jmd%lh` km.flqqYn484:j6[?/fpe*w`(elg$kic!dl-gkprXa58;2<0>f:W3+bta&{l$ahc geo-`h)cg|~Te1<=>0d8Q5)`zo$yj"cjm.egi+bj'me~xRg322<2b>S7'nxm"h mdo,cak)ld%ocxzPi=07:4`<]9%l~k }f.ofi*ace'nf#iazt^k?6086n2_;#j|i.sd,i`k(omg%h`!kotv\m94168l0Y=!hrg,qb*kbe&moa#jb/emvpZo;:>4:j6[?/fpe*w`(elg$kic!dl-gkprXa583240>e:W3+bta&{l$ahc geo-`h)cg|~Te1<11g9V4*aun'xm#`kb/ffn*ak(lfSd2<0?3e?P6(o{l%~k!bel-d`h(ce&ndyyQf<23=5c=R8&myj#|i/lgn+bbj&mg$hb{{_h>06;7a3\:$kh!rg-nah)`ld$oa"j`uu]j86599o1^<"i}f/pe+hcj'nnf"ic dnww[l:4<7;m7X> gsd-vc)jmd%lh` km.flqqYn4:?5=h5Z0.eqb+ta'dof#jjb.eo,`jssW`682e:W3+bta&{l$ahc geo-`h)cg|~Te1811d9V4*aun'xm#`kb/ffn*ak(lfSd28>0g8Q5)`zo$yj"cjm.egi+bj'me~xRg38?3f?P6(o{l%~k!bel-d`h(ce&ndyyQf<8<2`>S7'nxm"h mdo,cak)ld%ocxzPi^22`>S7'nxm"h mdo,cak)ld%ocxzPi^32a>S7'nxm"h mdo,cak)ld%ocxzPi^335`=R8&myj#|i/lgn+bbj&mg$hb{{_h]254c<]9%l~k }f.ofi*ace'nf#iazt^k\577b3\:$kh!rg-nah)`ld$oa"j`uu]j[456m2_;#j|i.sd,i`k(omg%h`!kotv\mZ739l1^<"i}f/pe+hcj'nnf"ic dnww[lY6=8o0Y=!hrg,qb*kbe&moa#jb/emvpZoX9?;n7X> gsd-vc)jmd%lh` km.flqqYnW8=:i6[?/fpe*w`(elg$kic!dl-gkprXaV;3=h5Z0.eqb+ta'dof#jjb.eo,`jssW`U:5=?j;T2,cw`)zo%fi`!hdl,gi*bh}}UbS??>e:W3+bta&{l$ahc geo-`h)cg|~TeR<=1d9V4*aun'xm#`kb/ffn*ak(lfSdQ=30g8Q5)`zo$yj"cjm.egi+bj'me~xRgP253f?P6(o{l%~k!bel-d`h(ce&ndyyQf_372a>S7'nxm"h mdo,cak)ld%ocxzPi^055`=R8&myj#|i/lgn+bbj&mg$hb{{_h]134c<]9%l~k }f.ofi*ace'nf#iazt^k\6=7b3\:$kh!rg-nah)`ld$oa"j`uu]j[7?6l2_;#j|i.sd,i`k(omg%h`!kotv\mZ56m2_;#j|i.sd,i`k(omg%h`!kotv\mZ579l1^<"i}f/pe+hcj'nnf"ic dnww[lY498o0Y=!hrg,qb*kbe&moa#jb/emvpZoX;;;n7X> gsd-vc)jmd%lh` km.flqqYnW:9:i6[?/fpe*w`(elg$kic!dl-gkprXaV9?=h5Z0.eqb+ta'dof#jjb.eo,`jssW`U8910312>S7'nxm"h mdo,cak)ld%bb~zPLQO\IP^698;:>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W133260=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_9:;:>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W153260=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_9<;:>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W173260=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_9>;:>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W193260=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_90;:>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W213260=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_:8;:>;5Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W2032573<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP;8:=?;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX312573<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP;>:=?;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX372573<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP;<:=?;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX352573<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP;2:=?;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX3;2573<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP:::=?;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX232570<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP:;:=<<:;T2,cw`)zo%fi`!hdl,gi*oi{}UG\@QBUY1154423\:$kh!rg-nah)`ld$oa"gasu]OTHYJ]Q98=<<:;T2,cw`)zo%fi`!hdl,gi*oi{}UG\@QBUY1754423\:$kh!rg-nah)`ld$oa"gasu]OTHYJ]Q9>=<<;;T2,cw`)zo%fi`!hdl,gi*oi{}UG\@QBUY62572<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP<;:>95Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W60310>S7'nxm"h mdo,cak)ld%bb~zPLQO\IP^0988?7X> gsd-vc)jmd%lh` km.kmwqYKXDUFYU6>1368Q5)`zo$yj"cjm.egi+bj'`dxxRB_M^OV\<769o1^<"i}f/pe+hcj'nnf"ic wskwaZesze8;7X> gsd-vc)jmd%lh` km.uqmqcXk}xg=4U1-dvc(un&xxxobd/sf\vvrXizxnkRj>219V4*aun'xm#}{bmi,vaYu{}Ujkh_e02g>S7'nxm"h rrvahn)ulVxxxRm`mc3g?P6(o{l%~k!}su`oo*tcW{ySnabb03f?P6(o{l%~k!}su`oo*tcW{ySkh<1<2a>S7'nxm"h rrvahn)ulVxxxR|jg=3=5`=R8&myj#|i/sqwfim(zmUyyQ}ef>1:4b<]9%l~k }f.pppgjl'{nT~~zPrde\44b<]9%l~k }f.pppgjl'{nT~~zPrde\54b<]9%l~k }f.pppgjl'{nT~~zPrde\641<]9%l~k }f.pppgjl'{ySi?>7:W3+bta&{l$~~zmlj-qwqYc:8=0Y=!hrg,qb*tt|kf`#}{_e12`>S7'nxm"h rrvahn)pzVxxxRo|rde14>S7'nxm"h rrvahn)pzVxxxRo|rde\`4473\:$kh!rg-qwqdkc&}yS}{_`qqabYc:8i0Y=!hrg,qb*tt|kf`#z|Prrv\gjke9m1^<"i}f/pe+wusjea${Q}su]`khd69l1^<"i}f/pe+wusjea${Q}su]qab:768o0Y=!hrg,qb*tt|kf`#z|Prrv\v`a;97;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W9;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W8k0Y^K]_@NJEVe<]ZOYS[G\ICNF7>PDK01]EHYPTXRF0>QDDB80[H?k;YKOMK^*PMH+<#?/SUWA$5(6(HYHED;4XNP@]3=_[]FBN:5WSU]DJA1^c`VZye`Xjrrklj465lljf8`drfWje~by&?)e9geqgXkfex%?&d:fbpdYdg|d$?'k;ecweZeh}g~#?$j4d`vb[firf}"?%k5kauc\gjsi|5>1<394dckwawt13mce$='9;ekm,4/03mce$<>&7:fjj-76!>1oec&>2(58`lh/9:#<7iga(06*3>bnf!;>%:5kio*22,1.?2nbb%?6)79gmk.5!>1oec&=0(58`lh/:8#<7iga(30*3>bnf!88%:5kio*10,18'8;ekm,70.?2nbb%<8)69gmk.50 =0hd`'28+5?aoi :#<7iga(22*3>bnf!9:%:5kio*06,1'8;ekm,62.?2nbb%=:)79gmk.3!?1oec&:)79gmk.1!?1oec&8)79gmk.?!?1oec&6)79gmk:76>1oec2>0?58`lh;984<7iga<00=3>bnf5;82:5kio>20;169gmk:607=0hd`318<5?aoi484<7iga<32=3>bnf58:2:5kio>16;1>08;ekm8729?2nbb1<:>69gmk:5>7=0hd`326<4?aoi4;25;6jfn=0::3=cag692:5kio>04;169gmk:4<730hd`33483:2=cag689384dhl?7;00(:8`jss 8;"46j`uu*26,>bh}}"::$64dnww,41.02ndyy&>8(:8`jss 83";6j`uu*1-==cg|~#>='7;emvp-46!11ocxz'23+;?air|!88%55kotv+61/?3me~x%<:)99gkpr/:?#37iazt)04-==cg|~#>5'7;emvp-4>!>1ocxz'3(:8`jss ::"46j`uu*05,><&8:flqq.4; 20hb{{(26*<>bh}}"89$94dnww,1/03me~x%;&7:flqq.1!>1ocxz'7(58`jss 1#<7iazt);*3>bh}}6;255kotv?558?3me~x1?>>99gkpr;9;437iazt=30:==cg|~7=907;emvp972611ocxz317<;?air|5;<255kotv?5=8?3me~x1?6>69gkpr;9720hb{{<32=<>bh}}69=364dnww874902ndyy2=3?:8`jss4;>546j`uu>11;>bh}}695394dnww878?3me~x1=?>99gkpr;;8437iazt=11:==cg|~7?>07;emvp9536h1ocxz33483:==cg|~7?808;emvp959?2ndyy2;>69gkpr;=7=0hb{{<7<4?air|5=5;6j`uu>;:2=cg|~75364eeke6kac=2of|yw=f:djbjY`mgoymya}_w4\5)&_aecet-M@RD"Dakcui}ey,<kn;gkekZ~kfqU8>u=9_3aoo)`nnfUlick}aumq[s0X9%qhSeo|_hlw[fjl59&hSeo|_rppp86+kVxoSk|jq<3/gZciikfnS}{_r{mg87+kVbjR|k_ecweZeh}g~64)eX`hyTc{k}fmmt95*dWyxn`bok_mcwake~59&hSiazt^uj`qn:;?&hS`}hoo]uei;6$jUyhRjjpuj>77*dWlxycQfnkg`pliiW}s{i0>#c^jbwZsillxm`by20-a\lduXiegdyQiumn>5)eX`hyT~~z21-a\`drfWje~byQxievk90*dWakxSz|Pabi>4)eX}zoTinm20-a\gjkjggUh`bmd=1.`[rtXijaT`by20-a\vaYwf}xT{dj{h<7/gZstmVl|jyQkauc\gjsi|4:'oRfns^coijusWlg{xt3?,b]q`Zbf|hUhcx`{_vkgpm;2$jUdzh|ilnu\hjq:8%iT{Qnup\slbs`4?'oR~}of]fiur~W}s{i0>#c^uq[agsiVidyczPwhfwl83+kVzyiaand^pfcv;6$jUocxzPrrv\rdj:8%iTdl}Pd`vb[firf}7; nQrne\bpjkW}byi~fPndebp`Yqie79?!mPws]gauro5:8'oR~}of]fiur~W}byi~fPndebp`Yqie7> nQrne\ahvsqV~c~h}g_`qpawrX~hf68!mPh`q\rdjnl4:'oR~}of]eqijX|axneQnsrgqpZpfd48? nabpnlfjqYiido6jdh`_ynm|Z55p:nbd,b]ueiocWee|1="l_qpjiZ`nnfUu}k2500{73*dWyxdkRhzlm]w}uc:9%iTahc`rx]w}uc::%w9i6hffn]{hk~X;;r8:R0|ah_dosp|Ys`{oxd%>&159svjaXmdzuRzgrdqk,4/6<2zycjQjmqvz[qnumzb#>$?;;qplcZcjx}sTxe|jsi*0-42"=;5rne\ahvsqV~c~h}g<583:4dvugnUna}zv_ujqavnXizyn~y&>)0`8twi`Wlg{xtQ{hsgplZgt{lx$?'>b:rqkbYbey~rSyf}erj\evubz}"8%vugnUna}zv_ujqavnXflmjxh&;)0f8twi`Wlg{xtQ{hsgplZhboh~n094?>89svjaXn|fg=>5rne\bpjkW}byi~f'0(30?uthoVl~`aQ{hsgpl-7.9:1{~biPftno[qnumzb#>$?<;qplcZ`rdeUdk|h)1*56=wzfmTjxbc_ujqavn/< ;>7}|`g^dvhiYs`{oxd1:50?3b?uthoVl~`aQ{hsgplZgt{lx$='>a:rqkbYa}efTxe|jsi]bwvcu|!;"=l5rne\bpjkW}byi~fParqfvq.5!8k0|ah_gwohZrozlycSl}|esv+7,7f3yxdkRhzlm]wlwct`Vkxh|{(5+2g>vugnUmyabPtipfwmYf{zoyx1:50?3b?uthoVl~`aQ{hsgplZhboh~n$='>a:rqkbYa}efTxe|jsi]mabgsm!;"=l5rne\bpjkW}byi~fPndebp`.5!8k0|ah_gwohZrozlycSckhaug+7,7f3yxdkRhzlm]wlwct`Vdnklzj(5+2g>vugnUmyabPtipfwmYimnki1:50?48vaYddb;;7jPd`vb[firf}";%<>4re]geqgXkfex%?&119q`Zbf|hUhcx`{(3+24>tcWmkmRm`uov+7,773{nThlzn_bmvjq.3!8:0~iQkauc\gjsi|5:5=?5}d^fbpdYdg|d094?>49q`Zci>2xoS}{3:ppp2=tj`~n~:4ssqw0>ru}l30ycjjrgnls0=qieco:6y}_`ah2>quWjf`==5xr^fbpdYdg|d$='>0:uq[agsiVidycz'1(33?rtXlh~jSnaznu*1-46<{UomyoPcnwmp-5.991|~Rjnt`]`kphs =#:>6y}_ecweZeh}g~787>15:uq[`h13~xT~~zr@Arf5==GHq;1J7:51zQ00?5a=3?1=>;o162?0<,:?86>:k;|Q06?5a=3?1=>684>33`4=2<6:=lo7{Zm9;295?7=913p_>:53g791?74:k=2;7?=4gf8 62f2<:0Z>;;:3yv1<<63|?j6=5r$c09f>d4n10;68?53;72M5302P9o7o3;90;66a<5983>>i39<0;66g;4183>>i4nj0;66a>o3;00;66g;3383>>i4k00;6)l;:2g`?kd42910c>m7:18'f1<4mj1en>4>;:m0g2<72-h?6>kl;o`0>7=!d32:oh7cl<:598k6e3290/n946cd3gh86;54o2a2>5<#j=08in5ab284?>i4k90;6)l;:2g`?kd42110c>li:18'f1<4mj1en>46;:m0f`<72-h?6>kl;o`0>d=!d32:oh7cl<:b98k6de290/n946cd3gh86h54o2`:>5<#j=08in5ab28e?>i4j>0;6)l;:2g`?kd428:07b=m6;29 g2=;li0bo=51098k6d2290/n94kl;o`0>42<3f9i>7>5$c697`e5<#j=08in5ab2822>=h;k:1<7*m4;1fg>he;3;<76a!d32:oh7cl<:0:8?j5fm3:1(o:53da8jg5=9010c>mi:18'f1<4mj1en>4>a:9l7fc=83.i87=jc:la7?7e32e8oi4?:%`7>6cd3gh861?hm4nc195a=i4k:0;6)l;:2g`?kd42;:07b=m8;29 g2=;li0bo=52098k6gc290/n94o<;o`0>5=!d32:k87cl<:398m61c290/n946g43gh86954i25a>5<#j=08m>5ab286?>o4?00;6)l;:2c0?kd42?10e>97:18'f1<4i:1en>48;:k032<72-h?6>o<;o`0>==!d32:k87cl<:`98m613290/n944?:%`7>6g43gh86n54i251>5<#j=08m>5ab28g?>o4?80;6)l;:2c0?kd42l10e>9?:18'f1<4i:1en>4i;:k02`<72-h?6>o<;o`0>46<3`9=h7>5$c697d55<#j=08m>5ab2826>=n;?h1<7*m4;1b7>he;3;876g<6`83>!d32:k87cl<:068?l5113:1(o:53`18jg5=9<10e>87:18'f1<4i:1en>4>6:9j731=83.i87=n3:la7?7032c8:;4?:%`7>6g43gh86<64;h151?6=,k>1?l=4nc195<=o40=0;6)l;:2c0?kd428i07d=73;29 g2=;h90bo=51e98m6>5290/n94o<;o`0>76<3`9=j7>5$c697d5<54i247>5<#j=08m>5ab2816>=n;?91<7*m4;1b7>he;38876g;2983>>d4<00;6<4?:1yK71><,kh1?974oc394?=zj=?1<7?50;2xL62?3-hi69;4o5694?=zj;h1<76i:043>4>>sA9?46T=c;3546=n3;:6<;513827?732h026<8516821?702h0::7??:8820?742881=<4i:|&af?5aj2.9j7=i9:&07?5ai2.jh7l?;h63`?6=,k>18=k4nc194>=n<9i1<7*m4;63a>he;3;07d:?b;29 g2=<9o0bo=52:9j05g=83.i87:?e:la7?5<3`>;57>5$c6905c;46`m3;28?l27>3:1(o:541:8jg5=921b8=;50;&a0?2702di?7<4;h630?6=,k>18=64nc197>=n<991<7*m4;63<>he;3>07d:<0;29?j2793:17d:>3;29 g2=<8>0bo=50:9j044=83.i87:>4:la7?7<3`>:=7>5$c6904265f40294?"e<3>:86`m3;18?l27n3:1(o:54068jg5=<21d?8650;9l736=83.i87=91:la7?6<3f9>j7>5$c69737?<7>5;h62e?6=,k>18=n<831<7*m4;62f>he;3;07d:>8;29 g2=<8h0bo=52:9j041=83.i87:>b:la7?5<3`>::7>5$c6904d9=6`m3;28?l26n3:1(o:54338jg5=921b818??4nc197>=n<8i1<7*m4;615>he;3>07d:=6;29 g2=<;=0bo=50:9j073=83.i87:=7:la7?7<3`>987>5$c6907165f43194?"e<3>9;6`m3;18?l25:3:1(o:54358jg5=<21d?8950;9j7c`=831b?8l50;9j017=831d8>=50;9l06>=831b8><50;9l7f?=83.i87=jc:la7?6<3f9h47>5$c697`e3:1(o:53da8jg5=;21d?n;50;&a0?5bk2di?7:4;n1`0?6=,k>1?hm4nc191>=h;j81<7*m4;1fg>he;3<07b=l1;29 g2=;li0bo=57:9l7f6=83.i87=jc:la7?><3f9ij7>5$c697`e1?hm4nc19`>=h;kk1<7*m4;1fg>he;3o07b=m9;29 g2=;li0bo=5f:9l7g1=83.i87=jc:la7?7732e8n;4?:%`7>6cd3gh861?hm4nc1957=i4j;0;6)l;:2g`?kd428?07b=m1;29 g2=;li0bo=51798k6d7290/n94kl;o`0>4?<3f9hj7>5$c697`e5<#j=08in5ab282f>=h;jn1<7*m4;1fg>he;3;h76a!d32:oh7cl<:0f8?j5dj3:1(o:53da8jg5=9l10c>mn:18'f1<4mj1en>4>f:9l7f5=83.i87=jc:la7?4732e8n54?:%`7>6cd3gh86??4;n1b`?6=,k>1?hm4nc1967=1?l=4nc197>=n;>i1<7*m4;1b7>he;3>07d=8b;29 g2=;h90bo=55:9j72?=83.i87=n3:la7?0<3`9<47>5$c697d53:1(o:53`18jg5=121b?:;50;&a0?5f;2di?7o4;h140?6=,k>1?l=4nc19f>=n;>91<7*m4;1b7>he;3i07d=82;29 g2=;h90bo=5d:9j727=83.i87=n3:la7?c<3`9<<7>5$c697d5o4>m0;6)l;:2c0?kd428;07d=9c;29 g2=;h90bo=51398m60e290/n94o<;o`0>43<3`9=47>5$c697d55<#j=08m>5ab2823>=n;?<1<7*m4;1b7>he;3;376g<6483>!d32:k87cl<:0;8?l5?>3:1(o:53`18jg5=9h10e>6::18'f1<4i:1en>4>b:9j7=2=83.i87=n3:la7?7d32c84>4?:%`7>6g43gh861?l=4nc195`=o4>o0;6)l;:2c0?kd42;;07d=94;29 g2=;h90bo=52398m604290/n949o7>5$c6907`9j6`m3;08?j25i3:1(o:543d8jg5=;21d8?750;&a0?25n2di?7:4;n60a?6=,k>18>h4nc194>=h<:n1<7*m4;60b>he;3;07b:8m7>5$c6906`14<@:>m7E=;8:&7f?2>oe=3:17bl9:188yg55n3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xd4;m0;694?:1y'fg<3:2B88k5G35:8L7g<,<=18>;4$5`90>o5l3:17d=::188mg3=831dn;4?::a764=8391<7>t$c`97c=O;=l0D>:7;I0b?!302=9>7):m:39j6a<722c897>5;n`5>5<53;294~"ej39m7E=;f:J00==O:h1/9:4;349'0g<53`8o6=44i2794?=hj?0;66sm32a94?2=83:p(ol5439K71`<@:>37E1523->i695f2e83>>o4=3:17dl::188kg0=831vn>=>:180>5<7s-hi6>h4H26e?M5302B9m6*:7;601>"3j380e?j50;9j70<722ei:7>5;|`07`<72<0;6=u+bc877>N45;h`6>5<5<4290;w)lm:2d8L62a3A9?46F=a:&63?24=2.?n7<4i3f94?=n;<0;66am6;29?xd4;90;684?:1y'fg<3;2B88k5G35:8L7g<,<=18>;4i3f94?=n:l0;66g<5;29?ld22900co850;9~f65e290?6=4?{%`a>14<@:>m7E=;8:J1e>"2?3>896*;b;68m7b=831b?84?::ka1?6=3fh=6=44}c10e?6=<3:1;50;9jf0<722ei:7>5;|`07<<72=0;6=u+bc876>N4o5l3:17d=::188mg3=831dn;4?::a76>=83>1<7>t$c`907=O;=l0D>:7;%6a>1=n:m0;66g<5;29?ld22900co850;9~f621290?6=4?{%`a>14<@:>m7E=;8:&7f?2>oe=3:17bl9:188yg53=3:187>50z&af?253A9?j6F<499'0g<33`8o6=44i2794?=nj<0;66am6;29?xddl3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xddk3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xddj3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xddi3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xdd13:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xd6880;694?:1y'fg<382B88k5G35:8 1d=:2c9h7>5;h12>5<>{e99:1<7:50;2x gd=<91C?9h4H26;?!2e2;1b>i4?::k05?6=3`9>6=44oc494?=zjol1<7:50;2x gd=<91C?9h4H26;?!2e2;1b>i4?::k05?6=3`9>6=44oc494?=zjoo1<7:50;2x gd=<91C?9h4H26;?!2e2;1b>i4?::k05?6=3`9>6=44oc494?=zjon1<7:50;2x gd=<91C?9h4H26;?!2e2;1b>i4?::k05?6=3`9>6=44oc494?=zj88<6=4;:183!de2=:0D>:i;I17<>"3j380e?j50;9j74<722c897>5;n`5>5<54;294~"ej3>;7E=;f:J00==#84?:583>5}#jk0?<6F<4g9K71><,=h1>6g=d;29?l562900e>;50;9lf3<722wi=?:50;694?6|,kh18=5G35d8L62?3->i6?5f2e83>>o493:17d=::188kg0=831vn<<<:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qoh<:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qoh=:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qoh>:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qoh?:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qoki:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qo?>d;290?6=8r.in7:?;I17b>N4<11C>l5+568770=#5}#jk0?<6F<4g9K71><@;k0(8954278 1d=:2c9h7>5;h12>5<>{e98h1<7:50;2x gd=<91C?9h4H26;?M4f3-?<69=:;%6a>7=n:m0;66g<1;29?l522900co850;9~f47f290?6=4?{%`a>16<@:>m7E=;8:J1e>"2?3>896*;b;08m7b=831b?<4?::k01?6=3fh=6=44}c32=?6=<3:15<>ie>3:17plj9;290?6=8r.in7:?;I17b>N4<11C>l5+568770=#54;294~"ej3>;7E=;f:J00==O:h1/9:4;349'0g<53`8o6=44i2394?=n;<0;66am6;29?xdb?3:187>50z&af?273A9?j6F<499K6d=#=>0??85+4c81?l4c2900e>?50;9j70<722ei:7>5;|`f2?6=<3:15<>ie>3:17plj5;290?6=8r.in7:?;I17b>N4<11C>l5+568770=#54;294~"ej3>;7E=;f:J00==#54;294~"ej3>;7E=;f:J00==#54;294~"ej3>;7E=;f:J00==#54;294~"ej3>;7E=;f:J00==#54;294~"ej3>;7E=;f:J00==#4?:583>5}#jk0?<6F<4g9K71><,=h1>6g=d;29?l562900e>;50;9lf3<722wi=<<50;694?6|,kh18=5G35d8L62?3->i6?5f2e83>>o493:17d=::188kg0=831vn:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qo?>0;290?6=8r.in7:?;I17b>N4<11/8o4=;h0g>5<>ie>3:17pl>0g83>1<729q/no4;0:J00c=O;=20(9l52:k1`?6=3`9:6=44i2794?=hj?0;66sm14;94?3=83:p(ol5409K71`<@:>37):m:39j6a<722c9i7>5;h12>5<>{e9<21<7;50;2x gd=<81C?9h4H26;?!2e2;1b>i4?::k1a?6=3`9:6=44i2794?=hj?0;66sm14494?3=83:p(ol5409K71`<@:>37):m:39j6a<722c9i7>5;h12>5<>{e9i4?::k1a?6=3`9>6=44ic794?=hj?0;66sm14594?3=83:p(ol5409K71`<@:>37):m:39j6a<722c9i7>5;h12>5<>{e9?91<7;50;2x gd=<81C?9h4H26;?!2e2;1b>i4?::k1a?6=3`9:6=44i2794?=hj?0;66sm17094?3=83:p(ol5409K71`<@:>37):m:39j6a<722c9i7>5;h12>5<>{e9?;1<7;50;2x gd=<81C?9h4H26;?!2e2;1b>i4?::k1a?6=3`9:6=44i2794?=hj?0;66sm17294?3=83:p(ol5409K71`<@:>37):m:39j6a<722c9i7>5;h12>5<>{e9i4?::k1a?6=3`9:6=44i2794?=hj?0;66sm12594?2=83:p(ol5439K71`<@:>37):m:59j6a<722c897>5;h`6>5<5<3290;w)lm:508L62a3A9?46*;b;68m7b=831b?84?::ka1?6=3fh=6=44}c306?6=<3:1?50;9j70<722ei:7>5;|`274<72=0;6=u+bc874>N4o5l3:17d=>:188m63=831dn;4?::a526=8391<7>t$c`971c<@:>m7E=;8:k04?6=3`>o6=44o`d94?=zj8n7E=;f:J00==n;90;66g;d;29?jga2900qo?99;290?6=8r.in7;7;I17b>N4<11b?=4?::k02?6=3`h36=44o`d94?=zj8<36=4;:183!de2<20D>:i;I17<>o483:17d=9:188mg>=831dmk4?::a531=83>1<7>t$c`91==O;=l0D>:7;h13>5<>ifn3:17pl>6783>1<729q/no4:8:J00c=O;=20e>>50;9j73<722ci47>5;nce>5<54;294~"ej3?37E=;f:J00==n;90;66g<6;29?ld?2900clh50;9~f413290?6=4?{%`a>16<@:>m7E=;8:&7f?4>o4=3:17bl9:188yg70;3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xd6?>0;684?:1y'fg<3;2B88k5G35:8 1d=<2c9h7>5;h0f>5<>ie>3:17pl>a583>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6i:0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>a083>0<729q/no4;3:J00c=O;=20(9l54:k1`?6=3`8n6=44i2794?=nj<0;66am6;29?xd6i90;684?:1y'fg<3;2B88k5G35:8 1d=<2c9h7>5;h0f>5<>ie>3:17pl>a383>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6ij0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>a`83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6ik0;684?:1y'fg<3;2B88k5G35:8 1d=<2c9h7>5;h0f>5<>ie>3:17pl>ae83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6il0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>b783>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6j=0;684?:1y'fg<3;2B88k5G35:8 1d=<2c9h7>5;h0f>5<>ie>3:17pl>b483>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6j>0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>b983>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6k;0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>c083>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6k90;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>bg83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6jl0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=e483>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5m?0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f083>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5nj0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl<0283>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd48=0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl<0483>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd48?0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl<0683>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd4810;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=e683>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5m10;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=e883>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5mh0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=ec83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5mj0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=ee83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5ml0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=eg83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5n90;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f383>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5n:0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f583>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5n<0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f783>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5n>0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f983>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5n00;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f`83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5nk0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=fe83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5nl0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=fg83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd4890;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl<0083>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd48;0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0e83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9=54?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5::0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`101<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2d83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9?44?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`116<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=5583>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th95}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5980;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`14c<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=1183>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9=?4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd59:0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`151<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=1483>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9=44?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd59?0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`152<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=1`83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9=o4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd59j0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`15a<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2183>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9=h4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd59o0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`164<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2383>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9>94?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5:<0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`16=<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2783>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9>:4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5:00;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`16d<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2c83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9>n4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;90;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`16a<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2g83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9?<4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;;0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`176<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=3583>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9?:4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;<0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`173<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=3c83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9?54?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;h0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`17`<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=3b83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9?i4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;o0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`105<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=4083>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th98?4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`106<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=4483>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th98:4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5<10;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`10<<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=4`83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th98i4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`10f<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=4d83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th99=4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5=80;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`117<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=0483>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd58=0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0283>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd58;0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0083>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5890;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>fd83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6nm0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>fb83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6nk0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>f`83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n00;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>f983>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n>0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>f783>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n<0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>f283>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n;0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>f083>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n90;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>eg83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6ml0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>ee83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6mj0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>ec83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6mh0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0c83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd58h0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0883>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5810;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0683>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd58?0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>fg83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n=0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>e883>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6m10;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>8783>1<729q/no4;2:J00c=O;=20(9l54:k1`?6=3`9>6=44ic794?=hj?0;66sm19594?2=83:p(ol5439K71`<@:>37):m:59j6a<722c897>5;h`6>5<5<2290;w)lm:518L62a3A9?46*;b;68m7b=831b>h4?::k01?6=3`h>6=44oc494?=zj:>96=4<:183!de2<;0D>:i;I17<>"3j3i0e9950;9j0=<722ejj7>5;|`071<72:0;6=u+bc865>N4o3?3:17d:7:188kd`=831vn<><:180>5<7s-hi68?4H26e?M5302.?n7?7;h64>5<>{eko0;6>4?:1y'fg<292B88k5G35:8 1d=911b8:4?::k7o3?3:17d:7:188kd`=831vn<:n:180>5<7s-hi68?4H26e?M5302.?n7?7;h64>5<>{ek:0;6>4?:1y'fg<292B88k5G35:8 1d=911b8:4?::k75<4290;w)lm:438L62a3A9?46*;b;3;?l202900e9650;9lec<722wio<4?:283>5}#jk0>=6F<4g9K71><,=h1=55f4683>>o303:17boi:188yge729086=4?{%`a>07<@:>m7E=;8:&7f?7?3`><6=44i5:94?=hio0;66smbg83>6<729q/no4:1:J00c=O;=20(9l5199j02<722c?47>5;nce>5<:i;I17<>"3j3;37d:8:188m1>=831dmk4?::afa<72:0;6=u+bc865>N40;66g;8;29?jga2900qoll:180>5<7s-hi68?4H26e?M5302.?n7?7;h64>5<>{e9>31<7:50;2x gd==:1C?9h4H26;?!2e2:1b8:4?::k726=44o`d94?=zj89=6=4;:183!de2<90D>:i;I17<>"3j39n7d:8:188m1>=831b844?::mbb?6=3th:<84?:583>5}#jk0>?6F<4g9K71><,=h1>95f4683>>o303:17d:6:188kd`=831vni?50;694?6|,kh19>5G35d8L62?3->i6?:4i5594?=n<10;66g;9;29?jga2900qo?66;290?6=8r.in7;<;I17b>N4<11/8o4>a:k73?6=3`>36=44i5;94?=hio0;66sm15`94?2=83:p(ol5529K71`<@:>37):m:0c8m11=831b854?::k7=?6=3fkm6=44}c300?6==3:15;nce>5<55;294~"ej3?>7E=;f:J00==#5;|`g7?6==3:1o3?3:17d:7:188m1?=831b8l4?::mbb?6=3th:?l4?:483>5}#jk0>96F<4g9K71><,=h1=k5f4683>>o303:17d:6:188m1g=831dmk4?::a5=3=8391<7>t$c`914=O;=l0D>:7;%6a>63>ifn3:17pl>2d83>1<729q/no4:3:J00c=O;=20(9l5269j02<722c?47>5;h6:>5<5<2290;w)lm:478L62a3A9?46*;b;3:?l202900e9650;9j0<<722c?m7>5;nce>5<:i;I17<>"3j3;27d:8:188m1>=831b844?::k7e?6=3fkm6=44}c11g?6=<3:1o3?3:17d:7:188m1?=831dmk4?::a77d=83>1<7>t$c`916=O;=l0D>:7;%6a>6e>o313:17boi:188yg55i3:187>50z&af?343A9?j6F<499'0g<4k2c?;7>5;h6;>5<>{e;;31<7:50;2x gd==:1C?9h4H26;?!2e2:i0e9950;9j0=<722c?57>5;nce>5<54;294~"ej3?87E=;f:J00==#5G35d8L62?3->i6>m4i5594?=n<10;66g;9;29?jga2900qo==6;290?6=8r.in7;<;I17b>N4<11/8o436=44i5;94?=hio0;66sm33794?2=83:p(ol5529K71`<@:>37):m:2a8m11=831b854?::k7=?6=3fkm6=44}c110?6=<3:1o3?3:17d:7:188m1?=831dmk4?::a775=83>1<7>t$c`916=O;=l0D>:7;%6a>6e>o313:17boi:188yg55:3:187>50z&af?343A9?j6F<499'0g<4k2c?;7>5;h6;>5<>{e;;;1<7:50;2x gd==:1C?9h4H26;?!2e2:i0e9950;9j0=<722c?57>5;nce>5<54;294~"ej3?87E=;f:J00==#5G35d8L62?3->i6>m4i5594?=n<10;66g;9;29?jga2900qo=>e;290?6=8r.in7;<;I17b>N4<11/8o436=44i5;94?=hio0;66sm30f94?2=83:p(ol5529K71`<@:>37):m:2a8m11=831b854?::k7=?6=3fkm6=44}c12g?6=<3:1o3?3:17d:7:188m1?=831dmk4?::a74d=83>1<7>t$c`916=O;=l0D>:7;%6a>6e>o313:17boi:188yg56i3:187>50z&af?343A9?j6F<499'0g<4k2c?;7>5;h6;>5<>{e;831<7:50;2x gd==:1C?9h4H26;?!2e2:i0e9950;9j0=<722c?57>5;nce>5<54;294~"ej3?87E=;f:J00==#5G35d8L62?3->i6>m4i5594?=n<10;66g;9;29?jga2900qo=>6;290?6=8r.in7;<;I17b>N4<11/8o436=44i5;94?=hio0;66sm30794?2=83:p(ol5529K71`<@:>37):m:2a8m11=831b854?::k7=?6=3fkm6=44}c120?6=<3:1o3?3:17d:7:188m1?=831dmk4?::a745=83>1<7>t$c`916=O;=l0D>:7;%6a>6e>o313:17boi:188yg56:3:187>50z&af?343A9?j6F<499'0g<4k2c?;7>5;h6;>5<>{e;8;1<7:50;2x gd==:1C?9h4H26;?!2e2:i0e9950;9j0=<722c?57>5;nce>5<54;294~"ej3?87E=;f:J00==#5G35d8L62?3->i6>m4i5594?=n<10;66g;9;29?jga2900qo=?e;290?6=8r.in7;<;I17b>N4<11/8o436=44i5;94?=hio0;66sm31f94?2=83:p(ol5529K71`<@:>37):m:2a8m11=831b854?::k7=?6=3fkm6=44}c13g?6=<3:1o3?3:17d:7:188m1?=831dmk4?::a75d=83>1<7>t$c`916=O;=l0D>:7;%6a>6e>o313:17boi:188yg5713:187>50z&af?343A9?j6F<499'0g<4k2c?;7>5;h6;>5<>{e;9k1<7:50;2x gd==:1C?9h4H26;?!2e2:i0e9950;9j0=<722c?57>5;nce>5<54;294~"ej3?87E=;f:J00==#5G35d8L62?3->i6?74i5594?=n<10;66g;9;29?jga2900qo?=c;291?6=8r.in7;:;I17b>N4<11/8o47;h64>5<>o3i3:17boi:188yg7393:197>50z&af?323A9?j6F<499'0g<6l2c?;7>5;h6;>5<>ifn3:17pl>4383>0<729q/no4:5:J00c=O;=20(9l51d9j02<722c?47>5;h6:>5<>{e9:n1<7;50;2x gd==<1C?9h4H26;?!2e2;90e9950;9j0=<722c?57>5;h6b>5<5<2290;w)lm:478L62a3A9?46*;b;1g?l202900e9650;9j0<<722c?m7>5;nce>5<53;294~"ej3?:7E=;f:J00==#=831dmk4?::a5=4=83?1<7>t$c`910=O;=l0D>:7;%6a>75>o313:17d:n:188kd`=831vn<6<:186>5<7s-hi68;4H26e?M5302.?n7<<;h64>5<>o3i3:17boi:188yg7?93:197>50z&af?323A9?j6F<499'0g<6=44i5:94?=n<00;66g;a;29?jga2900qo?8b;291?6=8r.in7;:;I17b>N4<11/8o4>e:k73?6=3`>36=44i5;94?=n26=44i5c94?=hio0;66sm19`94?3=83:p(ol5549K71`<@:>37):m:318m11=831b854?::k7=?6=3`>j6=44o`d94?=zj8226=4::183!de2:i;I17<>"3j3o0e9950;9j0=<722c?57>5;h6b>5<5<4290;w)lm:438L62a3A9?46*;b;03?l202900e9650;9lec<722wi=;l50;194?6|,kh19<5G35d8L62?3->i6?>4i5594?=n<10;66anf;29?xd6>j0;6>4?:1y'fg<292B88k5G35:8 1d=:91b8:4?::k7o3?3:17d:7:188kd`=831vn<=i:186>5<7s-hi68;4H26e?M5302.?n7<=;h64>5<>o3i3:17boi:188yg70l3:197>50z&af?323A9?j6F<499'0g<5:2c?;7>5;h6;>5<>ifn3:17pl>6d83>6<729q/no4:1:J00c=O;=20(9l5219j02<722c?47>5;nce>5<54;294~"ej3?87E=;f:J00==#=831b844?::mbb?6=3th8>h4?:583>5}#jk0>?6F<4g9K71><,=h1?6g;7;29?l2?2900e9750;9lec<722wi=4650;794?6|,kh1985G35d8L62?3->i66=4?{%`a>03<@:>m7E=;8:&7f?7e3`><6=44i5:94?=n<00;66g;a;29?jga2900qo?=d;291?6=8r.in7;:;I17b>N4<11/8o47;h64>5<>o3i3:17boi:188yg7?m3:1?7>50z&af?363A9?j6F<499'0g<03`><6=44i5:94?=hio0;66sm18694?4=83:p(ol54b9K71`<@:>37d:9:188kd`=831vn<:6:181>5<7s-hi69m4H26e?M5302c?:7>5;nce>5<53;294~"ej3?97E=;f:J00==#t$c`917=O;=l0D>:7;%6a>4>>i3m3:17pl>9683>1<729q/no4:4:J00c=O;=20(9l51b9j02<722c?47>5;h6:>5<5<3290;w)lm:468L62a3A9?46*;b;3`?l202900e9650;9j0<<722e?i7>5;|`27`<72<0;6=u+bc862>N40;66g;8;29?l2>2900e9o50;9l0`<722wi=:m50;794?6|,kh19;5G35d8L62?3->i63290>6=4?{%`a>00<@:>m7E=;8:&7f?453`><6=44i5:94?=n<00;66g;a;29?j2b2900qo?7c;291?6=8r.in7;9;I17b>N4<11/8o4=2:k73?6=3`>36=44i5;94?=n26=44o5g94?=z{=9;6=48{_604>;6;?0?463>35873>;6;h0?m63>2d87=>;6:j0?;63>2e873>{t<;o1<7<>{_156>X3;11U8>84^274?[24;2T?<<5Q4258Z1653W9=<6P<5g9]70cX3;h1U8?j4^50`?[25j2T?>l5Q43;896372=>01>=j:27896572:?01>=m:278965f2:?01>=6:278965?2:?01>:9:27896222:?01<8::c:8yv70n3:1>vP<599>52`=j?1v9==:184[24:278>k4<1:?07a650;0xZ6`134;847l9;|q705<724=0:g>11<5:8o6974=20f>11<582n6994}r617b<5:996?j4=212>7b<5:9;6?j4=21b>7b<5:926?j4=21;>7b<58::6?j4=023>7b<5ol1>i52fd81`>;al38o70?=7;0g?875>38o70?=5;0g?875<38o70?=3;0g?876l38o70?>c;0g?876j38o70?>a;0g?876138o70ji:3f89ac=:m16hi4=d:?gg?4c34ni6?j4=07:>7b<58?36?j4=075>7b<58?>6?j4=074>7b<58<86?j4=041>7b<58<:6?j4=043>7b<58?m6?j4=014>7b<58936?j4=011>7b<589:6?j4=3g6>7b<5;o=6?j4=3d2>7b<5;lh6?j4=220>7b<5::?6?j4=226>7b<5::=6?j4=224>7b<5::36?j4=3g4>7b<5;o36?j4=3g:>7b<5;oj6?j4=3ga>7b<5;oh6?j4=3gg>7b<5;on6?j4=3ge>7b<5;l;6?j4=3d1>7b<5;l86?j4=3d7>7b<5;l>6?j4=3d5>7b<5;l<6?j4=3d;>7b<5;l26?j4=3db>7b<5;li6?j4=3dg>7b<5;ln6?j4=3de>7b<5::;6?j4=222>7b<5::96?j4=326>7b<5;:?6?j4=320>7b<5;:96?j4=322>7b<5;:;6?j4=0df>7b<58lo6?j4=0d`>7b<58li6?j4=0db>7b<58l26?j4=0d;>7b<58l<6?j4=0d5>7b<58l>6?j4=0d0>7b<58l96?j4=0d2>7b<58l;6?j4=0ge>7b<58on6?j4=0gg>7b<58oh6?j4=0ga>7b<58oj6?j4=32a>7b<5;:j6?j4=32:>7b<5;:36?j4=324>7b<5;:=6?j4=0de>7b<58l?6?j4=0g:>7b<58o36?j4}r3;3?6=:rT8jn521959f3=z{=926=470z\77<=:;;l1>i5232f96a=:;=:1>i5232a96a=:;:o1>i5232d96a=:;:h1>i5235496a=:;=?1>i52ce81`>;dk38o70mm:3f89fg=:m16o44=d:?e7?4c34l96?j4=g396a=:n909h63jf;0g?8c>2;n01h652e9>a2<5l27n:77b<58;86?j4=031>7b<58;:6?j4=033>7b<58:m6?j4=057>7b<58=86?j4=054>7b<58k?6?j4=0c0>7b<58k:6?j4=0c3>7b<58k96?j4=0c`>7b<58kj6?j4=0ca>7b<58ko6?j4=0cf>7b<58h=6?j4=0`7>7b<58h>6?j4=0`4>7b<58h36?j4=0a1>7b<58i:6?j4=0a3>7b<58hm6?j4=0`f>7b<5;:o6>:m;<02>4<4c9>612=;=h01?62e348;i7=;b:?154<4=h535`897772:>i70<>2;17f>;59:088o52206971d<5;;>6>:m;<02=?53j279=;4<4c9>641=;=h01??n:26a?846j39?n63=1b800g=::8n1?9l4=303>62e348:i7=;b:?15c<4??535`897452:>i70<=4;17f>;5:<088o5223:971d<5;8=6>:m;<013?53j279>44<4c9>67g=;=h01?62e3488=7=;b:?177<4>=535`897532:>i70<<7;17f>;5;<088o52224971d<5;9i6>:m;<0066c=;=h01?=l:26a?844l39?n63=3g800g=::=:1?9l4=362>62e348?>7=;b:?103<49=535`897222:>i70<;7;17f>;5<1088o5225;971d<5;>j6>:m;<07`?53j2798o4<4c9>61e=;=h01?:j:26a?842839?n63=50800g=::<81?9l4=0:5>7b<582<6?j4=05e>7b52z\750=:9>=1n;5rs0g3>5<5sW9h563=048a2>{t9ml1<7dd83>7}Y;j=01?><:c48yv7cl3:1>vP654=j?1vm;;<034?d13ty:h44?:3y]7f4<58ln6o84}r3g;6nj0i:6s|1e494?4|V:hm70?ib;`5?xu6l<0;6?uQ3cg894`f2k<0q~?k4;296~X4jm16=k75b79~w4b42909wS=mc:?2b=2wx=i<50;0xZ6de34;m;7l9;|q2`4<72;qU?oo4=0d5>g052z\0f<=:9o?1n;5rs0af>5<5sW9i;63>f28a2>{t9jn1<7cb83>7}Y;k?01:c48yv7dj3:1>vP5c6=j?1vl=;<3fa?d13ty:o54?:3y]7g7<58oo6o84}r3`3?6=:rT8n=521da9f3=z{8i=6=4={_1bb>;6mk0i:6s|1b794?4|V:kn70?ja;`5?xu6m>0;6?uQ3bd8976e2k<0q~?j6;296~X4kl16>=o5b79~w4c22909wS=ld:?14<2wx=h:50;0xZ6ed348;47l9;|q2a6<72;qU?nl4=324>g07>52z\0gd=::9<1n;5rs0g2>5<5sW9h?63>fg8a2>{t9mk1<7cg83>7}Y;hn01vP5`>=j?1v>o;:180[5?82799<4<5:?117<4=2wx?l<50;1xZ61a348?i7=:;<064?523ty8m<4?:2y]72c<5;>o6>;4=36`>6353z\03a=::=k1?85225`970=z{:3m6=4<{_14g>;5<108963=48801>{t;0o1<7=t^25a?843>39>70<;7;16?xu41j0;6>uQ36;897242:?01?:::278yv5>j3:1?vP<799>617=;<16>9<5349~w6?f2908wS=87:?17c<4=2798=4<5:p799;<00a?523488h7=:;|q0==<72:qU?:;4=31a>63<5;9h6>;4}r1:3?6=;rT8;95222:970=:::k1?85rs2;5>5<4sW9;5;?0896s|38794?5|V:=970<<4;16?844=39>7p}<9583>6}Y;>;01?==:27897542:?0q~=63;297~X4?916>>>5349>667=;<1v>7>:180[51m279>i4<5:?16c<4=2wx?4>50;1xZ60c3489n7=:;<01g?523ty84k4?:2y]73e<5;826>;4=30b>6353z\02g=::;21?852235970=z{:2o6=4<{_15e>;5:<08963=27801>{t;1i1<7=t^24:?845:39>70<=4;16?xu40k0;6>uQ37:897472:?01?<>:278yv5?i3:1?vP<669>64c=;<16>>2908wS=96:?15f<4=279=i4<5:p7=>=839pR>8:;<02e?52348:n7=:;|q0eg<72:qU?584=33:>63<5;;<6>;4}r1be?6=;rT84852207970=::8<1?85rs2c:>5<4sW93863=12801>;59=0896s|3`:94?5|V:2870<>1;16?846:39>7p}6}Y;1801?>i:27897772:?0q~=n6;297~X40816>8:5349>65c=;<1v>o::180[50i2798k4<5:?116<4=2wx?4j50;1xZ60a348?87=:;<00=?523ty85?4?:2y]732<5;886>;4=30f>6353z\026=::9n1?85220:970=z{g7<58<>6>>4}r30g?6=:r7:?o4<5:?205950;33874j3h>70=39:70?:5;`6?872?39:70?93;12?871:39:70?91;12?871839:70?:f;12?874?3h>70?<8;`6?874:39:70?<1;12?xu6;k0;69u212`9f3=:9:>18l5213a90==:9;n1855rs21g>5<5s499j7=:;<10`?d13ty8>k4?:4y>77`=j?16=:75489>5=3=<116=5?5469>5=?=<>1v>=l:185854l39>70=70?76;`6?87??3h>70?8f;`6?xu4;80;6>u2320970=:;:;1n;5232296`=z{:996=4={<106?d1349887:8;|q07c<72:q6?9>5349>76c=:l16?>h5b79~w6272909w0=;0;`5?853:3><7p}<3c83>7}:;:i1?85232`9f3=z{:9;6=4<{<105?523498<7l9;<100?2?3ty8?h4?:2y>76c=j?16?>h5349>714=<11v>=<:187854i3h>70=<9;`6?85403h>70=<4;ce?xu4;?0;6<;t=21:>g0<58::6>?4=023>67<5ol1?<52fd805>;al39:70?=7;12?875>39:70?=5;12?875<39:70?=3;12?876l39:70?>c;12?876j39:70?>a;12?876139:70ji:2389ac=;816hi4<1:?gg?5634ni6>?4}r101?6=<0q6?>65b79>6`3=;816>h85309>6c7=;816>km5309>755=;816?=:5309>753=;816?=85309>751=;816?=65309>6`1=;816>h65309>6`?=;816>ho5309>6`d=;816>hm5309>6`b=;816>hk5309>6``=;816>k>5309>6c4=;816>k=5309>6c2=;816>k;5309>6c0=;816>k95309>6c>=;816>k75309>6cg=;816>kl5309>6cb=;816>kk5309>6c`=;816?=>5309>757=;816?=<5309>653=;816>=:5309>655=;816>=<5309>657=;816>=>5309>5cc=;816=kj5309>5ce=;816=kl5309>5cg=;816=k75309>5c>=;816=k95309>5c0=;816=k;5309>5c5=;816=k<5309>5c7=;816=k>5309>5``=;816=hk5309>5`b=;816=hm5309>5`d=;816=ho5309>65d=;816>=o5309>65?=;816>=65309>651=;816>=85309>5c`=;816=k:5309>5`?=;816=h65309~w6262908w0=;6;`6?853=3h>70=;2;ce?xu4<=0;6<9t=265>g0<58=?6>?4=050>67<58k?6>?4=0c0>67<58k:6o;4=0c3>g3<58k96>?4=0c`>67<58kj6>?4=0ca>g3<58ko6>?4=0cf>67<58h=6>?4=0`7>g3<58h>6>?4=0`4>67<58h36>?4=0a1>67<58i:6>?4=0a3>67<58hm6>?4=0`f>67514y>713=j?16oi4<1:?`g?5634ii6>?4=bc974=:k008=63i3;12?8`52:;01k?5309>b5<4927nj7=>;67<5l21?<52e6805>;b>39:70k::23894742:;01gc<3027o=7:8;1?<5m>1845rsb:94?3|5jn1n;52190902=:9>h18l5219c902=:9?o1855rsbg94?4|5ji1?852cg8bb>{tk>0;68u2cb8a2>;60;0?563>8c873>;6>m0?463>7b87e>{tl90;6?u2cc801>;c93km7p}l6;291~;dj3h=70?73;64?87?j3>270?9c;6;?870k3>27p}k2;296~;di39>70j<:`d8yve2290>w0mn:c4894>42=301<9m:5;894>f2=301<8m:5:8yvb32909w0m6:2789a2=io1vn:50;7x9f?=j?16=;o5499>52b=<116=5:5469>5=e=<11v<<=:185877939>70?=7;`5?877;3>370??5;64?877?3>270??8;6:?xuak3:1?v3>008a2>;6<80?463>3e87<>{t9981<763<58:86lh4}rda>5<4s4;;<7l9;<376?2?34;8h7:n;|q241<72;q6jk4<5:?240bc27:8?4;7:?27`<302wx==850;0x9cc=;<16==95ag9~wc?=839p1kk5b79>517=<>16=>k5469~w46?2909w0hk:278946?2hl0q~h7:1808`c2k<01<=i:55894242==0q~?>8;296~;6:>08963>1e8a2>{t98=1<763<58;h6o84}r315?6==r7:>;4m6:?246<3?27:<84;8:?242<3i27:<44;7:p540=838p1<<::278947e2k<0q~?=0;290~;6:<0i:63>0487=>;68>0?;63>0887<>{t98?1<763<58;j6o84}r32b?6=;r7:>94m6:?242<3027:<54;7:p542=838p1<<<:278947>2k<0q~?>e;296~;6::0i:63>0987<>{tm=0;6?u2f2801>;b13h=7p}j3;296~;a:39>70k7:c48yvcc290>w0h=:c489f`=<>16h<4;8:?g7?2f34n>6994}rg1>5<5s4l:6>;4=d59f3=z{li1<7:t=g39f3=:l80?563k3;64?8b22=20q~k>:1818`72:?01h85b79~w`d=839p1k>5b79>`6<3027o87:8;|qf4?6=:r7nj7=:;g0g0<5m>1855rs02f>5<5s4;:h7=:;<327?d13ty:54e=;<16=<<5b79~w46d2909w0?>b;16?87693h=7p}>0c83>7}:98k1?8521029f3=z{8:j6=4={<32=?5234;;j7l9;|qge?6=:r7n57=:;g063<5mo1n;5rse:94?4|5l=1?852de8a2>{tl>0;6?u2e7801>;ck3h=7p}k6;296~;b=39>70jm:c48yv72m3:1>5u2dg801>;6>:0i:63mc;64?855k3><70==b;64?855i3><70==9;64?85503><70==7;64?855>3><70==5;64?855<3><70==3;64?855:3><70==1;64?85583><70=>f;64?856m3><70=>d;64?856k3><70=>b;64?856i3><70=>9;64?85603><70=>7;64?856>3><70=>5;64?856<3><70=>3;64?856:3><70=>1;64?85683><70=?f;64?857m3><70=?d;64?857k3><70=?b;64?85713><70=?a;64?87393>27p}i4;296~;cm39>70ll:`d8yv`22909w0jk:2789gb=io1vk850;0x9ae=;<16nh4nf:pb2<72;q6ho4<5:?ab?ga3ty:ni4?:4y>545=;<16=n<5b79>g5<3?278>i4;8:?06`<302wx=?650;0x94752:?01n>5ag9~w44>2909w0?>1;16?8e62hl0q~?=a;296~;69908963l2;ce?xu6:k0;6?u211d970=:k:0jj6s|13a94?4as4;>57:7;77751c=io1v<;;:18787213h=70?93;16?873m3><70?0;6?u214:970=:9=n1mk5rs070>5<2s4;>47l9;<356?5234;?i7:7;<30`?2>34;?h7:8;|q200<72;q6=885349>51g=io1v<;>:184872>3h=70?90;16?873i3>370?;b;6:?873l3>270?;c;6;?874m3>j7p}>4583>7}:9j7=:;<37e?2034;?n7:7;<30b?2?34;?h7:7;<37=?2134;?o7:8;|q203<72;q6=895349>51d=io1v<;=:185872?3h=70?91;16?873j3><70?;d;6b?873k3>270?g0<5;:o6>l4=33;>6d<5;886>l4=367>6d<5;8n6>l4=31:>6d<5;>m6>l4=370>6d<5;??6>l4=32f>6d<5;;:6>l4=32e>6d<5;;;6>l4=331>6d<5;;86>l4=337>6d<5;;>6>l4=33:>6d<5;;=6>l4=334>6d<5;;j6>l4=33a>6d<5;;h6>l4=33g>6d<5;8;6>l4=33f>6d<5;;m6>l4=302>6d<5;896>l4=307>6d<5;8>6>l4=30;>6d<5;8=6>l4=304>6d<5;826>l4=30b>6d<5;8i6>l4=30`>6d<5;9;6>l4=30g>6d<5;8m6>l4=312>6d<5;996>l4=310>6d<5;9?6>l4=314>6d<5;9>6>l4=315>6d<5;9i6>l4=31;>6d<5;9j6>l4=31f>6d<5;9h6>l4=31g>6d<5;9m6>l4=363>6d<5;>:6>l4=361>6d<5;>=6>l4=360>6d<5;>>6>l4=364>6d<5;>36>l4=36:>6d<5;>j6>l4=36g>6d<5;>i6>l4=36`>6d<5;>n6>l4=373>6d<5;?:6>l4=371>6d<5kn18:52bb87<>;6<;0?m6s|14a94?2ds4;==7l9;<03`?5f348:47=n;<017?5f348?87=n;<01a?5f348857=n;<07b?5f348>?7=n;<060?5f348;i7=n;<025?5f348;j7=n;<024?5f348:>7=n;<027?5f348:87=n;<021?5f348:57=n;<022?5f348:;7=n;<02e?5f348:n7=n;<02g?5f348:h7=n;<014?5f348:i7=n;<02b?5f3489=7=n;<016?5f348987=n;<011?5f348947=n;<012?5f3489;7=n;<01=?5f3489m7=n;<01f?5f3489o7=n;<004?5f3489h7=n;<01b?5f3488=7=n;<006?5f3488?7=n;<000?5f3488;7=n;<001?5f3488:7=n;<00f?5f348847=n;<00e?5f3488i7=n;<00g?5f3488h7=n;<00b?5f348?<7=n;<075?5f348?>7=n;<072?5f348??7=n;<071?5f348?;7=n;<07<7=n;<065?5f348>>7=n;<`f>11<5kn1855215090<=z{8?i6=4;cz?225279>4<9:?101<41279>h4<9:?17<<412798k4<9:?116<41279994<9:?14`<41279=<4<9:?14c<41279==4<9:?157<41279=>4<9:?151<41279=84<9:?15<<41279=;4<9:?152<41279=l4<9:?15g<41279=n4<9:?15a<41279>=4<9:?15`<41279=k4<9:?164<41279>?4<9:?161<41279>84<9:?16=<41279>;4<9:?162<41279>44<9:?16d<41279>o4<9:?16f<41279?=4<9:?16a<41279>k4<9:?174<41279??4<9:?176<41279?94<9:?172<41279?84<9:?173<41279?o4<9:?17=<41279?l4<9:?17`<41279?n4<9:?17a<41279?k4<9:?105<412798<4<9:?107<412798;4<9:?106<41279884<9:?102<41279854<9:?10<<412798l4<9:?10a<412798o4<9:?10f<412798h4<9:?115<412799<4<9:?117<4127ij7:8;<`f>1><58>:69o4}r36e?6=65b=;116><65399>675=;116>9:5399>67c=;116>>75399>61`=;116>8=5399>602=;116>=k5399>647=;116>=h5399>646=;116><<5399>645=;116><:5399>643=;116><75399>640=;116><95399>64g=;116>64e=;116>676=;116>64`=;116>??5399>674=;116>?:5399>673=;116>?65399>670=;116>?95399>67?=;116>?o5399>67d=;116>?m5399>666=;116>?j5399>67`=;116>>?5399>664=;116>>=5399>662=;116>>95399>663=;116>>85399>66d=;116>>65399>66g=;116>>k5399>66e=;116>>j5399>66`=;116>9>5399>617=;116>9<5399>610=;116>9=5399>613=;116>995399>61>=;116>975399>61g=;116>9j5399>61d=;116>9m5399>61c=;116>8>5399>607=;116>8<5399>fc<3027:8>4;8:p56?=839p1<=8:278945?2:?01<=n:`d8yv74?3:1>v3>368a2>;6;h0?;6s|12194?4|58996>;4=017>d`57z?27727:?;4;9:?271<3127:?l4;9:?26`<3?27:>n4;9:?26a<312wx=>;50;0x94562:?01<=9:`d8yv75n3:1;v3>308a2>;6;?0?;63>3587<>;6;h0?463>2d87<>;6:j0?m63>2e87e>{t9?31<766<58<26lh4}r35a?6=:r7:;=4;d:?22`6g804>;6>008<63>698bb>{t9?n1<7=t=04e>1b<58<26o64=04g>d`52z?22c4<5:p5g4=83?p1<86:24894d02k<01:27894>e2=201<8k:558yv71?3:1>v3>69804>;6>>0jj6s|1c394?3|58<36>84=0`5>g0<58i;6>;4=0:a>1g<5866802>;6j<0i:63>bg801>;60h0?m63>6c873>{t9?h1<7g><58d2==0q~?9a;296~;6>?0i463>6`8bb>{t91n1<7?8{<351?5134;j877522=j?16=:75499~w4162909w0?83;`5?87013><7p}>7`83>6}:9>=1>h5216d96`=:91?1mk5rs05;>5<5s4;<;7=:;<34=?ga3ty:5>4?:3y>5d2=;<16=475ag9~w4?a290?w0?n4;`5?87fm39>70?69;64?87?:3>37p}>9383>7}:9h91?85218:9ec=z{83n6=4:{<3b7?d134;jh7=:;<3:=?2?34;3>7:n;<3:5d7=;<16=4;5ag9~w4?d29070?65;64?87>>3>270?73;6b?87>03>270?67;6;?xu60o0;6?u21`2970=:90>1mk5rs0;a>55d4=;<16=485ag9~w4?c290=w0?n2;`5?87fk39>70?66;64?87?;3>370?68;6b?87>?3>27p}>a683>6}:9hi1n;521c4970=:9>i18:5rs0c6>5<4s4;jm7l9;<3a0?5234;5g3=;<16=:l5469~w4g?2908w0?nd;`5?87e?39>70?8c;6;?xu6i00;6>u21`g9f3=:9k21?85216`90==z{8h86=4;{<3a7=:;<3;e?2?34;=i7:8;|q2ff<72=hp1:c48976c2;201??7:3:897442;201?:;:3:8974b2;201?=6:3:8972a2;201?;<:3:897332;201?>j:3:897762;201?>i:3:897772;201??=:3:897742;201??;:3:897722;201??6:3:897712;201??8:3:8977f2;201??m:3:8977d2;201??k:3:897472;201??j:3:8977a2;201?<>:3:897452;201?<;:3:897422;201?<7:3:897412;201?<8:3:8974>2;201?:3:897552;201?=<:3:897532;201?=8:3:897522;201?=9:3:8975e2;201?=7:3:8975f2;201?=j:3:8975d2;201?=k:3:8975a2;201?:?:3:897262;201?:=:3:897212;201?:<:3:897222;201?:8:3:8972?2;201?:6:3:8972f2;201?:k:3:8972e2;201?:l:3:8972b2;201?;?:3:897362;201?;=:3:89f7=<>16o=4;8:p5gd=83>iw0?l0;`5?847l38<70<>8;04?845;38<70<;4;04?845m38<70<<9;04?843n38<70<:3;04?842<38<702;04?846;38<70<>4;04?846=38<70<>9;04?846>38<70<>7;04?846i38<70<>b;04?846k38<70<>d;04?845838<70<>e;04?846n38<70<=1;04?845:38<70<=4;04?845=38<70<=8;04?845>38<70<=7;04?845138<70<=a;04?845j38<70<=c;04?844838<70<=d;04?845n38<70<<1;04?844:38<70<<3;04?844<38<70<<7;04?844=38<70<<6;04?844j38<70<<8;04?844i38<70<38<70<;3;04?843=38<70<;7;04?843038<70<;9;04?843i38<70<;d;04?843j38<70<;c;04?843m38<70<:0;04?842938<70<:2;04?8e52==01n?5499~w4df290?nv3>bg8a2>;58m09:63=19812>;5::09:63=45812>;5:l09:63=38812>;5;5==09:63=0d812>;59809:63=0g812>;59909:63=13812>;59:09:63=15812>;59<09:63=18812>;59?09:63=16812>;59h09:63=1c812>;59j09:63=1e812>;5:909:63=1d812>;59o09:63=20812>;5:;09:63=25812>;5:<09:63=29812>;5:?09:63=26812>;5:009:63=2`812>;5:k09:63=2b812>;5;909:63=2e812>;5:o09:63=30812>;5;;09:63=32812>;5;=09:63=36812>;5;<09:63=37812>;5;k09:63=39812>;5;h09:63=3d812>;5;j09:63=3e812>;5;o09:63=41812>;5<809:63=43812>;5;5<<09:63=46812>;5<109:63=48812>;5;5;5;5=809:63=53812>;d;3><70m=:5:8yv7e13:18lu21cg9f3=::9n1>85220:960=::;91>852256960=::;o1>85222;960=::=l1>852241960=::<>1>85221g960=::8;1>85221d960=::8:1>852200960=::891>852206960=::8?1>85220;960=::8<1>852205960=::8k1>85220`960=::8i1>85220f960=::;:1>85220g960=::8l1>852233960=::;81>852236960=::;?1>85223:960=::;<1>852235960=::;31>85223c960=::;h1>85223a960=::::1>85223f960=::;l1>852223960=:::81>852221960=:::>1>852225960=:::?1>852224960=:::h1>85222:960=:::k1>85222g960=:::i1>85222f960=:::l1>852252960=::=;1>852250960=::=<1>852251960=::=?1>852255960=::=21>85225;960=::=k1>85225f960=::=h1>85225a960=::=o1>852242960=::<;1>852240960=:k:0?46s|28f94?4|5;o>6>;4=22b>d`52z?1a027:i54<5:p6d>=838p1?k9:278966e2hl0q~e8801>{t:k91<763<5:;=6lh4}r0g3?6=:r79j<4m6:?2b1<4=2wx>oo50;0x97`d2:?01><>:`d8yv4cm3:1>v3=fb8a2>;6no0896s|2c`94?4|5::86>;4=204>d`52z?046279<;4<5:p6ge=838p1>>;:278964?2hl0q~{t:kn1<763<5:826lh4}r0f5?6=:r78<84m6:?14=<4=2wx>ok50;0x96612:?01>v3<078a2>;5800896s|2cd94?4|5::<6>;4=20a>d`52z?042279>7:278964d2hl0q~{t:0o1<763<5::26lh4}r0`6?6=:r79i:4m6:?2ad<4=2wx>4h50;0x97c?2:?01>>l:`d8yv4d;3:1>v3=e98a2>;6mk0896s|2`294?4|5;o26>;4=22g>d`52z?1a<27:in4<5:p6d7=838p1?kn:278966b2hl0q~ee801>{t:h81<763<5::m6lh4}r0`2?6=:r79io4m6:?2a`<4=2wx>l=50;0x97cd2:?01>??:`d8yv4d?3:1>v3=eb8a2>;6mo0896s|2`694?4|5;oo6>;4=232>d`52z?1aa27:j=4<5:p6d3=838p1?kj:27896752hl0q~f0801>{t:h<1<763<5:;86lh4}r0`e?6=:r79ik4m6:?2b7<4=2wx>l950;0x97`72:?01>?;:`d8yv4dj3:1>v3=f18a2>;6n:0896s|2`;94?4|5;l96>;4=236>d`52z?1b727:j84<5:p6dg=838p1?h<:27896702hl0q~f7801>{t:hh1<763<5:;36lh4}r0`b?6=:r79j94m6:?2b2<4=2wx>lm50;0x97`22:?01>?6:`d8yv4c83:1>v3=f48a2>;6n10896s|2`f94?4|5;l=6>;4=23b>d`52z?1b327:j44<5:p6dc=838p1?h8:278967e2hl0q~0i:63>f`801>{t:hl1<763<5:;h6lh4}r0g7?6=:r79j54m6:?2bg<4=2wx>o>50;0x97`>2:?01>?k:`d8yv4c<3:1>v3=f88a2>;6nj0896s|2c394?4|5;lj6>;4=23f>d`52z?1bd27:ji4<5:p6g4=838p1?hm:278967a2hl0q~fd801>{t:k>1<763<5:8;6lh4}r0go;50;0x97`b2:?01><=:`d8yv4c13:1>v3=fd8a2>;5880896s|2c494?4|5;lm6>;4=200>d`52z?1bc279>?:27896432hl0q~{t:k21<763<5:8>6lh4}r0gg?6=:r78<<4m6:?141<4=2wx>o750;0x96652:?01><9:`d8yv4cl3:1>v3<038a2>;58<0896s|33f94?42s48;h7=;c:?166<4>7535a8972a2:>h70<:4;17g>;598088n5221d971e<5;;86>:l;<021?53k279=:4<4b9>64g=;=i01??l:26`?845839?o63=1d800f=::;81?9m4=306>62d3489;7=;c:?16<<4?l535a897572:>h70<=d;17g>;5;;088n52226971e<5;9=6>:l;<00f?53k279?54<4b9>66b=;=i01?=i:26`?843939?o63=47800f=::=91?9m4=36;>62d348?m7=;c:?10f<49k535a897362:>h70==d;ce?xu5080;6?u221f972=:;9k1855rs20f>5<5=r79=54<4b9>612=;=i01?62d348:87=;c:?15<<4<8535a8977e2:>h70<>d;17g>;59o088n52233971e<5;8?6>:l;<01;4<4b9>67g=;=i01?62d348897=;c:?17d<4>k535a8975d2:>h70<;0;17g>;5<;088n52257971e<5;><6>:l;<07=?53k2798i4<4b9>61d=;=i01?;?:26`?842:39?o63<2d8bb>{t:1i1<761<5::j6974}r0:3?6=:r79>>4<7:?04g<302wx>;h50;0x97232:=01>?9:5;8yv42i3:1>v3=2d803>;48k0?56s|27794?4|5;926>94=235>1>52z?10c<4?278><4;8:p627=838p1?;<:25896462=30q~<82;296~;5==08;63<2687<>{t:>91<761<5:8<6974}r042?6=:r79=<4<7:?06<<302wx>::50;0x976a2:=01><7:5:8yv40=3:1>v3=11803>;4:10?56s|26594?4|5;;96>94=20:>1?52z?156<4?278>l4;8:p62?=838p1??;:258964f2=30q~<8a;296~;59<08;63<2c87<>{t:>n1<761<5:8h6974}r04f?6=:r79=;4<7:?06g<312wx>:m50;0x97702:=01>v3=1`803>;4800?46s|26d94?4|5;;i6>94=22:>1?52z?15f<4?278{t:191<761<5::o6964}r0;0?6=:r79=k4<7:?04a<312wx>5850;0x97462:=01>>j:5;8yv4??3:1>v3=23803>;48o0?46s|29:94?4|5;8?6>94=22e>1?52z?160<4?278==4;8:p6=b=838p1?<7:25896762=30q~<7a;296~;5:?08;63<1187=>{t:1h1<761<5:;:6964}r0;a?6=:r79>44<7:?057<302wx>5h50;0x974f2:=01>?=:5;8yv4>83:1>v3=2c803>;49:0?46s|28394?4|5;8h6>94=230>1?52z?175<4?278=84;8:p6<4=838p1?{t:0?1<761<5:;>6974}r0:2?6=:r79??4<7:?052<302wx>4650;0x97542:=01>?8:5;8yv4>13:1>v3=35803>;4910?46s|28a94?4|5;9<6>94=23:>1?52z?170<4?278=54;9:p62=20q~<:7;296~;5;k08;63<1c87<>{t:61<5:;j6964}r062?6=:r79?l4<7:?05d<312wx>8l50;0x975b2:=01>?l:5;8yv4203:1>v3=3b803>;49k0?56s|24;94?4|5;9o6>94=23`>1>o7>52z?17c<4?278=i4;8:p60b=838p1?:?:258967c2=30q~<:e;296~;5<808;63<1d87<>{t:61<5:;n6974}r056?6=:r798;4<7:?065<302wx>;>50;0x97242:=01>?i:5:8yv4193:1>v3=44803>;49o0?56s|27194?4|5;><6>94=203>1?52z?10=<4?278>?4;8:p630=838p1?:6:25896452=30q~<97;296~;5{t:?k1<761<5:8?6974}r05;750;0x972d2:=01><;:5:8yv41j3:1>v3=4d803>;4:<0?46s|27a94?4|5;?;6>94=206>1?52z?114<4?278>;4;8:p63c=838p1?;=:25896412=30q~h5221696`=::991>h5221096`=::9;1>h5221296`=:9oo1>h521gf96`=:9oi1>h521g`96`=:9ok1>h521g;96`=:9o21>h521g596`=:9o<1>h521g796`=:9o91>h521g096`=:9o;1>h521g296`=:9ll1>h521dg96`=:9ln1>h521da96`=:9lh1>h521dc96`=::9h1>h5221c96`=::931>h5221:96`=::9=1>h5221496`=:9ol1>h521g696`=:9l31>h521d:96`=:9;o1mk5rs0:;>5<4s4;3:7=:;<3;3?5234;357oi;|q2<3<72?q6=585b79>5=3=<>16=5j5499>77b=<>16??k5489>5=c=<11v<6?:181870n39>70?71;ce?xu0<3:1>v3>0987e>;6800?i6s|7683>7}:l=0?m63k5;6f?xu61h0;6?u218;90<=:90=18h5rs06e>5<5s4;?i7:6;<37g?2b3ty::94?:3y>57e=io16=>h54`9~w4262909w0?;1;ce?87383>37p}>4383>7}:9=81mk5215190<=z{89o6=4={<30`?ga34;?<7:8;|q27c<72;q6=9>5489>56`=io1v<:<:18187383>j70?;3;6f?xu6k:0;6?u219f9ec=:9131855rs0:1>5<5s4;3>7oi;<3;5?2?3ty:4>4?:3y>5=5=io16=5:5489~w41b2908w0?71;6:?87?13>j70?8d;ce?xu60=0;6?u219390d=:91>18h5rs05a>5<5s4;5=g=io16=5m54`9~w4>e2909w0?7b;ce?87?k3>27p}>8b83>7}:9131845219a90`=z{89n6=4={<30b?2>34;8i7:j;|q23f<72;q6=:j5489>52e=o4;339'711=111v9=6:181[241279n7:<9:&002<>12wx8?650;0xZ14?348i69<7;%173?g53ty8m94?:3y]7=6<5;h1?5>4$264>307>52z\03c=::k08;k5+355934=z{:k:6=4={_14a>;5j39{t;h:1<7i0(>:8:648yv5>m3:1>vP<7c9>6g<4?k1/?995769~w6?d2909wS=89:?1f?5012.88:488:p797;<0a>61?3-9?;796;|q0=d<72;qU?:94=3`9721<,:><6:o4}r1:=?6=:rT8;;522c8033=#;==1;o5rs2;;>5<5sW9<963=b;141>"4<>07}Y;>901?l53618 6202>o0q~=65;296~X4?;16>o4<739'711=?o1v>7;:181[509279n7=81:&0029?;%173?>63ty85<4?:3y]73c<5;h1?;k4$264>=452z\02a=::k08:i5+3559<6=z{:2m6=4={_15g>;5j39=o6*<468;0>{t;1o1<7:8:948yv5?k3:1>vP<689>6g<4>01/?995869~w6>e2909wS=98:?1f?5102.88:478:p7=g=838pR>88;<0a>6003-9?;766;|q0<<<72;qU?;84=3`9730<,:><65o4}r1;5<5sW93:63=b;1;2>"4<>03o6s|3`c94?4|V:2>707}Y;1>01?l53968 62021o0q~=n8;296~X40:16>o4<829'711=0o1v>o8:181[5?:279n7=72:&002<>82wx?l850;0xZ6>6348i6>6>;%173??63ty8m84?:3y]72g<5;h1?:o4$264><452z\02c=::k08:k5+3559=6=z{:396=4={_150>;5j39=86*<468:0>{t;1=1<7:8:848yv2483:1>vP;319>6g<3;91/?995969~w6cc2909wS=l9:?1f?5d12.88:46a:p7`d=838pR>m7;<0a>6e?3-9?;77m;|q0ad<72;qU?n94=3`97f1<,:><64m4}r1f=?6=:rT8o;522c80g3=#;==15i5rs2g;>5<5sW9h963=b;1`1>"4<>02i6s|3d594?4|V:i?707}Y;j801?l53b08 6202h:0q~=j4;296~X4k816>o4k<:181[5d8279n7=l0:&002li;%173?g33ty8i<4?:3y]7gc<5;h1?ok4$264>d352z\0fa=::k08ni5+3559e3=z{:nm6=4={_1ag>;5j39io6*<468b3>{t;mo1<7:8:`;8yv5ck3:1>vP6g<4j01/?995a`9~w6bf2909wS=m7:?1f?5e?2.88:4nb:p7a?=838pR>l9;<0a>6d13-9?;7ol;|q0`=<72;qU?o;4=3`97g3<,:><68m4}r1g3?6=:rT8n9522c80f1=#;==19i5rs2f5>5<5sW9i?63=b;1a7>"4<>0>i6s|3e794?4|V:h9707}Y;k;01?l53c38 6202?:0q~=k3;296~X4j916>o481v>j=:181[5fn279n7=nf:&002<1:2wx?i?50;0xZ6gb348i6>oj;%173?043ty8j94?:3y]7f`<5;h1?nh4$264>3252z\0g`=::k08oh5+355920=z{:l96=4={_1``>;5j39hh6*<46853>{t;o;1<7:8:7;8yv5bn3:1>vP6g<4kh1/?9956`9~w6cb2909wS=l3:?1f?5d;2.88:49b:p7`0=838pR>l7;<0a>6d?3-9?;78l;|q0`g<72;qU?lj4=3`97db<,:><6;j4}r1g4?6=:rT8mn522c80ef=#;==1:h5rs2d`>5<5sW9mo63=b;1eg>"4<>0=j6s|34:94?4|V:?3707}Y;o<01?l53g48 6202>80q~:>5;296~X39<16>o4;149'711=?<1vqcm50;0xL62?3tdh8<4?:3yK71>7>52zJ00==zfj>86=4={I17<>{ik=>1<73:1>vF<499~jf202909wE=;8:mg1>=838pD>:7;|l`0<<72;qC?964}oa7e?6=:rB8855rnb6a>5<5sA9?46sac5a94?4|@:>37p`l4e83>7}O;=20qcm;e;296~N4<11vbn:i:181M5302weo8>50;0xL62?3tdh9<4?:3yK71>>7>52zJ00==zfj?86=4={I17<>{ik<>1<73:1>vF<499~jf302909wE=;8:mg0>=838pD>:7;|l`1<<72;qC?964}oa6e?6=:rB8855rnb7a>5<5sA9?46sac4a94?4|@:>37p`l5e83>7}O;=20qcm:e;296~N4<11vbn;i:181M5302weo;>50;0xL62?3tdh:<4?:3yK71>7>52zJ00==zfj<86=4={I17<>{ik?>1<7<0;6?uG35:8yke1>3:1>vF<499~jf002909wE=;8:mg3>=838pD>:7;|l`2<<72;qC?964}oa5e?6=:rB8855rnb4a>5<5sA9?46sac7a94?4|@:>37p`l6e83>7}O;=20qcm9e;296~N4<11vbn8i:181M5302weo:>50;0xL62?3tdh;<4?:3yK71>7>52zJ00==zfj=86=4={I17<>{ik>>1<73:1>vF<499~jf102909wE=;8:mg2>=838pD>:7;|l`3<<72;qC?964}oa4e?6=:rB8855rnb5a>5<5sA9?46sac6a94?4|@:>37p`l7e83>7}O;=20qcm8e;296~N4<11vbn9i:181M5302weo5>50;0xL62?3tdh4<4?:3yK71>7>52zJ00==zfj286=4={I17<>{ik1>1<73:1>vF<499~jf>02909wE=;8:mg=>=838pD>:7;|l`<<<72;qC?964}oa;e?6=:rB8855rnb:a>5<5sA9?46sac9a94?4|@:>37p`l8e83>7}O;=20qcm7e;296~N4<11vbll9:182M5302wen=950;3xL62?3tdi<54?:0yK71>51zJ00==zfk:j6=4>{I17<>{ij9h1<7?tH26;?xhe8j0;6:7;|la55<728qC?964}o`25?6=9rB8855rnc31>5<6sA9?46sab0194?7|@:>37p`m1583>4}O;=20qcl>5;295~N4<11vbo?9:182M5302wen<950;3xL62?3tdi=54?:0yK71>51zJ00==zfk;j6=4>{I17<>{ij8h1<7?tH26;?xhe9j0;6:7;|la65<728qC?964}o`15?6=9rB8855rnc01>5<6sA9?46sab3194?7|@:>37p`m2583>4}O;=20qcl=5;295~N4<11vbo<9:182M5302wen?950;3xL62?3tdi>54?:0yK71>51zJ00==zfk8j6=4>{I17<>{ij;h1<7?tH26;?xhe:j0;6:7;|la75<728qC?964}o`05?6=9rB8855rnc11>5<6sA9?46sab2194?7|@:>37p`m3583>4}O;=20qcl<5;295~N4<11vbo=9:182M5302wen>950;3xL62?3tdi?54?:0yK71>51zJ00==zfk9j6=4>{I17<>{ij:h1<7?tH26;?xhe;j0;6:7;|la05<728qC?964}o`75?6=9rB8855rnc61>5<6sA9?46sab5194?7|@:>37p`m4583>4}O;=20qcl;5;295~N4<11vbo:9:182M5302wen9950;3xL62?3tdi854?:0yK71>51zJ00==zfk>j6=4>{I17<>{ij=h1<7?tH26;?xhe:7;|la15<728qC?964}o`65?6=9rB8855rnc71>5<6sA9?46sab4194?7|@:>37p`m5583>4}O;=20qcl:5;295~N4<11vbo;9:182M5302wen8950;3xL62?3tdi954?:0yK71>57>51zJ00==zfk?j6=4>{I17<>{ij:7;|la25<728qC?964}o`55?6=9rB8855rnc41>5<6sA9?46sab7194?7|@:>37p`m6583>4}O;=20qcl95;295~N4<11vbo89:182M5302wen;950;3xL62?3tdi:54?:0yK71>51zJ00==zfk{I17<>{ij?h1<7?tH26;?xhe>j0;6:7;|la35<728qC?964}o`45?6=9rB8855rnc51>5<6sA9?46sab6194?7|@:>37p`m7583>4}O;=20qcl85;295~N4<11vbo99:182M5302wen:950;3xL62?3tdi;54?:0yK71>51zJ00==zfk=j6=4>{I17<>{ij>h1<7?tH26;?xhe?j0;6:7;|la<5<728qC?964}o`;5?6=9rB8855rnc:1>5<6sA9?46sab9194?7|@:>37p`m8583>4}O;=20qcl75;295~N4<11vbo69:182M5302wen5950;3xL62?3tdi454?:0yK71>51zJ00==zfk2j6=4>{I17<>{ij1h1<7?tH26;?xhe0j0;6b290:wE=;8:mf=`=83;pD>:7;|la=5<728qC?964}o`:5?6=9rB8855rnc;1>5<6sA9?46sab8194?7|@:>37p`m9583>4}O;=20qcl65;295~N4<11vbo79:182M5302wen4950;3xL62?3tdi554?:0yK71>51zJ00==zfk3j6=4>{I17<>{ij0h1<7?tH26;?xhe1j0;6l3:1=vF<499~jg?b290:wE=;8:mf<`=83;pD>:7;|lae5<728qC?964}o`b5?6=9rB8855rncc1>5<6sA9?46sab`194?7|@:>37p`ma583>4}O;=20qcln5;295~N4<11vboo9:182M5302wenl950;3xL62?3tdim54?:0yK71>51zJ00==zfkkj6=4>{I17<>{ijhh1<7?tH26;?xheij0;6:7;|laf5<728qC?964}o`a5?6=9rB8855rnc`1>5<6sA9?46sabc194?7|@:>37p`mb583>4}O;=20qclm5;295~N4<11vbol9:182M5302weno950;3xL62?3tdin54?:0yK71>51zJ00==zfkhj6=4>{I17<>{ijkh1<7?tH26;?xhejj0;6:7;|lag5<728qC?964}o``5?6=9rB8855rnca1>5<6sA9?46sabb194?7|@:>37p`mc583>4}O;=20qcll5;295~N4<11vbom9:182M5302wenn950;3xL62?3tdio54?:0yK71>51zJ00==zfkij6=4>{I17<>{ijjh1<7?tH26;?xhekj0;6:7;|la`5<728qC?964}o`g5?6=9rB8855rncf1>5<6sA9?46sabe194?7|@:>37p`md583>4}O;=20qclk5;295~N4<11vboj9:182M5302weni950;3xL62?3tdih54?:0yK71>51zJ00==zfknj6=4>{I17<>{ijmh1<7?tH26;?xhelj0;6:7;|laa5<728qC?964}o`f5?6=9rB8855rncg1>5<6sA9?46sabd194?7|@:>37p`me583>4}O;=20qclj5;295~N4<11vbok9:182M5302wenh950;3xL62?3tdii54?:0yK71>51zJ00==zfkoj6=4>{I17<>{ijlh1<7?tH26;?xhemj0;6:7;|lab5<728qC?964}o`e5?6=9rB8855rncd1>5<6sA9?46sabg194?7|@:>37p`mf583>4}O;=20qcli5;295~N4<11vboh9:182M5302wenk950;3xL62?3tdij54?:0yK71>51zJ00==zfklj6=4>{I17<>{ijoh1<7?tH26;?xhenj0;6:7;|l`45<728qC?964}oa35?6=9rB8855rnb21>5<6sA9?46sac1194?7|@:>37p`l0583>4}O;=20qcm?5;295~N4<11vbn>9:182M5302weo=950;3xL62?3tdh<54?:0yK71>51zJ00==zfj:j6=4>{I17<>{ik9h1<7?tH26;?xhd8j0;6:7;|l`55<728qC?964}oa25?6=9rB8855rnb31>5<6sA9?46sac0194?7|@:>37p`l1583>4}O;=20qcm>5;295~N4<11vbn?9:182M5302weo<950;3xL62?3tdh=54?:0yK71>51zJ00==zfj;j6=4>{I17<>{ik8h1<7?tH26;?xhd9j0;6:7;|l`65<728qC?964}oa15?6=9rB8855rnb01>5<6sA9?46sac3194?7|@:>37p`l2583>4}O;=20qcm=5;295~N4<11vbn<9:182M5302weo?950;3xL62?3tdh>54?:0yK71>51zJ00==zfj8j6=4>{I17<>{ik;h1<7?tH26;?xhd:j0;6:7;|l`75<728qC?964}oa05?6=9rB8855rnb11>5<6sA9?46sac2194?7|@:>37p`l3583>4}O;=20qcm<5;295~N4<11vbn=9:182M5302weo>950;3xL62?3tdh?54?:0yK71>51zJ00==zfj9j6=4>{I17<>{ik:h1<7?tH26;?xhd;j0;6111 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]), + .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count [2]), + .LO(\BU2/U0/grf.rf/gl0.rd/rpntr/N11 ) + ); + LUT3_L #( + .INIT ( 8'h7F )) + \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<3>111 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), + .I2(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]), + .LO(\BU2/U0/grf.rf/gl0.wr/wpntr/N11 ) + ); + LUT2_L #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0003_SW0 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [3]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [2]), + .LO(\BU2/N16 ) + ); + LUT2_L #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0003_SW0 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [3]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [2]), + .LO(\BU2/N14 ) + ); + INV \BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count_xor<0>11_INV_0 ( + .I(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), + .O(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count ) + ); + INV \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<0>11_INV_0 ( + .I(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), + .O(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count ) + ); + LUT2 #( + .INIT ( 4'h2 )) + \BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_1 ( + .I0(wr_en), + .I1(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ), + .O(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ) + ); + LUT4 #( + .INIT ( 16'h2333 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_1 ( + .I0(rd_en), + .I1(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_85 ), + .I2(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), + .I3(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), + .O(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ) + ); + LUT4 #( + .INIT ( 16'h6AAA )) + \BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count_xor<3>12 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [3]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), + .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]), + .I3(\BU2/U0/grf.rf/gl0.rd/rpntr/count [2]), + .O(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count3 ) + ); + LUT4 #( + .INIT ( 16'h6AAA )) + \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<3>12 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count [3]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), + .I2(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), + .I3(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]), + .O(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count3 ) + ); + LUT3 #( + .INIT ( 8'h08 )) + \BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1 ( + .I0(wr_en), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [4]), + .I2(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ) + ); + LUT3 #( + .INIT ( 8'h10 )) + \BU2/U0/grf.rf/mem/gdm.dm/write_ctrl ( + .I0(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [4]), + .I2(wr_en), + .O(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ) + ); + LUT2 #( + .INIT ( 4'h9 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut<5> ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [4]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [4]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [5]) + ); + LUT4 #( + .INIT ( 16'h9000 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/c2/dout_i78 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [0]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [0]), + .I2(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/c2/dout_i62_392 ), + .I3(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/c2/dout_i26_387 ), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/comp2 ) + ); + LUT4 #( + .INIT ( 16'h9000 )) + \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000158 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [0]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), + .I2(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000156_391 ), + .I3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_not0001 ), + .O(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000158_380 ) + ); + LUT2 #( + .INIT ( 4'h9 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut<4> ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [3]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [3]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [4]) + ); + LUT2 #( + .INIT ( 4'h9 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut<3> ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [2]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [2]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [3]) + ); + LUT2 #( + .INIT ( 4'h9 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut<2> ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [1]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [1]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [2]) + ); + LUT2 #( + .INIT ( 4'h9 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut<1> ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [0]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [0]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [1]) + ); + LUT4 #( + .INIT ( 16'h5450 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux0000105 ( + .I0(\BU2/U0/grf.rf/rstblk/RST_FULL_GEN_87 ), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_not0001 ), + .I2(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux000079_390 ), + .I3(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/comp2 ), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux0000 ) + ); + LUT4 #( + .INIT ( 16'h9009 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux000063 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [3]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [3]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [2]), + .I3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [2]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux000063_389 ) + ); + LUT4 #( + .INIT ( 16'h9009 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux000027 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [4]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [4]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [1]), + .I3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [1]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux000027_388 ) + ); + LUT4 #( + .INIT ( 16'h8421 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/c2/dout_i26 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [1]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [4]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [1]), + .I3(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [4]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/c2/dout_i26_387 ) + ); + LUT4 #( + .INIT ( 16'h5450 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux0000107 ( + .I0(\BU2/U0/grf.rf/rstblk/RST_FULL_GEN_87 ), + .I1(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000026_383 ), + .I2(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/comp2 ), + .I3(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000069_386 ), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux0000 ) + ); + LUT4 #( + .INIT ( 16'h9009 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000067 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [2]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [1]), + .I3(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000067_384 ) + ); + LUT4 #( + .INIT ( 16'h9009 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000026 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [4]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [4]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [3]), + .I3(\BU2/U0/grf.rf/gl0.wr/wpntr/count [3]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000026_383 ) + ); + LUT2 #( + .INIT ( 4'h2 )) + \BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1 ( + .I0(wr_en), + .I1(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ), + .O(\BU2/U0/grf.rf/gl0.wr/wpntr/count_not0001 ) + ); + LUT4 #( + .INIT ( 16'hECA0 )) + \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000183 ( + .I0(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000115_379 ), + .I1(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000026_377 ), + .I2(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000158_380 ), + .I3(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000063_381 ), + .O(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000 ) + ); + LUT4 #( + .INIT ( 16'h9009 )) + \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000115 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [4]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [4]), + .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count [3]), + .I3(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [3]), + .O(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000115_379 ) + ); + LUT4 #( + .INIT ( 16'h8421 )) + \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000062 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [2]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [3]), + .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .I3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .O(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000062_378 ) + ); + LUT4 #( + .INIT ( 16'h8241 )) + \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000026 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [1]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [4]), + .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .O(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000026_377 ) + ); + LUT4 #( + .INIT ( 16'h2333 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21 ( + .I0(rd_en), + .I1(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_85 ), + .I2(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), + .I3(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), + .O(\BU2/U0/grf.rf/gl0.rd/rpntr/count_not0001 ) + ); + LUT3 #( + .INIT ( 8'hA6 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count_xor<4>11 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [4]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [3]), + .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/N11 ), + .O(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count4 ) + ); + LUT3 #( + .INIT ( 8'hA6 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<4>11 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count [4]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [3]), + .I2(\BU2/U0/grf.rf/gl0.wr/wpntr/N11 ), + .O(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count4 ) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX11 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N5 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N7 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [0]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1011 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N45 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N47 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [10]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1111 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N9 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N11 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [1]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX11111 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N49 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N51 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [11]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1211 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N53 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N55 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [12]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1311 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N57 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N59 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [13]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1411 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N61 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N63 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [14]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1511 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N65 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N67 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [15]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1611 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N69 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N71 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [16]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1711 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N73 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N75 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [17]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1811 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N77 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N79 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [18]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1911 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N81 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N83 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [19]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2011 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N85 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N87 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [20]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2111 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N13 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N15 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [2]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX21111 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N89 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N91 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [21]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2211 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N93 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N95 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [22]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2311 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N97 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N99 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [23]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2411 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N101 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N103 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [24]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2511 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N105 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N107 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [25]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2611 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N109 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N111 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [26]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2711 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N113 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N115 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [27]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2811 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N117 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N119 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [28]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2911 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N121 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N123 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [29]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3011 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N125 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N127 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [30]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3111 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N17 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N19 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [3]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX31111 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N129 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N131 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [31]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3211 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N133 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N135 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [32]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3311 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N137 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N139 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [33]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3411 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N141 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N143 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [34]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3511 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N145 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N147 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [35]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX411 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N21 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N23 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [4]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX511 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N25 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N27 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [5]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX611 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N29 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N31 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [6]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX711 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N33 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N35 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [7]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX811 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N37 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N39 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [8]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX911 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N41 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N43 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [9]) + ); + LUT4 #( + .INIT ( 16'h6996 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0003 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [1]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [0]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]), + .I3(\BU2/N16 ), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0003_110 ) + ); + LUT4 #( + .INIT ( 16'h6996 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0003 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [1]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [0]), + .I2(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]), + .I3(\BU2/N14 ), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0003_120 ) + ); + LUT3 #( + .INIT ( 8'hA2 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_REGOUT_EN11 ( + .I0(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), + .I1(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), + .I2(rd_en), + .O(\BU2/U0/grf.rf/mem/dout_i_not0001 ) + ); + LUT2 #( + .INIT ( 4'hD )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_not00011 ( + .I0(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ), + .I1(\BU2/U0/grf.rf/rstblk/RST_FULL_GEN_87 ), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_not0001 ) + ); + LUT4 #( + .INIT ( 16'h8E8A )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i_mux00001 ( + .I0(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_fb_176 ), + .I1(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), + .I2(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), + .I3(rd_en), + .O(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i_mux0000 ) + ); + LUT4 #( + .INIT ( 16'h6996 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor00021 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [2]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [1]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]), + .I3(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [3]), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0002 ) + ); + LUT4 #( + .INIT ( 16'h6996 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor00021 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [2]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [1]), + .I2(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]), + .I3(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [3]), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0002 ) + ); + LUT4 #( + .INIT ( 16'h40FF )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001<0>1 ( + .I0(rd_en), + .I1(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), + .I2(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), + .I3(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_85 ), + .O(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001 [0]) + ); + LUT3 #( + .INIT ( 8'h6A )) + \BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count_xor<2>11 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [2]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), + .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]), + .O(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count2 ) + ); + LUT3 #( + .INIT ( 8'h6A )) + \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<2>11 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), + .I2(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), + .O(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count2 ) + ); + LUT3 #( + .INIT ( 8'h96 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor00011 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [3]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [2]), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0001 ) + ); + LUT3 #( + .INIT ( 8'h96 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor00011 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [3]), + .I2(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [2]), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0001 ) + ); + LUT3 #( + .INIT ( 8'hF2 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001<1>1 ( + .I0(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), + .I1(rd_en), + .I2(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), + .O(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001 [1]) + ); + LUT3 #( + .INIT ( 8'h08 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_mux00031 ( + .I0(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad [4]), + .I1(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad [5]), + .I2(\BU2/U0/grf.rf/rstblk/RST_FULL_GEN_87 ), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_mux0003 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_rd_pntr_gc_xor0000_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0000 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_rd_pntr_gc_xor0001_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0001 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_rd_pntr_gc_xor0002_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0002 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_rd_pntr_gc_xor0003_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0003 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_wr_pntr_gc_xor0000_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [4]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0000 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_wr_pntr_gc_xor0001_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0001 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_wr_pntr_gc_xor0002_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0002 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_wr_pntr_gc_xor0003_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0003 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count_xor<1>11 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]), + .O(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count1 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<1>11 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), + .O(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count1 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor00001 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [3]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0000 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor00001 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [3]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0000 ) + ); + LUT2 #( + .INIT ( 4'h4 )) + \BU2/U0/grf.rf/rstblk/rd_rst_comb1 ( + .I0(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_d2_90 ), + .I1(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_94 ), + .O(\BU2/U0/grf.rf/rstblk/rd_rst_comb ) + ); + LUT2 #( + .INIT ( 4'h4 )) + \BU2/U0/grf.rf/rstblk/wr_rst_comb1 ( + .I0(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_d2_92 ), + .I1(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_95 ), + .O(\BU2/U0/grf.rf/rstblk/wr_rst_comb ) + ); + FDPE #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_not0001 ), + .D(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux0000 ), + .PRE(\BU2/U0/grf.rf/rstblk/rst_d2_88 ), + .Q(almost_full) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i ( + .C(wr_clk), + .D(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux0000 ), + .PRE(\BU2/U0/grf.rf/rstblk/rst_d2_88 ), + .Q(full) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i ( + .C(wr_clk), + .D(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux0000 ), + .PRE(\BU2/U0/grf.rf/rstblk/rst_d2_88 ), + .Q(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_0 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [0]), + .Q(dout_3[0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_1 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [1]), + .Q(dout_3[1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_2 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [2]), + .Q(dout_3[2]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_3 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [3]), + .Q(dout_3[3]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_4 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [4]), + .Q(dout_3[4]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_5 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [5]), + .Q(dout_3[5]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_6 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [6]), + .Q(dout_3[6]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_7 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [7]), + .Q(dout_3[7]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_8 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [8]), + .Q(dout_3[8]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_9 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [9]), + .Q(dout_3[9]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_10 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [10]), + .Q(dout_3[10]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_11 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [11]), + .Q(dout_3[11]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_12 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [12]), + .Q(dout_3[12]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_13 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [13]), + .Q(dout_3[13]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_14 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [14]), + .Q(dout_3[14]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_15 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [15]), + .Q(dout_3[15]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_16 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [16]), + .Q(dout_3[16]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_17 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [17]), + .Q(dout_3[17]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_18 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [18]), + .Q(dout_3[18]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_19 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [19]), + .Q(dout_3[19]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_20 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [20]), + .Q(dout_3[20]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_21 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [21]), + .Q(dout_3[21]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_22 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [22]), + .Q(dout_3[22]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_23 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [23]), + .Q(dout_3[23]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_24 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [24]), + .Q(dout_3[24]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_25 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [25]), + .Q(dout_3[25]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_26 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [26]), + .Q(dout_3[26]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_27 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [27]), + .Q(dout_3[27]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_28 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [28]), + .Q(dout_3[28]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_29 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [29]), + .Q(dout_3[29]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_30 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [30]), + .Q(dout_3[30]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_31 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [31]), + .Q(dout_3[31]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_32 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [32]), + .Q(dout_3[32]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_33 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [33]), + .Q(dout_3[33]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_34 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [34]), + .Q(dout_3[34]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_35 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [35]), + .Q(dout_3[35]) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM72 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[35]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM72_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N147 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM71 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[35]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM71_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N145 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM70 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[34]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM70_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N143 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM69 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[34]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM69_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N141 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM67 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[33]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM67_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N137 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM66 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[32]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM66_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N135 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM68 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[33]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM68_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N139 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM65 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[32]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM65_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N133 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM64 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[31]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM64_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N131 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM63 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[31]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM63_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N129 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM62 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[30]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM62_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N127 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM60 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[29]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM60_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N123 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM59 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[29]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM59_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N121 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM61 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[30]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM61_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N125 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM58 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[28]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM58_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N119 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM57 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[28]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM57_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N117 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM56 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[27]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM56_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N115 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM55 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[27]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM55_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N113 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM53 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[26]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM53_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N109 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM52 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[25]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM52_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N107 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM54 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[26]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM54_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N111 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM50 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[24]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM50_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N103 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM49 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[24]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM49_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N101 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM51 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[25]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM51_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N105 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM47 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[23]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM47_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N97 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM46 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[22]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM46_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N95 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM48 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[23]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM48_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N99 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM45 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[22]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM45_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N93 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM44 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[21]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM44_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N91 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM43 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[21]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM43_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N89 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM42 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[20]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM42_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N87 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM40 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[19]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM40_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N83 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM39 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[19]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM39_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N81 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM41 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[20]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM41_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N85 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM38 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[18]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM38_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N79 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM37 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[18]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM37_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N77 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM36 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[17]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM36_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N75 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM35 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[17]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM35_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N73 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM33 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[16]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM33_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N69 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM32 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[15]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM32_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N67 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM34 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[16]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM34_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N71 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM31 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[15]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM31_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N65 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM30 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[14]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM30_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N63 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM29 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[14]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM29_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N61 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM28 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[13]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM28_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N59 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM26 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[12]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM26_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N55 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM25 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[12]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM25_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N53 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM27 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[13]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM27_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N57 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM24 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[11]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM24_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N51 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM23 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[11]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM23_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N49 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM22 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[10]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM22_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N47 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM21 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[10]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM21_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N45 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM19 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[9]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM19_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N41 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM18 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[8]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM18_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N39 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM20 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[9]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM20_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N43 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM17 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[8]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM17_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N37 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM16 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[7]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM16_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N35 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM15 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[7]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM15_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N33 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM14 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[6]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM14_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N31 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM12 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[5]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM12_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N27 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM11 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[5]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM11_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N25 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM13 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[6]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM13_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N29 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM10 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[4]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM10_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N23 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM9 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[4]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM9_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N21 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM8 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[3]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM8_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N19 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM7 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[3]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM7_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N17 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM5 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[2]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM5_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N13 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM4 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[1]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM4_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N11 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM6 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[2]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM6_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N15 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM3 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[1]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM3_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N9 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM2 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[0]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM2_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N7 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM1 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[0]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM1_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N5 ) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_35 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [35]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [35]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_34 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [34]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [34]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_33 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [33]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [33]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_32 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [32]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [32]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_31 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [31]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [31]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_30 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [30]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [30]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_29 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [29]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [29]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_28 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [28]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [28]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_27 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [27]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [27]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_26 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [26]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [26]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_25 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [25]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [25]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_24 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [24]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [24]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_23 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [23]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [23]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_22 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [22]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [22]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_21 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [21]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [21]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_20 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [20]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [20]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_19 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [19]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [19]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_18 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [18]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [18]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_17 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [17]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [17]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_16 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [16]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [16]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_15 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [15]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [15]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_14 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [14]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [14]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_13 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [13]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [13]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_12 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [12]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [12]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_11 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [11]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [11]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_10 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [10]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [10]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_9 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [9]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [9]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_8 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [8]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [8]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_7 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [7]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [7]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_6 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [6]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [6]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_5 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [5]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [5]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_4 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [4]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [4]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_3 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [3]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [3]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_2 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [2]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [2]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_1 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [1]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_0 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [0]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d3_0 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [0]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d3_1 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [1]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d3_2 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [2]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d3_3 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [3]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d3_4 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [4]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [4]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d2_4 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [4]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [4]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d2_3 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [3]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [3]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d2_1 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [1]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [1]) + ); + FDPE #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d2_0 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [0]), + .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d2_2 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [2]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [2]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d1_4 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count [4]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [4]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d1_3 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count [3]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [3]) + ); + FDPE #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d1_1 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), + .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d1_0 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d1_2 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [2]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_2 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count2 ), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]) + ); + FDPE #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_0 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count ), + .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]) + ); + FDPE #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_1 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count1 ), + .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_3 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count3 ), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count [3]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_4 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count4 ), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count [4]) + ); + FDPE #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_not0001 ), + .D(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_mux0003 ), + .PRE(\BU2/U0/grf.rf/rstblk/rst_d2_88 ), + .Q(prog_full) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_4 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_add0000 [4]), + .Q(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_5 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_add0000 [5]), + .Q(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad [5]) + ); + MUXCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy<0> ( + .CI(\BU2/N1 ), + .DI(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .S(\BU2/rd_data_count [0]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [0]) + ); + MUXCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy<1> ( + .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [0]), + .DI(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [0]), + .S(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [1]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [1]) + ); + MUXCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy<2> ( + .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [1]), + .DI(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [1]), + .S(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [2]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [2]) + ); + MUXCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy<3> ( + .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [2]), + .DI(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [2]), + .S(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [3]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [3]) + ); + MUXCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy<4> ( + .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [3]), + .DI(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [3]), + .S(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [4]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [4]) + ); + XORCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_xor<4> ( + .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [3]), + .LI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [4]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_add0000 [4]) + ); + XORCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_xor<5> ( + .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [4]), + .LI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [5]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_add0000 [5]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_0 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001 [1]), + .Q(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_1 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001 [0]), + .Q(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i ( + .C(rd_clk), + .D(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i_mux0000 ), + .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .Q(empty) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_fb ( + .C(rd_clk), + .D(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i_mux0000 ), + .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .Q(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_fb_176 ) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_d1_0 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_d1_1 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_d1_2 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count [2]), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_d1_3 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count [3]), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_d1_4 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count [4]), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_2 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count2 ), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count [2]) + ); + FDPE #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_0 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count ), + .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_1 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count1 ), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_3 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count3 ), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count [3]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_4 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count4 ), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_0 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0003 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_1 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0002 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_2 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0001 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_3 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0000 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_4 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_0 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0003 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_1 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0002 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_2 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0001 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_3 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0000 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_4 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_0 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [0]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_1 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [1]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_2 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [2]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_3 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [3]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_4 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_0 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [0]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_1 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [1]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_2 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [2]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_3 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [3]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_4 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_0 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [0]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_1 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [1]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_2 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [2]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_3 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [3]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_4 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1_0 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [0]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1_1 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [1]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1_2 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [2]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1_3 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [3]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1_4 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_0 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0003_120 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_1 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0002 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_2 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0001 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_3 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0000 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_4 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_0 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0003_110 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_1 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0002 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_2 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0001 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_3 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0000 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_4 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [4]) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/wr_rst_reg_0 ( + .C(wr_clk), + .D(\BU2/rd_data_count [0]), + .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_comb ), + .Q(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/wr_rst_reg_1 ( + .C(wr_clk), + .D(\BU2/rd_data_count [0]), + .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_comb ), + .Q(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/rd_rst_reg_0 ( + .C(rd_clk), + .D(\BU2/rd_data_count [0]), + .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_comb ), + .Q(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/rd_rst_reg_1 ( + .C(rd_clk), + .D(\BU2/rd_data_count [0]), + .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_comb ), + .Q(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/rd_rst_reg_2 ( + .C(rd_clk), + .D(\BU2/rd_data_count [0]), + .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_comb ), + .Q(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/rst_d1 ( + .C(wr_clk), + .D(\BU2/rd_data_count [0]), + .PRE(rst), + .Q(\BU2/U0/grf.rf/rstblk/rst_d1_93 ) + ); + FDPE \BU2/U0/grf.rf/rstblk/rd_rst_asreg ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_d1_89 ), + .D(\BU2/rd_data_count [0]), + .PRE(rst), + .Q(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_94 ) + ); + FD #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/rstblk/wr_rst_asreg_d1 ( + .C(wr_clk), + .D(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_95 ), + .Q(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_d1_91 ) + ); + FDPE \BU2/U0/grf.rf/rstblk/wr_rst_asreg ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_d1_91 ), + .D(\BU2/rd_data_count [0]), + .PRE(rst), + .Q(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_95 ) + ); + FD #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/rstblk/rd_rst_asreg_d1 ( + .C(rd_clk), + .D(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_94 ), + .Q(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_d1_89 ) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/rst_d2 ( + .C(wr_clk), + .D(\BU2/U0/grf.rf/rstblk/rst_d1_93 ), + .PRE(rst), + .Q(\BU2/U0/grf.rf/rstblk/rst_d2_88 ) + ); + FD #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/rstblk/wr_rst_asreg_d2 ( + .C(wr_clk), + .D(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_d1_91 ), + .Q(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_d2_92 ) + ); + FD #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/rstblk/rd_rst_asreg_d2 ( + .C(rd_clk), + .D(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_d1_89 ), + .Q(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_d2_90 ) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/rst_d3 ( + .C(wr_clk), + .D(\BU2/U0/grf.rf/rstblk/rst_d2_88 ), + .PRE(rst), + .Q(\BU2/U0/grf.rf/rstblk/rst_d3_86 ) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/rstblk/RST_FULL_GEN ( + .C(wr_clk), + .CLR(rst), + .D(\BU2/U0/grf.rf/rstblk/rst_d3_86 ), + .Q(\BU2/U0/grf.rf/rstblk/RST_FULL_GEN_87 ) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i ( + .C(rd_clk), + .D(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000 ), + .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .Q(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_85 ) + ); + VCC \BU2/XST_VCC ( + .P(\BU2/N1 ) + ); + GND \BU2/XST_GND ( + .G(\BU2/rd_data_count [0]) + ); + +// synthesis translate_on + +endmodule + +// synthesis translate_off + +`ifndef GLBL +`define GLBL + +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + tri1 p_up_tmp; + tri (weak1, strong0) PLL_LOCKG = p_up_tmp; + + reg GSR_int; + reg GTS_int; + reg PRLD_int; + +//-------- JTAG Globals -------------- + wire JTAG_TDO_GLBL; + wire JTAG_TCK_GLBL; + wire JTAG_TDI_GLBL; + wire JTAG_TMS_GLBL; + wire JTAG_TRST_GLBL; + + reg JTAG_CAPTURE_GLBL; + reg JTAG_RESET_GLBL; + reg JTAG_SHIFT_GLBL; + reg JTAG_UPDATE_GLBL; + reg JTAG_RUNTEST_GLBL; + + reg JTAG_SEL1_GLBL = 0; + reg JTAG_SEL2_GLBL = 0 ; + reg JTAG_SEL3_GLBL = 0; + reg JTAG_SEL4_GLBL = 0; + + reg JTAG_USER_TDO1_GLBL = 1'bz; + reg JTAG_USER_TDO2_GLBL = 1'bz; + reg JTAG_USER_TDO3_GLBL = 1'bz; + reg JTAG_USER_TDO4_GLBL = 1'bz; + + assign (weak1, weak0) GSR = GSR_int; + assign (weak1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + + initial begin + GSR_int = 1'b1; + PRLD_int = 1'b1; + #(ROC_WIDTH) + GSR_int = 1'b0; + PRLD_int = 1'b0; + end + + initial begin + GTS_int = 1'b1; + #(TOC_WIDTH) + GTS_int = 1'b0; + end + +endmodule + +`endif + +// synthesis translate_on diff --git a/usrp2/coregen/fifo_xlnx_32x36_2clk.veo b/usrp2/coregen/fifo_xlnx_32x36_2clk.veo new file mode 100644 index 000000000..eb98a2b70 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_32x36_2clk.veo @@ -0,0 +1,47 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2009 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The following must be inserted into your Verilog file for this +// core to be instantiated. Change the instance name and port connections +// (in parentheses) to your own signal names. + +//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG +fifo_xlnx_32x36_2clk YourInstanceName ( + .rst(rst), + .wr_clk(wr_clk), + .rd_clk(rd_clk), + .din(din), // Bus [35 : 0] + .wr_en(wr_en), + .rd_en(rd_en), + .dout(dout), // Bus [35 : 0] + .full(full), + .almost_full(almost_full), + .empty(empty), + .prog_full(prog_full)); + +// INST_TAG_END ------ End INSTANTIATION Template --------- diff --git a/usrp2/coregen/fifo_xlnx_32x36_2clk.xco b/usrp2/coregen/fifo_xlnx_32x36_2clk.xco new file mode 100644 index 000000000..1cf4c8ba5 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_32x36_2clk.xco @@ -0,0 +1,84 @@ +############################################################## +# +# Xilinx Core Generator version 12.2 +# Date: Fri Oct 15 07:50:15 2010 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = false +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc3s2000 +SET devicefamily = spartan3 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = fg456 +SET removerpms = false +SET simulationfiles = Structural +SET speedgrade = -5 +SET verilogsim = true +SET vhdlsim = false +# END Project Options +# BEGIN Select +SELECT Fifo_Generator family Xilinx,_Inc. 6.1 +# END Select +# BEGIN Parameters +CSET almost_empty_flag=false +CSET almost_full_flag=true +CSET component_name=fifo_xlnx_32x36_2clk +CSET data_count=false +CSET data_count_width=5 +CSET disable_timing_violations=false +CSET dout_reset_value=0 +CSET empty_threshold_assert_value=4 +CSET empty_threshold_negate_value=5 +CSET enable_ecc=false +CSET enable_int_clk=false +CSET enable_reset_synchronization=true +CSET fifo_implementation=Independent_Clocks_Distributed_RAM +CSET full_flags_reset_value=1 +CSET full_threshold_assert_value=24 +CSET full_threshold_negate_value=23 +CSET inject_dbit_error=false +CSET inject_sbit_error=false +CSET input_data_width=36 +CSET input_depth=32 +CSET output_data_width=36 +CSET output_depth=32 +CSET overflow_flag=false +CSET overflow_sense=Active_High +CSET performance_options=First_Word_Fall_Through +CSET programmable_empty_type=No_Programmable_Empty_Threshold +CSET programmable_full_type=Single_Programmable_Full_Threshold_Constant +CSET read_clock_frequency=1 +CSET read_data_count=false +CSET read_data_count_width=5 +CSET reset_pin=true +CSET reset_type=Asynchronous_Reset +CSET underflow_flag=false +CSET underflow_sense=Active_High +CSET use_dout_reset=true +CSET use_embedded_registers=false +CSET use_extra_logic=false +CSET valid_flag=false +CSET valid_sense=Active_High +CSET write_acknowledge_flag=false +CSET write_acknowledge_sense=Active_High +CSET write_clock_frequency=1 +CSET write_data_count=false +CSET write_data_count_width=5 +# END Parameters +GENERATE +# CRC: 8e84ee7f diff --git a/usrp2/coregen/fifo_xlnx_32x36_2clk.xise b/usrp2/coregen/fifo_xlnx_32x36_2clk.xise new file mode 100644 index 000000000..0c3544a33 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_32x36_2clk.xise @@ -0,0 +1,72 @@ + + + +

+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usrp2/coregen/fifo_xlnx_32x36_2clk_flist.txt b/usrp2/coregen/fifo_xlnx_32x36_2clk_flist.txt new file mode 100644 index 000000000..b8c69a9f7 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_32x36_2clk_flist.txt @@ -0,0 +1,12 @@ +# Output products list for +_xmsgs/pn_parser.xmsgs +fifo_generator_ug175.pdf +fifo_xlnx_32x36_2clk.gise +fifo_xlnx_32x36_2clk.ngc +fifo_xlnx_32x36_2clk.v +fifo_xlnx_32x36_2clk.veo +fifo_xlnx_32x36_2clk.xco +fifo_xlnx_32x36_2clk.xise +fifo_xlnx_32x36_2clk_flist.txt +fifo_xlnx_32x36_2clk_readme.txt +fifo_xlnx_32x36_2clk_xmdf.tcl diff --git a/usrp2/coregen/fifo_xlnx_32x36_2clk_readme.txt b/usrp2/coregen/fifo_xlnx_32x36_2clk_readme.txt new file mode 100644 index 000000000..8ab5679fd --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_32x36_2clk_readme.txt @@ -0,0 +1,46 @@ +The following files were generated for 'fifo_xlnx_32x36_2clk' in directory +/home/ianb/ettus/sram_fifo/fpgapriv/usrp2/coregen/ + +fifo_generator_ug175.pdf: + Please see the core data sheet. + +fifo_xlnx_32x36_2clk.gise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. + +fifo_xlnx_32x36_2clk.ngc: + Binary Xilinx implementation netlist file containing the information + required to implement the module in a Xilinx (R) FPGA. + +fifo_xlnx_32x36_2clk.v: + Unisim Verilog file containing the information required to simulate + the module. + +fifo_xlnx_32x36_2clk.veo: + VEO template file containing code that can be used as a model for + instantiating a CORE Generator module in a Verilog design. + +fifo_xlnx_32x36_2clk.xco: + CORE Generator input file containing the parameters used to + regenerate a core. + +fifo_xlnx_32x36_2clk.xise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. + +fifo_xlnx_32x36_2clk_readme.txt: + Text file indicating the files generated and how they are used. + +fifo_xlnx_32x36_2clk_xmdf.tcl: + ISE Project Navigator interface file. ISE uses this file to determine + how the files output by CORE Generator for the core can be integrated + into your ISE project. + +fifo_xlnx_32x36_2clk_flist.txt: + Text file listing all of the output files produced when a customized + core was generated in the CORE Generator. + + +Please see the Xilinx CORE Generator online help for further details on +generated files and how to use them. + diff --git a/usrp2/coregen/fifo_xlnx_32x36_2clk_xmdf.tcl b/usrp2/coregen/fifo_xlnx_32x36_2clk_xmdf.tcl new file mode 100644 index 000000000..ec9426357 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_32x36_2clk_xmdf.tcl @@ -0,0 +1,68 @@ +# The package naming convention is _xmdf +package provide fifo_xlnx_32x36_2clk_xmdf 1.0 + +# This includes some utilities that support common XMDF operations +package require utilities_xmdf + +# Define a namespace for this package. The name of the name space +# is _xmdf +namespace eval ::fifo_xlnx_32x36_2clk_xmdf { +# Use this to define any statics +} + +# Function called by client to rebuild the params and port arrays +# Optional when the use context does not require the param or ports +# arrays to be available. +proc ::fifo_xlnx_32x36_2clk_xmdf::xmdfInit { instance } { +# Variable containg name of library into which module is compiled +# Recommendation: +# Required +utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_xlnx_32x36_2clk +} +# ::fifo_xlnx_32x36_2clk_xmdf::xmdfInit + +# Function called by client to fill in all the xmdf* data variables +# based on the current settings of the parameters +proc ::fifo_xlnx_32x36_2clk_xmdf::xmdfApplyParams { instance } { + +set fcount 0 +# Array containing libraries that are assumed to exist +# Examples include unisim and xilinxcorelib +# Optional +# In this example, we assume that the unisim library will +# be magically +# available to the simulation and synthesis tool +utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library +utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_generator_ug175.pdf +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_32x36_2clk.ngc +utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_32x36_2clk.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_32x36_2clk.veo +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_32x36_2clk.xco +utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_32x36_2clk_xmdf.tcl +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_xlnx_32x36_2clk +incr fcount + +} + +# ::gen_comp_name_xmdf::xmdfApplyParams diff --git a/usrp2/extramfifo/ext_fifo.v b/usrp2/extramfifo/ext_fifo.v index 2af59a75d..2a8d57448 100644 --- a/usrp2/extramfifo/ext_fifo.v +++ b/usrp2/extramfifo/ext_fifo.v @@ -18,7 +18,7 @@ //`define NO_EXT_FIFO module ext_fifo - #(parameter INT_WIDTH=36,EXT_WIDTH=18,RAM_DEPTH=19,FIFO_DEPTH=19) + #(parameter INT_WIDTH=36,EXT_WIDTH=18,RAM_DEPTH=19,FIFO_DEPTH=19) ( input int_clk, input ext_clk, @@ -44,34 +44,29 @@ module ext_fifo wire [EXT_WIDTH-1:0] write_data; wire [EXT_WIDTH-1:0] read_data; - wire full1, empty1; - wire almost_full2, full2, empty2; + wire full1, empty1; + wire almost_full2, full2, empty2; wire [INT_WIDTH-1:0] data_to_fifo; wire [INT_WIDTH-1:0] data_from_fifo; wire [FIFO_DEPTH-1:0] capacity; - + wire space_avail; + wire data_avail; + + // These next 2 lines here purely because ICARUS is crap at handling generate statements. + // Empirically this has been determined to make simulations work. + wire read_input_fifo = space_avail & ~empty1; + wire write_output_fifo = data_avail; - // FIFO buffers data from UDP engine into external FIFO clock domain. - fifo_xlnx_512x36_2clk_36to18 fifo_xlnx_512x36_2clk_36to18_i1 ( - .rst(rst), - .wr_clk(int_clk), - .rd_clk(ext_clk), - .din(datain), // Bus [35 : 0] - .wr_en(src_rdy_i), - .rd_en(space_avail&~empty1), - .dout(write_data), // Bus [17 : 0] - .full(full1), - .empty(empty1)); - - assign dst_rdy_o = ~full1; + assign src_rdy_o = ~empty2; + assign dst_rdy_o = ~full1; `ifdef NO_EXT_FIFO - assign space_avail = ~full2; - assign data_avail = ~empty1; - assign read_data = write_data; + assign space_avail = ~full2; + assign data_avail = ~empty1; + assign read_data = write_data; `else - // External FIFO running at ext clock rate and 18 bit width. + // External FIFO running at ext clock rate and 18 or 36 bit width. nobl_fifo #(.WIDTH(EXT_WIDTH),.RAM_DEPTH(RAM_DEPTH),.FIFO_DEPTH(FIFO_DEPTH)) nobl_fifo_i1 ( @@ -95,22 +90,67 @@ module ext_fifo .capacity(capacity) ); `endif // !`ifdef NO_EXT_FIFO + - - // FIFO buffers data read from external FIFO into DSP clk domain and to TX DSP. - fifo_xlnx_512x36_2clk_18to36 fifo_xlnx_512x36_2clk_18to36_i1 ( - .rst(rst), - .wr_clk(ext_clk), - .rd_clk(int_clk), - .din(read_data), // Bus [17 : 0] - .wr_en(data_avail), - .rd_en(dst_rdy_i), - .dout(dataout), // Bus [35 : 0] - .full(full2), - .prog_full(almost_full2), - .empty(empty2)); - assign src_rdy_o = ~empty2; + generate + if (EXT_WIDTH == 18 && INT_WIDTH == 36) begin: fifo_g1 + // FIFO buffers data from UDP engine into external FIFO clock domain. + fifo_xlnx_512x36_2clk_36to18 fifo_xlnx_512x36_2clk_36to18_i1 ( + .rst(rst), + .wr_clk(int_clk), + .rd_clk(ext_clk), + .din(datain), // Bus [35 : 0] + .wr_en(src_rdy_i), + .rd_en(read_input_fifo), + .dout(write_data), // Bus [17 : 0] + .full(full1), + .empty(empty1)); + + // FIFO buffers data read from external FIFO into DSP clk domain and to TX DSP. + fifo_xlnx_512x36_2clk_18to36 fifo_xlnx_512x36_2clk_18to36_i1 ( + .rst(rst), + .wr_clk(ext_clk), + .rd_clk(int_clk), + .din(read_data), // Bus [17 : 0] + .wr_en(write_output_fifo), + .rd_en(dst_rdy_i), + .dout(dataout), // Bus [35 : 0] + .full(full2), + .prog_full(almost_full2), + .empty(empty2)); + end // block: fifo_g1 + else if (EXT_WIDTH == 36 && INT_WIDTH == 36) begin: fifo_g1 + // FIFO buffers data from UDP engine into external FIFO clock domain. + fifo_xlnx_32x36_2clk fifo_xlnx_32x36_2clk_i1 ( + .rst(rst), + .wr_clk(int_clk), + .rd_clk(ext_clk), + .din(datain), // Bus [35 : 0] + .wr_en(src_rdy_i), + .rd_en(read_input_fifo), + .dout(write_data), // Bus [35 : 0] + .full(full1), + .empty(empty1)); + + // FIFO buffers data read from external FIFO into DSP clk domain and to TX DSP. + fifo_xlnx_32x36_2clk fifo_xlnx_32x36_2clk_i2 ( + .rst(rst), + .wr_clk(ext_clk), + .rd_clk(int_clk), + .din(read_data), // Bus [35 : 0] + .wr_en(write_output_fifo), + .rd_en(dst_rdy_i), + .dout(dataout), // Bus [35 : 0] + .full(full2), + .empty(empty2), + .prog_full(almost_full2)); + + end + endgenerate + + + always @ (posedge int_clk) debug[31:28] <= {empty2,full1,dst_rdy_i,src_rdy_i }; @@ -118,6 +158,7 @@ module ext_fifo debug[27:0] <= {RAM_WEn,RAM_CE1n,RAM_A[3:0],read_data[17:0],empty1,space_avail,data_avail,almost_full2 }; always@ (posedge ext_clk) -// debug2[31:0] <= {write_data[15:0],read_data[15:0]}; - debug2[31:0] <= 0; + // debug2[31:0] <= {write_data[15:0],read_data[15:0]}; + debug2[31:0] <= 0; + endmodule // ext_fifo diff --git a/usrp2/extramfifo/ext_fifo_tb.sh b/usrp2/extramfifo/ext_fifo_tb.sh old mode 100644 new mode 100755 diff --git a/usrp2/extramfifo/ext_fifo_tb.v b/usrp2/extramfifo/ext_fifo_tb.v index 0eda89769..5f4e28719 100644 --- a/usrp2/extramfifo/ext_fifo_tb.v +++ b/usrp2/extramfifo/ext_fifo_tb.v @@ -1,18 +1,31 @@ `timescale 1ns / 1ps -`define INT_WIDTH 36 -`define EXT_WIDTH 18 -`define RAM_DEPTH 19 -`define FIFO_DEPTH 8 -`define DUMP_VCD_FULL - -module ext_fifo_tb(); +//`define USRP2 +`define USRP2PLUS +`ifdef USRP2 + `define INT_WIDTH 36 + `define EXT_WIDTH 18 + `define RAM_DEPTH 19 + `define FIFO_DEPTH 8 + `define DUMP_VCD_FULL + `define INT_CLK_PERIOD 5 + `define EXT_CLK_PERIOD 4 +`elsif USRP2PLUS + `define INT_WIDTH 36 + `define EXT_WIDTH 36 + `define RAM_DEPTH 18 + `define FIFO_DEPTH 8 + `define DUMP_VCD_FULL + `define INT_CLK_PERIOD 5 + `define EXT_CLK_PERIOD 5 +`endif // `ifdef USRP2 + +module ext_fifo_tb(); + reg int_clk; reg ext_clk; reg rst; - - wire [`EXT_WIDTH-1:0] RAM_D_pi; wire [`EXT_WIDTH-1:0] RAM_D_po; @@ -33,7 +46,6 @@ module ext_fifo_tb(); reg dst_rdy_i; integer ether_frame; - // Clocks // Int clock is 100MHz // Ext clock is 125MHz @@ -47,10 +59,10 @@ module ext_fifo_tb(); end always - #5 int_clk <= ~int_clk; + #(`INT_CLK_PERIOD/2) int_clk <= ~int_clk; always - #4 ext_clk <= ~ext_clk; + #(`EXT_CLK_PERIOD/2) ext_clk <= ~ext_clk; initial begin @@ -270,7 +282,7 @@ module ext_fifo_tb(); // generate - for (i=0;i<18;i=i+1) + for (i=0;i<`EXT_WIDTH;i=i+1) begin : gen_RAM_D_IO IOBUF #( @@ -309,28 +321,53 @@ module ext_fifo_tb(); assign #2 RAM_A_ext = RAM_A; - - idt71v65603s150 idt71v65603s150_i1 - ( - .A(RAM_A_ext[17:0]), - .adv_ld_(RAM_LDn_ext), // advance (high) / load (low) - .bw1_(1'b0), - .bw2_(1'b0), - .bw3_(1'b1), - .bw4_(1'b1), // byte write enables (low) - .ce1_(RAM_CE1n_ext), - .ce2(1'b1), - .ce2_(1'b0), // chip enables - .cen_(RAM_CENn_ext), // clock enable (low) - .clk(ext_clk), // clock - .IO({RAM_D[16:9],RAM_D[7:0]}), - .IOP({RAM_D[17],RAM_D[8]}), // data bus - .lbo_(1'b0), // linear burst order (low) - .oe_(RAM_OEn_ext), // output enable (low) - .r_w_(RAM_WEn_ext) - ); // read (high) / write (low) + generate + if (`EXT_WIDTH==18) begin: ram_tb_g1 + idt71v65603s150 idt71v65603s150_i1 + ( + .A(RAM_A_ext[17:0]), + .adv_ld_(RAM_LDn_ext), // advance (high) / load (low) + .bw1_(1'b0), + .bw2_(1'b0), + .bw3_(1'b1), + .bw4_(1'b1), // byte write enables (low) + .ce1_(RAM_CE1n_ext), + .ce2(1'b1), + .ce2_(1'b0), // chip enables + .cen_(RAM_CENn_ext), // clock enable (low) + .clk(ext_clk), // clock + .IO({RAM_D[16:9],RAM_D[7:0]}), + .IOP({RAM_D[17],RAM_D[8]}), // data bus + .lbo_(1'b0), // linear burst order (low) + .oe_(RAM_OEn_ext), // output enable (low) + .r_w_(RAM_WEn_ext) + ); // read (high) / write (low) + end // block: ram_tb_g1 + else if (`EXT_WIDTH==36) begin: ram_tb_g1 + idt71v65603s150 idt71v65603s150_i1 + ( + .A(RAM_A_ext[17:0]), + .adv_ld_(RAM_LDn_ext), // advance (high) / load (low) + .bw1_(1'b0), + .bw2_(1'b0), + .bw3_(1'b0), + .bw4_(1'b0), // byte write enables (low) + .ce1_(RAM_CE1n_ext), + .ce2(1'b1), + .ce2_(1'b0), // chip enables + .cen_(RAM_CENn_ext), // clock enable (low) + .clk(ext_clk), // clock + .IO(RAM_D[31:0]), + .IOP(RAM_D[35:32]), // data bus + .lbo_(1'b0), // linear burst order (low) + .oe_(RAM_OEn_ext), // output enable (low) + .r_w_(RAM_WEn_ext) + ); // read (high) / write (low) + end // block: ram_tb_g1 + endgenerate + /* -----\/----- EXCLUDED -----\/----- diff --git a/usrp2/extramfifo/nobl_fifo.v b/usrp2/extramfifo/nobl_fifo.v index 4c009d980..0b63768fc 100644 --- a/usrp2/extramfifo/nobl_fifo.v +++ b/usrp2/extramfifo/nobl_fifo.v @@ -70,26 +70,27 @@ module nobl_fifo // Simple NoBL SRAM interface, 4 cycle read latency. // Read/Write arbitration via temprary application of empty/full flags. // - nobl_if nobl_if_i1 - ( - .clk(clk), - .rst(rst), - .RAM_D_pi(RAM_D_pi), - .RAM_D_po(RAM_D_po), - .RAM_D_poe(RAM_D_poe), - .RAM_A(RAM_A), - .RAM_WEn(RAM_WEn), - .RAM_CENn(RAM_CENn), - .RAM_LDn(RAM_LDn), - .RAM_OEn(RAM_OEn), - .RAM_CE1n(RAM_CE1n), - .address(address), - .data_out(write_data), - .data_in(read_data), - .data_in_valid(data_avail), - .write(write), - .enable(enable) - ); + nobl_if #(.WIDTH(WIDTH),.DEPTH(RAM_DEPTH)) + nobl_if_i1 + ( + .clk(clk), + .rst(rst), + .RAM_D_pi(RAM_D_pi), + .RAM_D_po(RAM_D_po), + .RAM_D_poe(RAM_D_poe), + .RAM_A(RAM_A), + .RAM_WEn(RAM_WEn), + .RAM_CENn(RAM_CENn), + .RAM_LDn(RAM_LDn), + .RAM_OEn(RAM_OEn), + .RAM_CE1n(RAM_CE1n), + .address(address), + .data_out(write_data), + .data_in(read_data), + .data_in_valid(data_avail), + .write(write), + .enable(enable) + ); diff --git a/usrp2/top/u2plus/Makefile b/usrp2/top/u2plus/Makefile index 23eb8908e..c38bd3ec1 100644 --- a/usrp2/top/u2plus/Makefile +++ b/usrp2/top/u2plus/Makefile @@ -24,6 +24,8 @@ include ../../vrt/Makefile.srcs include ../../udp/Makefile.srcs include ../../coregen/Makefile.srcs include ../../extram/Makefile.srcs +include ../../extramfifo/Makefile.srcs + ################################################## # Project Properties diff --git a/usrp2/top/u2plus/u2plus.ucf b/usrp2/top/u2plus/u2plus.ucf index aee9e57bf..3717b3d91 100755 --- a/usrp2/top/u2plus/u2plus.ucf +++ b/usrp2/top/u2plus/u2plus.ucf @@ -414,3 +414,11 @@ NET "ser_rx_clk" TNM_NET = "ser_rx_clk"; TIMESPEC "TS_ser_rx_clk" = PERIOD "ser_rx_clk" 10 ns HIGH 50 %; TIMESPEC "TS_clk_div_to_dsp_clk" = FROM "clk_div" TO "dcm_out" 10 ns; + +NET "CLK_FPGA_P" CLOCK_DEDICATED_ROUTE = FALSE; +PIN "DCM_INST/DCM_SP.CLKIN" CLOCK_DEDICATED_ROUTE = FALSE; + +NET "RAM_CLK" CLOCK_DEDICATED_ROUTE = FALSE; +PIN "DCM_INST1/DCM_SP.CLKFB" CLOCK_DEDICATED_ROUTE = FALSE; + + diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index 90dbe9d55..55b5bd8f4 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -216,7 +216,49 @@ module u2plus BUFG dspclk_BUFG (.I(dcm_out), .O(dsp_clk)); BUFG wbclk_BUFG (.I(clk_div), .O(wb_clk)); - + + wire RAM_CLK_buf; + wire clk100_ext; + wire clk100_ext_buf; + + DCM DCM_INST1 (.CLKFB(RAM_CLK_buf), + .CLKIN(clk_fpga), + .DSSEN(1'b0), + .PSCLK(1'b0), + .PSEN(1'b0), + .PSINCDEC(1'b0), + .RST(1'b0), + .CLK0(clk100_ext) ); + defparam DCM_INST1.CLK_FEEDBACK = "1X"; + defparam DCM_INST1.CLKDV_DIVIDE = 2.0; + defparam DCM_INST1.CLKFX_DIVIDE = 1; + defparam DCM_INST1.CLKFX_MULTIPLY = 4; + defparam DCM_INST1.CLKIN_DIVIDE_BY_2 = "FALSE"; + defparam DCM_INST1.CLKIN_PERIOD = 10.000; + defparam DCM_INST1.CLKOUT_PHASE_SHIFT = "FIXED"; + defparam DCM_INST1.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS"; + defparam DCM_INST1.DFS_FREQUENCY_MODE = "LOW"; + defparam DCM_INST1.DLL_FREQUENCY_MODE = "LOW"; + defparam DCM_INST1.DUTY_CYCLE_CORRECTION = "TRUE"; + defparam DCM_INST1.FACTORY_JF = 16'h8080; + defparam DCM_INST1.PHASE_SHIFT = -64; + defparam DCM_INST1.STARTUP_WAIT = "FALSE"; + + IBUFG RAM_CLK_buf_i1 (.I(RAM_CLK), + .O(RAM_CLK_buf)); + + BUFG clk100_ext_buf_i1 (.I(clk100_ext), + .O(clk100_ext_buf)); + + OFDDRRSE RAM_CLK_i1 (.Q(RAM_CLK), + .C0(clk100_ext_buf), + .C1(~clk100_ext_buf), + .CE(1'b1), + .D0(1'b1), + .D1(1'b0), + .R(1'b0), + .S(1'b0)); + // I2C -- Don't use external transistors for open drain, the FPGA implements this IOBUF scl_pin(.O(scl_pad_i), .IO(SCL), .I(scl_pad_o), .T(scl_pad_oen_o)); IOBUF sda_pin(.O(sda_pad_i), .IO(SDA), .I(sda_pad_o), .T(sda_pad_oen_o)); @@ -299,6 +341,36 @@ module u2plus .S(0) // Synchronous preset input ); */ + + + // + // Instantiate IO for Bidirectional bus to SRAM + // + wire [35:0] RAM_D_pi; + wire [35:0] RAM_D_po; + wire RAM_D_poe; + + genvar i; + + generate + for (i=0;i<36;i=i+1) + begin : gen_RAM_D_IO + + IOBUF #( + .DRIVE(12), + .IOSTANDARD("LVCMOS25"), + .SLEW("FAST") + ) + RAM_D_i ( + .O(RAM_D_pi[i]), + .I(RAM_D_po[i]), + .IO(RAM_D[i]), + .T(RAM_D_poe) + ); + end // block: gen_RAM_D_IO + endgenerate + + wire [15:0] dac_a_int, dac_b_int; // DAC A and B are swapped in schematic to facilitate clean layout @@ -377,11 +449,12 @@ module u2plus .sen_rx_dac (SEN_RX_DAC), .io_tx (io_tx[15:0]), .io_rx (io_rx[15:0]), - .RAM_D (RAM_D), + .RAM_D_po (RAM_D_po), + .RAM_D_pi (RAM_D_pi), + .RAM_D_poe (RAM_D_poe), .RAM_A (RAM_A), .RAM_CE1n (RAM_CE1n), .RAM_CENn (RAM_CENn), - .RAM_CLK (RAM_CLK), .RAM_WEn (RAM_WEn), .RAM_OEn (RAM_OEn), .RAM_LDn (RAM_LDn), @@ -398,6 +471,8 @@ module u2plus ); assign RAM_ZZ = 1; - assign RAM_BWn = 4'b1111; + // Byte Writes are qualified by the global write enable + // Always do 36bit operations to extram. + assign RAM_BWn = 4'b0000; endmodule // u2plus diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index 4378436a6..9b177390a 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -110,11 +110,12 @@ module u2plus_core inout [15:0] io_rx, // External RAM - inout [35:0] RAM_D, + input [35:0] RAM_D_pi, + output [35:0] RAM_D_po, + output RAM_D_poe, output [20:0] RAM_A, output RAM_CE1n, output RAM_CENn, - output RAM_CLK, output RAM_WEn, output RAM_OEn, output RAM_LDn, @@ -606,11 +607,41 @@ module u2plus_core wire tx_src_rdy, tx_dst_rdy; wire [31:0] debug_vt; +/* -----\/----- EXCLUDED -----\/----- fifo_cascade #(.WIDTH(36), .SIZE(DSP_TX_FIFOSIZE)) tx_fifo_cascade (.clk(dsp_clk), .reset(dsp_rst), .clear(0), .datain({rd1_flags,rd1_dat}), .src_rdy_i(rd1_ready_o), .dst_rdy_o(rd1_ready_i), .dataout(tx_data), .src_rdy_o(tx_src_rdy), .dst_rdy_i(tx_dst_rdy) ); - + -----/\----- EXCLUDED -----/\----- */ + // External and internal clock run at 100MHz for USRP2+ because ext RAM is 36bits wide + // and provides ample bandwidth. + assign RAM_A[20:18] = 3'b0; + + ext_fifo #(.EXT_WIDTH(36),.INT_WIDTH(36),.RAM_DEPTH(18),.FIFO_DEPTH(18)) + ext_fifo_i1 + ( + .int_clk(dsp_clk), + .ext_clk(dsp_clk), + .rst(dsp_rst), + .RAM_D_pi(RAM_D_pi), + .RAM_D_po(RAM_D_po), + .RAM_D_poe(RAM_D_poe), + .RAM_A(RAM_A[17:0]), + .RAM_WEn(RAM_WEn), + .RAM_CENn(RAM_CENn), + .RAM_LDn(RAM_LDn), + .RAM_OEn(RAM_OEn), + .RAM_CE1n(RAM_CE1n), + .datain({rd1_flags[3:2],rd1_dat[31:16],rd1_flags[1:0],rd1_dat[15:0]}), + .src_rdy_i(rd1_ready_o), // WRITE + .dst_rdy_o(rd1_ready_i), // not FULL + .dataout({tx_data[35:34],tx_data[31:16],tx_data[33:32],tx_data[15:0]}), + .src_rdy_o(tx_src_rdy), // not EMPTY + .dst_rdy_i(tx_dst_rdy), + .debug(debug_extfifo), + .debug2(debug_extfifo2) + ); + vita_tx_chain #(.BASE_CTRL(SR_TX_CTRL), .BASE_DSP(SR_TX_DSP), .REPORT_ERROR(1), .PROT_ENG_FLAGS(1)) vita_tx_chain -- cgit v1.2.3 From aa9643f60e91d00cd7990acde44efad17c2509ed Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Wed, 20 Oct 2010 15:45:44 -0700 Subject: Placed 2nd DCM into `ifdef DCM_FOR_RAMCLK which is dissabled by default Derived RAMCLK from 270degree offset of principle core DCM giving theoretical 2.5nS timing advance on RAM_CLK relative to RAM_* signals. --- usrp2/top/u2plus/u2plus.ucf | 8 ++++---- usrp2/top/u2plus/u2plus.v | 22 +++++++++++++++++++--- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/usrp2/top/u2plus/u2plus.ucf b/usrp2/top/u2plus/u2plus.ucf index 3717b3d91..54dfd2a33 100755 --- a/usrp2/top/u2plus/u2plus.ucf +++ b/usrp2/top/u2plus/u2plus.ucf @@ -415,10 +415,10 @@ TIMESPEC "TS_ser_rx_clk" = PERIOD "ser_rx_clk" 10 ns HIGH 50 %; TIMESPEC "TS_clk_div_to_dsp_clk" = FROM "clk_div" TO "dcm_out" 10 ns; -NET "CLK_FPGA_P" CLOCK_DEDICATED_ROUTE = FALSE; -PIN "DCM_INST/DCM_SP.CLKIN" CLOCK_DEDICATED_ROUTE = FALSE; +#NET "CLK_FPGA_P" CLOCK_DEDICATED_ROUTE = FALSE; +#PIN "DCM_INST/DCM_SP.CLKIN" CLOCK_DEDICATED_ROUTE = FALSE; -NET "RAM_CLK" CLOCK_DEDICATED_ROUTE = FALSE; -PIN "DCM_INST1/DCM_SP.CLKFB" CLOCK_DEDICATED_ROUTE = FALSE; +#NET "RAM_CLK" CLOCK_DEDICATED_ROUTE = FALSE; +#PIN "DCM_INST1/DCM_SP.CLKFB" CLOCK_DEDICATED_ROUTE = FALSE; diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index 55b5bd8f4..5396ae6cd 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -1,4 +1,5 @@ `timescale 1ns / 1ps +//`define DCM_FOR_RAMCLK ////////////////////////////////////////////////////////////////////////////////// module u2plus @@ -195,7 +196,7 @@ module u2plus .CLK2X180(), .CLK90(), .CLK180(), - .CLK270(), + .CLK270(clk270_100), .LOCKED(LOCKED_OUT), .PSDONE(), .STATUS()); @@ -216,7 +217,8 @@ module u2plus BUFG dspclk_BUFG (.I(dcm_out), .O(dsp_clk)); BUFG wbclk_BUFG (.I(clk_div), .O(wb_clk)); - + +`ifdef DCM_FOR_RAMCLK wire RAM_CLK_buf; wire clk100_ext; wire clk100_ext_buf; @@ -258,7 +260,21 @@ module u2plus .D1(1'b0), .R(1'b0), .S(1'b0)); - + +`else // !`ifdef DCM_FOR_RAMCLK + // assign RAM_CLK = dcm_out; + BUFG clk270_100_buf_i1 (.I(clk270_100), + .O(clk270_100_buf)); + OFDDRRSE RAM_CLK_i1 (.Q(RAM_CLK), + .C0(clk270_100_buf), + .C1(~clk270_100_buf), + .CE(1'b1), + .D0(1'b1), + .D1(1'b0), + .R(1'b0), + .S(1'b0)); +`endif + // I2C -- Don't use external transistors for open drain, the FPGA implements this IOBUF scl_pin(.O(scl_pad_i), .IO(SCL), .I(scl_pad_o), .T(scl_pad_oen_o)); IOBUF sda_pin(.O(sda_pad_i), .IO(SDA), .I(sda_pad_o), .T(sda_pad_oen_o)); -- cgit v1.2.3 From ddb380141841b56fa0720915db7f91f5a28f936c Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Thu, 21 Oct 2010 10:55:07 -0700 Subject: Defaulted all SRAM pins to LVCMOS25 8mA FAST --- usrp2/top/u2plus/u2plus.ucf | 134 ++++++++++++++++++++++---------------------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/usrp2/top/u2plus/u2plus.ucf b/usrp2/top/u2plus/u2plus.ucf index 54dfd2a33..25267a67e 100755 --- a/usrp2/top/u2plus/u2plus.ucf +++ b/usrp2/top/u2plus/u2plus.ucf @@ -307,73 +307,73 @@ NET "ser_rkmsb" LOC = "AD25" ; NET "ser_rklsb" LOC = "Y20" ; ## SRAM -NET "RAM_D<35>" LOC = "K16" ; -NET "RAM_D<34>" LOC = "D20" ; -NET "RAM_D<33>" LOC = "C20" ; -NET "RAM_D<32>" LOC = "E21" ; -NET "RAM_D<31>" LOC = "D21" ; -NET "RAM_D<30>" LOC = "C21" ; -NET "RAM_D<29>" LOC = "B21" ; -NET "RAM_D<28>" LOC = "H17" ; -NET "RAM_D<27>" LOC = "G17" ; -NET "RAM_D<26>" LOC = "B23" ; -NET "RAM_D<25>" LOC = "A22" ; -NET "RAM_D<24>" LOC = "D23" ; -NET "RAM_D<23>" LOC = "C23" ; -NET "RAM_D<22>" LOC = "D22" ; -NET "RAM_D<21>" LOC = "C22" ; -NET "RAM_D<20>" LOC = "F19" ; -NET "RAM_D<19>" LOC = "G20" ; -NET "RAM_D<18>" LOC = "F20" ; -NET "RAM_D<17>" LOC = "F7" ; -NET "RAM_D<16>" LOC = "E7" ; -NET "RAM_D<15>" LOC = "G9" ; -NET "RAM_D<14>" LOC = "H9" ; -NET "RAM_D<13>" LOC = "G10" ; -NET "RAM_D<12>" LOC = "H10" ; -NET "RAM_D<11>" LOC = "A4" ; -NET "RAM_D<10>" LOC = "B4" ; -NET "RAM_D<9>" LOC = "C5" ; -NET "RAM_D<8>" LOC = "D6" ; -NET "RAM_D<7>" LOC = "J11" ; -NET "RAM_D<6>" LOC = "K11" ; -NET "RAM_D<5>" LOC = "B7" ; -NET "RAM_D<4>" LOC = "C7" ; -NET "RAM_D<3>" LOC = "B6" ; -NET "RAM_D<2>" LOC = "C6" ; -NET "RAM_D<1>" LOC = "C8" ; -NET "RAM_D<0>" LOC = "D8" ; -NET "RAM_A<0>" LOC = "C11" ; -NET "RAM_A<1>" LOC = "E12" ; -NET "RAM_A<2>" LOC = "F12" ; -NET "RAM_A<3>" LOC = "D13" ; -NET "RAM_A<4>" LOC = "C12" ; -NET "RAM_A<5>" LOC = "A12" ; -NET "RAM_A<6>" LOC = "B12" ; -NET "RAM_A<7>" LOC = "E14" ; -NET "RAM_A<8>" LOC = "F14" ; -NET "RAM_A<9>" LOC = "B15" ; -NET "RAM_A<10>" LOC = "A15" ; -NET "RAM_A<11>" LOC = "D16" ; -NET "RAM_A<12>" LOC = "C15" ; -NET "RAM_A<13>" LOC = "D17" ; -NET "RAM_A<14>" LOC = "C16" ; -NET "RAM_A<15>" LOC = "F15" ; -NET "RAM_A<16>" LOC = "C17" ; -NET "RAM_A<17>" LOC = "B17" ; -NET "RAM_A<18>" LOC = "B18" ; -NET "RAM_A<19>" LOC = "A18" ; -NET "RAM_A<20>" LOC = "D18" ; -NET "RAM_BWn<3>" LOC = "D9" ; -NET "RAM_BWn<2>" LOC = "A9" ; -NET "RAM_BWn<1>" LOC = "B9" ; -NET "RAM_BWn<0>" LOC = "G12" ; -NET "RAM_ZZ" LOC = "J12" ; -NET "RAM_LDn" LOC = "H12" ; -NET "RAM_OEn" LOC = "C10" ; -NET "RAM_WEn" LOC = "D10" ; -NET "RAM_CENn" LOC = "B10" ; -NET "RAM_CLK" LOC = "A10" ; +NET "RAM_D<35>" LOC = "K16" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<34>" LOC = "D20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<33>" LOC = "C20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<32>" LOC = "E21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<31>" LOC = "D21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<30>" LOC = "C21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<29>" LOC = "B21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<28>" LOC = "H17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<27>" LOC = "G17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<26>" LOC = "B23" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<25>" LOC = "A22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<24>" LOC = "D23" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<23>" LOC = "C23" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<22>" LOC = "D22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<21>" LOC = "C22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<20>" LOC = "F19" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<19>" LOC = "G20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<18>" LOC = "F20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<17>" LOC = "F7" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<16>" LOC = "E7" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<15>" LOC = "G9" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<14>" LOC = "H9" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<13>" LOC = "G10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<12>" LOC = "H10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<11>" LOC = "A4" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<10>" LOC = "B4" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<9>" LOC = "C5" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<8>" LOC = "D6" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<7>" LOC = "J11" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<6>" LOC = "K11" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<5>" LOC = "B7" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<4>" LOC = "C7" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<3>" LOC = "B6" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<2>" LOC = "C6" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<1>" LOC = "C8" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<0>" LOC = "D8" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<0>" LOC = "C11" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<1>" LOC = "E12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<2>" LOC = "F12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<3>" LOC = "D13" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<4>" LOC = "C12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<5>" LOC = "A12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<6>" LOC = "B12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<7>" LOC = "E14" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<8>" LOC = "F14" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<9>" LOC = "B15" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<10>" LOC = "A15" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<11>" LOC = "D16" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<12>" LOC = "C15" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<13>" LOC = "D17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<14>" LOC = "C16" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<15>" LOC = "F15" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<16>" LOC = "C17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<17>" LOC = "B17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<18>" LOC = "B18" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<19>" LOC = "A18" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<20>" LOC = "D18" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_BWn<3>" LOC = "D9" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_BWn<2>" LOC = "A9" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_BWn<1>" LOC = "B9" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_BWn<0>" LOC = "G12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_ZZ" LOC = "J12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_LDn" LOC = "H12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_OEn" LOC = "C10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_WEn" LOC = "D10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_CENn" LOC = "B10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_CLK" LOC = "A10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; ## SPI Flash NET "flash_miso" LOC = "AF24" ; -- cgit v1.2.3 From 4e5f4e137e70728116536ac19f1bf946fa890b7d Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Wed, 10 Nov 2010 09:45:12 -0800 Subject: 1) u2p has added a new signal from the SRAM to the pinout, RAM_ZZ which allows the SRAM to be placed in a sleep mode. This pin was erroniously pulled high at the top level rendering the SRAM unusable. 2) Added declaration for extramfifo debug bus which had got deleted at some point in the past 3) Created a debug bundle of signals from extsramfifo to help diagnose problem 1) 4) u2p Rev1 PCB ommits control of any of the SRAM chip selects. Made a code change so that control logic does not rely on the presence of this pin and ensuring that the SRAM is always placed in READ mode in any idle cycles. --- usrp2/extramfifo/ext_fifo.v | 12 ++++++------ usrp2/extramfifo/nobl_if.v | 9 ++++++--- usrp2/top/u2plus/u2plus.v | 3 ++- usrp2/top/u2plus/u2plus_core.v | 4 +++- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/usrp2/extramfifo/ext_fifo.v b/usrp2/extramfifo/ext_fifo.v index 2a8d57448..44229f846 100644 --- a/usrp2/extramfifo/ext_fifo.v +++ b/usrp2/extramfifo/ext_fifo.v @@ -46,8 +46,6 @@ module ext_fifo wire [EXT_WIDTH-1:0] read_data; wire full1, empty1; wire almost_full2, full2, empty2; - wire [INT_WIDTH-1:0] data_to_fifo; - wire [INT_WIDTH-1:0] data_from_fifo; wire [FIFO_DEPTH-1:0] capacity; wire space_avail; wire data_avail; @@ -151,12 +149,14 @@ module ext_fifo - always @ (posedge int_clk) - debug[31:28] <= {empty2,full1,dst_rdy_i,src_rdy_i }; +// always @ (posedge int_clk) +// debug[31:28] <= {empty2,full1,dst_rdy_i,src_rdy_i }; always @ (posedge ext_clk) - debug[27:0] <= {RAM_WEn,RAM_CE1n,RAM_A[3:0],read_data[17:0],empty1,space_avail,data_avail,almost_full2 }; - + // debug[27:0] <= {RAM_WEn,RAM_CE1n,RAM_A[3:0],read_data[17:0],empty1,space_avail,data_avail,almost_full2 }; + debug[31:0] <= {7'h0,src_rdy_i,read_input_fifo,write_output_fifo,dst_rdy_i,full2,almost_full2,empty2,full1,empty1,write_data[7:0],read_data[7:0]}; + + always@ (posedge ext_clk) // debug2[31:0] <= {write_data[15:0],read_data[15:0]}; debug2[31:0] <= 0; diff --git a/usrp2/extramfifo/nobl_if.v b/usrp2/extramfifo/nobl_if.v index 391a841e8..7ff7eaa03 100644 --- a/usrp2/extramfifo/nobl_if.v +++ b/usrp2/extramfifo/nobl_if.v @@ -50,18 +50,21 @@ module nobl_if address_pipe1 <= 0; write_pipe1 <= 0; data_out_pipe1 <= 0; + RAM_WEn <= 1; + RAM_CE1n <= 1; + end else begin enable_pipe1 <= enable; - RAM_CE1n <= ~enable; // Creates IOB flob - + RAM_CE1n <= ~enable; // Creates IOB flop + RAM_WEn <= ~write; // Creates IOB flop if (enable) begin address_pipe1 <= address; write_pipe1 <= write; - RAM_WEn <= ~write; // Creates IOB flob +// RAM_WEn <= ~write; // Creates IOB flop if (write) diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index 5396ae6cd..d4a681731 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -486,7 +486,8 @@ module u2plus .spiflash_mosi (flash_mosi) ); - assign RAM_ZZ = 1; + // Drive low so that RAM does not sleep. + assign RAM_ZZ = 0; // Byte Writes are qualified by the global write enable // Always do 36bit operations to extram. assign RAM_BWn = 4'b0000; diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index 9b177390a..081ffe4c6 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -164,7 +164,9 @@ module u2plus_core wire [31:0] atr_lines; wire [31:0] debug_rx, debug_mac, debug_mac0, debug_mac1, debug_tx_dsp, debug_txc, - debug_serdes0, debug_serdes1, debug_serdes2, debug_rx_dsp, debug_udp; + debug_serdes0, debug_serdes1, debug_serdes2, debug_rx_dsp, debug_udp, + debug_extfifo; + wire [15:0] ser_rx_occ, ser_tx_occ, dsp_rx_occ, dsp_tx_occ, eth_rx_occ, eth_tx_occ, eth_rx_occ2; wire ser_rx_full, ser_tx_full, dsp_rx_full, dsp_tx_full, eth_rx_full, eth_tx_full, eth_rx_full2; -- cgit v1.2.3 From 51d68f095f2341e93232683bd6e3660285478196 Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Thu, 11 Nov 2010 10:06:36 -0800 Subject: 1) Created new FIFO IP in Coregen. 512x36 dual clcok FIFO with programable full watermark 2) Put larger FIFO on output of u2plus extramfifo that is compatable with u2_rev3 EMI fixes. --- usrp2/coregen/Makefile.srcs | 2 + usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.gise | 30 ++++ usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.ngc | 3 + usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.v | 173 +++++++++++++++++++++ usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.veo | 53 +++++++ usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xco | 84 ++++++++++ usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xise | 72 +++++++++ .../fifo_xlnx_512x36_2clk_prog_full_flist.txt | 12 ++ .../fifo_xlnx_512x36_2clk_prog_full_readme.txt | 47 ++++++ .../fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl | 68 ++++++++ usrp2/extramfifo/ext_fifo.v | 22 +-- 11 files changed, 555 insertions(+), 11 deletions(-) create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.gise create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.ngc create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.v create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.veo create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xco create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xise create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_flist.txt create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_readme.txt create mode 100644 usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl diff --git a/usrp2/coregen/Makefile.srcs b/usrp2/coregen/Makefile.srcs index f163877a9..a3a5d826d 100644 --- a/usrp2/coregen/Makefile.srcs +++ b/usrp2/coregen/Makefile.srcs @@ -22,4 +22,6 @@ fifo_xlnx_512x36_2clk_36to18.v \ fifo_xlnx_512x36_2clk_36to18.xco \ fifo_xlnx_512x36_2clk_18to36.v \ fifo_xlnx_512x36_2clk_18to36.xco \ +fifo_xlnx_512x36_2clk_prog_full.v \ +fifo_xlnx_512x36_2clk_prog_full.xco \ )) diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.gise b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.gise new file mode 100644 index 000000000..9abec8c3e --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.gise @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + 11.1 + + + + + + + + + + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.ngc b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.ngc new file mode 100644 index 000000000..9cb73d5ce --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.ngc @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$4cb40<,[o}e~g`n;"2*726&;$9,)?40893456789:;8=5?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>;;1A3<4=6;2;%<<5=4:0076753:81EC^ZT;FJE956294:>6==:HLSQQ112906?IR\Y__6IAN<2394;743:81CXZ_UU8GKG:493:5=?5<6;KMTPR=l`d7?84?>0687301?69l29x>=>?ff662(363=>08=HI1097>LHW]]0OE]O33;2=54=32@D[YY4KIQ@?7?699;1?6B[[PTV9@JVF4:0;2<<44;MVPUSS2ME[N1=50?68102792<97;7;;7;:24=?<22;<=:48D:B5>?330:;5?56659:23?6:231EC^ZT;CG@WG;03:5=?56:HLSQQ0g8=?OIX\^1|ah_dosp|Ys`{oxd1650?06?<=878>744FNQWW>uthoVof|ywPtipfwmYimnki1650?3g?<057GAPTV9twi`Wog`Rzgrdqk[kc`i}o747>1199:>JSSX\^1hlzn_bmvjq:?294:n675OTVSQQrtXlh~jSnaznu>;>5853H837LJKR@>3:==FLMXJ0<07;@FGVD:5611JHI\N<2<;?DBCZH6?255NDEPB808?3HNO^L29>99B@ATF4>4j7LJKR@>;>58?3HNO^L27>99B@ATE49437LJKRC>2:==FLMXI0?07;@FGVG:4611JHI\M<5<;?DBCZK6>255NDEPA838?3HNO^O28>`9B@ATE410;255NDEPA8=843HFG56O\YOA\V@A63K90NX<7;CWP[LHAG81H>6MJ139@L@ELWECHIC]J_U[SA7=DA=1H@FO;;BNHF6=DD[30OBCBIUVF@426JF6:FJE969?2NBM1??>69GMD:697=0HDO313<4?AOF4895;6JFA=37:2=CAH6:9394DHC?53803MCJ0<917:FJE97?6>1OEL2>9?48@LG;97=0HDO321<4?AOF4;;5;6JFA=01:2=CAH69?394DHC?61803MCJ0?;17:FJE9416>1OEL2=7?58@LG;:14<7IGN<3;=2>BNI585;6JFA=13:<=CAH68=7>17:FJE9566?1OEL2<>79GMD:36?1OEL2:>79GMD:16?1OEL28>79GMD:?6?1OEL26>79GMG:76>1OEO2>0?58@LD;984<7IGM<00=3>BNJ5;82:5KIC>20;169GMG:607=0HDL318<5?AOE484<7IGM<32=3>BNJ58:2:5KIC>16;1>08;EKA8729?2NBN1<:>69GMG:5>7=0HDL326<4?AOE4;25;6JFB=0::3=CAK692:5KIC>04;?69GMG:497<0HDL33?48@LD;<7<0HDL35?48@LD;>7<0HDL37?48@LD;07<0HDL39?58@LVF494<7IG_A=3=3>BNXH69245KIQC?7?69?2NB\L2<>69GMUD;87=0HD^M<0<4?AOWJ58556JFPC>0>5803MC[N1=16:FLE969?2NDM1??>69GKD:697=0HBO313<4?AIF4895;6J@A=37:2=CGH6:9394DNC?53803MEJ0<917:FLE97?6>1OCL2>9?48@JG;97=0HBO321<4?AIF4;;5;6J@A=01:2=CGH69?394DNC?61803MEJ0?;17:FLE9416>1OCL2=7?58@JG;:14<7IAN<3;=2>BHI585;6J@A=13:<=CGH68=7>17:FLE9566?1OCL2<>79GKD:36?1OCL2:>79GKD:16?1OCL28>79GKD:?6?1OCL26>69GKDYUMN<0HBL30?58@JD;994<7IAM<03=3>BHJ5;92:5KOC>27;169GKG:6?7=0HBL319<4?AIE4835:6J@B=3=3>BHJ58;2:5KOC>15;1?08;EMA8759?2NDN1<;>69GKG:5=7=0HBL327<4?AIE4;=5;6J@B=0;:2=CGK695384DN@?6;14=7IAM<9<5?AIE404<7IAM_SGD3>BHXH6;2:5KOQC?5;12:2=CGYH7>374DNRA86<76>1OC]L33?18AKG43LDIn6KA_DA@[WCFLj1NBRKLC^UQMQC53O897K6:;GCOW@40JI^J4:DGV@764IOKWTZ6702CEEY^P00:8MKOSXV:946GAIUR\46>;8:KMMQVX8<20ECG[P^25<>OIA]ZT<:74IOKWWQGSM>1BBDZP0158MKOSW9;<7D@FT^213>OIA]U;?:5FNHV\411J7:KMMQY7N>1BBDZP1158MKOSW8;<7D@FT^313>OIA]U:?:5FNHV\511769JJLRX91=0ECG[_0;4?LHN\V;J;6GAIU]2F2=NF@^T=N94IOKW[4B03@DBXR?J7:KMMQY6N>1BBDZP2158MKOSW;;<7D@FT^013>OIA]U9?:5FNHV\611N94IOKW[7B03@DBXR1BBDZP3158MKOSW:;<7D@FT^113>OIA]U8?:5FNHV\711;8;HLJPZ51?2CEEYQ<769JJLRX;1=0ECG[_2;4?LHN\V9J;6GAIU]0F2=NF@^T?N94IOKW[6B03@DBXR=J7:KMMQY4N?1BBDZPA79JJLRXJ;1GE?5CO79OKDBBL>1GCJGLAM68HPR6<2F^X?:4LTV00>JR\=<0@XZ;_E48HPR3WE?0A^I@N49NQ]E^k2Gjfb|YesqjkkeH7:2D:86@>0768J460<2D:<5:4N02:7>H69=1E=<>;;O3251=I988?7C?>359M54233G;:995A1047?K76?=1E=<6;;O32=6=I9;>0B<2268J443<2D:>8:4N0050>H6:>>0B<<74:L26<595A1217?K74<=1E=>;;;O3021=I9:=?7C?<859M56?43G;?86@>4168J426<2D:8?:4N0600>H6H6?=1E=:9<;O3;7>H61:1E>==4N330?K45;2D9?>5A2518J7343G8=?6@=729M6=5=<;O177>H4=:1E?;=4N250?K5?;2D85>5A4118J1743G>9?6@;329M0150\L\[a:RJJZDR[@NSn6^FN^@VWKGJM:1[^H?4Q09Qa>TFEK;=S^=9_R15e>TBIMUME_][c:PFEAYPAM^CSLm4RDCG[ROC\AUI=6]>3:QJIZEHDECXEB@PCIG@O3=TG\XHI:5\RWCO[D1<[[\J@RL;;RQQE1=T[[H?7YW_E208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;<=Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?013\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4565W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;?R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?05]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3453XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:=S_k|umv277=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwY`kVrd~=>?7^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2345YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt789;T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=>=_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1237ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678=UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=;PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^uq[uhszVmhSua}0125[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYpzVzexQhc^zlv567?VXnxb{1338Q5)`zo$yj"ilx/aoo})ulVzexQmio>3:77<]9%l~k }f.e`|+ekcq%yhR~ats]amk:66;;0Y=!hrg,qb*adp'iggu!}d^rmpwYeag692??4U1-dvc(un&mht#mcky-q`Zvi|{Uiec2<>338Q5)`zo$yj"ilx/aoo})ulVzexQmio>7:77<]9%l~k }f.e`|+ekcq%yhR~ats]amk:26;;0Y=!hrg,qb*adp'iggu!}d^rmpwYeag6=2??4U1-dvc(un&mht#mcky-q`Zvi|{Uiec28>338Q5)`zo$yj"ilx/aoo})ulVzexQmio>;:76<]9%l~k }f.e`|+ekcq%yhR~ats]amkY7:91^<"i}f/pe+be&jf`t"|k_qlwvZdnfV;9<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS? gsd-vc)`kq$h`fv re]sjqtXj`dT;?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ7279V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv5678;=0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?01312>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89::>:5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r12354413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=<=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45659;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0204?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt78999>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123071<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<9?=6:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq4562:>1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?5005?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789<946[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}012554403\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=8=2c9V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567>Vhoh=<9;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34515?2_;#j|i.sd,cf~)keas#jPpovq[goiWqey<=>81328Q5)`zo$yj"ilx/aoo})ulVzexQhc=2=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`848582_;#j|i.sd,cf~)keas#jPpovq[be;:78;7X> gsd-vc)`kq$h`fv re]sjqtXoj682?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo1:1219V4*aun'xm#jmw.bnh|*tcWyd~Ril<4<14>S7'nxm"h gbz-gim'{nT|cz}_fa?2;473\:$kh!rg-dg}(ddbr$~iQnup\cf:06;:0Y=!hrg,qb*adp'iggu!}d^rmpwY`k525=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS=?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ>1g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_33e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]05c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[17a3\:$kh!rg-dg}(ddbr$~iQnup\cfY29o1^<"i}f/pe+be&jf`t"|k_qlwvZadW?;m7X> gsd-vc)`kq$h`fv re]sjqtXojU<=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS5<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8585>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk1?1279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:56;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi33?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4=49:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=7=63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn6=2?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?3;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol050=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ65=2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkR?=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ45=2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkR==5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ25=2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkR;=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ05=2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkR9=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ>512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><1<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0<0=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb64;4956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2868512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><5<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:080=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb64?4956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2828512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><9<1<>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:S=<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X9;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]16==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R==8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W=837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\17><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh gsd-vc)`kq$h`fv ws]sjqtXj`d7=3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`32?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?7;463\:$kh!rg-dg}(ddbr${Qnup\flh;<78:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d793<>;T2,cw`)zo%lou lljz,swYwf}xTnd`36?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?3;463\:$kh!rg-dg}(ddbr${Qnup\flh;078;7X> gsd-vc)`kq$h`fv ws]sjqtXj`dT4U1-dvc(un&mht#mcky-tvZvi|{UiecQ>219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^014>S7'nxm"h gbz-gim'~xT|cz}_ckm[6473\:$kh!rg-dg}(ddbr${Qnup\flhX<;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU>>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR8=0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_603?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\<70<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<=<8;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34566:?1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?1358Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw6788;9:6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012162=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;><<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34555?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=><2348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678=8<7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?016263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;9?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234075>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>9299V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567>8;9;6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012567d<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<;Qmde212>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:<>:5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r12334473\:$kh!rg-dg}(ddbr${Qnup\cf:76;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k5;5>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh0?0=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm33?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>7:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg939:91^<"i}f/pe+be&jf`t"y}_qlwvZad4?49<6[?/fpe*w`(ojr%oaew/vp\tkruWni7;30d8Q5)`zo$yj"ilx/aoo})pzVzexQhc^22b>S7'nxm"h gbz-gim'~xT|cz}_fa\54`<]9%l~k }f.e`|+ekcq%|~R~ats]dgZ46n2_;#j|i.sd,cf~)keas#z|Ppovq[beX;8l0Y=!hrg,qb*adp'iggu!xr^rmpwY`kV>:j6[?/fpe*w`(ojr%oaew/vp\tkruWniT9f:W3+bta&{l$knv!cmi{+rtXxg~ySjmP70d8Q5)`zo$yj"ilx/aoo})pzVzexQhc^:12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo5:5>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>2:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm7>3<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8685>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk1:1279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:26;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi36?05?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4>49:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=:=60=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU;>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]260=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU9>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]060=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU?>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]660=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU=>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]460=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU3>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5969:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=3=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1<1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9595>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5929:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=7=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=181289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95=5>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g59>9:11^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1^21<>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S<<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X:;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]06==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R:=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W<837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\27><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmThS7'nxm"h gbz-gim'~xT|cz}_fa\|jt789;996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01011>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt7899996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01611>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt789?996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01411>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt789=8<6[?/fpe*w`(oe:%~i!hr0,qbr`s'Dg~tR\NM^PG[@HXN^L_><2e9V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}ki1>12e9V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}ki1?12b9V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}kiR>=c:W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nS<=:;T2,cw`)zo%l`= }d.eq5+tao~$ox|}_guepZusi}oTaxv?013?4;513\:$kh!rg-dh5(ul&my=#|iwgv,gptuWo}mxR}{aug\ip~789;7<3?<5:W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nS`{w01228484>2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[hs89::0<0>299V4*aun'xm#jb?.sf,cw7)zo}mx"kbpu{\br`sWoh9;6[?/fpe*w`(oe:%~i!hr0,qbr`s'lg{xtQiwgv\m7`<]9%l~k }f.eo4+tc'nx:"hxfu-fiur~Wo}mxRgPmtz3456482_;#j|i.sd,ci6)zm%l~< }fvdw+`kw|pUm{kzPi^ov|56788827X> gsd-vc)`d9$yh"i}ar,qwqu(k9%hm|vndv?4;4>3\:$kh!rg-dh5(ul&mym~ }suq,g5)di{xrbhz31?0:?P6(o{l%~k!hl1,q`*auiz$yy} c1-`ewt~fl~7>3<6;T2,cw`)zo%l`= }d.eqev(u{}y$o=!laspzj`r;;78m7X> gsd-vc)`d9$yh"i}ar,qwqu(k9%laxv!glY3Y+aj9'g:>k5Z0.eqb+ta'nf;"j gscp*wus{&i;#jczx/en_4[)ody%a~ gsd-vc)`d9$yh"i}ar,qwqu(k9%}=1?1229V4*aun'xm#jb?.sf,cwgt&{y"m?/w3?6;443\:$kh!rg-dh5(ul&mym~ }suq,g5)q9595>>5Z0.eqb+ta'nf;"j gscp*wus{&i;#{?34?0a?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5Z6Xign;<=>>2c9V4*aun'xm#jb?.sf,cwgt&{y"m?/w3\5Zgil9:;<<o5Z0.eqb+ta'nf;"j gscp*wus{&i;#{?P3^cm`567888i7X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=R:Pnnv34566:01^<"i}f/pe+bj7&{n$ko|.sqww*e6'jky~t`jt=2=6<=R8&myj#|i/fn3*wb(o{kx"}{s.a2+fguzpdnx1?1289V4*aun'xm#jb?.sf,cwgt&{y"m>/bcqv|hb|585>45Z0.eqb+ta'nf;"j gscp*wus{&i:#no}rxlfp959:o1^<"i}f/pe+bj7&{n$ko|.sqww*e6'ng~t#ib[1_-ch7)e88m7X> gsd-vc)`d9$yh"i}ar,qwqu(k8%laxv!glY2Y+aj{'gx>k5Z0.eqb+ta'nf;"j gscp*wus{&i:#jczx/en_7[)ody%a~/fov|+ajS=W%k`}!mr00?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5969::1^<"i}f/pe+bj7&{n$ko|.sqww*e6';7=3<<;T2,cw`)zo%l`= }d.eqev(u{}y$o gsd-vc)`d9$yh"i}ar,qwqu(k8%}=1:12c9V4*aun'xm#jb?.sf,cwgt&{y"m>/w3\4Zgil9:;<<o5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?P2^cm`567888i7X> gsd-vc)`d9$yh"i}ar,qwqu(k8%}=R=Paof34566:k1^<"i}f/pe+bj7&{n$ko|.sqww*e6';T8R``t12344473\:$kh!rg-dh5(ul&mym~ }suq,gjkw8;:0Y=!hrg,qb*ak8'xo#j|ns/pppv)dgdz:>45Z0.eqb+ta'nf;"j gscp*wus{&xjaRkbpu{\bgYn;91^<"i}f/pe+bj7&{n$ko|.sqww*tfeVof|ywPfc]j[jt789:8=6[?/fpe*w`(oe:%~i!hr`q-vvrt'{kfShctx]efZoXg{:;<=?=3:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmp72<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~:>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu010>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|:8?7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{4368Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkr2:=1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by8=4:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmp2433\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d4?74U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:76;i0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>3:Zts:01^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=3=6f=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1?1_sv1=>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0?0=c:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4;4T~y<6;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[f;;78h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?7;Yu|;30Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>7:7e<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2;>^pw6<=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1;12b9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5?5Sz=9:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4?49o6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az838Xz}827X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?3;4d3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw37?]qp7g<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|30?0b?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWqey0<0=a:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZ~hz585>l5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]{kw:46;k0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?0;4f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSua}<4<1e>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1812`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{6<2?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;078o7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8=8Xz};m7X> gsd-vc)`d9$yh"|nup,gjsi|5:5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~7=3?i;T2,cw`)zo%l`= }d.psjqt(kfex1<11g9V4*aun'xm#jb?.sf,vuhsz&idycz33?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=6=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?1;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9099o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;?7;m7X> gsd-vc)`d9$yh"|nup,gjsi|525=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T<e:W3+bta&{l$ka>!re-qtkru'je~byQ<1d9V4*aun'xm#jb?.sf,vuhsz&idyczP40g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_43f?P6(o{l%~k!hl1,q`*twf}x$ob{at^42a>S7'nxm"h gm2-va)uxg~y#naznu]45`=R8&myj#|i/fn3*wb(zyd~"m`uov\<74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;87897X> gsd-vc)`d9$yh"|nup,gjsi|Vn:0<0=2:W3+bta&{l$ka>!re-qtkru'je~byQk1=0=67=R8&myj#|i/fn3*wb(zyd~"m`uov\`4:46;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;783<=;T2,cw`)zo%l`= }d.psjqt(kfexRj><4<16>S7'nxm"h gm2-va)uxg~y#naznu]g5909:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl86<2?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?38?02?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[5463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W88:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S?<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_202?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[1463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W<8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S;<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_602?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[=433\:$kh!rg-dh5(ul&x{by| cnwmpZhh|9:;=>h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir0=0!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:Tot2>>2d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>0:6`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8184n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:26:l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Ze~4?48j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xkp6<2>h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir050;0:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:T`xz31?63?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,IdbcWmcmjR~ats]seaYflm:;<=Qcuu>1:16<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp959<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[iss4=4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xd|~793:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Ugyy29>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?_mww8=8382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\hpr;17>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yg{6829>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vrd~1:1419V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Sua}<4<74>S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pxnp?2;273\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(EhnoSigif^rmpwYwimUjhi>?01]{kw:06=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Z~hz5258=5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567Wqey040=f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{mi2<>3d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok<5<1b>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae>6:7`<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg8385n2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]sea:06;l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugc4149j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwim622?k4U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWykoS>!ws-dsdu)oyl%{~i/ekebZvi|{U{miQ:2d9V4*aun'xm#jb?.vp,crgt&nzm"z|f.fjbcYwf}xT|ljP63g8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok_60f?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,`l`aWyd~R~nd^:1a>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae]:72=R8&myj#|i/fn3*rt(o~kx"j~i.vpsb*bnnoU{by|Pp`f\eab789:7?3=8;T2,cw`)zo%l`= xr.etev(`xo$|~}h dhde[uhszVzjhRokd1234929;>1^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&nbjkQnup\tdbXimn;<=>35?14?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,`l`aWyd~R~nd^cg`56785<5?:5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"jffg]sjqtXxhnTmij?012?3;503\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(l`lmS}`{r^rb`Zgcl9:;<161369V4*aun'xm#jb?.vp,crgt&nzm"z|f.fjbcYwf}xT|ljPaef3456;178j7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$|ah_gwohZo4:2_;#j|i.sd,ci6){%l{l}!gqd-swva'yxdkRhzlm]j[hs89:8?95Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"~}of]eqijXaVg~t=>?30000>S7'nxm"h gm2-sw)`hy%k}h!wsre+uthoVl~`aQf_lw{45649:987X> gsd-vc)`d9$|~"ixar,dtc(pzyl$|ah_gwohZoXe|r;<==8339V4*aun'xm#jb?.vp,crgt&nzm"z|f.rqkbYa}efTeR``t12357?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2?>3;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6:2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:56;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>0:7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV>R.fo2*h75n2_;#j|i.sd,ci6){%l{l}!wrvp+f7(ods"jcT1\,div(j{;l0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&mfyu hmZ0^*bkt&dy9j6[?/fpe*w`(oe:%{!hw`q-svrt'j;$k`{w.foX7X(`ez$f?h4U1-dvc(un&mg<#y}/fubw+qt|z%h="ibuy,di^2Z&ngx"`}=3:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0>3:75<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p64849?6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z<2=>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28685;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~86?2?l4U1-dvc(un&mg<#y}/fubw+qt|z%h="x>_1]bja6789;9n6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z_`lg45679;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S?Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U8Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W=Uecy>?0131=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0=0=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs484956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw878512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<2<1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP

"x><1<17>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4:66;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0?0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>0:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64=49n6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y3Wge<=>?1328Q5)`zo$yj"ic0/uq+bqf{'}xx~!lolr265=R8&myj#|i/fn3*rt(o~kx"z}{s.aliu4582_;#j|i.sd,ci6){%l{l}!wrvp+fijx:8o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;878o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;978o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;:78o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;;7987X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!hmtz-ch]7U'mf=#c>329V4*aun'xm#jb?.vp,crgt&~y"inf/a0+bkrp'mfW5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m1^<"i}f/pe+bj7&~x$kzo|.vqww*afn'i8#{?30?04?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q95;5>:5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m gsd-vc)`d9$|~"ixar,twqu(ohl%o>!y1^2\ekb789::>k5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m>2g9V4*aun'xm#jb?.vp,crgt&~y"inf/a0+s7X;Vkeh=>?000e?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q9V>Tbbz?01226f=R8&myj#|i/fn3*rt(o~kx"z}{s.pbiZgkefySk{cl^k00>S7'nxm"h gm2-sw)`hy%{~z|/scn[djjgz~Tjxbc_h]nq}67899>7X> gsd-vc)`d9$|~"ixar,twqu(zhgTmac`su]eqijXaVg~t=>?0016?P6(o{l%~k!hl1,tv*apiz$|y} r`o\eikh{}UmyabPi^llp56798837X> gsd-vc)`d9$|~"ixar,twqu(zhgTjxbc_g`\m73<]9%l~k }f.eo4+qu'n}j#y|tr-qehYa}efTe?j4U1-dvc(un&mg<#y}/fubw+qt|z%ym`Qiumn\mZkrp9:;229V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d=?:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov161=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}9986[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at507?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs=;>0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz9259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq15<2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex5<6;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;878h7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?4;Yu|;30Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPcx>2:7e<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2>>^pw6<=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1<12b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq585Sz=9:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4:49o6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az868Xz}827X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?0;4d3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw34?]qp7?<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2:>3a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6>2R|{289V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5<5>n5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}909W{~956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8285k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<6<\vq4f3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSua}<1<1e>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vrd~1?12`9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{692?o4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\|jt;;78j7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8185i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=7=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc29>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7;39W{~:j6[?/fpe*w`(oe:%{!xpovq+firf}6;2f:W3+bta&{l$ka>!ws-ttkru'je~by2=>0d8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{<2<2b>S7'nxm"h gm2-sw)pxg~y#naznu>7:4`<]9%l~k }f.eo4+qu'~zex!lotlw8086n2_;#j|i.sd,ci6){%||cz}/bmvjq:168l0Y=!hrg,qb*ak8'}y#z~ats-`kphs4>4:j6[?/fpe*w`(oe:%{!xpovq+firf}632e:W3+bta&{l$ka>!ws-ttkru'je~byQ=1d9V4*aun'xm#jb?.vp,suhsz&idyczP30g8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_53f?P6(o{l%~k!hl1,tv*qwf}x$ob{at^72a>S7'nxm"h gm2-sw)pxg~y#naznu]55`=R8&myj#|i/fn3*rt(yd~"m`uov\34c<]9%l~k }f.eo4+qu'~zex!lotlw[=453\:$kh!rg-dh5(pz&}{by| cnwmpZb64949>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=1?1239V4*aun'xm#jb?.vp,suhsz&idyczPd0>1:74<]9%l~k }f.eo4+qu'~zex!lotlw[a7;;7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:090=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=7=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:16;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7;3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><9<15>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z6592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V;9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo=R<=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^115>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z2592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V?9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo=R8=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^515>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z>5:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5:5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?2>>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?6;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54:49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>1:1239V4*aun'xm#jb?.vp,suhsz&idyczPd3>6:74<]9%l~k }f.eo4+qu'~zex!lotlw[a4;>7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn90:0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk2=:=64=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y7:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U:><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?Q=209V4*aun'xm#jb?.vp,suhsz&idyczPd3]064=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y3:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U>><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?Q9209V4*aun'xm#jb?.vp,suhsz&idyczPd3]464=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y?:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl:6;2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=31?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f08785:2_;#j|i.sd,ci6){%||cz}/bmvjqYc;595>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>2;>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1?1;453\:$kh!rg-dh5(pz&}{by| cnwmpZb44?49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo?191239V4*aun'xm#jb?.vp,suhsz&idyczPd2>;:77<]9%l~k }f.eo4+qu'~zex!lotlw[a5X8;;0Y=!hrg,qb*ak8'}y#z~ats-`kphsWm9T=??4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=P2338Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1\777<]9%l~k }f.eo4+qu'~zex!lotlw[a5X<;;0Y=!hrg,qb*ak8'}y#z~ats-`kphsWm9T9??4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=P6338Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1\377<]9%l~k }f.eo4+qu'~zex!lotlw[a5X0;>0Y=!hrg,qb*ak8'}y#z~ats-`kphsWge<=>>169V4*aun'xm#`kb/emvpZo;87;37X> gsd-vc)jmd%ocxzPi=33:4><]9%l~k }f.ofi*bh}}Ub027;7?3\:$kh!rg-nah)cg|~Te1?;>0:8Q5)`zo$yj"cjm.flqqYn48?5=55Z0.eqb+ta'dof#iazt^k?538602_;#j|i.sd,i`k(lfSd2>7?3;?P6(o{l%~k!bel-gkprXa5;32<64U1-dvc(un&gna"j`uu]j84?99>1^<"i}f/pe+hcj'me~xRg31?3;?P6(o{l%~k!bel-gkprXa58;2<64U1-dvc(un&gna"j`uu]j8779911^<"i}f/pe+hcj'me~xRg323<2<>S7'nxm"h mdo,`jssW`69?3?7;T2,cw`)zo%fi`!kotv\m9436820Y=!hrg,qb*kbe&ndyyQf<37=5==R8&myj#|i/lgn+air|Vc7>;0>8:W3+bta&{l$ahc dnww[l:5?7;37X> gsd-vc)jmd%ocxzPi=0;:4><]9%l~k }f.ofi*bh}}Ub0?71169V4*aun'xm#`kb/emvpZo;:7;37X> gsd-vc)jmd%ocxzPi=13:4><]9%l~k }f.ofi*bh}}Ub0>?1199V4*aun'xm#`kb/emvpZo;;;4:46[?/fpe*w`(elg$hb{{_h>07;7?3\:$kh!rg-nah)cg|~Te1=;>0:8Q5)`zo$yj"cjm.flqqYn4:?5=:5Z0.eqb+ta'dof#iazt^k?7;703\:$kh!rg-nah)cg|~Te1:1169V4*aun'xm#`kb/emvpZo;=7;<7X> gsd-vc)jmd%ocxzPi=4=52=R8&myj#|i/lgn+air|Vc7;3?8;T2,cw`)zo%fi`!kotv\m9>99>1^<"i}f/pe+hcj'me~xRg39?35?P6(o{l%~k!bel-gkprXaV:::6[?/fpe*w`(elg$hb{{_h]252=R8&myj#|i/lgn+air|VcT==?8;T2,cw`)zo%fi`!kotv\mZ769>1^<"i}f/pe+hcj'me~xRgP1334?P6(o{l%~k!bel-gkprXaV;8=:5Z0.eqb+ta'dof#iazt^k\51703\:$kh!rg-nah)cg|~TeR?:169V4*aun'xm#`kb/emvpZoX9?;<7X> gsd-vc)jmd%ocxzPi^3452=R8&myj#|i/lgn+air|VcT=5?8;T2,cw`)zo%fi`!kotv\mZ7>9?1^<"i}f/pe+hcj'me~xRgP2058Q5)`zo$yj"cjm.flqqYnW;::;6[?/fpe*w`(elg$hb{{_h]1541<]9%l~k }f.ofi*bh}}UbS?<>7:W3+bta&{l$ahc dnww[lY5;8=0Y=!hrg,qb*kbe&ndyyQf_3623>S7'nxm"h mdo,`jssW`U99<94U1-dvc(un&gna"j`uu]j[706?2_;#j|i.sd,i`k(lfSdQ=7058Q5)`zo$yj"cjm.flqqYnW;2:;6[?/fpe*w`(elg$hb{{_h]1=40<]9%l~k }f.ofi*bh}}UbS>?8;T2,cw`)zo%fi`!kotv\mZ579>1^<"i}f/pe+hcj'me~xRgP3034?P6(o{l%~k!bel-gkprXaV99=:5Z0.eqb+ta'dof#iazt^k\76703\:$kh!rg-nah)cg|~TeR=;169V4*aun'xm#`kb/emvpZoX;<;=7X> gsd-vc)jmd%ocxzPi^622>S7'nxm"h mdo,`jssW`U>=;5Z0.eqb+ta'dof#iazt^k\240<]9%l~k }f.ofi*bh}}UbS:?9;T2,cw`)zo%fi`!kotv\mZ>6>2_;#j|i.sd,i`k(lfSdQ6189V4*aun'xm#`kb/emvpZkbe5:5=l5Z0.eqb+ta'dof#iazt^ofi97768k0Y=!hrg,qb*kbe&ndyyQbel>25;7f3\:$kh!rg-nah)cg|~Tahc313<2e>S7'nxm"h mdo,`jssWdof0<=11`9V4*aun'xm#`kb/emvpZkbe5;?2 gsd-vc)jmd%ocxzPmdo?5386i2_;#j|i.sd,i`k(lfS`kb<05=5d=R8&myj#|i/lgn+air|Vgna1?7>0c8Q5)`zo$yj"cjm.flqqYjmd6:53?6;T2,cw`)zo%fi`!kotv\i`k;97;j7X> gsd-vc)jmd%ocxzPmdo?6586i2_;#j|i.sd,i`k(lfS`kb<33=5d=R8&myj#|i/lgn+air|Vgna1<=>0c8Q5)`zo$yj"cjm.flqqYjmd69?3?n;T2,cw`)zo%fi`!kotv\i`k;:=4:m6[?/fpe*w`(elg$hb{{_lgn87399h1^<"i}f/pe+hcj'me~xRcjm=05:4g<]9%l~k }f.ofi*bh}}Ufi`2=7?3b?P6(o{l%~k!bel-gkprXelg7>50>a:W3+bta&{l$ahc dnww[hcj4;35=45Z0.eqb+ta'dof#iazt^ofi9499h1^<"i}f/pe+hcj'me~xRcjm=13:4g<]9%l~k }f.ofi*bh}}Ufi`2<1?3b?P6(o{l%~k!bel-gkprXelg7??0>a:W3+bta&{l$ahc dnww[hcj4:95=l5Z0.eqb+ta'dof#iazt^ofi95368k0Y=!hrg,qb*kbe&ndyyQbel>01;7>3\:$kh!rg-nah)cg|~Tahc33?3:?P6(o{l%~k!bel-gkprXelg783?6;T2,cw`)zo%fi`!kotv\i`k;=7;27X> gsd-vc)jmd%ocxzPmdo?2;7>3\:$kh!rg-nah)cg|~Tahc37?3:?P6(o{l%~k!bel-gkprXelg743?6;T2,cw`)zo%fi`!kotv\i`k;17=?7X> gsd-vc)jmd%ln` hble-cgk`i'dlinm!ble,fimXelgTkh`jr`vlv*pfd`n%o~z}/scnhjiwS9W%~lc!r.q0[kinf`~%~lc dqpbi+bw;?r8:#|nm0`8Q5)`zo$yj"cjm.vntZtfeVxoSh`>c:W3+bta&{l$ahc tlr\vdkXzmUnbe:W3+bta&{l$~~zmlj-q`Ztt|Vxnk1<11e9V4*aun'xm#}{bmi,vaYu{}UyijQ?1e9V4*aun'xm#}{bmi,vaYu{}UyijQ>1e9V4*aun'xm#}{bmi,vaYu{}UyijQ=169V4*aun'xm#}{bmi,vvrXl8;<7X> gsd-vc)u{}hgg"||t^f152=R8&myj#|i/sqwfim(zz~Th>?k;T2,cw`)zo%yylck.uq[wusWhyyijS7'nxm"h rrvahn)pzVxxxRm`mc32a>S7'nxm"h rrvahn)pzVxxxR|jg=2=5`=R8&myj#|i/sqwfim({UyyQ}ef>2:4b<]9%l~k }f.pppgjl'~xT~~zPrde\44b<]9%l~k }f.pppgjl'~xT~~zPrde\5d=R[LXTMAGNSb9VW@TX^@YBNAK<;WA@=>PNM^U_U]K<;VGB7>QBJj1\^DZJ_LMGAZGd3^XBXHQBOEG\Fa=PZ@^NSZGKTI]B`>QUA]OT[DJ[H^@2`>^ND@DS!UJM 1,2$VRRJ):%=-O\CHK6?]IUKP<0T^ZCIC58\VRXOGN<7U][_WA@f>^XKFXNSD@IO79[`gYNlo1SheQ_rhoUawungg;;7Ujb_LcikwPbzzcdb<>4Xeo\Ilhhz_oydaac:coijusWlg{xtl4amolwqYa}ef=7oolktrg?ggdc|zTal|des18gimc3mkmRm`uov+4,bbf|hUhcx`{(2+g?agsiVidycz'4(f8`drfWje~by&:)e9geqgXkfex%8&d:fbpdYdg|d$:'k;ecweZeh}g~#4$h4d`vb[firf}636=08;e`jp`tu>2nbb%>&6:fjj-7.?2nbb%??)69gmk.69 =0hd`'13+4?aoi 89";6jfn)37-2=cag":9$94dhl+53/03mce$<9&7:fjj-7?!>1oec&>9(48`lh/: =0hd`'21+4?aoi ;;";6jfn)01-2=cag"9?$94dhl+61/03mce$?;&7:fjj-41!>1oec&=7(58`lh/:1#<7iga(3;*2>bnf!9";6jfn)13-2=cag"8=$94dhl+77/03mce$>=&7:fjj-53!>1oec&<5(48`lh/< <0hd`'5(48`lh/> <0hd`'7(48`lh/0 <0hd`'9(48`lh;87=0hd`311<4?aoi48;5;6jfn=31:2=cag6:?394dhl?51803mce0<;17:fjj9716>1oec2>7?58`lh;914<7iga<0;=2>bnf5;5;6jfn=03:2=cag69=394dhl?67803mce0?=17:fjj9436>1oec2=5?58`lh;:?4<7iga<35=3>bnf5832:5kio>1=;0394dhl?75803mce0>?17:fjj9556>1oec2<3?58`lh;;=427iga<2794;1&7:flqq.6!11ocxz'11+;?air|!;:%55kotv+57/?3me~x%?<)99gkpr/9=#37iazt)36-==cg|~#=;'7;emvp-70!11ocxz'19+;?air|!;2%:5kotv+6,>&8:flqq.59 20hb{{(30*<>bh}}"9?$64dnww,72.02ndyy&=5(:8`jss ;<"46j`uu*13,> =0hb{{(6+4?air|!2";6j`uu*:-2=cg|~7<364dnww846902ndyy2>1?:8`jss488546j`uu>27;>bh}}6:;364dnww84>902ndyy2>9?58`jss48437iazt=03:==cg|~7><07;emvp945611ocxz322<;?air|58?255kotv?608?3me~x1<9>99gkpr;:>437iazt=0;:==cg|~7>408;emvp94902ndyy2<0?:8`jss4:;546j`uu>06;>=18:flqq:4<7k0hb{{<2794;>;17:flqq:46>1ocxz34?58`jss4<4<7iazt=4=3>bh}}6<2:5kotv?<;1V;'wnQgar]jjqYddb7; nQgar]pvvr:8%iT~iQirds>5)eXmgki`hQ}su]p}ke:9%iTdl}Pre]geqgXkfex0>#c^fjjZqnl}b6?;"l_icp[rtXlh~jSnaznu?3(fYa}efTjaohs^pppZpfd4;'oRgbpmgnakrf|`eeSywe<0/gZstmVofnhjkee]qab;7$jU|~Rh}ep?2(fYr{lUocxzPrrv>5)eX}gnn~kb`w^nls86+kVbjRayesdokr;7$jU{~hb`ae]oeqcikp7; nQkotv\slbs`49= nQbsfmm[sgk58&hSjPddrwl836:%iTi|`r^kmn`esafdTxt~j=1.`[mgtW|doihcov?3(fYoizUj``a|t^dvhi;6$jUcm~Q}su?2(fYci}kTob{at^uj`qn:1%iTdl}Pws]bgn;7$jU~hQjcb?3(fYdgdgdbRmcobi>4)eX{UjofQcov?3(fYulVzexQxievk9<*dW|ynSkyit^fbpdYdg|d1="l_icp[djjgz~Ti`~{y<2/gZtcWmkmRm`uov\slbs`43'oRayesdokrYkg~7; nQxr^rmpwYpam~c14"l_qplcZcjx}sTxt~j=1.`[rtXlh~jSnaznu]tmaro50&hS}|jlncg[wc`{4;'oRj`uu]qwqYqie7; nQgar]geqgXkfex0>#c^rqkbYa}efTxe|jsi]mabgsmV|j`0:69-a\swYcmy~c18?=,b]svjaXmdzuRzgrdqk[kc`i}oTzlb25-a\twi`Wlg{xtQ{hsgplZgt{lxS{oc=5.`[mgtWkgei3?,b]svjaXn|fgSyf}erj\evubz}U}ma3:01.`khvhfldScobe#c^rqmhYaaoeTxt~j=431|60+kVzycjQiumn\p|vb58&hS`kbos{\p|vb58&v?45iigm\|ihW<;9t>8P2bnh[uthoVl~`aQiigm\c`hbzh~d~Rx9_0]{wqY6<2l~`aj4iohfgqbea}oy~i5fnkg`pvdn|lxy;6gat^aoo==iojh~eaj7;ntfvcjhh1{~biPelrw}42vugnUna}zv_ujqavn/: ;?7}|`g^gntqX|axne&<)068twi`Wlg{xtQ{hsgpl-2.9=1{~biPelrw}Zrozlyc$8'>4:rqkbYbey~rSyf}erj+2,733yxdkRkbpu{\pmtb{a"<%<:4psmd[`kw|pUdk|h):*53=wzfmTi`~{y^vkv`uo410;2vugnUna}zv_ujqavnXizyn~y&:)0`8twi`Wlg{xtQ{hsgplZgt{lx$;'>b:rqkbYbey~rSyf}erj\evubz}"<%vugnUna}zv_ujqavnXflmjxh&;)0`8twi`Wlg{xtQ{hsgplZhboh~n$8'>b:rqkbYbey~rSyf}erj\j`af|l"=%#:n6~}of]fiur~W}byi~fPndebp`.?!8n0|ah_dosp|Ys`{oxdR`jg`vf8=<7601{~biPftno56=wzfmTjxbc_ujqavn/8 ;87}|`g^dvhiYs`{oxd%?&129svjaXn|fgSyf}erj+6,743yxdkRhzlm]wlwct`!9"=>5rne\bpjkW}byi~f'4(30?uthoVl~`aQ{hsgpl-3.9:1{~biPftno[qnumzb#:$?<;qplcZ`rdeUdk|h)5*56=wzfmTjxbc_ujqavn/0 ;>7}|`g^dvhiYs`{oxd1650?3b?uthoVl~`aQ{hsgplZgt{lx$='>a:rqkbYa}efTxe|jsi]bwvcu|!;"=l5rne\bpjkW}byi~fParqfvq.5!8k0|ah_gwohZrozlycSl}|esv+7,7f3yxdkRhzlm]wlwct`Vkxh|{(5+2e>vugnUmyabPtipfwmYf{zoyx%;&1`9svjaXn|fgSyf}erj\evubz}"=%vugnUmyabPtipfwmYimnki%?&1`9svjaXn|fgSyf}erj\j`af|l"9%=87<0~iQllj33?wbXlh~jSnaznu*3-464re]geqgXkfex1>1139q`Zbf|hUhcx`{<983:0=ulVoe:6|k_sqw7>tt|>1xndzjrs68wwus:k1a}!Pcf-emciXpedsS8?=x24\6fjlWyxdkRhzlm,mcj2<|{n56{addpehjq23kgei84ws]bgn0<{Uh`f??;vp\`drfWje~by&?)028swYci}kTob{at)3*55=pzVnjxlQlotlw,7/682}ySio{a^alqkr/; ;;7z|Pd`vb[firf}"?%<>4ws]geqgXkfex%;&119tvZbf|hUhcx`{(7+24>quWmkmRm`uov+3,773~xThlzn_bmvjq.?!880{Qkauc\gjsi|521<3;4ws]fj3=pzVxxxpNOpbd2?EF=021J7:51zQ7b?34k3<1=>mrd?554>;o6:=?0<,=3=697?;|Q7`?34k3<1=>m2Y:8i4:4683>455j>l<6?o=9d9P0a<2<>0;6<==b6d4>7g51o1o9>h50;395~U3n3?8o785120a3c1=:h82i6x[1cf94?7=93;h8v];f;70g?0=9:8i;k952`0:a>"3000:8h5Y48596~s6=>0:7x?:8;28y!7e93l0n8=i:1865?5==8qC8594Z5796~c=l3w/=n<552d8 1?22<9n7d;63;29?j2>j3:17b;98;29?l3f03:17b;;3;29?j34l3:17d;6d;29?l3>=3:17b;>0;29 4d42<987c?m2;28?j37n3:1(3:1(i3nm0;6)?m3;707>h6j;0:=65`4ga94?"6j:0>?>5a1c0957=5:9l0c>=83.:n>4:329m5g4=9?10c9h8:18'5g5==:90b3:1(!7e;3?8?6`>b382=>=h=8<1<7*>b28676=i9k81=l54o436>5<#9k919>=4n0`1>4d<3f?:87>5$0`0>0543g;i>7?l;:m656<72-;i?7;<3:l2f7<6l21d9<<50;&2f6<2;:1e=o<51d98k076290/=o=55218j4d528l07b;?a;29 4d42<987c?m2;03?>i3no0;6)?m3;707>h6j;09=65`4g694?"6j:0>?>5a1c0967=h:7>5$0`0>1cf3g;i>7?4;h6`1?6=,8h869kn;o3a6?4<3`>h87>5$0`0>1cf3g;i>7=4;h6`7?6=,8h869kn;o3a6?2<3`>h>7>5$0`0>1cf3g;i>7;4;h6`4?6=,8h869kn;o3a6?0<3`>ij7>5$0`0>1cf3g;i>794;h6aa?6=,8h869kn;o3a6?><3`>ih7>5$0`0>1cf3g;i>774;h6ag?6=,8h869kn;o3a6?g<3`>in7>5$0`0>1cf3g;i>7l4;h6ae?6=,8h869kn;o3a6?e<3`>i57>5$0`0>1cf3g;i>7j4;h6ai;7>5$0`0>1cf3g;i>7h4;h6a1?6=,8h869kn;o3a6?7732c?n94?:%3a7?2bi2d:n?4>1:9j0g5=83.:n>4;e`9m5g4=9;10e9l=:18'5g5=!7e;3>nm6`>b3821>=nb287ad=i9k81=;54i5cf>5<#9k918ho4n0`1>41<3`>jh7>5$0`0>1cf3g;i>7?7;:k7ef<72-;i?7:ja:l2f7<6121b8nj50;&2f6<3mh1e=o<51`98m1ed290/=o=54dc8j4d528h07d:lb;29 4d42=oj7c?m2;3`?>o3kh0;6)?m3;6fe>h6j;0:h65f4b;94?"6j:0?il5a1c095`=4;e`9m5g4=:;10e9on:18'5g5=5<6290;wE:77:&2g75;|`70?6=j:0:;;4>c5yK0=173=:009:7<8:3:9a?b=:h09n7<6:3`9a?4f2;>1h7<7:35963<5=3886p*>c38607=#<10>8=5+4d8604=#9hi1=lh4i47`>5<#9k9198j4n0`1>5=5<#9k9198j4n0`1>7=54i47;>5<#9k9198j4n0`1>1=5<#9k9198j4n0`1>3=6=4+1c1910b5<#9k9198j4n0`1>==>6=44i4;7>5<5<5<#9k9198=4n0`1>4=5<#9k9198=4n0`1>6=n6=4+1c191055<#9k9198=4n0`1>0=h6=4+1c191055<#9k9198=4n0`1>2=j6=4+1c191055<36=44i445>5<#9k919;94n0`1>5=6=4+1c191315<#9k919;94n0`1>7=54i441>5<#9k919;94n0`1>1=5<#9k919;94n0`1>3=5<#9k919;94n0`1>==5<#9k918l64n0`1>5=5<#9k918l64n0`1>7=54o5c0>5<#9k918l64n0`1>1=5<#9k918l64n0`1>3=5<#9k918l64n0`1>==5<5<#9k919:<4n0`1>4=5<#9k919:<4n0`1>6=5<#9k919:<4n0`1>0=5<#9k919:<4n0`1>2=5<5<5<#9k919:m4n0`1>5=5<#9k919:m4n0`1>7=54i454>5<#9k919:m4n0`1>1=5<#9k919:m4n0`1>3=5<#9k919:m4n0`1>==6=4+1c191=05<#9k919584n0`1>4=5<#9k919584n0`1>6=5<#9k919584n0`1>0=5<#9k919584n0`1>2=5<=6=44i5;f>5<5<5<5<#9k919>=4n0`1>4=5<#9k919>=4n0`1>6=5<#9k919>=4n0`1>0=5<#9k919>=4n0`1>2=5<#9k919>=4n0`1><=6=4+1c191655<#9k919>=4n0`1>g=5<#9k919>=4n0`1>a=5<#9k919>=4n0`1>c=4;n6e`?6=,8h868=<;o3a6?7632e?jn4?:%3a7?34;2d:n?4>2:9l0cd=83.:n>4:329m5g4=9:10c9hn:18'5g5==:90b76a;f983>!7e;3?8?6`>b3822>=hb28676=i9k81=:54o5d5>5<#9k919>=4n0`1>4><3f>m97>5$0`0>0543g;i>7?6;:m653<72-;i?7;<3:l2f7<6i21d9<;50;&2f6<2;:1e=o<51c98k073290/=o=55218j4d528i07b;>3;29 4d42<987c?m2;3g?>i29;0;6)?m3;707>h6j;0:i65`50394?"6j:0>?>5a1c095c=4;n6eb?6=,8h868=<;o3a6?4632e?j94?:%3a7?34;2d:n?4=2:9l0c5=83.:n>4:329m5g4=::10e9m8:18'5g5=10e9lj:18'5g5=290/=o=54dc8j4d52m10e9l7:18'5g5=!7e;3>nm6`>b3826>=nb287ad=i9k81=>54i5`2>5<#9k918ho4n0`1>42<3`>i<7>5$0`0>1cf3g;i>7?:;:k7ec<72-;i?7:ja:l2f7<6>21b8lk50;&2f6<3mh1e=o<51698m1gc290/=o=54dc8j4d528207d:nc;29 4d42=oj7c?m2;3:?>o3km0;6)?m3;6fe>h6j;0:m65f4ba94?"6j:0?il5a1c095g=e:9j0f>=83.:n>4;e`9m5g4=9o10e9m>:18'5g5=3:1(!7e;3>nm6`>b3816>=nb287ad=i9k81>>54i5;`>5<5<#9k9194<4n0`1>4=5<#9k9194<4n0`1>6=5<#9k9194<4n0`1>0=5<#9k9194<4n0`1>2=5<#9k919l94n0`1>5=6=4+1c191d15<#9k919l94n0`1>7=54o4c1>5<#9k919l94n0`1>1=5<#9k919l94n0`1>3=5<#9k919l94n0`1>==26=44i467>5<5<5<6290;w)?l2;da?M2>:2B?4:5`f`83>>{e<0>1<7?50;2x 4e52=237E:62:J7<2=h9k:1<75rb3ag>5<3290;w)?l2;d4?M2>:2B?4:5+11:91>o3>3:17d;?:188m4d32900c50z&2g75<54;294~"6k;0m;6F;939K0=1<@=80(<;::4;:?!7703?0e9850;9j15<722c:n94?::m2f0<722wi8:?50;194?6|,8i96k:4H5;1?M2??2B?>6*>5486=<=#9921=6g;6;29?l372900c50z&2g76876;%33>i6j<0;66sm46`94?2=83:p(3;6F;2:&210<2101/==655:k72?6=3`?;6=44i0`7>5<6=44}c644?6=;3:1c38e0>N31;1C8594H508 4322<327)??8;38m10=831b9=4?::m2f0<722wi8:j50;794?6|,8i96k64H5;1?M2??2B?>6*>5486=<=n0?>3-;;47?4i5494?=n=90;66a>b483>>{eN3:2.:984:989j03<722c?;7>5;h73>5<5<54;294~"6k;0m;6F;939K0=1<@=80(<;::4;:?!7703?0e9850;9j15<722c:n94?::m2f0<722wi8:750;694?6|,8i96k94H5;1?M2??2.:<54:;h65>5<5<3290;w)?l2;d4?M2>:2B?4:5+11:91>o3>3:17d;?:188m4d32900c50z&2g75;n3a1?6=3th?484?:583>5}#9j81j:5G4808L1>03-;;47;4i5494?=n=90;66g>b583>>i6j<0;66sm49694?2=83:p(3;6*>0986?l212900e8>50;9j5g2=831d=o;50;9~f4c3290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb0g2>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f4c7290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb0fg>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f4bd290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<=6=4;:183!7d:3l>7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?:::187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb367>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f724290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<96=4;:183!7d:3l>7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?:>:187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb363>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f75a290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?6j:187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb3:g>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f7>d290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?6n:187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb3::>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f7>?290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?69:187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb30`>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f74e290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?<6:187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb30;>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f740290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?<::187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb307>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f71d290?6=4?{%3`6?`23A>2>6F;869K07=#94=n50z&2g76876;%33>o283:17b?m5;29?xd5?h0;694?:1y'5f4=n<1C84<4H5:4?M253-;>97;69:&24=<63`>=6=44i5a94?=n=90;66a>b483>>{e:>31<7:50;2x 4e52o?0D97=;I6;3>N3:2.:984:989'55>=92c?:7>5;h6`>5<7E:62:J7<2=O<;1/=8;558;8 46?281b8;4?::k7g?6=3`?;6=44o0`6>5<54;294~"6k;0m96F;939K0=1<@=80(<;::4;:?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9;;4?:583>5}#9j81j85G4808L1>03A>97)?:5;7:=>"6810:7d:9:188m1e=831b9=4?::m2f0<722wi>:;50;694?6|,8i96k;4H5;1?M2??2B?>6*>5486=<=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?9;:187>5<7s-;h>7h:;I6:6>N30>1C8?5+14791>o3k3:17d;?:188k4d22900qo<>a;290?6=8r.:o?4i5:J7=7=O<1=0D9<4$076>0?>3-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7E:=;%361?3>12.:<54>;h65>5<>i6j<0;66sm20:94?2=83:p(3;6F;2:&210<2101/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb334>5<3290;w)?l2;d6?M2>:2B?4:5G439'503==030(<>7:09j03<722c?o7>5;h73>5<6=44}c022?6=<3:1c38e1>N31;1C8594H508 4322<327)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`150<72=0;6=u+1b09b0=O<080D968;I61?!72=3?256*>0982?l212900e9m50;9j15<722e:n84?::a642=83>1<7>t$0a1>c3<@=397E:77:J76>"6=<0>545+11:95>o3>3:17d:l:188m06=831d=o;50;9~f774290?6=4?{%3`6?`23A>2>6F;869K07=#94=n50z&2g76876;%33>o283:17b?m5;29?xd5810;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9<:4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`140<72=0;6=u+1b09b0=O<080D968;%33>o283:17b?m5;29?xd58=0;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9<>4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`144<72=0;6=u+1b09b0=O<080D968;%33>o283:17b?m5;29?xd5890;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9:l4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`12=<72=0;6=u+1b09b0=O<080D968;%33>o283:17b?m5;29?xd5>>0;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9:;4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`121<72=0;6=u+1b09b0=O<080D968;%33>o283:17b?m5;29?xd5>:0;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9:?4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n0<729q/=n<5f79K0<4<@=2<7)??8;38m10=831b8:4?::k7g?6=3`?;6=44o0`6>5<55;294~"6k;0m:6F;939K0=1<,8:36<5f4783>>o3?3:17d:l:188m06=831d=o;50;9~f665290>6=4?{%3`6?`13A>2>6F;869'55>=92c?:7>5;h64>5<>i6j<0;66sm31394?3=83:p(3;6*>0982?l212900e9950;9j0f<722c><7>5;n3a1?6=3th8<=4?:483>5}#9j81j;5G4808L1>03-;;47?4i5494?=n<>0;66g;c;29?l372900c50z&2g72B?5?5G4958 46?281b8;4?::k73?6=3`>h6=44i4294?=h9k?1<75rb3dg>5<2290;w)?l2;d5?M2>:2B?4:5+11:95>o3>3:17d:8:188m1e=831b9=4?::m2f0<722wi>km50;794?6|,8i96k64H5;1?M2??2.:<54:;h65>5<>o6j=0;66a>b483>>{e:oo1<7;50;2x 4e52o<0D97=;I6;3>"6810:7d:9:188m11=831b8n4?::k64?6=3f;i97>5;|`1b4<72:0;6=u+1b090<7<@=397E:77:k7=?6=3`;?n7>5;n3ba?6=3th9j=4?:283>5}#9j8184?4H5;1?M2??2c?57>5;h37f?6=3f;ji7>5;|`1a2<72=0;6=u+1b09500<@=397E:77:k7=?6=3`?96=44i0`a>5<c387=4=O<080D968;h6:>5<i6=44o0cf>5<54;294~"6k;0:9;5G4808L1>03`>26=44i4094?=n9kh1<75`1`g94?=zj;on6=4<:183!7d:3>2=6F;939K0=15<3290;w)?l2;362>N31;1C8594i5;94?=n=;0;66g>bc83>>i6il0;66sm2df94?5=83:p(:2B?4:5f4883>>o6ad83>>{e:l;1<7:50;2x 4e528?=7E:62:J7<2=n<00;66g:2;29?l7ej3:17b?ne;29?xd5mj0;6>4?:1y'5f4=<0;0D97=;I6;3>o313:17d?;b;29?j7fm3:17pl=dg83>1<729q/=n<51448L1?53A>3;6g;9;29?l352900e50z&2g7<6=?1C84<4H5:4?l2>2900e8<50;9j5gd=831d=lk50;9~f7cf29086=4?{%3`6?2>92B?5?5G4958m1?=831b=9l50;9l5dc=831vn?jm:187>5<7s-;h>7?:6:J7=7=O<1=0e9750;9j17<722c:no4?::m2e`<722wi>h750;194?6|,8i9697>;I6:6>N30>1b844?::k20g<722e:mh4?::a6a?=83>1<7>t$0a1>4313A>2>6F;869j0<<722c>>7>5;h3af?6=3f;ji7>5;|`053<72<0;6=u+1b09b3=O<080D968;%33>o3k3:17d;?:188k4d22900qo=>5;291?6=8r.:o?4i6:J7=7=O<1=0(<>7:09j03<722c?;7>5;h6`>5<t$0a1>c0<@=397E:77:&24=<63`>=6=44i5594?=n0<729q/=n<5f79K0<4<@=2<7)??8;38m10=831b8:4?::k7g?6=3`?;6=44o0`6>5<55;294~"6k;0m:6F;939K0=1<,8:36<5f4783>>o3?3:17d:l:188m06=831d=o;50;9~f677290>6=4?{%3`6?`13A>2>6F;869'55>=92c?:7>5;h64>5<>i6j<0;66sm31d94?3=83:p(3;6*>0982?l212900e9950;9j0f<722c><7>5;n3a1?6=3th85}#9j81j;5G4808L1>03-;;47?4i5494?=n<>0;66g;c;29?l372900c50z&2g75;n3a1?6=3th9m?4?:583>5}#9j81j:5G4808L1>03-;;47;4i5494?=n=90;66g>b583>>i6j<0;66sm28a94?2=83:p(3;6*>0982?l212900e9m50;9j15<722e:n84?::a61<7>t$0a1>c3<@=397E:77:&24=<63`>=6=44i5a94?=n=90;66a>b483>>{e;::1<7=50;2x 4e52=3:7E:62:J7<2=n<00;66g>4c83>>i6il0;66sm33d94?5=83:p(:2B?4:5f4883>>o6ad83>>{e;;:1<7:50;2x 4e528?=7E:62:J7<2=n<00;66g:2;29?l7ej3:17b?ne;29?xd4:l0;6>4?:1y'5f4=<0;0D97=;I6;3>o313:17d?;b;29?j7fm3:17pl<1g83>1<729q/=n<51448L1?53A>3;6g;9;29?l352900e50z&2g7<6=?1C84<4H5:4?l2>2900e8<50;9j5gd=831d=lk50;9~f64d29086=4?{%3`6?2>92B?5?5G4958m1?=831b=9l50;9l5dc=831vn>?k:187>5<7s-;h>7?:6:J7=7=O<1=0e9750;9j17<722c:no4?::m2e`<722wi??l50;194?6|,8i9697>;I6:6>N30>1b844?::k20g<722e:mh4?::a74e=83>1<7>t$0a1>4313A>2>6F;869j0<<722c>>7>5;h3af?6=3f;ji7>5;|`06d<72:0;6=u+1b090<7<@=397E:77:k7=?6=3`;?n7>5;n3ba?6=3th8=o4?:583>5}#9j81=884H5;1?M2??2c?57>5;h71>5<5<54;294~"6k;0:9;5G4808L1>03`>26=44i4094?=n9kh1<75`1`g94?=zj:;26=4;:183!7d:3;>:6F;939K0=1>o6jk0;66a>ad83>>{e;821<7:50;2x 4e528?=7E:62:J7<2=n<00;66g:2;29?l7ej3:17b?ne;29?xd4;l0;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th8?i4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`07g<72=0;6=u+1b09b0=O<080D968;%33>o283:17b?m5;29?xd4;h0;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th8?44?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`003<72<0;6=u+1b09b==O<080D968;%33>o283:17d?m4;29?j7e=3:17pl=c183>1<729q/=n<51448L1?53A>3;6g;9;29?l352900e579K0<4<@=2<7d:6:188m04=831b=ol50;9l5dc=831vn?lj:187>5<7s-;h>7?:6:J7=7=O<1=0e9750;9j17<722c:no4?::m2e`<722wi>oj50;694?6|,8i96<;9;I6:6>N30>1b844?::k66?6=3`;in7>5;n3ba?6=3th9nn4?:583>5}#9j81=884H5;1?M2??2c?57>5;h71>5<5<54;294~"6k;0:9;5G4808L1>03`>26=44i4094?=n9kh1<75`1`g94?=zj;kh6=4;:183!7d:3;>:6F;939K0=1>o6jk0;66a>ad83>>{e:hh1<7:50;2x 4e528?=7E:62:J7<2=n<00;66g:2;29?l7ej3:17b?ne;29?xd5ih0;694?:1y'5f4=9<<0D97=;I6;3>o313:17d;=:188m4de2900c50z&2g7<6=?1C84<4H5:4?l2>2900e8<50;9j5gd=831d=lk50;9~f6b5290>6=4?{%3`6?`13A>2>6F;869'55>=92c?:7>5;h64>5<>i6j<0;66sm3e294?3=83:p(3;6*>0982?l212900e9950;9j0f<722c><7>5;n3a1?6=3th8h<4?:483>5}#9j81j55G4808L1>03-;;47;4i5494?=n<>0;66g:0;29?l7e<3:17b?m5;29?xd4l:0;684?:1y'5f4=n?1C84<4H5:4?!7703;0e9850;9j02<722c?o7>5;h73>5<6=44}c1g0?6==3:1c38e2>N31;1C8594$02;>4=n50;9l5g3=831vn>j::186>5<7s-;h>7h9;I6:6>N30>1/==651:k72?6=3`><6=44i5a94?=n=90;66a>b483>>{e;m<1<7;50;2x 4e52o<0D97=;I6;3>"6810:7d:9:188m11=831b8n4?::k64?6=3f;i97>5;|`0`2<72<0;6=u+1b09b3=O<080D968;%33>o3k3:17d;?:188k4d22900qo=k8;291?6=8r.:o?4i6:J7=7=O<1=0(<>7:09j03<722c?;7>5;h6`>5<t$0a1>c><@=397E:77:&24=<23`>=6=44i5594?=n=90;66g>b583>>i6j<0;66sm3d194?3=83:p(3;6*>0982?l212900e9950;9j0f<722c><7>5;n3a1?6=3th8i84?:483>5}#9j81j;5G4808L1>03-;;47?4i5494?=n<>0;66g;c;29?l372900c3:197>50z&2g72B?5?5G4958 46?281b8;4?::k73?6=3`>h6=44i4294?=h9k?1<75rb2g4>5<2290;w)?l2;d5?M2>:2B?4:5+11:95>o3>3:17d:8:188m1e=831b9=4?::m2f0<722wi?h650;794?6|,8i96k84H5;1?M2??2.:<54>;h65>5<>o283:17b?m5;29?xd4m00;684?:1y'5f4=n?1C84<4H5:4?!7703;0e9850;9j02<722c?o7>5;h73>5<6=44}c1fe?6==3:1c38e2>N31;1C8594$02;>4=n50;9l5g3=831vn>m9:186>5<7s-;h>7h9;I6:6>N30>1/==651:k72?6=3`><6=44i5a94?=n=90;66a>b483>>{e;j?1<7;50;2x 4e52o<0D97=;I6;3>"6810:7d:9:188m11=831b8n4?::k64?6=3f;i97>5;|`0g6<72<0;6=u+1b09b3=O<080D968;%33>o3k3:17d;?:188k4d22900qo=l2;291?6=8r.:o?4i6:J7=7=O<1=0(<>7:09j03<722c?;7>5;h6`>5<t$0a1>c0<@=397E:77:&24=<63`>=6=44i5594?=n0<729q/=n<5f99K0<4<@=2<7)??8;78m10=831b8:4?::k64?6=3`;i87>5;n3a1?6=3th8o<4?:483>5}#9j81j;5G4808L1>03-;;47?4i5494?=n<>0;66g;c;29?l372900c50z&2g75<6=44}c1a7?6=;3:1c387=4=O<080D968;h6:>5<i6=44o0cf>5<7>53;294~"6k;0?5<5G4808L1>03`>26=44i06a>5<c38213=O<080D968;h6:>5<5<4290;w)?l2;6:5>N31;1C8594i5;94?=n9=h1<75`1`g94?=zj:k<6=4;:183!7d:3;>:6F;939K0=1>o6jk0;66a>ad83>>{e;k:1<7=50;2x 4e52=3:7E:62:J7<2=n<00;66g>4c83>>i6il0;66sm3`794?2=83:p(:2B?4:5f4883>>o2:3:17d?mb;29?j7fm3:17pl6<729q/=n<54838L1?53A>3;6g;9;29?l73j3:17b?ne;29?xd4i:0;694?:1y'5f4=9<<0D97=;I6;3>o313:17d;=:188m4de2900c50z&2g7<3181C84<4H5:4?l2>2900e<:m:188k4gb2900qo=n1;290?6=8r.:o?4>579K0<4<@=2<7d:6:188m04=831b=ol50;9l5dc=831vn>ok:180>5<7s-;h>7:61:J7=7=O<1=0e9750;9j51d=831d=lk50;9~f6?a290?6=4?{%3`6?72>2B?5?5G4958m1?=831b9?4?::k2fg<722e:mh4?::a7de=8391<7>t$0a1>1?63A>2>6F;869j0<<722c:8o4?::m2e`<722wi?4j50;694?6|,8i96<;9;I6:6>N30>1b844?::k66?6=3`;in7>5;n3ba?6=3th8mo4?:283>5}#9j8184?4H5;1?M2??2c?57>5;h37f?6=3f;ji7>5;|`0=g<72=0;6=u+1b09500<@=397E:77:k7=?6=3`?96=44i0`a>5<c38e2>N31;1C8594$02;>4=n50;9l5g3=831vn>hm:186>5<7s-;h>7h9;I6:6>N30>1/==651:k72?6=3`><6=44i5a94?=n=90;66a>b483>>{e;ok1<7;50;2x 4e52o<0D97=;I6;3>"6810:7d:9:188m11=831b8n4?::k64?6=3f;i97>5;|`0b<<72<0;6=u+1b09b3=O<080D968;%33>o3k3:17d;?:188k4d22900qo=i8;291?6=8r.:o?4i6:J7=7=O<1=0(<>7:09j03<722c?;7>5;h6`>5<t$0a1>c0<@=397E:77:&24=<63`>=6=44i5594?=n0<729q/=n<5f79K0<4<@=2<7)??8;38m10=831b8:4?::k7g?6=3`?;6=44o0`6>5<55;294~"6k;0m:6F;939K0=1<,8:36<5f4783>>o3?3:17d:l:188m06=831d=o;50;9~f637290?6=4?{%3`6?72>2B?5?5G4958m1?=831b9?4?::k2fg<722e:mh4?::a707=83>1<7>t$0a1>4313A>2>6F;869j0<<722c>>7>5;h3af?6=3f;ji7>5;|`017<72=0;6=u+1b09500<@=397E:77:k7=?6=3`?96=44i0`a>5<c38213=O<080D968;h6:>5<5<3290;w)?l2;362>N31;1C8594i5;94?=n=;0;66g>bc83>>i6il0;66sm37194?2=83:p(:2B?4:5f4883>>o2:3:17d?mb;29?j7fm3:17pl<6583>1<729q/=n<51448L1?53A>3;6g;9;29?l352900e579K0<4<@=2<7d:6:188m04=831b=ol50;9l5dc=831vn>89:187>5<7s-;h>7?:6:J7=7=O<1=0e9750;9j17<722c:no4?::m2e`<722wi?;950;694?6|,8i96<;9;I6:6>N30>1b844?::k66?6=3`;in7>5;n3ba?6=3th8;44?:583>5}#9j81=884H5;1?M2??2c?57>5;h71>5<5<54;294~"6k;0:9;5G4808L1>03`>26=44i4094?=n9kh1<75`1`g94?=zj:=i6=4;:183!7d:3;>:6F;939K0=1>o6jk0;66a>ad83>>{e;>i1<7:50;2x 4e528?=7E:62:J7<2=n<00;66g:2;29?l7ej3:17b?ne;29?xd4?m0;694?:1y'5f4=9<<0D97=;I6;3>o313:17d;=:188m4de2900c50z&2g75;n3a1?6=3th84i4?:583>5}#9j81j:5G4808L1>03-;;47;4i5494?=n=90;66g>b583>>i6j<0;66sm39:94?3=83:p(3;6*>0986?l212900e9950;9j15<722c:n94?::m2f0<722wi8>h50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<:o1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a06b=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm42a94?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8>l50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<:k1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a06>=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm42594?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8>850;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<:?1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a062=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm42194?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8><50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<:;1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a066=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm43d94?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8?j50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<;i1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a07d=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm43c94?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8?750;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<;21<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a071=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm43494?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8?;50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<;>1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a013=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm45694?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi89=50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<=81<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a017=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm45294?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8>750;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<;o1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a075=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm43094?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi85?50;194?6|,8i96<;?;I6:6>N30>1/==65119jbf<722cmh7>5;n3ba?6=3th?;>4?:283>5}#9j81=8>4H5;1?M2??2.:<54>0:keg?6=3`lo6=44o0cf>5<53;294~"6k;0:9=5G4808L1>03-;;47?8;hd`>5<<6F;939K0=1<,8:36<94iga94?=nnm0;66a>ad83>>{e9m81<7=50;2x 4e528?;7E:62:J7<2=#9921=:5ffb83>>oal3:17b?ne;29?xd6l80;6>4?:1y'5f4=9<:0D97=;I6;3>"6810:;6gic;29?l`c2900c50z&2g7<6=91C84<4H5:4?!7703;<7dhl:188mcb=831d=lk50;9~f4ea29086=4?{%3`6?7282B?5?5G4958 46?28=0ekm50;9jba<722e:mh4?::a5fc=8391<7>t$0a1>4373A>2>6F;869'55>=9>1bjn4?::ke`?6=3f;ji7>5;|`2ga<72:0;6=u+1b09506<@=397E:77:&24=<6?2cmo7>5;hdg>5<c38215=O<080D968;%335<4290;w)?l2;364>N31;1C8594$02;>41>i6il0;66sm1bc94?5=83:p(:2B?4:5+11:952=nnj0;66gid;29?j7fm3:17pl>c883>6<729q/=n<51428L1?53A>3;6*>09823>oak3:17dhk:188k4gb2900qo?l8;297?6=8r.:o?4>519K0<4<@=2<7)??8;34?l`d2900ekj50;9l5dc=831vn5<7s-;h>7?:0:J7=7=O<1=0(<>7:058mce=831bji4?::m2e`<722wi=n850;194?6|,8i96<;?;I6:6>N30>1/==65169jbf<722cmh7>5;n3ba?6=3th:o84?:283>5}#9j81=8>4H5;1?M2??2.:<54>7:keg?6=3`lo6=44o0cf>5<53;294~"6k;0:9=5G4808L1>03-;;47?8;hd`>5<<6F;939K0=1<,8:36<94iga94?=nnm0;66a>ad83>>{e:h:1<7:50;2x 4e528?:7E:62:J7<2=#9921j<5ffb83>>oal3:17dhj:188k4gb2900qo<;a;290?6=8r.:o?4>509K0<4<@=2<7)??8;3e?l`d2900ekj50;9jb`<722e:mh4?::a5`>=83>1<7>t$0a1>4363A>2>6F;869'55>=9o1bjn4?::ke`?6=3`ln6=44o0cf>5<55;294~"6k;0:9?5G4808L1>03-;;47?>;hd`>5<>oan3:17b?ne;29?xd5"6810:56gic;29?l`c2900ekk50;9jbc<722e:mh4?::a5`g=83?1<7>t$0a1>4353A>2>6F;869'55>=901bjn4?::ke`?6=3`ln6=44igd94?=h9ho1<75rb3c7>5<2290;w)?l2;366>N31;1C8594$02;>4e>oam3:17dhi:188k4gb2900qo=7b;297?6=8r.:o?4>519K0<4<@=2<7)??8;60?l`d2900ekj50;9l5dc=831vn?77:187>5<7s-;h>7?:1:J7=7=O<1=0(<>7:3a8mce=831bji4?::kea?6=3f;ji7>5;|`00=<72<0;6=u+1b09504<@=397E:77:&24=<6j2cmo7>5;hdg>5<>i6il0;66sm35;94?5=83:p(:2B?4:5+11:95d=nnj0;66gid;29?j7fm3:17pl=4d83>6<729q/=n<51428L1?53A>3;6*>09823>oak3:17dhk:188k4gb2900qo?jc;297?6=8r.:o?4>519K0<4<@=2<7)??8;34?l`d2900ekj50;9l5dc=831vn?;?:187>5<7s-;h>7?:1:J7=7=O<1=0(<>7:0d8mce=831bji4?::kea?6=3f;ji7>5;|`2a`<72=0;6=u+1b09507<@=397E:77:&24=<6n2cmo7>5;hdg>5<>6F;939K0=1<,8:36<74iga94?=nnm0;66gie;29?l`a2900c50z&2g7<6=;1C84<4H5:4?!7703;27dhl:188mcb=831bjh4?::keb?6=3f;ji7>5;|`72f<72=0;6=u+1b09507<@=397E:77:&24=<292cmo7>5;hdg>5<>6F;939K0=1<,8:3655ffb83>>oal3:17dhj:188mc`=831d=lk50;9~f6>029086=4?{%3`6?7282B?5?5G4958 46?28n0ekm50;9jba<722e:mh4?::a727=8391<7>t$0a1>4373A>2>6F;869'55>=9m1bjn4?::ke`?6=3f;ji7>5;|`01`<72:0;6=u+1b09506<@=397E:77:&24=<6l2cmo7>5;hdg>5<c38215=O<080D968;%335<4290;w)?l2;364>N31;1C8594$02;>4b>i6il0;66sm39494?3=83:p(:2B?4:5+11:95`=nnj0;66gid;29?l`b2900ekh50;9l5dc=831vn>9?:186>5<7s-;h>7?:2:J7=7=O<1=0(<>7:0g8mce=831bji4?::kea?6=3`lm6=44o0cf>5<h7>55;294~"6k;0:9?5G4808L1>03-;;47?j;hd`>5<>oan3:17b?ne;29?xd5k00;684?:1y'5f4=9<80D97=;I6;3>"6810:i6gic;29?l`c2900ekk50;9jbc<722e:mh4?::a6g0=83?1<7>t$0a1>4353A>2>6F;869'55>=9l1bjn4?::ke`?6=3`ln6=44igd94?=h9ho1<75rb2:6>5<2290;w)?l2;366>N31;1C8594$02;>4c>oam3:17dhi:188k4gb2900qo=9f;291?6=8r.:o?4>539K0<4<@=2<7)??8;3f?l`d2900ekj50;9jb`<722cmj7>5;n3ba?6=3th89n4?:483>5}#9j81=8<4H5;1?M2??2.:<54>e:keg?6=3`lo6=44igg94?=nno0;66a>ad83>>{e:j21<7;50;2x 4e528?97E:62:J7<2=#9921=h5ffb83>>oal3:17dhj:188mc`=831d=lk50;9~f7d2290>6=4?{%3`6?72:2B?5?5G4958 46?28o0ekm50;9jba<722cmi7>5;hde>5<c38217=O<080D968;%330<729q/=n<51408L1?53A>3;6*>0982a>oak3:17dhk:188mcc=831bjk4?::m2e`<722wi?8l50;794?6|,8i96<;=;I6:6>N30>1/==651d9jbf<722cmh7>5;hdf>5<>6F;939K0=1<,8:3650z&2g7<6=;1C84<4H5:4?!7703;n7dhl:188mcb=831bjh4?::keb?6=3f;ji7>5;|`1gc<72=0;6=u+1b09507<@=397E:77:&24=5;hdg>5<>6F;939K0=1<,8:36<84iga94?=nnm0;66gie;29?l`a2900c50z&2g7<6=;1C84<4H5:4?!7703;=7dhl:188mcb=831bjh4?::keb?6=3f;ji7>5;|`0<6<72<0;6=u+1b09504<@=397E:77:&24=<6m2cmo7>5;hdg>5<>i6il0;66sm37f94?3=83:p(:2B?4:5+11:95`=nnj0;66gid;29?l`b2900ekh50;9l5dc=831vn>;n:186>5<7s-;h>7?:2:J7=7=O<1=0(<>7:0g8mce=831bji4?::kea?6=3`lm6=44o0cf>5<55;294~"6k;0:9?5G4808L1>03-;;47?j;hd`>5<>oan3:17b?ne;29?xd5j:0;684?:1y'5f4=9<80D97=;I6;3>"6810:i6gic;29?l`c2900ekk50;9jbc<722e:mh4?::a603=8391<7>t$0a1>4373A>2>6F;869'55>=9m1bjn4?::ke`?6=3f;ji7>5;|`2b6<72:0;6=u+1b09506<@=397E:77:&24=<6l2cmo7>5;hdg>5<c38214=O<080D968;%33ad83>>{e9o<1<7:50;2x 4e528?:7E:62:J7<2=#9921=55ffb83>>oal3:17dhj:188k4gb2900qo=60;297?6=8r.:o?4>519K0<4<@=2<7)??8;58mce=831bji4?::m2e`<722wi>h650;094?6|,8i96<:i;I6:6>N30>1/==657:keg?6=3f;ji7>5;|`1a3<72;0;6=u+1b0951`<@=397E:77:&24=<03`lh6=44o0cf>5<52;294~"6k;0:8k5G4808L1>03-;;4794iga94?=h9ho1<75rb3g1>5<5290;w)?l2;37b>N31;1C8594$02;>2=nnj0;66a>ad83>>{e:l:1<7<50;2x 4e528>m7E:62:J7<2=#9921;6gic;29?j7fm3:17pl=dd83>7<729q/=n<515d8L1?53A>3;6*>0984?l`d2900c7>50z&2g7<65<7s-;h>7?;f:J7=7=O<1=0(<>7:69jbf<722e:mh4?::a7dg=8381<7>t$0a1>42a3A>2>6F;869'55>=?2cmo7>5;n3ba?6=3th8m54?:383>5}#9j81=9h4H5;1?M2??2.:<548;hd`>5<c3820c=O<080D968;%33>i6il0;66sm3`094?4=83:p(:2B?4:5+11:93>oak3:17b?ne;29?xd4i90;6?4?:1y'5f4=9=l0D97=;I6;3>"6810<7dhl:188k4gb2900qo=6e;296?6=8r.:o?4>4g9K0<4<@=2<7)??8;58mce=831d=lk50;9~f6?d29096=4?{%3`6?73n2B?5?5G4958 46?2>1bjn4?::m2e`<722wi>k<50;094?6|,8i96<:i;I6:6>N30>1/==657:keg?6=3f;ji7>5;|`0f1<72;0;6=u+1b0951`<@=397E:77:&24=<03`lh6=44o0cf>5<53;294~"6k;0:9=5G4808L1>03-;;47?k;hd`>5<<6F;939K0=1<,8:36ad83>>{e;;91<7=50;2x 4e528?;7E:62:J7<2=#9921=i5ffb83>>oal3:17b?ne;29?xd4:=0;6>4?:1y'5f4=9<:0D97=;I6;3>"6810:h6gic;29?l`c2900c50z&2g7<6=91C84<4H5:4?!7703;o7dhl:188mcb=831d=lk50;9~f64129086=4?{%3`6?7282B?5?5G4958 46?28n0ekm50;9jba<722e:mh4?::a771=8391<7>t$0a1>4373A>2>6F;869'55>=9m1bjn4?::ke`?6=3f;ji7>5;|`06=<72:0;6=u+1b09506<@=397E:77:&24=<6l2cmo7>5;hdg>5<c38215=O<080D968;%335<4290;w)?l2;364>N31;1C8594$02;>2=nnj0;66gid;29?j7fm3:17pl<4`83>0<729q/=n<51468L1?53A>3;6*>0987?l`d2900ekj50;9jb`<722cmj7>5;n37g?6=3th9994?:783>5}#9j81=8=4H5;1?M2??2.:<54=0:keg?6=3`lo6=44igg94?=nno0;66a>4b83>>i6il0;66sm1g094?0=83:p(:2B?4:5+11:965=nnj0;66gid;29?l`b2900ekh50;9l51e=831d=lk50;9~f10f290jm7>50zJ7<2=#9j81=o94Z579e~462;8157o513827?d=k3;?6<;5}%37e?4<,8:;6>5+11397>"68;087)??3;18 4632:1/==;53:&243<43-om6k=4$02:>6=#99k1?6*>0c80?!77k390(<>k:29'55c=;2.:5+10097>"69:087)?>4;18 4722:1/=<853:&252<43-;:47=4$03:>6=#98k1?6*>1c80?!76k390(5+13097>"6::087)?=4;18 4422:1/=?853:&262<43-;947=4$00:>6=#9;k1?6*>2c80?!75k390(<k4<;%304?5<,89:6>5+12097>"6;:087)?<4;18 4522:1/=>853:&272<43-;847=4$01:>6=#9:k1?6*>3c80?!74k390(<=k:29'56c=;2.:?k4<;%374?5<,8>:6>5+15097>"6<:087)?;4;18 4222:1/=9853:&202<43-;?47=4$06:>7=#9ki18<5+11597>"6jl097):7c;3a<>"30m0:n55ac183?kc5291e=o75259m5gg=:=1e85k5259m0=`=:=1/j=4i3:&2fc<53`>j6=44i5`94?=n<1k1<75fed83>>o>i3:1(:188m60=83.:n>4<5:l2f7<732c887>5$0`0>63b381?>o4:3:1(?50;&2f6<4=2d:n?4;;:k04?6=,8h86>;4n0`1>0=b2801>h6j;0=76g=e;29 4d42:?0b4<5:l2f75$0`0>6`b382?>o4l3:1(m50;&2f6<4n2d:n?4<;:k0f?6=,8h86>h4n0`1>1=b280b>h6j;0>76g<9;29 4d42:l0b=83.:n>45$0`0>6`b383?>o1i3:1(6=b285f>h6j;0?76g95;29 4d42?h0b49b:l2f7<132c=?7>5$0`0>3db38;?>o193:1(50;&2f6<1j2d:n?4n;:k6b?6=,8h86;l4n0`1>g=b285f>h6j;0h76g:c;29 4d42?h0b49b:l2f7m7>5$0`0>3db3824>=n=10;6)?m3;4a?k7e:3;:76g:7;29 4d42?h0b4:9j11<72-;i?78m;o3a6?7232c5$0`0>3d5<#9k91:o5a1c0952=;1<7*>b285f>h6j;0:465f7183>!7e;3o1n3:1(k1e=o<51c98m3b=83.:n>49b:l2f7<6k21b:44?:%3a7?0e3g;i>7?k;:k6a?6=,8h86;l4n0`1>4c<3`?86=4+1c192g=i9k81=k54i8;94?"6j:0246`>b383?>o>?3:1(02d:n?4=;:k:1?6=,8h86464n0`1>6=b28g=>h6j;0;76ak8;29 4d42m30b4k9:l2f7<532eo97>5$0`0>a?54oe694?"6j:0o56`>b387?>ic;3:1(2=b28g=>h6j;0376alf;29 4d42m30b4k9:l2f75$0`0>a?b38`?>idi3:1(c=b28g=>h6j;0:<65`c783>!7e;3n27c?m2;32?>id=3:1(4k9:l2f7<6<21do?4?:%3a7?b>3g;i>7?:;:mf5?6=,8h86i74n0`1>40<3fo;6=4+1c19`<=i9k81=:54oed94?"6j:0o56`>b382<>=hll0;6)?m3;f:?k7e:3;276akd;29 4d42m30bc:9l`2<72-;i?7j6;o3a6?7c32eho7>5$0`0>a?5<#9k91h45a1c095c=b28ff>h6j;0;76aja;29 4d42lh0b4jb:l2f7<532en47>5$0`0>`d54idf94?=n9j:1<75f49`94?=n0m0;6)?m3;:`?k7e:3:07d6m:18'5g5=0j1e=o<51:9j<<<72-;i?76l;o3a6?4<3`236=4+1c19!7e;32h7c?m2;68?l>1290/=o=58b9m5g4==21b484?:%3a7?>d3g;i>784;h:7>5<#9k914n5a1c093>=n0:0;6)?m3;:`?k7e:3207d6=:18'5g5=0j1e=o<59:9j<4<72-;i?76l;o3a6?g<3`2;6=4+1c19!7e;32h7c?m2;a8?l1c290/=o=58b9m5g4=l21b;n4?:%3a7?>d3g;i>7k4;h5a>5<#9k914n5a1c09b>=n?h0;6)?m3;:`?k7e:3;;76g89;29 4d421i0b3:9j33<72-;i?76l;o3a6?7332c<97>5$0`0>=e5<#9k914n5a1c0953=b28;g>h6j;0:;65f9383>!7e;32h7c?m2;3;?>o>93:1(47c:l2f7<6j21b4h4?:%3a7?>d3g;i>7?l;:k;e?6=,8h865m4n0`1>4b<3`=m6=4+1c19b382b>=n1l0;6)?m3;;g?k7e:3:07d7l:18'5g5=1m1e=o<51:9j=g<72-;i?77k;o3a6?4<3fh36=4+1c19f2=i9k81<65`b783>!7e;3h<7c?m2;38?jd3290/=o=5b69m5g4=:21dn>4?:%3a7?d03g;i>7=4;n`1>5<#9k91n:5a1c090>=hj80;6)?m3;`4?k7e:3?07bl?:18'5g5=j>1e=o<56:9lec<72-;i?7l8;o3a6?1<3fkn6=4+1c19f2=i9k81465`ae83>!7e;3h<7c?m2;;8?jgd290/=o=5b69m5g4=i21dmo4?:%3a7?d03g;i>7l4;nc:>5<#9k91n:5a1c09g>=hi10;6)?m3;`4?k7e:3n07bo8:18'5g5=j>1e=o<5e:9le3<72-;i?7l8;o3a6?`<3fk>6=4+1c19f2=i9k81==54o`694?"6j:0i;6`>b3825>=hi:0;6)?m3;`4?k7e:3;976an2;29 4d42k=0b50;&2f65:9lfc<72-;i?7l8;o3a6?7132eii7>5$0`0>g15<#9k91n:5a1c095==b28a3>h6j;0:565`bc83>!7e;3h<7c?m2;3b?>iei3:1(1e=o<51b98kg3=83.:n>4m7:l2f7<6l21dml4?:%3a7?d03g;i>7?j;:m:b?6=,8h86o94n0`1>4`<3fo<6=4+1c19a3=i9k81<65`e483>!7e;3o=7c?m2;38?jc3290/=o=5e79m5g4=:21di>4?:%3a7?c13g;i>7=4;|q6=6<72?qU94=4=3c3>cb<5;3n6km4=3c7>c`<5;336kk4=3;4>ce57by]0d?X2<01U8l94^5c5?[2f=2T?m95Q4`18Z1g53W>j=6P;a19]0<`X2i91U94h4^4;f?[3>82T>4k5Q59g8Z0>c3W?3o6P:8c9]1=g4:2:?1a4<2:279hk4:2:?1`a<2:279ho4:2:?1`<<2:278=54>bc9>6f6==;16>oh5539>6gc==;16>oj5539>6ge==;16>lj5539>6de==;16>ll5539>6dg==;16>l75539>7d?==;16?l95539>7d3==;16?l=5539>7d7==;16?4h5539>7706==;16?8?5539>704==;16?8=5539>702==;16?;=5539>732==;16?;;5539>730==;16?;95539>72?==;16?:o5539>72d==;16?:m5539>72b==;168;o59`9>03g=9j:0198n:5:a?821i32o70:9a;:a?821i32270:9a;:;?821i32<70:9a;:5?821i32>70:9a;:7?821i32870:9a;:1?821i32:70:9a;:3?821i3=n70:9a;5g?821i3=h70:9a;5a?821i3=j70:9a;5:?821i3=370:9a;54?821i3==70:9a;56?821i33?70:9a;;0?821i33970:9a;;2?821i33;70:9a;:e?821i32n70:9a;:b?821i3=m70:9a;57?821i33n70:9a;;`?821i33i7p}<8983>7}Y<0h01>67:0`6?xu21<0;6:uQ5878910b2=i0199l:0`7?820j3;i863;7e82f1=:4d33ty9m?4?:3y]16b<5;k96ce<5:3:6km4}r7;3?6=>>qU9594=3ag>10<5==:6984=553>10<5=10<5==36984=554>10<5;>=6984=366>10<5;>?6984=360>10<5;>96984=362>10<5;>;6984=31e>10<5;9n6984=3:f>10<5;2o6984=3:`>10<5;2i6984=3:b>10<5;226984=3:;>10<5;2<6984=3:5>10<5;=h6984=35a>10<5;=j6984=35:>10<5;=36984=354>10<5;==6984=356>10<5;=?6984=32;>10<5;:<6984=325>10<5;:>6984=327>10<5;:86984=321>10<5;::6984=323>10<5::?6984=220>10<5::96984=222>10<5::;6984=3de>10<5;lo6984=3d`>10<5;ln6984=235>10<5:;>6984=237>10<5:;86984=231>10<5:;:6984=233>10<5::m6984=22f>10<5;k:6984=3c1>10<5;3h6984=3;a>10<5=9m6984=51f>10<5=9o6984=51`>10<5=9i6984=51b>10<5=936984=514>10<5=9=6984=516>10<5=9?6984=510>10<5=996984=512>10<5=9;6984=50e>10<5=8o6984=50`>10<5=8i6984=50b>10<5=826984=50;>10<5=8<6984=505>10<5=8>6984=507>10<5=>>6984=567>10<5=>86984=561>10<5=>:6984=563>10<5=926984=50f>10<5=886984=501>10<5=8>5239f95g355dy]110<5==m6984=55a>10<5==o6984=55f>10<5==j6984=5:6>10<5=2?6984=0g7>10<58o86984=0g1>10<58o:6984=0g3>10<58nm6984=0ff>10<58no6984=0f`>10<5;8h6984=30a>10<5;8j6984=30:>10<5;836984=304>10<5;8=6984=306>10<5;8?6984=33b>10<5;;26984=33;>10<5;;<6984=335>10<5;;>6984=337>10<5;;86984=331>10<5;10<5;<36984=344>10<5;<=6984=346>10<5;10<5;<96984=21f>10<5:9o6984=21`>10<5:9i6984=21b>10<5:926984=21;>10<5:>=6984=2f1>10<5:n;6984=2f2>10<5:n86984=2f7>10<5:n>6984=2f5>10<5:n<6984=2f;>10<5:o?6984=2g1>10<5:o86984=2g6>10<5:o=6984=2g4>10<5:o36984=2g:>10<5:oj6984=2a5>10<5:i>6984=2a0>10<5:i96984=2a7>10<5:i;6984=2`e>10<5:i:6984=2`f>10<5:lh6984=2da>10<5:lj6984=2d:>10<5:l36984=2d4>10<5:l=6984=2d6>10<5:l?6984=2:`>10<5:2o6984=2:;>10<5=:55235495g3:m7>52z\655=:<:l1=o;4}r62=?6=:rT>:47>52z\64`=:<:n1=o;4}r623?6=:rT>::7>52z\64f=:<:h1=o;4}r621?6=:rT>:?7>52z\64<=:<:21=o;4}r626?6=:rT><55242595g3:=7>52z\642=:<:<1=o;4}r624?6=:rT><;5242795g3;j7>52z\640=:<:>1=o;4}r63a?6=:rT><95242195g3;h7>52z\646=:<:81=o;4}r63g?6=:rT>;n7>52z\644=:<::1=o;4}r63e?6=:rT><=5243d95g3;47>52z\7b`=:<;n1=o;4}r633?6=:rT?ji5243a95g3;:7>52z\7bf=:<;h1=o;4}r631?6=:rT?jo5243c95g3;87>52z\7bd=:<;31=o;4}r637?6=:rT?j45243:95g3;>7>52z\7b==:<;=1=o;4}r635?6=:rT?j:5243495g3;<7>52z\7b3=:<;?1=o;4}r1eb?6=:rT?j85243695g39=7>52z\653=:<=?1=o;4}r614?6=:rT>=85245695g3:j7>52z\651=:<=91=o;4}r62a?6=:rT>=>5245095g3:h7>52z\657=:<=;1=o;4}r62g?6=:rT>=<5245295g3:n7>52z\64d=:<:31=o;4}r620?6=:rT?jk5243g95g3;57>52z\7b1=:<;91=o;4}r1ea?6=:rT?j>5243095g3nn7>52z\7g2=:5<5sW>h:63;6`85g>{t7}Y0198n:7:8yv2b>3:1>vP;c29>03g=>>1v9k::181[2d:27?:l496:p0`5=838pR9m?;<65e?023ty?i?4?:3y]0g`<5=;3>h02;6s|4ed94?4|V=hh70:9a;41?xu3ll0;6?uQ4c`8910f2?;0q~:kd;296~X3jh168;o5619~w1bd2909wS:m9:?72d<2n2wx8il50;0xZ1d?34>=m7;k;|q7`d<72;qU8o94=54b>0eo47>52z\7f0=:5<5sW>i863;6`86e>{t7}YvP;b09>03g==11v9j<:181[2e827?:l4:7:p0a4=838pR9oi;<65e?313ty?h<4?:3y]0dc<5=;3>h034>=m78i;|q7aa<72;qU8n64=54b>3cno7>52z\7g4=:5<5sW>i:63;6`85=>{t7}Y;3?00:n85231690f=:;9918n5231090f=:;9;18n5231290f=::ol18n522gf90f=::oi1=o:4=3df>1e<5:;=69m4=236>1e<5:;?69m4=230>1e<5:;969m4=232>1e<5:;;69m4=22e>1e<5::n69m4=3c2>4d3348j>7?m4:?1=f<3k2795o4;c:p6fb=83>p1?mk:0`6?84>m3lm70:9c;d`?84>?3lo7p};7b83>7}:=i7>55z?72`<6j<16?5l5fb9>7=`=nj16?5o5fb9>71g=nl1v99m:185820k3?;70:8b;3a1>;450;1x91162<:0199?:0`6?821n3><7p};7083>7}:<>;1=o;4=550>ce53z?73c<2827?;i4;7:?73`<6j<1v99i:181820n3;i963;808eg>{t<>k1<706<5==j65519>03`=9k?0199<:gf8yv20l3:1?v3;7e82f0=:<>o19=524939ba=z{==96=4;{<64=?7e<27?;54>b59>021=9k>0199<:0cf?xu3?<0;6?;t=55;>4d2348?:7:l;<071?2d348?87:l;<077?2d348?>7:l;<075?2d348?<7:l;<00b?2d3488i7:l;<0;a?2d3483h7:l;<0;g?2d3483n7:l;<0;e?2d348357:l;<0;70:;3;l0:n;5242f95g0<5=9h627??l4>b79>06>=9k<019=8:0`5?824>3;i:63;3482f3=:<:>1=o84=510>4d134>8>7?m6:?774<6j?168>>51c48914a28h=70:=d;3a2>;3:j0:n;5243`95g0<5=8j627?>54>b79>071=9k<019<9:0`5?825=3;i:63;2582f3=:<=?1=o84=567>4d134>??7?m6:?707<6j?1689?51c48912728h=70:<9;3a2>;3:l0:n;5243195g0<5=896=m7?l1:p0=6=839p196::0`7?82?<3;i863;8082e`=z{=286=4=cz?7<0<6j<16?>k54b9>76b=m54b9>76d=o54b9>76?=654b9>7a4=54b9>7a7=9k>01>j<:5a896b32=i01>j::5a896b12=i01>j8:5a896b?2=i01>k;:5a896c528h?70=j3;6`?85b=3>h70=j6;6`?85b?3>h70=j8;6`?85b13>h70=ja;6`?85d>3>h70=l5;6`?85d;3>h70=l2;6`?85d<3>h70=l0;6`?85en3;i863;4jl0:n9523ga90f=:;oh18n523gc90f=:;o318n523g:90f=:;o=18n523g490f=:;o?18n523g690f=z{=296=4=5z?7<1<6j<16=h:54b9>5`5=5`7=54b9>5a`=5ab=67e=?l54b9>67g=?754b9>67>=?954b9>670=?;54b9>672=64?=<654b9>641=<854b9>643=<:54b9>645=<<54b9>63g=;754b9>63>=;954b9>630=;;54b9>632=;=54b9>634=;6m?0mh63>e98eg>;6mh0mj6s|1e`94?3|58o?65`0=9ho0q~?ka;291~;6m:0:n8523949bf=:;>:1jn5234f9bf=:;;21ji5rs0g4>5<5s4;n>7;?;<3f70=76;df?85083ln70=:d;df?855?3lo7p}>e883>3}:9l;19=521dc95dc<58oh6kj4=0gf>ce<58l;6kk4=0d1>c`55z?2a4<6j<16?5;5fb9>73`=nj16?8m5fb9>770=nm1v{t9m=1<7;t=0g3>4d2349397hj;<15b?`b349>o7hj;<111?`c3ty:ii4?:3y>5a`==916=hk51`g8yv7c>3:19v3>dg82f0=:;1>1jn5237g9bf=:;b49>7=5=nj16?;j5fb9>70g=nj16??<5fe9~w4`22909w0?kc;73?87a>3;ji6s|1e194?3|58nh6985519>6=c=9k?01?:7:gf8972f2oi01?:l:gd8yv44l3:1?v3=4782f0=::jk1jn522c59bf=z{;><6=4={<071?37348?47?ne:p66e=839p1?:::0`6?84d13lo70b49>6f?=no16>o85fg9~w72e290=w0<;3;73?843k3;ji63=4d8e`>;5=90mo63=538ea>;5==0mj6s|22c94?5|5;>869<5519>61c=9ho0q~<<9;297~;5<;0:n8522b:9bc=::k?1jk5rs36e>5<5s48?=7;?;<064?7fm2wx>>650;1x972628h>707}::=:19=5224095dc53z?105<6j<16>n95fg9>6g2=no1v?;<:181844n3?;70<:5;3ba>{t::<1<7=t=31e>4d2348h:7hk;<0a7?`c3ty99:4?:3y>66c==916>8651`g8yv44=3:1?v3=3d82f0=::j<1jk522c19bc=z{;=86=4={<0;a?373487p}=8583>1}::1n1=o;4=36;>ce<5;>j6kj4=36`>cc52z?1b49~w7>42908w0<7c;3a1>;5{t:>:1<706<5;=265l51c78972d2oi0q~<9f;296~;50h0><63=7982f0=z{;2:6=4:{<0;e?7e=2798h4ic:?115;k50;0x97>>2<:01?98:0`6?xu5090;69u229;95g3<5;?;6kk4=371>ce<5;??6kj4}r05`?6=:r79454:0:?133<6j<1v?9i:18084?03;i963=538e`>;5==0mo6s|27a94?4|5;2<68>4=356>4d23ty9;h4?:2y>6=1=9k?01?;::ga8973?2on0q~<9b;296~;50?0><63=7582f0=z{;=o6=4={<0;2?7e=279954ic:p647=838p1?7p}=1183>7}::;h19=5220;95g37>54z?16g<6j<16=h85fb9>5`>=nm16=ho5fd9~w76a2909w0<=a;73?84603;i96s|23394?5|5;8j6?75519>641=9k?0q~<=0;296~;5:00:n8521dc9bf=z{;:o6=4={<01:4>b49>5`c=nl16=k>5fb9>5c4=nm1v?>m:181845>3?;70<>4;3a1>{t:8n1<7=t=305>4d234;m<7hk;<3e6?`d3ty9673==916><=51c78yv46k3:1?v3=2482f0=:9o91jn521g49ba=z{;:26=4={<010?37348:>7?m5:p64d=838p1?<;:0`6?87a>3lh7p}=6083>7}::>i19=5227c95g352z?13g<28279:44>b49~w73a2909w0<8a;73?84103;i96s|24g94?4|5;=268>4=344>4d23ty99i4?:3y>62>==916>;851c78yv42k3:1>v3=76864>;5><0:n85rs37a>5<5s48<:7;?;<050?7e=2wx>8o50;0x97122<:01?8<:0`6?xu5=00;6?u2266915=::?81=o;4}r3eb?6=:r79=l4:0:?14=<6j<1v{t9on1<706<5;:=6<95519>653=9k?0q~?ib;296~;59?0><63=0582f0=z{8lj6=4={<021?37348;?7?m5:p5c?=838p1??;:428976528h>7p}>f983>7}::8919=5221395g352z?157<28279<=4>b49~w66c290>w03;i963>c28eg>;5j>0mh63;6`874>{t:;n1<706<58i86=85519>5f2=9ho0q~<=f;296~;58<0><63>c482e`=z{;9;6=4={<030?3734;h:7?ne:p667=838p1?><:42894e028kn7p}=3383>7}::9819=521b:95dc52z?144<2827:o44>ad9~w7532909w04=2d`>4d234;hn7hl;<65e?513ty94k4?:3y>63?==916=nl51`g8yv4>83:1>v3=69864>;6kj0:mh5rs3;2>5<5s48=;7;?;<3``?7fm2wx>4<50;0x97012<:01{t:0<1<706<58n96>;:55896642==01>>=:55896662==01>>?:55897`a2==01?hk:55897`d2==01?hj:55896712==01>?::55896732==01>?<:55896752==01>?>:55896772==01>>i:558966b2==0198l:gg897?028kn70b49>740==916>no5fe9>6c4=nj1v?j8:181857;3?;70{t:ok1<7:t=220>4d2349:97;?;<0`=?`d348n47hl;|q1`3<72;q6?=<5519>6``=9ho0q~6=4={<135?37348ni7?ne:p6c>=83>p1>>>:0`6?856;3?;707}:;9:19=522df95dc54z?045<6j<16?<<5519>6f>=nl16>h<5fb9~w7b42909w06cb==916>ho51`g8yv4a<3:18v3=fe82f0=:;9l19=522b49bf=::mi1jn5rs3f3>5<5s48mo7;?;<0f=?7fm2wx>k=50;6x97`d28h>70=?e;73?84d>3ln70b49>746==916>n95fd9>6ac=nj1v?k8:18184a93>270{t:o81<742e348m>7?ne:p6`3=839p1?h?:5;897c02=301?k::0cf?xu5m10;6>u22g2951d<5;o<6h=50;1x97ca2=301?k::5;897c428kn7p}=e783>6}::ll1=9l4=3g6>4de348n:7?ne:p6`7=839p1?kj:5;897c42=301?k>:0cf?xu5m=0;6>u22dg951d<5;o86ih50;1x97cc2=301?k>:5;897ba28kn7p}=e383>6}::ln1=9l4=3g2>4de348n>7?ne:p6ab=839p1?kl:5;897ba2=301?jk:0cf?xu5m90;6>u22da951d<5;nm6il50;1x97ce2=301?jk:5;897be28kn7p}=dd83>6}::lh1=9l4=3fg>4de348oi7?ne:p6a?=839p1?kn:5;897be2=301?j6:0cf?xu5lj0;6>u22dc951d<5;ni6io50;1x97c>28>i70;5lh0:mh5rs22`>5<2s49:97?m5:?2g14id:?1f3?;:0`6?87d=3lh70?l4;dg?84e>3ln70:9a;1g?xu48h0;68u230195g3<58i=6km4=0a6>cb<5;h>6km4=54b>6e55z?057<6j<16=n95fb9>5f0=nm16>o;5fd9>03g=;k1v>>7:18685693;i963>c98eg>;6k>0mh63=b58eg>;3>h08m6s|31594?3|5:;;6=m7=6;|q043<725<4s48j=7;?;<0b6?37348j87?ne:p6d7=838p1?o>:0`6?84f<3lh7p}=9e83>7}::0i19=5228g95dc56z?1=f<6j<16>l>5fd9>6l:5fd9>6<>=nj16>495fg9~w7?a2909w0<6b;73?84f83;ji6s|28;94?0|5;3i6=4?:3y>766=<016??>51`g8yv5513:1>v3<31820g=:;;31=lk4}r171?6=:r78?=4>ad9>76c==91v>?i:180855n3>270==0;6:?856n3;ji6s|33:94?5|5:8m6<:m;<114?7ej278>54>ad9~w6232909w0==f;3ba>;4;m0><6s|3d294?3|5:8;68<4=2g:>4d2349mn7;?;<16`?`c349947hl;|q05`<72:q6??k5489>74`=<016?4gb3ty88>4?:3y>77c=9ho01>=l:428yv5cn3:19v3<1g866>;4m10:n8523gc915=:;349:i7:6;<12`?7fm2wx??850;1x964c28>i70=>e;3af>;4:?0:mh5rs261>5<5s499h7?ne:?07g<282wx?ik50;7x967b2<801>k8:0`6?85a13?;70=:c;dg?855>3lh7p}<1b83>6}:;;i1845230f90<=:;8i1=lk4}r111?6=;r78>n4>4c9>74b=9kh01><::0cf?xu4<80;6?u233a95dc<5:9j68>4}r1g`?6==r78=i4:2:?0a3<6j<16?k65519>70e=no16??;5fb9~w67e2908w0==b;6:?856k3>270=>b;3ba>{t;;>1<7=t=20a>42e349:o7?mb:?061<6il1v>:?:181855j3;ji63<38864>{t;mi1<7;t=23`>04<5:o>6n7hk;<110?`d3ty8=l4?:2y>77g=<016?74g=9ho0q~==3;297~;4:h0:8o5230`95gd<5:886>635<5s49:m7:6;<12=?7fm2wx?io50;7x967f2<801>k<:0`6?85a=3?;70=:a;dg?855:3lh7p}<2383>7}:;8k1=ol4=201>4gb3ty8=54?:3y>74?=<016?<651`g8yv5c13:19v3<18866>;4m;0:n8523g6915=:;<4>ad9~w6?72909:v3<19866>;4l;0?;63;4l80?;63;4l=0?;63;4l?0?;63;4l10?;63;4m;0?;63;4m<0?;63;4m>0?;63;4m00?;63;4k?0?;63;4k:0?;63;4k=0?;63;4jo0?;63;4jl0?;63;4nk0?;63;4n00?;63;4n>0?;63;4n<0?;63;4180:mh5rs214>5<5s498i7?m5:?00d850;0x965c28h>70=;8;de?xu4;<0;6?u232a95g3<5:>36kk4}r100?6=:r78?o4>b49>71>=nj1v>=<:181854i3;i963<498e`>{t;:81<74d2349?m7hl;|q074<72;q6?>651c78962f2ol0q~=;b;297~;4;40k0:mh5rs264>5<5s49?:7;?;<17=?7fm2wx>ol50;0x97e72=301?li:0cf?xu5k<0;6?u22b295gd<5;ij6n>51`g897ea2oi0q~ad9~w7d>2909w0o650;0x97dc2=301?ll:0cf?xu5k;0;6?u22cf95gd<5;i<6om51c`897e128kn7p}=a983>7}::hn184522`a95dc7>52z?1ea<6jk16>o951`g8yv4dj3:1>v3=ae82e`=::jl1jh5rs3c4>5<5s48jo7:6;<0bf?7fm2wx>o?50;0x97gd28hi70{t:h<1<71?<5;kj6ll51c`897d228kn7p}=a483>7}::hk184522`;95dc52z?1ed<6jk16>o:51`g8yv4fm3:1>v3=a882fg=::k91=lk4}r1a3?6=7d6=nj1v>m6:18085c:3;i963;4>l0mj6s|3c794?2|5:n;68>4=2`f>4d23493?7hi;<1:g?`d3ty8o:4?:2y>7a6=9k?01>k=:428960c2ol0q~=m6;290~;4l80><634:0:?02am>:0`6?85?<3lo70=n2;d`?xu4kh0;6>u23e195g3<5:o>68>4=24f>cb54z?0`1<28278o?4>b49>7=3=no16?l:5fb9~w6ee2908w0=k4;3a1>;4m?0><63<6g8eb>{t;kk1<7:t=2f6>06<5:i868i:gf8yv5ej3:18v3;4k=0:n8523949bc=:;h21jn5rs2ag>5<4s49o:7?m5:?0a=<28278;=4if:p7ge=83>p1>j8:42896e228h>70=76;dg?85fi3lh7p}6}:;m=1=o;4=2g:>06<5:=;6kj4}r1a`?6=7g2=nj1v>mi:18085c03;i963;4?80mo6s|3d394?2|5:oj6i7hl;<11=?`d3ty85l4?:3y>7f0==916?o=51`g8yv5>13:1>v3;4j;0:mh5rs2;4>5<5s49h?7;?;<1a4?7fm2wx?4850;0x96e52<:01>oi:0cf?xu4110;6?u23b6915=:;k;1=lk4}r1:0?6=:r78o=4:0:?0ea<6il1v>7<:18185en3?;70=nc;3ba>{t;0?1<706<5:kn67dd=9ho0q~=n9;296~;4j:0?563ad9~w6g02908w0=m2;6:?85f13>270=n7;3ba>{t;hk1<7=t=2`1>42e349j57?mb:?0ed<6il1v>o::18085e93>270=n7;6:?85f=3;ji6s|3`:94?5|5:h:6<:m;<1b3?7ej278m54>ad9~w6g42908w0=m0;6:?85f=3>270=n3;3ba>{t;h<1<7=t=2`3>42e349j97?mb:?0e3<6il1v>o>:18085fn3>270=n3;6:?85f93;ji6s|3`694?5|5:km6<:m;<1b7?7ej278m94>ad9~w6?a2908w0=ne;6:?85f93>270=6f;3ba>{t;h81<7=t=2cf>42e349j=7?mb:?0e7<6il1v>7k:18085fl3>270=6f;6:?85>l3;ji6s|3`294?5|5:ko6<:m;<1:b?7ej278m=4>ad9~w6?e2908w0=nc;6:?85>l3>270=6b;3ba>{t;0o1<7=t=2c`>42e3492h7?mb:?0=`<6il1v>7l:18085fj3;?n63<9c82fg=:;0i1=lk4}r1e6?6=b49>5fe=nj16=nl5fe9>03g=;=1v>h>:18785ai3;i963>ce8eg>;6kj0mh63;6`807>{t;o:1<7:t=2d:>4d234;hi7hl;<3``?`c34>=m7==;|q0ac<72=q6?k651c7894ea2oi010:n8521e29bf=:9jl1ji5247c975=z{:oo6=4;{<1e2?7e=27:h<4ic:?2`5p1>h::0`6?87c:3lh70?k1;dg?821i38n7p}6}:;o>1=o;4=0f1>cb<5=bc9>70g=9ho0q~=;c;296~;4=90:mh5234390<=z{:?=6=4={<165?7ej2789o4>ad9~w62c2909w0=:1;3ba>;4=;0?56s|34594?4|5:?967>52z?011<6il16?5h5fg9~w60?2909w0=93;3af>;4>m0:mh5rs27e>5<5s49=?7?ne:?021<312wx?;750;0x960328hi70=9e;3ba>{t;?:1<74gb349=97:6;|q02d<72;q6?;;51c`8960a28kn7p}<6083>7}:;??1=lk4=245>1?52z?023<6jk16?:>51`g8yv51:3:1>v3<6782e`=:;?=1845rs24`>5<5s49=;7?mb:?034<6il1v>9<:180851?3;ji63<8g8e`>;40h0mj6s|36g94?4|5:=2628kn70=8a;6:?xu4?o0;6?u236c95gd<5:2?652z?03g<6il16?:m5489~w6>62909w0=8c;3af>;40?0:mh5rs25;>5<5s49{t;>>1<74gb3493m7hk;|q0<`<72:q6?5m5519>7=b==916?5h51`g8yv5?k3:18v3<8b82f0=:;1h1ji523829ba=:;0;1ji5rs2::>5<5s49347;?;<1;e?7fm2wx8;j50;06824n3><70:<70:<70:<70:<7;64?824>3><70:<5;64?824<3><70:<3;64?824:3><70:<1;64?82483><70:=f;64?825l3><70:=c;64?825j3><70:=a;64?82513><70:=8;64?825?3><70:=6;64?825=3><70:=4;64?823=3><70:;4;64?823;3><70:;2;64?82393><70:;0;64?82413><70:=e;64?825;3><70:=2;64?84>03;ji6s|47094?4|5=9m68>4=54b>`e==7>52z?77`<2827?:l4ka:p036=838p19=k:428910f2m20q~::f;296~;3;j0><63;6`8g2>{t<06<5=v3;36864>;3>h0o>6s|44;94?4|5=9=68>4=54b>a7>47>52z?770<2827?:l4ja:p001=838p19=;:428910f2m:0q~::6;296~;3;:0><63;6`8`b>{t<06<5=v3;2g864>;3>h0hm6s|44294?4|5=8o68>4=54b>f??j7>52z?76f<2827?:l4l8:p01c=838p19<63;6`8`3>{t<=i1<706<5=54:0:?72dv3;27864>;3>h0h?6s|45:94?4|5=8>68>4=54b>f4?;7>52z?761<2827?:l4j1:p03?=838p19:::428910f2l:0q~:98;296~;3<=0><63;6`8f<>{t06<5=v3;41864>;3>h0oo6s|47194?4|5=9268>4=54b>ad>o7>52z?76`<2827?:l4k7:p007=838p19<<:428910f2ji0q~:;6;296~;3:;0><63;6`8`5>{t;=21<74gb349?57hk;|q00d<72;q6?975fb9>71g=9=i0q~:9b;296~;3>j0:mh5247c9a`=z{:lo6=4:{<1;b?`b3493m7hj;<1:4?7fm27?:l4;8`9>03g=mm1v<;6:181842=3lo70<:4;37g>{t9cb<58l96<:l;|q113<72;q6>865fd9>602=9ho0q~?i4;296~;6n?0mi63>f382e`=zuz?297>52z\6=0=:<=0>585+49495d?52z\6=a=:<=0>5i5+49495dg52z\6<2=:<=0>4:5+49495ddnn7>52z\7g2=:<=0?o:5+494950`n57>52z\7g3=:<=0?o;5+494953gn47>52z\7g0=:<=0?o85+4949523n;7>52z\7g1=:<=0?o95+49495=6n:7>52z\7g6=:<=0?o>5+49495=0n97>52z\7g7=:<=0?o?5+49495=1n?7>52z\7g5=:<=0?o=5+49495=>n>7>52z\7fc=:<=0?nk5+49495=gn=7>52z\7f`=:<=0?nh5+49495=dn<7>52z\7fa=:<=0?ni5+49495=eoj7>52z\7ff=:<=0?nn5+49495=boi7>52z\7fg=:<=0?no5+49495=coh7>52z\7fd=:<=0?nl5+49495=`oo7>52z\7f<=:<=0?n45+49495<6on7>52z\7f==:<=0?n55+49495<7om7>52z\7f2=:<=0?n:5+49495<4o47>52z\7f0=:<=0?n85+49495<5o;7>52z\7f1=:<=0?n95+49495<2o:7>52z\7f6=:<=0?n>5+49495<3o97>52z\7f7=:<=0?n?5+49495<0o87>52z\7f4=:<=0?n<5+49495<1o?7>52z\7f5=:<=0?n=5+49495<>o>7>52z\7ec=:<=0?mk5+49495o=7>52z\7e`=:<=0?mh5+49495o<7>52z\7ea=:<=0?mi5+49495hj7>52z\7ef=:<=0?mn5+49495m>7>52z\7ga=:<=0?oi5+49495m=7>52z\7gf=:<=0?on5+49495m<7>52z\7gg=:<=0?oo5+49495<`nj7>52z\7gd=:<=0?ol5+49495d6ni7>52z\7g<=:<=0?o45+49495d7nh7>52z\7g==:<=0?o55+49495d4no7>52z\7g4=:<=0?o<5+49495d5n87>52z\7f3=:<=0?n;5+49495d2o57>52z\7eg=:<=0?mo5+49495d3hi7>52z\7ed=:<=0?ml5+49495d052z\6e==:<=0>m55+49495d152z\6=6=:<=0>5>5+49495d>52z\655=:<=0>==5+494950d7>52z\64c=:<=0>52z\64`=:<=0>52z\64a=:<=0>52z\64f=:<=0>52z\64g=:<=0>52z\64<=:<=0><45+494953452z\64==:<=0><55+494953552z\642=:<=0><:5+494953252z\643=:<=0><;5+494953352z\640=:<=0><85+494953052z\641=:<=0><95+494953152z\646=:<=0><>5+494953>52z\647=:<=0>52z\644=:<=0><<5+494953d52z\645=:<=0><=5+494953e52z\7b`=:<=0?jh5+494953b52z\7ba=:<=0?ji5+494953c52z\7bf=:<=0?jn5+494953`52z\7bg=:<=0?jo5+494952652z\7bd=:<=0?jl5+494952752z\7b<=:<=0?j45+494952452z\7b==:<=0?j55+494952552z\7b2=:<=0?j:5+494952252z\7b3=:<=0?j;5+494952052z\7b0=:<=0?j85+494952152z\653=:<=0>=;5+494952>52z\650=:<=0>=85+494952?52z\651=:<=0>=95+494952g52z\656=:<=0>=>5+494952d52z\657=:<=0>=?5+494952e52z\654=:<=0>=<5+494952b52z\64d=:<=0>52z\7bc=:<=0?jk5+494952`7>52z\7b1=:<=0?j95+49495=752z\7b6=:<=0?j>5+49495=452z\606=:<=0>8>5+49495=52n7>52z\7=g=:<=0?5o5+49495=252z\67a=:<=0>?i5+49495=352z\62==:<=0>:55+49495=?52zJ7<2=zfhnn6=4={I6;3>{iiml1<7vF;869~jdc52909wE:77:me`5=838pD968;|lba1<72;qC8594}ocf1?6=:rB?4:5rn`g5>5<5sA>3;6saad594?4|@=2<7p`ne983>7}O<1=0qcoj9;296~N30>1vblkn:181M2??2wemhl50;0xL1>03tdjin4?:3yK0=152zJ7<2=zfhon6=4={I6;3>{iill1<7vF;869~jd`52909wE:77:mec5=838pD968;|lbb1<72;qC8594}oce1?6=:rB?4:5rn`d5>5<5sA>3;6saag594?4|@=2<7p`nf983>7}O<1=0qcoi9;296~N30>1vblhn:181M2??2wemkl50;0xL1>03tdjjn4?:3yK0=152zJ7<2=zfhln6=4={I6;3>{iiol1<7vF;869~jg652909wE:77:mf55=838pD968;|la41<72;qC8594}o`31?6=:rB?4:5rnc25>5<5sA>3;6sab1594?4|@=2<7p`m0983>7}O<1=0qcl?9;296~N30>1vbo>n:181M2??2wen=l50;0xL1>03tdi52zJ7<2=zfk:n6=4={I6;3>{ij9l1<7vF;869~jg752909wE:77:mf45=838pD968;|la51<72;qC8594}o`21?6=:rB?4:5rnc35>5<5sA>3;6sab0594?4|@=2<7p`m1983>7}O<1=0qcl>9;296~N30>1vbo?n:181M2??2wen03tdi=n4?:3yK0=152zJ7<2=zfk;n6=4={I6;3>{ij8l1<7vF;869~jg452909wE:77:mf75=838pD968;|la61<72;qC8594}o`11?6=:rB?4:5rnc05>5<5sA>3;6sab3594?4|@=2<7p`m2983>7}O<1=0qcl=9;296~N30>1vbo03tdi>n4?:3yK0=151zJ7<2=zf0{I6;3>{i1?h1<7?tH5:4?xh>>j0;65<6sA>3;6sa96194?7|@=2<7p`67583>4}O<1=0qc785;295~N30>1vb499:182M2??2we5:950;3xL1>03td2;54?:0yK0=151zJ7<2=zf0=j6=4>{I6;3>{i1>h1<7?tH5:4?xh>?j0;65<6sA>3;6sa99194?7|@=2<7p`68583>4}O<1=0qc775;295~N30>1vb469:182M2??2we55950;3xL1>03td2454?:0yK0=151zJ7<2=zf02j6=4>{I6;3>{i11h1<7?tH5:4?xh>0j0;6b290:wE:77:m==`=83;pD968;|l:=5<728qC8594}o;:5?6=9rB?4:5rn8;1>5<6sA>3;6sa98194?7|@=2<7p`69583>4}O<1=0qc765;295~N30>1vb479:182M2??2we54950;3xL1>03td2554?:0yK0=151zJ7<2=zf03j6=4>{I6;3>{i10h1<7?tH5:4?xh>1j0;6l3:1=vF;869~j5<6sA>3;6sa9`194?7|@=2<7p`6a583>4}O<1=0qc7n5;295~N30>1vb4o9:182M2??2we5l950;3xL1>03td2m54?:0yK0=151zJ7<2=zf0kj6=4>{I6;3>{i1hh1<7?tH5:4?xh>ij0;65<6sA>3;6sa9c194?7|@=2<7p`6b583>4}O<1=0qc7m5;295~N30>1vb4l9:182M2??2we5o950;3xL1>03td2n54?:0yK0=151zJ7<2=zf0hj6=4>{I6;3>{i1kh1<7?tH5:4?xh>jj0;65<6sA>3;6sa9b194?7|@=2<7p`6c583>4}O<1=0qc7l5;295~N30>1vb4m9:182M2??2we5n950;3xL1>03td2o54?:0yK0=151zJ7<2=zf0ij6=4>{I6;3>{i1jh1<7?tH5:4?xh>kj0;65<6sA>3;6sa9e194?7|@=2<7p`6d583>4}O<1=0qc7k5;295~N30>1vb4j9:182M2??2we5i950;3xL1>03td2h54?:0yK0=151zJ7<2=zf0nj6=4>{I6;3>{i1mh1<7?tH5:4?xh>lj0;65<6sA>3;6sa9d194?7|@=2<7p`6e583>4}O<1=0qc7j5;295~N30>1vb4k9:182M2??2we5h950;3xL1>03td2i54?:0yK0=151zJ7<2=zf0oj6=4>{I6;3>{i1lh1<7?tH5:4?xh>mj0;65<6sA>3;6sa9g194?7|@=2<7p`6f583>4}O<1=0qc7i5;295~N30>1vb4h9:182M2??2we5k950;3xL1>03td2j54?:0yK0=151zJ7<2=zf0lj6=4>{I6;3>{i1oh1<7?tH5:4?xh>nj0;65<6sA>3;6saa1194?7|@=2<7p`n0583>4}O<1=0qco?5;295~N30>1vbl>9:182M2??2wem=950;3xL1>03tdj<54?:0yK0=151zJ7<2=zfh:j6=4>{I6;3>{ii9h1<7?tH5:4?xhf8j0;65<6sA>3;6saa0194?7|@=2<7p`n1583>4}O<1=0qco>5;295~N30>1vbl?9:182M2??2wem<950;3xL1>03tdj=54?:0yK0=151zJ7<2=zfh;j6=4>{I6;3>{ii8h1<7?tH5:4?xhf9j0;65<6sA>3;6saa3194?7|@=2<7p`n2583>4}O<1=0qco=5;295~N30>1vbl<9:182M2??2wem?950;3xL1>03tdj>54?:0yK0=151zJ7<2=zfh8j6=4>{I6;3>{ii;h1<7?tH5:4?xhf:j0;65<6sA>3;6saa2194?7|@=2<7p`n3583>4}O<1=0qco<5;295~N30>1vbl=9:182M2??2wem>950;3xL1>03tdj?54?:0yK0=151zJ7<2=zfh9j6=4>{I6;3>{ii:h1<7?tH5:4?xhf;j0;65<6sA>3;6saa5194?7|@=2<7p`n4583>4}O<1=0qco;5;295~N30>1vbl:9:182M2??2wem9950;3xL1>03tdj854?:0yK0=151zJ7<2=zfh>j6=4>{I6;3>{ii=h1<7?tH5:4?xhf5<6sA>3;6saa4194?7|@=2<7p`n5583>4}O<1=0qco:5;295~N30>1vbl;9:182M2??2wem8950;3xL1>03tdj954?:0yK0=157>51zJ7<2=zfh?j6=4>{I6;3>{ii5<6sA>3;6saa7194?7|@=2<7p`n6583>4}O<1=0qco95;295~N30>1vbl89:182M2??2wem;950;3xL1>03tdj:54?:0yK0=151zJ7<2=zfh{I6;3>{ii?h1<7?tH5:4?xhf>j0;65<6sA>3;6saa6194?7|@=2<7p`n7583>4}O<1=0qco85;295~N30>1vbl99:182M2??2wem:950;3xL1>03tdj;54?:0yK0=151zJ7<2=zfh=j6=4>{I6;3>{ii>h1<7?tH5:4?xhf?j0;65<6sA>3;6saa9194?7|@=2<7p`n8583>4}O<1=0qco75;295~N30>1vbl69:182M2??2wem5950;3xL1>03tdj454?:0yK0=151zJ7<2=zfh2j6=4>{I6;3>{ii1h1<7?tH5:4?xhf0j0;6b290:wE:77:me=`=83;pD968;|lb=5<728qC8594}oc:5?6=9rB?4:5rn`;1>5<6sA>3;6saa8194?7|@=2<7p`n9583>4}O<1=0qco65;295~N30>1vbl79:182M2??2wem4950;3xL1>03tdj554?:0yK0=151zJ7<2=zfh3j6=4>{I6;3>{ii0h1<7?tH5:4?xhf1j0;6l3:1=vF;869~jd?b290:wE:77:me<`=83;pD968;|lbe5<728qC8594}ocb5?6=9rB?4:5rn`c1>5<6sA>3;6saa`194?7|@=2<7p`na583>4}O<1=0qcon5;295~N30>1vblo9:182M2??2weml950;3xL1>03tdjm54?:0yK0=151zJ7<2=zfhkj6=4>{I6;3>{iihh1<7?tH5:4?xhfij0;65<6sA>3;6saac194?7|@=2<7p`nb583>4}O<1=0qcom5;295~N30>1vbll9:182M2??2wemo950;3xL1>03tdjn54?:0yK0=151zJ7<2=zfhhj6=4>{I6;3>{iikh1<7?tH5:4?xhfjj0;65<6sA>3;6saab194?7|@=2<7p`nc583>4}O<1=0qcol5;295~N30>1vblm9:182M2??2wemn950;3xL1>03tdjo54?:0yK0=151zJ7<2=zfhij6=4>{I6;3>{iijh1<7?tH5:4?xhfkj0;65<6sA>3;6saae194?7|@=2<7p`nd583>4}O<1=0qcok5;295~N30>1vblj9:182M2??2wemi950;3xL1>03tdjh54?:0yK0=151zJ7<2=zfhnj6=4>{I6;3>{iimh1<7?tH5:4?x{zuIJHwnh>:85;ac640tJKNv>r@ARxyEF \ No newline at end of file diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.v b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.v new file mode 100644 index 000000000..6ec1e3f88 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.v @@ -0,0 +1,173 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2009 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The synthesis directives "translate_off/translate_on" specified below are +// supported by Xilinx, Mentor Graphics and Synplicity synthesis +// tools. Ensure they are correct for your synthesis tool(s). + +// You must compile the wrapper file fifo_xlnx_512x36_2clk_prog_full.v when simulating +// the core, fifo_xlnx_512x36_2clk_prog_full. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + +`timescale 1ns/1ps + +module fifo_xlnx_512x36_2clk_prog_full( + rst, + wr_clk, + rd_clk, + din, + wr_en, + rd_en, + dout, + full, + almost_full, + empty, + prog_full); + + +input rst; +input wr_clk; +input rd_clk; +input [35 : 0] din; +input wr_en; +input rd_en; +output [35 : 0] dout; +output full; +output almost_full; +output empty; +output prog_full; + +// synthesis translate_off + + FIFO_GENERATOR_V6_1 #( + .C_COMMON_CLOCK(0), + .C_COUNT_TYPE(0), + .C_DATA_COUNT_WIDTH(9), + .C_DEFAULT_VALUE("BlankString"), + .C_DIN_WIDTH(36), + .C_DOUT_RST_VAL("0"), + .C_DOUT_WIDTH(36), + .C_ENABLE_RLOCS(0), + .C_ENABLE_RST_SYNC(1), + .C_ERROR_INJECTION_TYPE(0), + .C_FAMILY("spartan3"), + .C_FULL_FLAGS_RST_VAL(1), + .C_HAS_ALMOST_EMPTY(0), + .C_HAS_ALMOST_FULL(1), + .C_HAS_BACKUP(0), + .C_HAS_DATA_COUNT(0), + .C_HAS_INT_CLK(0), + .C_HAS_MEMINIT_FILE(0), + .C_HAS_OVERFLOW(0), + .C_HAS_RD_DATA_COUNT(0), + .C_HAS_RD_RST(0), + .C_HAS_RST(1), + .C_HAS_SRST(0), + .C_HAS_UNDERFLOW(0), + .C_HAS_VALID(0), + .C_HAS_WR_ACK(0), + .C_HAS_WR_DATA_COUNT(0), + .C_HAS_WR_RST(0), + .C_IMPLEMENTATION_TYPE(2), + .C_INIT_WR_PNTR_VAL(0), + .C_MEMORY_TYPE(1), + .C_MIF_FILE_NAME("BlankString"), + .C_MSGON_VAL(1), + .C_OPTIMIZATION_MODE(0), + .C_OVERFLOW_LOW(0), + .C_PRELOAD_LATENCY(0), + .C_PRELOAD_REGS(1), + .C_PRIM_FIFO_TYPE("512x36"), + .C_PROG_EMPTY_THRESH_ASSERT_VAL(4), + .C_PROG_EMPTY_THRESH_NEGATE_VAL(5), + .C_PROG_EMPTY_TYPE(0), + .C_PROG_FULL_THRESH_ASSERT_VAL(500), + .C_PROG_FULL_THRESH_NEGATE_VAL(499), + .C_PROG_FULL_TYPE(1), + .C_RD_DATA_COUNT_WIDTH(9), + .C_RD_DEPTH(512), + .C_RD_FREQ(1), + .C_RD_PNTR_WIDTH(9), + .C_UNDERFLOW_LOW(0), + .C_USE_DOUT_RST(1), + .C_USE_ECC(0), + .C_USE_EMBEDDED_REG(0), + .C_USE_FIFO16_FLAGS(0), + .C_USE_FWFT_DATA_COUNT(0), + .C_VALID_LOW(0), + .C_WR_ACK_LOW(0), + .C_WR_DATA_COUNT_WIDTH(9), + .C_WR_DEPTH(512), + .C_WR_FREQ(1), + .C_WR_PNTR_WIDTH(9), + .C_WR_RESPONSE_LATENCY(1)) + inst ( + .RST(rst), + .WR_CLK(wr_clk), + .RD_CLK(rd_clk), + .DIN(din), + .WR_EN(wr_en), + .RD_EN(rd_en), + .DOUT(dout), + .FULL(full), + .ALMOST_FULL(almost_full), + .EMPTY(empty), + .PROG_FULL(prog_full), + .BACKUP(), + .BACKUP_MARKER(), + .CLK(), + .SRST(), + .WR_RST(), + .RD_RST(), + .PROG_EMPTY_THRESH(), + .PROG_EMPTY_THRESH_ASSERT(), + .PROG_EMPTY_THRESH_NEGATE(), + .PROG_FULL_THRESH(), + .PROG_FULL_THRESH_ASSERT(), + .PROG_FULL_THRESH_NEGATE(), + .INT_CLK(), + .INJECTDBITERR(), + .INJECTSBITERR(), + .WR_ACK(), + .OVERFLOW(), + .ALMOST_EMPTY(), + .VALID(), + .UNDERFLOW(), + .DATA_COUNT(), + .RD_DATA_COUNT(), + .WR_DATA_COUNT(), + .PROG_EMPTY(), + .SBITERR(), + .DBITERR()); + + +// synthesis translate_on + +endmodule + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.veo b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.veo new file mode 100644 index 000000000..64e6769d6 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.veo @@ -0,0 +1,53 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2009 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The following must be inserted into your Verilog file for this +// core to be instantiated. Change the instance name and port connections +// (in parentheses) to your own signal names. + +//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG +fifo_xlnx_512x36_2clk_prog_full YourInstanceName ( + .rst(rst), + .wr_clk(wr_clk), + .rd_clk(rd_clk), + .din(din), // Bus [35 : 0] + .wr_en(wr_en), + .rd_en(rd_en), + .dout(dout), // Bus [35 : 0] + .full(full), + .almost_full(almost_full), + .empty(empty), + .prog_full(prog_full)); + +// INST_TAG_END ------ End INSTANTIATION Template --------- + +// You must compile the wrapper file fifo_xlnx_512x36_2clk_prog_full.v when simulating +// the core, fifo_xlnx_512x36_2clk_prog_full. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xco b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xco new file mode 100644 index 000000000..f99c3c6fb --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xco @@ -0,0 +1,84 @@ +############################################################## +# +# Xilinx Core Generator version 12.2 +# Date: Thu Nov 11 17:27:10 2010 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = false +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc3s2000 +SET devicefamily = spartan3 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = fg456 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -5 +SET verilogsim = true +SET vhdlsim = false +# END Project Options +# BEGIN Select +SELECT Fifo_Generator family Xilinx,_Inc. 6.1 +# END Select +# BEGIN Parameters +CSET almost_empty_flag=false +CSET almost_full_flag=true +CSET component_name=fifo_xlnx_512x36_2clk_prog_full +CSET data_count=false +CSET data_count_width=9 +CSET disable_timing_violations=false +CSET dout_reset_value=0 +CSET empty_threshold_assert_value=4 +CSET empty_threshold_negate_value=5 +CSET enable_ecc=false +CSET enable_int_clk=false +CSET enable_reset_synchronization=true +CSET fifo_implementation=Independent_Clocks_Block_RAM +CSET full_flags_reset_value=1 +CSET full_threshold_assert_value=500 +CSET full_threshold_negate_value=499 +CSET inject_dbit_error=false +CSET inject_sbit_error=false +CSET input_data_width=36 +CSET input_depth=512 +CSET output_data_width=36 +CSET output_depth=512 +CSET overflow_flag=false +CSET overflow_sense=Active_High +CSET performance_options=First_Word_Fall_Through +CSET programmable_empty_type=No_Programmable_Empty_Threshold +CSET programmable_full_type=Single_Programmable_Full_Threshold_Constant +CSET read_clock_frequency=1 +CSET read_data_count=false +CSET read_data_count_width=9 +CSET reset_pin=true +CSET reset_type=Asynchronous_Reset +CSET underflow_flag=false +CSET underflow_sense=Active_High +CSET use_dout_reset=true +CSET use_embedded_registers=false +CSET use_extra_logic=false +CSET valid_flag=false +CSET valid_sense=Active_High +CSET write_acknowledge_flag=false +CSET write_acknowledge_sense=Active_High +CSET write_clock_frequency=1 +CSET write_data_count=false +CSET write_data_count_width=9 +# END Parameters +GENERATE +# CRC: 6b9f6232 diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xise b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xise new file mode 100644 index 000000000..8bf460ac7 --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xise @@ -0,0 +1,72 @@ + + + +

+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_flist.txt b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_flist.txt new file mode 100644 index 000000000..2eb837a3f --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_flist.txt @@ -0,0 +1,12 @@ +# Output products list for +_xmsgs/pn_parser.xmsgs +fifo_generator_ug175.pdf +fifo_xlnx_512x36_2clk_prog_full.gise +fifo_xlnx_512x36_2clk_prog_full.ngc +fifo_xlnx_512x36_2clk_prog_full.v +fifo_xlnx_512x36_2clk_prog_full.veo +fifo_xlnx_512x36_2clk_prog_full.xco +fifo_xlnx_512x36_2clk_prog_full.xise +fifo_xlnx_512x36_2clk_prog_full_flist.txt +fifo_xlnx_512x36_2clk_prog_full_readme.txt +fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_readme.txt b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_readme.txt new file mode 100644 index 000000000..33d50a91d --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_readme.txt @@ -0,0 +1,47 @@ +The following files were generated for 'fifo_xlnx_512x36_2clk_prog_full' in directory +/home/ianb/ettus/sram_fifo/fpgapriv/usrp2/coregen/ + +fifo_generator_ug175.pdf: + Please see the core data sheet. + +fifo_xlnx_512x36_2clk_prog_full.gise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. + +fifo_xlnx_512x36_2clk_prog_full.ngc: + Binary Xilinx implementation netlist file containing the information + required to implement the module in a Xilinx (R) FPGA. + +fifo_xlnx_512x36_2clk_prog_full.v: + Verilog wrapper file provided to support functional simulation. + This file contains simulation model customization data that is + passed to a parameterized simulation model for the core. + +fifo_xlnx_512x36_2clk_prog_full.veo: + VEO template file containing code that can be used as a model for + instantiating a CORE Generator module in a Verilog design. + +fifo_xlnx_512x36_2clk_prog_full.xco: + CORE Generator input file containing the parameters used to + regenerate a core. + +fifo_xlnx_512x36_2clk_prog_full.xise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. + +fifo_xlnx_512x36_2clk_prog_full_readme.txt: + Text file indicating the files generated and how they are used. + +fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl: + ISE Project Navigator interface file. ISE uses this file to determine + how the files output by CORE Generator for the core can be integrated + into your ISE project. + +fifo_xlnx_512x36_2clk_prog_full_flist.txt: + Text file listing all of the output files produced when a customized + core was generated in the CORE Generator. + + +Please see the Xilinx CORE Generator online help for further details on +generated files and how to use them. + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl new file mode 100644 index 000000000..e1aecccff --- /dev/null +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl @@ -0,0 +1,68 @@ +# The package naming convention is _xmdf +package provide fifo_xlnx_512x36_2clk_prog_full_xmdf 1.0 + +# This includes some utilities that support common XMDF operations +package require utilities_xmdf + +# Define a namespace for this package. The name of the name space +# is _xmdf +namespace eval ::fifo_xlnx_512x36_2clk_prog_full_xmdf { +# Use this to define any statics +} + +# Function called by client to rebuild the params and port arrays +# Optional when the use context does not require the param or ports +# arrays to be available. +proc ::fifo_xlnx_512x36_2clk_prog_full_xmdf::xmdfInit { instance } { +# Variable containg name of library into which module is compiled +# Recommendation: +# Required +utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_xlnx_512x36_2clk_prog_full +} +# ::fifo_xlnx_512x36_2clk_prog_full_xmdf::xmdfInit + +# Function called by client to fill in all the xmdf* data variables +# based on the current settings of the parameters +proc ::fifo_xlnx_512x36_2clk_prog_full_xmdf::xmdfApplyParams { instance } { + +set fcount 0 +# Array containing libraries that are assumed to exist +# Examples include unisim and xilinxcorelib +# Optional +# In this example, we assume that the unisim library will +# be magically +# available to the simulation and synthesis tool +utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library +utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_generator_ug175.pdf +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_prog_full.ngc +utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_prog_full.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_prog_full.veo +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_prog_full.xco +utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_xlnx_512x36_2clk_prog_full +incr fcount + +} + +# ::gen_comp_name_xmdf::xmdfApplyParams diff --git a/usrp2/extramfifo/ext_fifo.v b/usrp2/extramfifo/ext_fifo.v index 44229f846..daf7140bc 100644 --- a/usrp2/extramfifo/ext_fifo.v +++ b/usrp2/extramfifo/ext_fifo.v @@ -132,17 +132,17 @@ module ext_fifo .empty(empty1)); // FIFO buffers data read from external FIFO into DSP clk domain and to TX DSP. - fifo_xlnx_32x36_2clk fifo_xlnx_32x36_2clk_i2 ( - .rst(rst), - .wr_clk(ext_clk), - .rd_clk(int_clk), - .din(read_data), // Bus [35 : 0] - .wr_en(write_output_fifo), - .rd_en(dst_rdy_i), - .dout(dataout), // Bus [35 : 0] - .full(full2), - .empty(empty2), - .prog_full(almost_full2)); + fifo_xlnx_512x36_2clk_prog_full fifo_xlnx_32x36_2clk_prog_full_i1 ( + .rst(rst), + .wr_clk(ext_clk), + .rd_clk(int_clk), + .din(read_data), // Bus [35 : 0] + .wr_en(write_output_fifo), + .rd_en(dst_rdy_i), + .dout(dataout), // Bus [35 : 0] + .full(full2), + .empty(empty2), + .prog_full(almost_full2)); end endgenerate -- cgit v1.2.3 From 08ace12b12136e002bf283b6ca7af20bdccaab57 Mon Sep 17 00:00:00 2001 From: Ian Buckley Date: Thu, 11 Nov 2010 10:12:43 -0800 Subject: Removed 'ifdef for second DCM that was a deign idea for external SRAM on u2plus. Hardcoded -90 degree clcok from first DCM as final solution --- usrp2/top/u2plus/u2plus.v | 53 ++++------------------------------------------- 1 file changed, 4 insertions(+), 49 deletions(-) diff --git a/usrp2/top/u2plus/u2plus.v b/usrp2/top/u2plus/u2plus.v index d4a681731..270655a8d 100644 --- a/usrp2/top/u2plus/u2plus.v +++ b/usrp2/top/u2plus/u2plus.v @@ -217,55 +217,11 @@ module u2plus BUFG dspclk_BUFG (.I(dcm_out), .O(dsp_clk)); BUFG wbclk_BUFG (.I(clk_div), .O(wb_clk)); - -`ifdef DCM_FOR_RAMCLK - wire RAM_CLK_buf; - wire clk100_ext; - wire clk100_ext_buf; - - DCM DCM_INST1 (.CLKFB(RAM_CLK_buf), - .CLKIN(clk_fpga), - .DSSEN(1'b0), - .PSCLK(1'b0), - .PSEN(1'b0), - .PSINCDEC(1'b0), - .RST(1'b0), - .CLK0(clk100_ext) ); - defparam DCM_INST1.CLK_FEEDBACK = "1X"; - defparam DCM_INST1.CLKDV_DIVIDE = 2.0; - defparam DCM_INST1.CLKFX_DIVIDE = 1; - defparam DCM_INST1.CLKFX_MULTIPLY = 4; - defparam DCM_INST1.CLKIN_DIVIDE_BY_2 = "FALSE"; - defparam DCM_INST1.CLKIN_PERIOD = 10.000; - defparam DCM_INST1.CLKOUT_PHASE_SHIFT = "FIXED"; - defparam DCM_INST1.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS"; - defparam DCM_INST1.DFS_FREQUENCY_MODE = "LOW"; - defparam DCM_INST1.DLL_FREQUENCY_MODE = "LOW"; - defparam DCM_INST1.DUTY_CYCLE_CORRECTION = "TRUE"; - defparam DCM_INST1.FACTORY_JF = 16'h8080; - defparam DCM_INST1.PHASE_SHIFT = -64; - defparam DCM_INST1.STARTUP_WAIT = "FALSE"; - - IBUFG RAM_CLK_buf_i1 (.I(RAM_CLK), - .O(RAM_CLK_buf)); - - BUFG clk100_ext_buf_i1 (.I(clk100_ext), - .O(clk100_ext_buf)); - + + // Create clock for external SRAM thats -90degree phase to DSPCLK (i.e) 2nS earlier at 100MHz. + BUFG clk270_100_buf_i1 (.I(clk270_100), + .O(clk270_100_buf)); OFDDRRSE RAM_CLK_i1 (.Q(RAM_CLK), - .C0(clk100_ext_buf), - .C1(~clk100_ext_buf), - .CE(1'b1), - .D0(1'b1), - .D1(1'b0), - .R(1'b0), - .S(1'b0)); - -`else // !`ifdef DCM_FOR_RAMCLK - // assign RAM_CLK = dcm_out; - BUFG clk270_100_buf_i1 (.I(clk270_100), - .O(clk270_100_buf)); - OFDDRRSE RAM_CLK_i1 (.Q(RAM_CLK), .C0(clk270_100_buf), .C1(~clk270_100_buf), .CE(1'b1), @@ -273,7 +229,6 @@ module u2plus .D1(1'b0), .R(1'b0), .S(1'b0)); -`endif // I2C -- Don't use external transistors for open drain, the FPGA implements this IOBUF scl_pin(.O(scl_pad_i), .IO(SCL), .I(scl_pad_o), .T(scl_pad_oen_o)); -- cgit v1.2.3 From 6ead587793fc9ddeb3daff8725fe8c95bf6abfe7 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Thu, 11 Nov 2010 13:32:08 -0800 Subject: these got dropped during the rebase --- usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc | 2 +- usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ngc | 2 +- usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v | 56 ++++++++++++++------------ usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco | 8 ++-- 4 files changed, 37 insertions(+), 31 deletions(-) diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc index 608a5f2fb..d9277b0c3 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc @@ -1,3 +1,3 @@ XILINX-XDB 0.1 STUB 0.1 ASCII XILINX-XDM V1.6e -$45640<,[o}e~g`n;"2*726&;$:,)?40493456712:;<=>?01274>6789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123454<80;0=>5>.130?46=AGZ^X7OKDSC?=?699l1:<7GAPTV9twi`Wog`Rzgrdqk8<<76;?0==4FNQWW>uthoVl~`aQ{hsgplZgt{lx044?>378553CE\XZ5DHC?50<76890=;4@UURVP?BHI5;>6=0>2:3;>LHW]]0oec2>7;2=5>433;98?0086?IR\Y__6IA_A=394;753:81EC^ZT;FJF956294:?6==:NWWTPR=LFH7?<4?>0687301?69l29x>=>?ff662(363=>08=HI1097>LHW]]0OE]L33;2=57=32F__\XZ5DNRA86<7681=>6864:4:=32<09:;866J8@38=1=>8939748;;845=44<13CE\XZ5AEFQF9>=87;n744FNQWW>uthoVof|ywPtipfwm:?29499675IORVP?vugnUna}zv_ujqavnXizyn~y27:1<11>?=AGZ^X7~}of]fiur~W}byi~fPndebp`:?294:n675OTVSQQ55NDEPB858?3HNO^L2>>99B@ATF4;437LJKR@>0:==FLMXJ0907;@FGVD:2611JHI\N<7<;?DBCZH6<255NDEPB8=8f3HNO^L26:1<;?DBCZH62255NDEPA858?3HNO^O2>>99B@ATE4;437LJKRC>0:==FLMXI0907;@FGVG:2611JHI\M<7<;?DBCZK6<2l5NDEPA8=<7611JHI\M<9<0?DJK12KXUCMPRDE0?GS502H^_RGAFN38G7=DM880OEKLK^NJG@HTMV^R\H<4CH68GIMF<2IGGO=4CMP:?FIJE@^_II?;;BMQAZABFLXJXDAA_HLEK2=DZLK_II?4D39GG7=CA?1OEL2?>69GMD:687=0HDO310<4?AOF4885;6JFA=30:2=CAH6:8374DHC?50<76>1OEL2>5?48@LG;97<0HDO32?48@LG;;7<0HDO34?48@LG;=7<0HDO36?48@LG;?7<0HDO38?48@LG;17<0HDL30?58@LD;994<7IGM<03=3>BNJ5;92:5KIC>27;169GMG:6?7=0HDL319<4?AOE4835:6JFB=3=3>BNJ58;2:5KIC>15;1?08;EKA8759?2NBN1<;>69GMG:5=7=0HDL327<4?AOE4;=5;6JFB=0;:2=CAK695384DH@?6;14=7IGM<9<5?AOE404<7IG_A=2==>BNXH6:6=08;EKSE979?2NB\O2?>69GMUD;97=0HD^M<3<:?AOWJ591<394DHRA86813MEJ0=08;EMB8469?2NDM1?>>69GKD:6:7=0HBO312<4?AIF48>556J@A=36>5803MEJ0<;16:FLE979>2NDM1<16:FLE959>2NDM1:16:FLE939>2NDM1816:FLE919>2NDM1616:FLE9?9?2NDMR\JG79GKG:76>1OCO2>0?58@JD;984<7IAM<00=3>BHJ5;82:5KOC>20;169GKG:607=0HBL318<5?AIE484<7IAM<32=3>BHJ58:2:5KOC>16;1>08;EMA8729?2NDN1<:>69GKG:5>7=0HBL326<4?AIE4;25;6J@B=0::3=CGK692:5KOC>04;?69GKG:497<0HBL33?48@JD;<7<0HBL35?48@JD;>7<0HBL37?48@JD;07<0HBL39?58@JDXZLM<7IA_A=2==>BHXH6:6=08;EMSE979?2ND\O2?>69GKUD;97=0HB^M<3<:?AIWJ591<394DNRA86843LDJ?6KABc9FJZCDKVXNMIm4EO]FGFYPZ@^N>6H=2:D;1>@FDZO97KJ<;GF@0>@CKL90JI^;;GFSA1=AL[O?7KH7009D7>AIL81B>6G?2:K26>O5:2C846GAIUR\45>>8:KMMQVX8;20ECG[P^20<>OIA]ZT<964IOKWTZ6202CEEY^P07:8MKOSXV:<56GAIUQWEQC03@DBXR>?7:KMMQY79>1BBDZP0358MKOSW99<7D@FT^273>OIA]U;9:5FNHV\4311BBDZP1358MKOSW89<7D@FT^373>OIA]U:9:5FNHV\531969JJLRX9H=0ECG[_0@4?LHN\V;H;6GAIU]2@2=NF@^T=H94IOKW[4@03@DBXR1BBDZP2358MKOSW;9<7D@FT^073>OIA]U99:5FNHV\631H94IOKW[7@03@DBXR=?7:KMMQY49>1BBDZP3358MKOSW:9<7D@FT^173>OIA]U89:5FNHV\73198;HLJPZ5??2CEEYQ<969JJLRX;H=0ECG[_2@4?LHN\V9H;6GAIU]0@2=NF@^T?H94IOKW[6@13@DBXRO9;HLJPZD43@D]>6BF2:NL2>JHIMOO;6B@GHABH1=K]];?7A[[259OQQ533E__8;5CUU6\@0=J[NEE96CZXB[`?Hgmg{\n~~g`nb9Nmkiu^lxxeb`<;O226>H6<2D:<=:4N0220>H68;>0B<><4:L241286@>0768J460<2D:<5:4N02:7>H69=1E=<>;;O3251=I988?7C?>359M54233G;:995A1047?K76?=1E=<6;;O32=6=I9;>0B<2268J443<2D:>8:4N0050>H6:>>0B<<73:L271=I9:;87C?;3:L216=I9?>0B<8;3:L236=I9190B<7=;O00?K47;2D9=>5A2318J7543G8??6@=529M635H>;:1E59=4N870?K?1;2D2;>5A9918JIL92Z?7]O]T`9SMKYE]ZCOTo5_IO]AQVHFEL90\_K>;P38V`=UIDH::R]>8^Q02d=UMHNTJD\\Tb9QADBX_@N_DROl;SGB@ZQNL]BTN<5\129PMHYDGEFB_DAA_BJFGN0<[F_YOH94SSTBHZG03ZX]MAQM4:QPVD2<[ZXI86ZVPD11?P6(o{l%~k!hcy,`hn~(EqeySjPpovq[beXpfx;<=>PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^pg[uhszVmhSua}0122[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYulVzexQhc^zlv567:VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;<>Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?016\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4562W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;:R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?06]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[rtXxg~ySjmPxnp3456XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^e`[}iu89::S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?2^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2346YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt789>T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=>:_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1232ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678>UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=6PRdqvhq7592_;#j|i.sd,cf~)keas#jPpovq[goi4949=6[?/fpe*w`(ojr%oaew/sf\tkruWkce0<0=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<3<15>S7'nxm"h gbz-gim'{nT|cz}_ckm868592_;#j|i.sd,cf~)keas#jPpovq[goi4=49=6[?/fpe*w`(ojr%oaew/sf\tkruWkce080=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<7<15>S7'nxm"h gbz-gim'{nT|cz}_ckm828592_;#j|i.sd,cf~)keas#jPpovq[goi4149<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS= gsd-vc)`kq$h`fv re]sjqtXj`dT9?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ9219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^514>S7'nxm"h gbz-gim'{nT|cz}_ckm[=413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=>=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45679;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0004?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789;:>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123671<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?3305?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789>9;6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0127570<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<8<8;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34536:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?63:8Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678?;:>:5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123274e3\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=8Pbef363=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;;?94U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos23427582_;#j|i.sd,cf~)keas#jPpovq[be;878;7X> gsd-vc)`kq$h`fv re]sjqtXoj6:2?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo1<1219V4*aun'xm#jmw.bnh|*tcWyd~Ril<2<14>S7'nxm"h gbz-gim'{nT|cz}_fa?0;473\:$kh!rg-dg}(ddbr$~iQnup\cf:26;:0Y=!hrg,qb*adp'iggu!}d^rmpwY`k5<5>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmh0:0=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm38?3e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]35c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[47a3\:$kh!rg-dg}(ddbr$~iQnup\cfY59o1^<"i}f/pe+be&jf`t"|k_qlwvZadW:;m7X> gsd-vc)`kq$h`fv re]sjqtXojU?=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS8?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ91g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_63e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb];63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn6;2?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?5;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol0?0=6:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfc959:?1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyij2;>348Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;=78=7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh<7<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo5=5>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>;:73<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\773<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT8?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\173<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT:?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\373<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT4?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:76;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>2:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<2=>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8682?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:36;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>6:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<29>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86<2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:?6;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]36==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012360=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89::>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012160=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:8>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012760=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:>>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012560=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:<><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb1?1209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=0=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj959:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf5>5><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb1;1209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=4=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj919:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf525><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb171219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^314>S7'nxm"h gbz-gim'~xT|cz}_ckm[7473\:$kh!rg-dg}(ddbr${Qnup\flhX;;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU?>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR;=0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_703?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\376<]9%l~k }f.e`|+ekcq%|~R~ats]amkY?:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV39:6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012362=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;<<<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34575?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>>1348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678;8<7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?010263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;??94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234645>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>;269V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567<88=7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01713>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:>=?84U1-dvc(un&mht#mcky-tvZvi|{UiecQwos23434?3\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=8>1358Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678?89n6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}0125[gbc8;<0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?0604?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt789=:>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh0=0=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm31?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>1:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg959:91^<"i}f/pe+be&jf`t"y}_qlwvZad4=49<6[?/fpe*w`(ojr%oaew/vp\tkruWni793328Q5)`zo$yj"ilx/aoo})pzVzexQhc=5=65=R8&myj#|i/fa{*fjlp&}yS}`{r^e`8=8582_;#j|i.sd,cf~)keas#z|Ppovq[be;17;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU;=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU3=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS4<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8585>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk1?1279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:56;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi33?05?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4=49:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=7=63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn6=2?84U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde?3;413\:$kh!rg-dg}(ddbr${Qnup\cfYf{{ol050=6:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfc9?9:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ?249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY6:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ=249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY4:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ;249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY2:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ9249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY0:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ7249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY>:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=3=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1<1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9595>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5929:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=7=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=181289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95=5>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g59>9:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=;=6==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh55Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5Z?5=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=>=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34575=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=<=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34555=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=:=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34535=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=8=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34515=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=6<0:W3+bta&{l$ka>!re-dv4(un~l#@czx^PBIZTCWLDTJZH[200e?P6(o{l%~k!hl1,q`*au9'xm{kz Mlw{[WGJW[OLCXZPEO326a=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e=2=6a=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e=3=6f=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e^21g>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_016?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykPmtz3457;879=7X> gsd-vc)`d9$yh"i}1/pescr(k|xySkyit^qweqcXe|r;<=?30?301>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_lw{45664848:6[?/fpe*w`(oe:%~i!hr0,qbr`s'jy~Rhxfu]ppdrbWds<=>><0<26==R8&myj#|i/fn3*wb(o{;%~kyit.gntqXn~lSkl=7:W3+bta&{l$ka>!re-dv4(un~l#hctx]escrXa;l0Y=!hrg,qb*ak8'xo#j|>.sdtbq)bey~rSkyit^k\ip~789:8<6[?/fpe*w`(oe:%~i!hr0,qbr`s'lg{xtQiwgv\mZkrp9:;<<<6;T2,cw`)zo%l`= }d.eqev(u{}y$o=!laspzj`r;87827X> gsd-vc)`d9$yh"i}ar,qwqu(k9%hm|vndv?5;4>3\:$kh!rg-dh5(ul&mym~ }suq,g5)di{xrbhz32?0:?P6(o{l%~k!hl1,q`*auiz$yy} c1-`ewt~fl~7?32g9V4*aun'xm#jb?.sf,cwgt&{y"m?/fov|+ajS8W%k`}!mr0e?P6(o{l%~k!hl1,q`*auiz$yy} c1-dip~)odQ9Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a3+bkrp'mfW>S!glq-iv4a3\:$kh!rg-dh5(ul&mym~ }suq,g5)`e|r%k`U;]/enw+kt::1^<"i}f/pe+bj7&{n$ko|.sqww*e7';7<3<<;T2,cw`)zo%l`= }d.eqev(u{}y$o=!y1=3=66=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7;:7887X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=1=1229V4*aun'xm#jb?.sf,cwgt&{y"m?/w3?0;4e3\:$kh!rg-dh5(ul&mym~ }suq,g5)q9V:Tmcj?01226g=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7X9Vkeh=>?000a?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5Z4Xign;<=>>2c9V4*aun'xm#jb?.sf,cwgt&{y"m?/w3\7Zgil9:;<<45Z0.eqb+ta'nf;"j gscp*wus{&i:#no}rxlfp969:01^<"i}f/pe+bj7&{n$ko|.sqww*e6'jky~t`jt=3=6<=R8&myj#|i/fn3*wb(o{kx"}{s.a2+fguzpdnx1<1289V4*aun'xm#jb?.sf,cwgt&{y"m>/bcqv|hb|595>k5Z0.eqb+ta'nf;"j gscp*wus{&i:#jczx/en_5[)od;%a</fov|+ajS;W%k`}!mr0e?P6(o{l%~k!hl1,q`*auiz$yy} c0-dip~)odQ8Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a2+bkrp'mfW9S!glq-iv443\:$kh!rg-dh5(ul&mym~ }suq,g4)q95:5>>5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?31?00?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5949::1^<"i}f/pe+bj7&{n$ko|.sqww*e6';7?3<<;T2,cw`)zo%l`= }d.eqev(u{}y$o?000a?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5Z7Xign;<=>>2c9V4*aun'xm#jb?.sf,cwgt&{y"m>/w3\6Zgil9:;<<o5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?P4^llp567888;7X> gsd-vc)`d9$yh"i}ar,qwqu(kfg{4U1-dvc(un&mg<#|k/fpbw+tt|z%hc`~>289V4*aun'xm#jb?.sf,cwgt&{y"|nm^gntqXnkUb?=5Z0.eqb+ta'nf;"j gscp*wus{&xjaRkbpu{\bgYnWfx;<=><1:W3+bta&{l$ka>!re-dvdu)zz~x#ob_dosp|YajVcTc>?01317>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz>259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq45<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex><;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw072<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~>>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu410>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|>8?7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{83;8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6;2?m4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:76Vx>45Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}979:j1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=3=[wr512_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<3<1g>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0?0Pru0:?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7?37:Zts:01^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=7=6f=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1;1_sv1=>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0;0=c:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4?4T~y<6;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[f;?78h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?3;Yu|;k0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?4;4f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSua}<0<1e>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1<12`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{682?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;<78j7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8085i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=4=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc28>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx74311g9V4*aun'xm#jb?.sf,vuhsz&idycz31?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=0=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?7;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9299o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;=7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5<5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~7;3?i;T2,cw`)zo%l`= }d.psjqt(kfex1611d9V4*aun'xm#jb?.sf,vuhsz&idyczP00g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_03f?P6(o{l%~k!hl1,q`*twf}x$ob{at^02a>S7'nxm"h gm2-va)uxg~y#naznu]05`=R8&myj#|i/fn3*wb(zyd~"m`uov\04c<]9%l~k }f.eo4+tc'{zex!lotlw[07b3\:$kh!rg-dh5(ul&x{by| cnwmpZ06m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY09l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX0;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;7<3<=;T2,cw`)zo%l`= }d.psjqt(kfexRj><0<16>S7'nxm"h gm2-va)uxg~y#naznu]g5949:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl8682?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?34?01?P6(o{l%~k!hl1,q`*twf}x$ob{at^f28085:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc95<5>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<28>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?<;463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W98:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S<<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_302?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[6463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W=8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S8<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_702?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[2463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W18?7X> gsd-vc)`d9$yh"|nup,gjsi|Vddx=>?12d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>2:6`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8784n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:46:l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Ze~4=48j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xkp6>2>h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir0;0!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:Tot28>2d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>::17<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp9776=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5;58;5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567We0<0PIOT\416<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp949<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[iss4:4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xd|~783:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Ugyy2:>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?_mww828382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\hpr;07>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yk}}6229?4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vrd~1??>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?_ymq878382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\|jt;;7>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yg{6?29>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vrd~1;1419V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Sua}<7<74>S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pxnp?3;273\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(EhnoSigif^rmpwYwimUjhi>?01]{kw:?6=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Z~hz535?=5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"jffg]sjqtXxhn7==0=f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{mi2>>3d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok<3<1b>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae>0:7`<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg8185n2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]sea:26;l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugc4?49j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwim6<2?h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWyko050=f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{mi26>3g8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok_00e?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,`l`aWyd~R~nd^336`=R8&myj#|i/fn3*rt(o~kx"j~i.vpsb*bnnoU{by|Pp`f\67c<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[64b3\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(l`lmS}`{r^rb`Z25m2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaY2:l1^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&nbjkQnup\tdbX>;o0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcW>8n7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$hdhi_qlwvZvflV29i6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimU2?55Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"jffg]sjqtXxhnTmij?012?5584?2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaYflm:;<=2>>258Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok_`fg45674;48;6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimUjhi>?01>0:61<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[dbc89:;090<7:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{miQnde2345:26:=0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcWhno<=>?<7<03>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae]b`a67896<2>94U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWykoSljk01238=84?2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaYflm:;<=26>3c8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-svjaXn|fgSd==;T2,cw`)zo%l`= xr.etev(`xo$|~}h psmd[cskdVcTaxv?01100>S7'nxm"h gm2-sw)`hy%k}h!wsre+uthoVl~`aQf_lw{4564989?7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$|ah_gwohZoXe|r;<==>92:8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-svjaXn|fgSdQbuy23467>WZ];??5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"~}of]eqijXaVddx=>?13;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6;2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:66;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>1:7?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2<>3d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(`eR:V"jc>.l31b>S7'nxm"h gm2-sw)`hy%{~z|/b3,chs&ngP=P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28485;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8692?=4U1-dvc(un&mg<#y}/fubw+qt|z%h="x><2<17>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4:36;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S=Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U:Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W;Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4Y4Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t2[1Yffm:;<=?=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs494956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw848512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<3<1=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0>0=f:W3+bta&{l$ka>!ws-dsdu)z~x#n< glw{*bk\8T$la< b13d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.enq}(`eR;V"jc|.lq1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP>P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`6*aj}q$laV=R.fop*hu5n2_;#j|i.sd,ci6){%l{l}!wrvp+f4(ods"jcT4\,div(j{;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0=0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>2:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64;49?6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z<2<>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t28185j2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~8U;Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p6W8Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y5Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t2[6Yffm:;<=?=b:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0]7[dhc89:;=?>4U1-dvc(un&mg<#y}/fubw+qt|z%hc`~>219V4*aun'xm#jb?.vp,crgt&~y"m`mq014>S7'nxm"h gm2-sw)`hy%{~z|/bmnt64c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?4;4c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?5;4c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?6;4c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?7;543\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%laxv!glY3Y+aj9'g:?>5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m1^<"i}f/pe+bj7&~x$kzo|.vqww*afn'i8#{?32?04?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q9595>:5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#mPaof34566:o1^<"i}f/pe+bj7&~x$kzo|.vqww*afn'i8#{?P1^cm`567888m7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!y1^0\ekb789::>k5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m>2b9V4*aun'xm#jb?.vp,crgt&~y"|nm^coijusWog`Rg<4:W3+bta&{l$ka>!ws-dsdu)z~x#ob_`nnkvrXn|fgSdQbuy2345523\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXiegdyQiumn\mZkrp9:;<<=m;T2,cw`)zo%l`= xr.etev(p{}y$~lcPamolwqYa}efTeR``t12354YNF_U;>55Z0.eqb+ta'nf;"z| gvcp*rus{&xjaRhzlm]efZo5=2_;#j|i.sd,ci6){%l{l}!wrvp+wgjWog`Rg=d:W3+bta&{l$ka>!ws-dsdu)z~x#ob_gwohZoXe|r;<=>=e:W3+bta&{l$ka>!ws-dsdu)z~x#ob_gwohZoXe|r;<=>>1e9V4*aun'xm#jb?.vp,vdkX{UnbRg>1g9V4*aun'xm#jb?.vp,vdkX{UnbRg>_000?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by?=4:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp7433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d??:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov761=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}?986[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at707?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs?;>0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz7259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq?512_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<1<1g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir0=0Pru0:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7=31:Zts:01^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=1=6f=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1=1_sv1=>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir090=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4=4T~y<6;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;=78h7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?1;Yu|;30Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPcx>5:7e<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot29>^pw6<=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1912b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5=5Sz=9:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4149o6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8=8Xz}8j7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8585i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=3=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc2=>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7?35:7g<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|37?0b?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey050=a:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZ~hz535>i5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]{kw:>6Vx=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~7<3?i;T2,cw`)zo%l`= xr.usjqt(kfex1?11g9V4*aun'xm#jb?.vp,suhsz&idycz32?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=1=5c=R8&myj#|i/fn3*rt(yd~"m`uov?0;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9399o1^<"i}f/pe+bj7&~x${}`{r.alqkr;>7;m7X> gsd-vc)`d9$|~"ynup,gjsi|5=5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~743?i;T2,cw`)zo%l`= xr.usjqt(kfex1711d9V4*aun'xm#jb?.vp,suhsz&idyczP00g8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_03f?P6(o{l%~k!hl1,tv*qwf}x$ob{at^02a>S7'nxm"h gm2-sw)pxg~y#naznu]05`=R8&myj#|i/fn3*rt(yd~"m`uov\04c<]9%l~k }f.eo4+qu'~zex!lotlw[07b3\:$kh!rg-dh5(pz&}{by| cnwmpZ06m2_;#j|i.sd,ci6){%||cz}/bmvjqY09l1^<"i}f/pe+bj7&~x${}`{r.alqkrX08o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW0897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:0=0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=3=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:56;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7?3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><5<16>S7'nxm"h gm2-sw)pxg~y#naznu]g5939:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl86=2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?37?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28=85:2_;#j|i.sd,ci6){%||cz}/bmvjqYc9535><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<5Z0.eqb+ta'nf;"z| wqlwv*eh}g~ThS7'nxm"h gm2-sw)pxg~y#naznu]g6959:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;6?2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<35?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f18385:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5=5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?27>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?=;463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W98:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S<<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_302?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[6463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W=8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S8<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_702?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[2463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W18:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S4<=;T2,cw`)zo%l`= xr.usjqt(kfexRj<<1<16>S7'nxm"h gm2-sw)pxg~y#naznu]g7979:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl:692?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=33?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f08185:2_;#j|i.sd,ci6){%||cz}/bmvjqYc;5?5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>29>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1?3;453\:$kh!rg-dh5(pz&}{by| cnwmpZb44149>6[?/fpe*w`(oe:%{!xpovq+firf}Uo?171209V4*aun'xm#jb?.vp,suhsz&idyczPd2]364=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y6:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U9><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q<209V4*aun'xm#jb?.vp,suhsz&idyczPd2]764=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y2:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U=><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q8209V4*aun'xm#jb?.vp,suhsz&idyczPd2];64=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y>:=1^<"i}f/pe+bj7&~x${}`{r.alqkrXff~;<=?>7:W3+bta&{l$ahc dnww[l:76820Y=!hrg,qb*kbe&ndyyQf<02=5==R8&myj#|i/lgn+air|Vc7=<0>8:W3+bta&{l$ahc dnww[l:6:7;37X> gsd-vc)jmd%ocxzPi=30:4><]9%l~k }f.ofi*bh}}Ub0<:1199V4*aun'xm#`kb/emvpZo;9<4:46[?/fpe*w`(elg$hb{{_h>22;7?3\:$kh!rg-nah)cg|~Te1?8>0:8Q5)`zo$yj"cjm.flqqYn4825=55Z0.eqb+ta'dof#iazt^k?5<86?2_;#j|i.sd,i`k(lfSd2>>0:8Q5)`zo$yj"cjm.flqqYn4;:5=55Z0.eqb+ta'dof#iazt^k?648602_;#j|i.sd,i`k(lfSd2=2?3;?P6(o{l%~k!bel-gkprXa5882<64U1-dvc(un&gna"j`uu]j8729911^<"i}f/pe+hcj'me~xRg324<2<>S7'nxm"h mdo,`jssW`69:3?7;T2,cw`)zo%fi`!kotv\m9406820Y=!hrg,qb*kbe&ndyyQf<3:=5==R8&myj#|i/lgn+air|Vc7>40>7:W3+bta&{l$ahc dnww[l:56820Y=!hrg,qb*kbe&ndyyQf<22=5==R8&myj#|i/lgn+air|Vc7?<0>8:W3+bta&{l$ahc dnww[l:4:7;37X> gsd-vc)jmd%ocxzPi=10:4><]9%l~k }f.ofi*bh}}Ub0>:1199V4*aun'xm#`kb/emvpZo;;<4:;6[?/fpe*w`(elg$hb{{_h>0:41<]9%l~k }f.ofi*bh}}Ub090>7:W3+bta&{l$ahc dnww[l:268=0Y=!hrg,qb*kbe&ndyyQf<7<23>S7'nxm"h mdo,`jssW`6<2<94U1-dvc(un&gna"j`uu]j8=86?2_;#j|i.sd,i`k(lfSd26>048Q5)`zo$yj"cjm.flqqYnW9;=7X> gsd-vc)jmd%ocxzPi^323>S7'nxm"h mdo,`jssW`U:<<94U1-dvc(un&gna"j`uu]j[476?2_;#j|i.sd,i`k(lfSdQ>2058Q5)`zo$yj"cjm.flqqYnW89:;6[?/fpe*w`(elg$hb{{_h]2041<]9%l~k }f.ofi*bh}}UbS<;>7:W3+bta&{l$ahc dnww[lY6>8=0Y=!hrg,qb*kbe&ndyyQf_0523>S7'nxm"h mdo,`jssW`U:4<94U1-dvc(un&gna"j`uu]j[4?6>2_;#j|i.sd,i`k(lfSdQ=169V4*aun'xm#`kb/emvpZoX:9;<7X> gsd-vc)jmd%ocxzPi^0252=R8&myj#|i/lgn+air|VcT>??8;T2,cw`)zo%fi`!kotv\mZ449>1^<"i}f/pe+hcj'me~xRgP2534?P6(o{l%~k!bel-gkprXaV8>=:5Z0.eqb+ta'dof#iazt^k\63703\:$kh!rg-nah)cg|~TeR<8169V4*aun'xm#`kb/emvpZoX:1;<7X> gsd-vc)jmd%ocxzPi^0:53=R8&myj#|i/lgn+air|VcT?<94U1-dvc(un&gna"j`uu]j[666?2_;#j|i.sd,i`k(lfSdQ<1058Q5)`zo$yj"cjm.flqqYnW:8:;6[?/fpe*w`(elg$hb{{_h]0741<]9%l~k }f.ofi*bh}}UbS>:>7:W3+bta&{l$ahc dnww[lY4=8<0Y=!hrg,qb*kbe&ndyyQf_535?P6(o{l%~k!bel-gkprXaV?::6[?/fpe*w`(elg$hb{{_h]553=R8&myj#|i/lgn+air|VcT;<84U1-dvc(un&gna"j`uu]j[=713\:$kh!rg-nah)cg|~TeR7>9:W3+bta&{l$ahc dnww[hcj494:m6[?/fpe*w`(elg$hb{{_lgn84699h1^<"i}f/pe+hcj'me~xRcjm=32:4g<]9%l~k }f.ofi*bh}}Ufi`2>2?3b?P6(o{l%~k!bel-gkprXelg7=>0>a:W3+bta&{l$ahc dnww[hcj48>5=l5Z0.eqb+ta'dof#iazt^ofi97268k0Y=!hrg,qb*kbe&ndyyQbel>22;7f3\:$kh!rg-nah)cg|~Tahc316<2e>S7'nxm"h mdo,`jssWdof0<611`9V4*aun'xm#`kb/emvpZkbe5;22<74U1-dvc(un&gna"j`uu]nah:668k0Y=!hrg,qb*kbe&ndyyQbel>14;7f3\:$kh!rg-nah)cg|~Tahc320<2e>S7'nxm"h mdo,`jssWdof0?<11`9V4*aun'xm#`kb/emvpZkbe5882 gsd-vc)jmd%ocxzPmdo?6086i2_;#j|i.sd,i`k(lfS`kb<34=5d=R8&myj#|i/lgn+air|Vgna1<8>0c8Q5)`zo$yj"cjm.flqqYjmd6943?n;T2,cw`)zo%fi`!kotv\i`k;:04:56[?/fpe*w`(elg$hb{{_lgn8786i2_;#j|i.sd,i`k(lfS`kb<22=5d=R8&myj#|i/lgn+air|Vgna1=>>0c8Q5)`zo$yj"cjm.flqqYjmd68>3?n;T2,cw`)zo%fi`!kotv\i`k;;:4:m6[?/fpe*w`(elg$hb{{_lgn86299h1^<"i}f/pe+hcj'me~xRcjm=16:4?<]9%l~k }f.ofi*bh}}Ufi`2<>0;8Q5)`zo$yj"cjm.flqqYjmd6?2<74U1-dvc(un&gna"j`uu]nah:26830Y=!hrg,qb*kbe&ndyyQbel>5:4?<]9%l~k }f.ofi*bh}}Ufi`28>0;8Q5)`zo$yj"cjm.flqqYjmd632<74U1-dvc(un&gna"j`uu]nah:>6>>0Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+sgkam$hy| r`ookjv\8T$ym` }/r1\jjoia}$ym`!kpscn*av60q9="ob1c9V4*aun'xm#`kb/uos[wgjW{nTic?l;T2,cw`)zo%fi`!{mq]qehYulVoe=<94U1-dvc(un&xjaR|jgnww[`h6l2_;#j|i.sd,vvredb%yhR||t^cpv`a582_;#j|i.sd,vvredb%yhR||t^cpv`aXl88;7X> gsd-vc)u{}hgg"|k_sqw[duumnUo>d:W3+bta&{l$~~zmlj-q`Ztt|VxnkR>>d:W3+bta&{l$~~zmlj-q`Ztt|VxnkR?>d:W3+bta&{l$~~zmlj-q`Ztt|VxnkR<>d:W3+bta&{l$~~zmlj-tvZtt|Vkx~hi=0:W3+bta&{l$~~zmlj-tvZtt|Vkx~hiPd003?P6(o{l%~k!}su`oo*quW{ySl}}ef]g64e<]9%l~k }f.pppgjl'~xT~~zPcnoa5a=R8&myj#|i/sqwfim({UyyQlol`25`=R8&myj#|i/sqwfim({UyyQ}ef>3:4c<]9%l~k }f.pppgjl'~xT~~zPrde?5;7c3\:$kh!rg-qwqdkc&}yS}{_sgd[57c3\:$kh!rg-qwqdkc&}yS}{_sgd[4g<]ZOYSLBFARa8QVCUW_CXEOBJ3:T@G<=QAL]TXT^J3:UFE6=PMKi0[_G[E^OL@@YFk2]YEYKPMNFF[Gb<_[C_IRYFDUJ\Ea=PZ@^NSZGKTI]A5a=_AECET VKB!2-5%US]K*;"<.NSBKJ1>^HZJS=7U][LH@4?]USWNDO;6V\T^T@Gg=_WJEYIRGAFN48\adXAml0TifPPsknR`ttafd:<6Vkm^ObnjtQm{ybcc??;Yfn[Hoig{\n~~g`nb9bhhit|Vof|ywm;`nnkvrXn|fg:6lncjws`>dfkb{S`o}kdp0?fjll2njxlQlotlw,5/c3mkmRm`uov+5,bbf|hUhcx`{(5+g?agsiVidycz'5(f8`drfWje~by&9)e9geqgXkfex%9&d:fbpdYdg|d$5'k;ecweZeh}g~#5$h4d`vb[firf}626=08;e`jp`tu>2nbb%>&6:fjj-7.?2nbb%??)69gmk.69 =0hd`'13+4?aoi 89";6jfn)37-2=cag":9$94dhl+53/03mce$<9&6:fjj-4.>2nbb%=&6:fjj-2.>2nbb%;&6:fjj-0.>2nbb%9&6:fjj->.>2nbb%7&6:fjj969?2nbb1??>69gmk:697=0hd`313<4?aoi4895;6jfn=37:2=cag6:9394dhl?538>3mce0<950?58`lh;9>4=7iga<0<5?aoi4;4=7iga<2<5?aoi4=4=7iga<4<5?aoi4?4=7iga<6<5?aoi414=7iga<8<4?air|!:";6j`uu*2-==cg|~#=='7;emvp-76!11ocxz'13+;?air|!;8%55kotv+51/?3me~x%?:)99gkpr/9?#37iazt)34-==cg|~#=5'7;emvp-7>!>1ocxz'2(:8`jss ;:"46j`uu*15,>bh}}"99$64dnww,70.02ndyy&=7(:8`jss ;2"46j`uu*1=,1'7;emvp-57!11ocxz'30+;?air|!99%55kotv+76/?3me~x%=;)99gkpr/;<#<7iazt)6*3>bh}}">%:5kotv+2,1.?2ndyy&6)69gkpr;8720hb{{<02=<>bh}}6:=364dnww844902ndyy2>3?:8`jss48>546j`uu>21;>bh}}6:5394dnww848?3me~x199gkpr;:8437iazt=01:==cg|~7>>07;emvp943611ocxz324<;?air|58=255kotv?628?3me~x1<7>99gkpr;:04<7iazt=0=<>bh}}68<364dnww867902ndyy2<2?:8`jss4:9546j`uu>00;g;50?:8`jss4:?5;6j`uu>0:2=cg|~78394dnww80803me~x1817:flqq:06>1ocxz38?58`jss40437hjff3ld`0=bey~r>k5iigm\c`hbzh~d~Rx9_0.#\ljnfq*HC_K/Gdlfvdrhz);9"=?v<6^0`hnY60}e8:>o4fhdl[}jipV?:>u=9_3aooZ7?|f9= kgio^efj`tf|fxTz;Q>,OMMA)HHFL>;?6hffn]{hk~X=88s?;Q=cmi\5=rh;?&mekaPgdlfvdrhzV|=S<"tc^jbwZoi|Vigg0>#c^jbwZuu{}7; nQ}d^dqat;6$jUnbllce^pppZu~fj7: nQgar]q`Zbf|hUhcx`{=1.`[aoiW~coxe3>8-a\lduX{UomyoPcnwmp86+kVl~`aQil`ep[wusWkg1="l_hosh`kbf}keb`Ptxrf97*dW|ynShcmeeff`Ztbo4:'oRy}_gpfu87+kVxiRj`uu]qwq;6$jU~bik}fmmt[iip59&hSeo|_ntfvcjh4:'oR~}emmb`Zjf|ldhu0>#c^flqqYpam~c1>8#c^opcjhX~hf6=!mPre]gauro5<;9 nQjrsmq[lhmmj~bccQ{yqg>4)eX`hyTycjjrgnls86+kVbjRocmnqw[cskd4;'oRfns^ppp87+kVnjxlQlotlw[roc|a7:4)eXx{elSk{cl^vkv`uoWgolmykPv`n>5573$jU|~Rjjpuj>5543$jU{~biPelrw}ZrozlycSckhaug\rdj:=%iT|ah_dosp|Ys`{oxdRo|sdpw[sgk5=&hSeo|_wcoma;7$jU{~biPftno[qnumzbTm~}jru]uei;688?'obcoogmpZhfel7mekaPxml{[075p:nbd_0:wk60+kV|j`djPlnu>4)eXx{cfSkgio^vzt`;6cq;3 nQrne\bpjkW}s{i0?#c^ofijt~W}s{i0?#}248bl`hWqfetR;>2y15[7ekcV;3xb=9_gkekZabflxjxb|Pv7]2[}usW8>0jxbcd:kmn`eslkci|k;hliafrtj`~n~94iov\gim?3gmhnxgcd99lr`tadf}j7}|`g^gntq6<2zycjQjmqvz[qnumzb#<$?;;qplcZcjx}sTxe|jsi*2-42vugnUna}zv_ujqavn/< ;?7}|`g^gntqX|axne&:)068twi`Wlg{xtQ{hsgpl-0.9=1{~biPelrw}Zrozlyc$:'>4:rqkbYbey~rSyf}erj+<,713yxdkRkbpu{\pmtb{a636=0>b:rqkbYbey~rSyf}erj\evubz}";%vugnUna}zv_ujqavnXizyn~y&9)0`8twi`Wlg{xtQ{hsgplZgt{lx$:'>b:rqkbYbey~rSyf}erj\evubz}"3%vugnUna}zv_ujqavnXflmjxh&:)0`8twi`Wlg{xtQ{hsgplZhboh~n$;'>b:rqkbYbey~rSyf}erj\j`af|l"<%5rne\bpjkW}byi~f'1(30?uthoVl~`aQ{hsgpl-4.9:1{~biPftno[qnumzb#?$?<;qplcZ`rdeUdk|h)6*56=wzfmTjxbc_ujqavn/= ;87}|`g^dvhiYs`{oxd%8&129svjaXn|fgSyf}erj+3,743yxdkRhzlm]wlwct`!2"=>5rne\bpjkW}byi~f'9(36?uthoVl~`aQ{hsgpl9?=87;j7}|`g^dvhiYs`{oxdRo|sdpw,5/6i2zycjQiumn\pmtb{aUj~k}t)3*5d=wzfmTjxbc_ujqavnXizyn~y&=)0c8twi`Wog`Rzgrdqk[dutm{~#?$?n;qplcZ`rdeUdk|h^cpw`ts =#:m6~}of]eqijX|axneQnsrgqp-3.9h1{~biPftno[qnumzbTm~}jru*5-4ga:rqkbYa}efTxe|jsi]bwvcu|!3"=n5rne\bpjkW}byi~fParqfvq:>294:m6~}of]eqijX|axneQaefcwa-6.9h1{~biPftno[qnumzbTbhintd*2-4g'>a:rqkbYa}efTxe|jsi]mabgsm!>"=l5rne\bpjkW}byi~fPndebp`.2!8k0|ah_gwohZrozlycSckhaug+2,7f3yxdkRhzlm]wlwct`Vdnklzj(6+2e>vugnUmyabPtipfwmYimnki%6&1`9svjaXn|fgSyf}erj\j`af|l"2%4re]geqgXkfex%=&119q`Zbf|hUhcx`{(5+24>tcWmkmRm`uov+1,773{nThlzn_bmvjq.1!8:0~iQkauc\gjsi|!="==5}d^fbpdYdg|d$5'>0:pg[agsiVidycz30?31?wbXlh~jSnaznu>;>5823{nTic84re]qwq5uu{}837yc/^ad+coagVrgbuQ:13z02Z4ddbU:4ya<6/ldk1=sz|o27x`kesdokr3<~hfbh;5xr^c`o3=pzVigg<>4ws]geqgXkfex%>&119tvZbf|hUhcx`{(0+24>quWmkmRm`uov+6,773~xThlzn_bmvjq.4!8:0{Qkauc\gjsi|!>"==5xr^fbpdYdg|d$8'>0:uq[agsiVidycz'6(33?rtXlh~jSnaznu*4-46<{UomyoPcnwmp->.991|~Rjnt`]`kphs 0#:>6y}_ecweZeh}g~757>15:uq[`h13~xT~~zr@Ar``==GHq?=>7H54;3xW1c==991;7?<2c4g6?4f:k=pb96=:09m0=5=>2.?4=4;7`9~W1e==991;7?<2c4g6?4f:k=0_<5<6;;h=h?4=a3`;?V2d2<:n6=4>33`5`7<5i;h37i;?6;295?7|[=o19==57;306g0c:38j>o94vU3;e?6=93;1=n>tS5g9155=?3;8>o8k2;0b6g1<,==86<{#9>o1=55m51494?5a2:08jvF;709Y01<5s8=1==4r$0:e>0613->;>4?::m64d<722e><94?::k622<722c>9k4?::m7`2<72-;3<7:ia:l23c<732e?h;4?:%3;4?2ai2d:;k4>;:m7`0<72-;3<7:ia:l23c<532e?h94?:%3;4?2ai2d:;k4<;:m7`6<72-;3<7:ia:l23c<332e?h?4?:%3;4?2ai2d:;k4:;:m7`5<72-;3<7:ia:l23c<132e?ok4?:%3;4?2ai2d:;k48;:m7g`<72-;3<7:ia:l23c54gc8j41a28807b:l2;29 4>72=lj7c?8f;30?>i3k80;6)?70;6ee>h6?o0:865`4b294?"6090?jl5a16d950=8:9l0ge=83.:4=4;f`9m52`=9010c9jk:18'5=6=!7?83>mm6`>7g82g>=h8187bd=i9>l1=i54o5f:>5<#91:18ko4n05e>4c<3f>o47>5$0:3>1`f3g;54gc8j41a2;807b:ma;29 4>72=lj7c?8f;00?>o31l0;6)?70;6bb>h6?o0;76g;9e83>!7?83>jj6`>7g82?>o31j0;6)?70;6bb>h6?o0976g;9c83>!7?83>jj6`>7g80?>o31h0;6)?70;6bb>h6?o0?76g;9883>!7?83>jj6`>7g86?>o3110;6)?70;6bb>h6?o0=76g;9683>!7?83>jj6`>7g84?>o3i?0;6)?70;6bb>h6?o0376g;a483>!7?83>jj6`>7g8:?>o3i=0;6)?70;6bb>h6?o0j76g;a283>!7?83>jj6`>7g8a?>o3i;0;6)?70;6bb>h6?o0h76g;a083>!7?83>jj6`>7g8g?>o3i90;6)?70;6bb>h6?o0n76g;9g83>!7?83>jj6`>7g8e?>o31?0;6)?70;6bb>h6?o0:<65f48794?"6090?mk5a16d954=5<6290;wE:81:&2tH552?!7?n3n<7bj9:188yg24290j:7?74;3`4~N3?81Q894>6z0;>71=:00h644n:c823?772;k1h7m5d;34>7g=:10:<7l5a;;96<<5?3w/=5h551;8 11==9=0(9j551:8 41>28=h7d;=3;29 4>72<8?7c?8f;28?l35:3:1(<6?:407?k70n3;07d;=1;29 4>72<8?7c?8f;08?l3583:1(<6?:407?k70n3907d;>f;29 4>72<8?7c?8f;68?l36m3:1(<6?:407?k70n3?07d;>d;29 4>72<8?7c?8f;48?l36k3:1(<6?:407?k70n3=07d;>b;29 4>72<8?7c?8f;:8?l37k3:17d;:e;29?l3193:17b;95;29?l3613:1(<6?:43b?k70n3:07d;>8;29 4>72<;j7c?8f;38?l36?3:1(<6?:43b?k70n3807d;>6;29 4>72<;j7c?8f;18?l36=3:1(<6?:43b?k70n3>07d;>4;29 4>72<;j7c?8f;78?l36;3:1(<6?:43b?k70n3<07d;>2;29 4>72<;j7c?8f;58?l3693:1(<6?:43b?k70n3207d;:d;29?j37n3:17d;=d;29 4>72<8n7c?8f;28?l35k3:1(<6?:40f?k70n3;07d;=b;29 4>72<8n7c?8f;08?l35i3:1(<6?:40f?k70n3907d;=9;29 4>72<8n7c?8f;68?l3503:1(<6?:40f?k70n3?07d;=7;29 4>72<8n7c?8f;48?l35>3:1(<6?:40f?k70n3=07d;=5;29 4>72<8n7c?8f;:8?j2?=3:17b:62;29 4>72=387c?8f;28?j2>93:1(<6?:5;0?k70n3;07b:60;29 4>72=387c?8f;08?j2?n3:1(<6?:5;0?k70n3907b:7e;29 4>72=387c?8f;68?j2?l3:1(<6?:5;0?k70n3?07b:7c;29 4>72=387c?8f;48?j2?j3:1(<6?:5;0?k70n3=07b:7a;29 4>72=387c?8f;:8?j2?13:1(<6?:5;0?k70n3307b;=f;29?l30;3:17d;<9;29 4>72<9j7c?8f;28?l3403:1(<6?:41b?k70n3;07d;<7;29 4>72<9j7c?8f;08?l34>3:1(<6?:41b?k70n3907d;<5;29 4>72<9j7c?8f;68?l34<3:1(<6?:41b?k70n3?07d;<3;29 4>72<9j7c?8f;48?l34:3:1(<6?:41b?k70n3=07d;<1;29 4>72<9j7c?8f;:8?l3483:1(<6?:41b?k70n3307b;?a;29?j37<3:17d;97;29?l2??3:17d;;4;29 4>72<>>7c?8f;28?l33;3:1(<6?:466?k70n3;07d;;2;29 4>72<>>7c?8f;08?l3393:1(<6?:466?k70n3907d;;0;29 4>72<>>7c?8f;68?l34n3:1(<6?:466?k70n3?07d;72<>>7c?8f;48?l34l3:1(<6?:466?k70n3=07d;72<>>7c?8f;:8?l34j3:1(<6?:466?k70n3307d;;f;29 4>72727272723:1(<6?:473?k70n3307b:74;29?l37l3:17d:78;29?l30<3:17b;90;29?j31>3:17d;:f;29?j2c?3:1(<6?:5db?k70n3:07b:k6;29 4>72=lj7c?8f;38?j2c=3:1(<6?:5db?k70n3807b:k4;29 4>72=lj7c?8f;18?j2c;3:1(<6?:5db?k70n3>07b:k2;29 4>72=lj7c?8f;78?j2c83:1(<6?:5db?k70n3<07b:lf;29 4>72=lj7c?8f;58?j2dm3:1(<6?:5db?k70n3207b:ld;29 4>72=lj7c?8f;;8?j2dk3:1(<6?:5db?k70n3k07b:lb;29 4>72=lj7c?8f;`8?j2di3:1(<6?:5db?k70n3i07b:l9;29 4>72=lj7c?8f;f8?j2d03:1(<6?:5db?k70n3o07b:l7;29 4>72=lj7c?8f;d8?j2d=3:1(<6?:5db?k70n3;;76a;c583>!7?83>mm6`>7g825>=h8187bd=i9>l1=?54o5a1>5<#91:18ko4n05e>45<3f>h=7>5$0:3>1`f3g;54gc8j41a28=07b:md;29 4>72=lj7c?8f;3;?>i3jj0;6)?70;6ee>h6?o0:565`4ef94?"6090?jl5a16d95d=d:9l0a?=83.:4=4;f`9m52`=9l10c9j7:18'5=6=!7?83>mm6`>7g815>=h8187bd=i9>l1>?54o5`b>5<#91:18ko4n05e>75<3`>2i7>5$0:3>1ga3g;4;h6:`?6=,82;69oi;o34b?7<3`>2o7>5$0:3>1ga3g;2m7>5$0:3>1ga3g;247>5$0:3>1ga3g;j:7>5$0:3>1ga3g;j87>5$0:3>1ga3g;j>7>5$0:3>1ga3g;j<7>5$0:3>1ga3g;2:7>5$0:3>1ga3g;=83.:4=4:5b9m52`=:21d98950;&2<5<2=j1e=:h53:9l100=83.:4=4:5b9m52`=<21d98;50;&2<5<2=j1e=:h55:9l102=83.:4=4:5b9m52`=>21d98=50;&2<5<2=j1e=:h57:9l104=83.:4=4:5b9m52`=021d9:?50;&2<5<2?;1e=:h50:9l126=83.:4=4:739m52`=921d9;h50;&2<5<2?;1e=:h52:9l13c=83.:4=4:739m52`=;21d9;j50;&2<5<2?;1e=:h54:9l13e=83.:4=4:739m52`==21d9;l50;&2<5<2?;1e=:h56:9l13g=83.:4=4:739m52`=?21d9;750;&2<5<2?;1e=:h58:9l13>=83.:4=4:739m52`=121d9<>50;9j15d=831d84:50;9j107=831d9;:50;9a02b=83;1<7>t$0:e>a1<@==h7E:81:mg2?6=3th?;h4?:083>5}#91l18:<4H55`?M2092e:;i4?::a6d6=83>1<7>t$0:e>a4<@==h7E:81:&f1?0>o6080;66a>8383>>{e<a2jl0D99l;I645>N3:2.:??4:629'a0<63`>>6=44i5d94?=h9181<75rb54:>5<4290;w)?7f;ae?M20k2B?;<5G439'564==?90(h;51:k71?6=3`>m6=44o0:1>5<>h7>53;294~"60o0hj6F;7b9K027<@=80(<==:440?!c2281b884?::k7b?6=3f;3>7>5;|`722<72<0;6=u+19d9`6=O<>i0D99>;I61?!74:3?=?6g;5;29?l212900e9h50;9j5=7=831d=5<50;9~f10?29086=4?{%3;b?ea3A>o3=3:17d:i:188k4>52900qo::c;291?6=8r.:4k4k3:J73f=O<>;0D9<4$011>0043`>>6=44i5494?=n8083>>i60;0;66sm47494?2=83:p(<6i:e08L11d3A><=6*j5;48m13=831b8k4?::k2<4<722e:4?4?::a033=83>1<7>t$0:e>a4<@==h7E:81:&f1?0>o6080;66a>8383>>{e1<7:50;2x 4>a2m80D99l;I645>"b=3<0e9;50;9j0c<722c:4<4?::m2<7<722wi8;h50;694?6|,82m6i<4H55`?M2092.n9784i5794?=n8083>>i60;0;66sm47g94?2=83:p(<6i:e08L11d3A><=6*j5;48m13=831b8k4?::k2<4<722e:4?4?::a642=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd59:0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<7>54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn??>:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm20294?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`14c<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg47m3:187>50z&25;h6a>5<=m50;694?6|,82m6i>4H55`?M2092.n97?4i5794?=nb383>1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f4d7290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e9hl1<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th:mh4?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo?nd;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb0c`>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a5dd=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd6ih0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn?;i:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm24g94?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`11a<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg42k3:187>50z&25;h6a>5<8o50;694?6|,82m6i>4H55`?M2092.n97?4i5794?=n1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f4`f290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e9o31<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th:j54?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo?i7;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb0d5>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a5c3=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd6n=0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm25g94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25f94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25a94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25`94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25c94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25;94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25:94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25594?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25494?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25794?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d:94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d594?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d494?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d794?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d694?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d194?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d094?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d394?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d294?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1e494?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`2`0<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg7c<3:187>50z&25;h6a>5<4H55`?M2092.n97?4i5794?=nd083>1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f4ea290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e9jo1<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th9?l4?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo<<9;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb31;>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a661=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd5;?0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn?=;:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm22194?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`177<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg4493:187>50z&25;h6a>5<7>5;|`1`3<72<0;6=u+19d9`4=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2e2900e9h50;9l5=4=831vn?j::186>5<7s-;3j7j>;I64g>N3?81/i84>;h66>5<>o3n3:17b?72;29?xd5l=0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb3f0>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th9h?4?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f7b7290>6=4?{%3;b?b63A>>6=44i5494?=n0<729q/=5h5d29K02e<@==:7)k::79j00<722c?:7>5;h6e>5<5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a6f2=8391<7>t$0:e>11e3A>44?::m23g<722wi>n=50;194?6|,82m699m;I64g>N3?81b854?::k26<<722e:;o4?::a6gg=83>1<7>t$0:e>4543A>=7>5;h3;5;|`1g7<72:0;6=u+19d902d<@==h7E:81:k75;n34f?6=3th9n54?:583>5}#91l1=>=4H55`?M2092c?47>5;h72>5<5<53;294~"60o0?;o5G46a8L1163`>36=44i00:>5<8g8276=O<>i0D99>;h6;>5<h1<75rb3a3>5<4290;w)?7f;64f>N3?j1C8:?4i5:94?=n9;31<75`16`94?=zj;h?6=4;:183!7?n3;8?6F;7b9K027>o6010;66a>7c83>>{e:kl1<7=50;2x 4>a2==i7E:8c:J734=n<10;66g>2883>>i6?k0;66sm2c094?2=83:p(<6i:010?M20k2B?;<5f4983>>o293:17d?78;29?j70j3:17pl=bd83>6<729q/=5h546`8L11d3A><=6g;8;29?l7513:17b?8b;29?xd5j90;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg4el3:1?7>50z&2329K02e<@==:7d:7:188m07=831b=5650;9l52d=831vn?ll:180>5<7s-;3j7:8b:J73f=O<>;0e9650;9j57?=831d=:l50;9~f7gd290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a6`?=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo;0(h;51:k71?6=3`>=6=44i5`94?=n8383>>{e:l=1<7;50;2x 4>a2m;0D99l;I645>"b=3;0e9;50;9j03<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi>h;50;794?6|,82m6i?4H55`?M2092.n97?4i5794?=n50z&25;h65>5<>i60;0;66sm2d194?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<7>55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a6`7=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo<84;290?6=8r.:4k4k2:J73f=O<>;0(h;56:k71?6=3`>m6=44i0:2>5<8g8g6>N3?j1C8:?4$d792>o3=3:17d:i:188m4>62900c<6=:188yg41n3:187>50z&25;h6a>5<50;194?6|,82m699m;I64g>N3?81b854?::k26<<722e:;o4?::a75?=8391<7>t$0:e>11e3A>44?::m23g<722wi>k:50;694?6|,82m6<=<;I64g>N3?81b854?::k65?6=3`;347>5;n34f?6=3th8<54?:283>5}#91l18:l4H55`?M2092c?47>5;h31=?6=3f;5;|`1b6<72=0;6=u+19d9565<@==h7E:81:k75<8g873g=O<>i0D99>;h6;>5<5<7>54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj::=6=4<:183!7?n3>h1<75rb3d2>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm31794?5=83:p(<6i:55a?M20k2B?;<5f4983>>o6:00;66a>7c83>>{e:o:1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd48=0;6>4?:1y'5=`=<>h0D99l;I645>o303:17d?=9;29?j70j3:17pl=eg83>1<729q/=5h51218L11d3A><=6g;8;29?l362900e<67:188k41e2900qo=?3;297?6=8r.:4k4;7c9K02e<@==:7d:7:188m44>2900c<9m:188yg4bm3:187>50z&2=831d=:l50;9~f66529086=4?{%3;b?20j2B?;n5G4638m1>=831b=?750;9l52d=831vn?kk:187>5<7s-;3j7?<3:J73f=O<>;0e9650;9j14<722c:454?::m23g<722wi?=?50;194?6|,82m699m;I64g>N3?81b854?::k26<<722e:;o4?::a6`e=83>1<7>t$0:e>4543A>=7>5;h3;5;|`1ag<72=0;6=u+19d9565<@==h7E:81:k75<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f67c290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e;8i1<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th8=o4?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo=>a;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb23:>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a74>=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd49>0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn>?;:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm33:94?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj;396=4;:183!7?n3;8?6F;7b9K027>o6010;66a>7c83>>{e:0;1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd5190;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg4?n3:187>50z&2=831d=:l50;9~f7>7290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a62`=83>1<7>t$0:e>4543A>=7>5;h3;5;|`13`<72=0;6=u+19d9565<@==h7E:81:k75<8g8276=O<>i0D99>;h6;>5<h1<75rb35`>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm3c`94?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a7gg=83?1<7>t$0:e>a5<@==h7E:81:&f1?0>o3n3:17d?71;29?j7?:3:17pl0<729q/=5h5d09K02e<@==:7)k::09j00<722c?:7>5;h6a>5<7>5;|`0g5<72<0;6=u+19d9`4=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2e2900e9h50;9l5=4=831vn>lj:186>5<7s-;3j7j>;I64g>N3?81/i84>;h66>5<>o3n3:17b?72;29?xd4jo0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb2a2>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th8o?4?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f6ea290>6=4?{%3;b?b63A>>6=44i5494?=n0<729q/=5h5d29K02e<@==:7)k::79j00<722c?:7>5;h6e>5<5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a7a6=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo=k1;291?6=8r.:4k4k1:J73f=O<>;0(h;51:k71?6=3`>=6=44i5`94?=n8383>>{e;m>1<7;50;2x 4>a2m;0D99l;I645>"b=3;0e9;50;9j03<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi?i=50;794?6|,82m6i?4H55`?M2092.n97?4i5794?=n50z&25;h65>5<>i60;0;66sm3e494?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a7de=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo=ne;291?6=8r.:4k4k1:J73f=O<>;0(h;51:k71?6=3`>=6=44i5`94?=n8383>>{e;hk1<7;50;2x 4>a2m;0D99l;I645>"b=3;0e9;50;9j03<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi?ll50;794?6|,82m6i?4H55`?M2092.n97?4i5794?=n50z&25;h65>5<>i60;0;66sm3`494?3=83:p(<6i:e18L11d3A><=6*j5;48m13=831b8;4?::k7b?6=3`;3=7>5;n3;6?6=3th8m54?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f6g2290>6=4?{%3;b?b43A>>6=44i5494?=n8083>>i60;0;66sm38;94?5=83:p(<6i:55a?M20k2B?;<5f4983>>o6:00;66a>7c83>>{e;021<7=50;2x 4>a2==i7E:8c:J734=n<10;66g>2883>>i6?k0;66sm39g94?2=83:p(<6i:010?M20k2B?;<5f4983>>o293:17d?78;29?j70j3:17pl<9683>6<729q/=5h546`8L11d3A><=6g;8;29?l7513:17b?8b;29?xd40j0;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg5>>3:1?7>50z&2329K02e<@==:7d:7:188m07=831b=5650;9l52d=831vn>7::180>5<7s-;3j7:8b:J73f=O<>;0e9650;9j57?=831d=:l50;9~f6>?290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a7<2=8391<7>t$0:e>11e3A>44?::m23g<722wi?5850;694?6|,82m6<=<;I64g>N3?81b854?::k65?6=3`;347>5;n34f?6=3th85>4?:283>5}#91l18:l4H55`?M2092c?47>5;h31=?6=3f;5;|`0<1<72=0;6=u+19d9565<@==h7E:81:k75<8g873g=O<>i0D99>;h6;>5<5<7>54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj:3:6=4<:183!7?n3>h1<75rb2:3>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm38294?5=83:p(<6i:55a?M20k2B?;<5f4983>>o6:00;66a>7c83>>{e;>o1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd4mh0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb2g:>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th8i54?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f6c0290>6=4?{%3;b?b63A>>6=44i5494?=n0<729q/=5h5d09K02e<@==:7)k::09j00<722c?:7>5;h6a>5<6=4::183!7?n3n:7E:8c:J734=#m<0:7d:::188m10=831b8o4?::k7b?6=3f;3>7>5;|`0a1<72<0;6=u+19d9`4=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2e2900e9h50;9l5=4=831vn>k<:186>5<7s-;3j7j>;I64g>N3?81/i84>;h66>5<>o3n3:17b?72;29?xd4m;0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb2g2>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th8??4?:583>5}#91l1=>=4H55`?M2092c?47>5;h72>5<5<54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj:9?6=4;:183!7?n3;8?6F;7b9K027>o6010;66a>7c83>>{e;:?1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd4;?0;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg53=3:187>50z&2=831d=:l50;9~f621290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a711=83>1<7>t$0:e>4543A>=7>5;h3;5;|`00=<72=0;6=u+19d9565<@==h7E:81:k75<8g8276=O<>i0D99>;h6;>5<h1<75rb27a>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm34a94?2=83:p(<6i:010?M20k2B?;<5f4983>>o293:17d?78;29?j70j3:17pl<5e83>1<729q/=5h51218L11d3A><=6g;8;29?l362900e<67:188k41e2900qo=:e;290?6=8r.:4k4>329K02e<@==:7d:7:188m07=831b=5650;9l52d=831vn>;i:187>5<7s-;3j7?<3:J73f=O<>;0e9650;9j14<722c:454?::m23g<722wi?;k50;694?6|,82m6i>4H55`?M2092.n97?4i5794?=n1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi8?j50;794?6|,82m6i:4H55`?M2092.n97?4i5794?=nm6=44i0:0>5<8g8g0>N3?j1C8:?4$d795>o3=3:17d:9:188m1`=831b=5=50;9l5=4=831vn95<7s-;3j7j;;I64g>N3?81/i84>;h66>5<>o60:0;66a>8383>>{e<;31<7;50;2x 4>a2m>0D99l;I645>"b=3;0e9;50;9j03<722c?j7>5;h3;7?6=3f;3>7>5;|`76=<72<0;6=u+19d9`1=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2a2900e<6<:188k4>52900qo:=6;291?6=8r.:4k4k4:J73f=O<>;0(h;51:k71?6=3`>=6=44i5d94?=n9191<75`19094?=zj=8>6=4::183!7?n3n?7E:8c:J734=#m<0:7d:::188m10=831b8k4?::k2<6<722e:4?4?::a072=83?1<7>t$0:e>a2<@==h7E:81:&f1?7>o3n3:17d?73;29?j7?:3:17pl;2283>0<729q/=5h5d59K02e<@==:7)k::09j00<722c?:7>5;h6e>5<5<9>7>55;294~"60o0o86F;7b9K027<,l?1=6g;5;29?l212900e9h50;9j5=5=831d=5<50;9~f146290>6=4?{%3;b?b33A>>6=44i5494?=n8283>>i60;0;66sm43294?3=83:p(<6i:e68L11d3A><=6*j5;38m13=831b8;4?::k7b?6=3`;3?7>5;n3;6?6=3th?=k4?:483>5}#91l1h95G46a8L1163-o>6<5f4483>>o3>3:17d:i:188m4>42900c<6=:188yg26m3:197>50z&25;h65>5<5<2290;w)?7f;f7?M20k2B?;<5+e482?l222900e9850;9j0c<722c:4>4?::m2<7<722wi8m6=44i0:0>5<8g8g0>N3?j1C8:?4$d795>o3=3:17d:9:188m1`=831b=5=50;9l5=4=831vn9?7:186>5<7s-;3j7j;;I64g>N3?81/i84>;h66>5<>o60:0;66a>8383>>{e<8=1<7;50;2x 4>a2m>0D99l;I645>"b=3;0e9;50;9j03<722c?j7>5;h3;7?6=3f;3>7>5;|`753<72<0;6=u+19d9`1=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2a2900e<6<:188k4>52900qo:>5;291?6=8r.:4k4k4:J73f=O<>;0(h;51:k71?6=3`>=6=44i5d94?=n9191<75`19094?=zj=;?6=4::183!7?n3n?7E:8c:J734=#m<0:7d:::188m10=831b8k4?::k2<6<722e:4?4?::a045=83?1<7>t$0:e>a2<@==h7E:81:&f1?7>o3n3:17d?73;29?j7?:3:17pl;1383>0<729q/=5h5d59K02e<@==:7)k::09j00<722c?:7>5;h6e>5<5<8?7>55;294~"60o0o86F;7b9K027<,l?1=6g;5;29?l212900e9h50;9j5=5=831d=5<50;9~f155290>6=4?{%3;b?b33A>>6=44i5494?=n8283>>i60;0;66sm42394?3=83:p(<6i:e68L11d3A><=6*j5;38m13=831b8;4?::k7b?6=3`;3?7>5;n3;6?6=3th??=4?:483>5}#91l1h95G46a8L1163-o>6<5f4483>>o3>3:17d:i:188m4>42900c<6=:188yg25n3:197>50z&25;h65>5<5<2290;w)?7f;f7?M20k2B?;<5+e482?l222900e9850;9j0c<722c:4>4?::m2<7<722wi8?950;794?6|,82m6i:4H55`?M2092.n97?4i5794?=nm6=44i0:0>5<8g8g0>N3?j1C8:?4$d795>o3=3:17d:9:188m1`=831b=5=50;9l5=4=831vn9??:186>5<7s-;3j7j;;I64g>N3?81/i84>;h66>5<>o60:0;66a>8383>>{ea288n7E:8c:J734=#m<0:56gk9;29?lbf2900c<9m:188yg2183:1?7>50z&2t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm1`294?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo?6f;297?6=8r.:4k4>2d9K02e<@==:7)k::0f8ma?=831bhl4?::m23g<722wi=4k50;194?6|,82m6<N3?81/i84>d:kg=?6=3`nj6=44o05a>5<53;294~"60o0:>h5G46a8L1163-o>67c83>>{e90i1<7=50;2x 4>a288n7E:8c:J734=#m<0:h6gk9;29?lbf2900c<9m:188yg7>j3:1?7>50z&2t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm18:94?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo?67;297?6=8r.:4k4>2d9K02e<@==:7)k::0f8ma?=831bhl4?::m23g<722wi=4850;194?6|,82m6<N3?81/i84>d:kg=?6=3`nj6=44o05a>5<53;294~"60o0:>h5G46a8L1163-o>67c83>>{e90>1<7=50;2x 4>a288n7E:8c:J734=#m<0:h6gk9;29?lbf2900c<9m:188yg7>;3:1?7>50z&2t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm18294?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo<83;290?6=8r.:4k4>2g9K02e<@==:7)k::ba8ma?=831bhl4?::kgf?6=3f;5;|`15=<72=0;6=u+19d957`<@==h7E:81:&f1?433`n26=44iec94?=nlk0;66a>7c83>>{e9k<1<7:50;2x 4>a288m7E:8c:J734=#m<0986gk9;29?lbf2900eil50;9l52d=831vn?9>:186>5<7s-;3j7?<0:J73f=O<>;0(h;51`9j`<<722com7>5;hfa>5<>oci3:17djm:188mae=831d=:l50;9~f4d?290>6=4?{%3;b?7482B?;n5G4638 `3=9o1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb354>5<2290;w)?7f;304>N3?j1C8:?4$d7964=nl00;66gka;29?lbe2900eim50;9l52d=831vn?8m:187>5<7s-;3j7?=f:J73f=O<>;0(h;52c9j`<<722com7>5;hfa>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm1cc94?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo<>e;290?6=8r.:4k4>2g9K02e<@==:7)k::368ma?=831bhl4?::kgf?6=3f;5;|`2ff<72=0;6=u+19d957`<@==h7E:81:&f1?433`n26=44iec94?=nlk0;66a>7c83>>{e:;:1<7;50;2x 4>a289;7E:8c:J734=#m<0:j6gk9;29?lbf2900eil50;9j`f<722e:;o4?::a5gc=83?1<7>t$0:e>4573A>5;hfb>5<>i6?k0;66sm33c94?3=83:p(<6i:013?M20k2B?;<5+e4814>oc13:17djn:188mad=831bhn4?::m23g<722wi88o50;694?6|,82m6<N3?81/i84:0:kg=?6=3`nj6=44ie`94?=h9>h1<75rb34b>5<2290;w)?7f;304>N3?j1C8:?4$d7957=nl00;66gka;29?lbe2900eim50;9l52d=831vn?7k:180>5<7s-;3j7?=e:J73f=O<>;0(h;5239j`<<722com7>5;n34f?6=3th94l4?:283>5}#91l1=?k4H55`?M2092.n97<=;hf:>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f634290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb263>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn>87:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f65a290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb3;`>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn?66:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f636290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb21f>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn?7m:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f601290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb273>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn>=k:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f7>0290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb252>5<3290;w)?7f;31b>N3?j1C8:?4$d79ga=nl00;66gka;29?lbe2900c<9m:188yg51k3:187>50z&25;n34f?6=3th9m?4?:583>5}#91l1=?h4H55`?M2092.n97mk;hf:>5<>i6?k0;66sm37794?2=83:p(<6i:00e?M20k2B?;<5+e486?lb>2900eio50;9j`g<722e:;o4?::a71`=83>1<7>t$0:e>44a3A>7c83>>{e;:i1<7:50;2x 4>a288m7E:8c:J734=#m<0>7dj6:188mag=831bho4?::m23g<722wi>4750;794?6|,82m6<=?;I64g>N3?81/i84=3:kg=?6=3`nj6=44ie`94?=nlj0;66a>7c83>>{e:1<1<7;50;2x 4>a289;7E:8c:J734=#m<09?6gk9;29?lbf2900eil50;9j`f<722e:;o4?::a675=8391<7>t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>74>i6?k0;66sm23494?2=83:p(<6i:00e?M20k2B?;<5+e482a>oc13:17djn:188mad=831d=:l50;9~f4e3290?6=4?{%3;b?75n2B?;n5G4638 `3=9l1bh44?::kge?6=3`ni6=44o05a>5<7>53;294~"60o0:>h5G46a8L1163-o>67c83>>{e:kh1<7<50;2x 4>a288o7E:8c:J734=#m<0:=6gk9;29?j70j3:17pl=b883>7<729q/=5h513f8L11d3A><=6*j5;32?lb>2900c<9m:188yg4e?3:1>7>50z&25<7s-;3j7?=d:J73f=O<>;0(h;5109j`<<722e:;o4?::a6g5=8381<7>t$0:e>44c3A>5;n34f?6=3th9n<4?:383>5}#91l1=?j4H55`?M2092.n97?>;hf:>5<8g826a=O<>i0D99>;%g6>47>i6?k0;66sm39d94?4=83:p(<6i:00g?M20k2B?;<5+e4825>oc13:17b?8b;29?xd40m0;6?4?:1y'5=`=9;n0D99l;I645>"b=3;:7dj6:188k41e2900qo=7b;296?6=8r.:4k4>2e9K02e<@==:7)k::038ma?=831d=:l50;9~f6>>29096=4?{%3;b?75l2B?;n5G4638 `3=981bh44?::m23g<722wi?5950;094?6|,82m6<N3?81/i84>1:kg=?6=3f;5;|`0<0<72;0;6=u+19d957b<@==h7E:81:&f1?763`n26=44o05a>5<52;294~"60o0:>i5G46a8L1163-o>6h1<75rb2:2>5<5290;w)?7f;31`>N3?j1C8:?4$d7954=nl00;66a>7c83>>{e;>l1<7<50;2x 4>a288o7E:8c:J734=#m<0:=6gk9;29?j70j3:17pl=c483>7<729q/=5h513f8L11d3A><=6*j5;32?lb>2900c<9m:188yg5>i3:1>7>50z&25<7s-;3j7?=e:J73f=O<>;0(h;5239j`<<722com7>5;n34f?6=3th9j44?:283>5}#91l1=?k4H55`?M2092.n97<=;hf:>5<?5fd883>>oci3:17b?8b;29?xd5nk0;6>4?:1y'5=`=9;o0D99l;I645>"b=3897dj6:188mag=831d=:l50;9~f7`d29086=4?{%3;b?75m2B?;n5G4638 `3=:;1bh44?::kge?6=3f;5;|`1ba<72:0;6=u+19d957c<@==h7E:81:&f1?453`n26=44iec94?=h9>h1<75rb3df>5<4290;w)?7f;31a>N3?j1C8:?4$d7967=nl00;66gka;29?j70j3:17pl=fg83>6<729q/=5h513g8L11d3A><=6*j5;01?lb>2900eio50;9l52d=831vn?h::180>5<7s-;3j7?=e:J73f=O<>;0(h;5239j`<<722com7>5;n34f?6=3th8>n4?:483>5}#91l1=>>4H55`?M2092.n97j:;hf:>5<>ock3:17b?8b;29?xd4:k0;684?:1y'5=`=9::0D99l;I645>"b=38;7dj6:188mag=831bho4?::kgg?6=3f;5;|`036<72:0;6=u+19d957c<@==h7E:81:&f1?763`n26=44iec94?=h9>h1<75rb3d4>5<5290;w)?7f;31<>N3?j1C8:?4ie:94?=h9>h1<75rb24g>5<5290;w)?7f;31<>N3?j1C8:?4ie:94?=h9>h1<75rb301>5<1290;w)?7f;305>N3?j1C8:?4$d7960=nl00;66gka;29?lbe2900eim50;9l57g=831d=:l50;9~f4e7290=6=4?{%3;b?7492B?;n5G4638 `3=:<1bh44?::kge?6=3`ni6=44iea94?=h9;k1<75`16`94?=zj=?36=477;294~N3?81/=5h51968^12=ir21>;4j:07956<6j3l1=;4>4;3`>x"6:>087)jk:59'``<33-nm695+e187?!c62=1/i?4;;%g0>1=#kh0hi6*j6;68 `1=<2.n47:4$d;90>"bi3>0(hl54:&fg?2<,ln186*je;68 ``=<2.m<7:4$g390>"a:3>0(k=54:&e0?2<,o?186*i6;68 c1=<2.m47:4$g;90>"ai3>0(kl54:&eg?2<,on186*ie;68 c`=<2.:<=4;;%335?2<,8:9695+11190>"68=0?7)??5;68 4612=1/==954:&24=<33-;;57:4$02b>1=#99h186*>0b87?!77l3>0(<>j:59'55`=<2.:==4;;%325?2<,8;9695+10190>"69=0?7)?>5;68 4712=1/=<954:&25=<33-;:57:4$03b>1=#98h186*>1b87?!76l3>0(=4;;%315?2<,889695+13190>"6:=0?7)?=5;68 4412;1/=575409'a1<33-;3n7<4$555>4>23-><;7?75:l:`?687826>h60>0986`;79826>h3?00986*lb;af?!7?k390e9750;9j0d<722c?;94?::k`=?6=3`2<6=4+1929l1?65f19g94?=n;?0;6)?70;16?k70n3:07d=;:18'5=6=;<1e=:h51:9j76<72-;3<7=:;o34b?4<3`996=4+192970=i9>l1?65f3083>!7?839>7c?8f;68?l57290/=5>5349m52`==21b>k4?:%3;4?523g;5<#91:1?85a16d93>=n:m0;6)?70;16?k70n3207dl1=65f3e83>!7?839m7c?8f;08?l5d290/=5>53g9m52`=;21b?o4?:%3;4?5a3g;5<#91:1?k5a16d91>=n;00;6)?70;1e?k70n3<07d=7:18'5=6=;o1e=:h57:9j72<72-;3<7=i;o34b?><3`?26=4+19291==i9>l1<65f5683>!7?83?37c?8f;38?l31290/=5>5599m52`=:21b984?:%3;4?3?3g;5<#91:1955a16d90>=n=:0;6)?70;7;?k70n3?07d8=:18'5=6==11e=:h56:9j24<72-;3<7;7;o34b?1<3`<;6=4+19291==i9>l1465f5g83>!7?83?37c?8f;;8?l3b290/=5>5599m52`=i21b9i4?:%3;4?3?3g;5<#91:1955a16d9g>=n=k0;6)?70;7;?k70n3n07d;n:18'5=6==11e=:h5e:9j17<72-;3<7;7;o34b?`<3`2=6=4+1929<0=i9>l1<65f8583>!7?832>7c?8f;38?jd0290/=5>5b79m52`=821dn84?:%3;4?d13g;5<#91:1n;5a16d96>=hj;0;6)?70;`5?k70n3907bl>:18'5=6=j?1e=:h54:9lf5<72-;3<7l9;o34b?3<3fkm6=4+1929f3=i9>l1:65`ad83>!7?83h=7c?8f;58?jgc290/=5>5b79m52`=021dmn4?:%3;4?d13g;5<#91:1n;5a16d9e>=hih0;6)?70;`5?k70n3h07bo7:18'5=6=j?1e=:h5c:9le2<72-;3<7l9;o34b?b<3fk=6=4+1929f3=i9>l1i65`a483>!7?83h=7c?8f;d8?jg3290/=5>5b79m52`=9910cl=50;&2<52d:;k4>1:9le7<72-;3<7l9;o34b?7532ej=7>5$0:3>g05<#91:1n;5a16d951=818a2>h6?o0:965`bd83>!7?83h=7c?8f;35?>iel3:1(<6?:c48j41a28=07bll:18'5=6=j?1e=:h51998kgd=83.:4=4m6:l23c<6121dnl4?:%3;4?d13g;4d<3fh36=4+1929f3=i9>l1=n54oc694?"6090i:6`>7g82`>=hi00;6)?70;`5?k70n3;n76a6e;29 4>72k<0b<9i:0d8?je0290/=5>5c79m52`=821do84?:%3;4?e13g;5<#91:1o;5a16d96>=hk:0;6)?70;a5?k70n3907dm7:188m4>c2900e99::188m2e=83.:4=48b:l23c<732c5$0:3>2d7g81?>o0?3:1(<6?:6`8j41a2:10e:850;&2<5<0j2d:;k4;;:k41?6=,82;6:l4n05e>0=>1<7*>8184f>h6?o0=76g83;29 4>72>h0b<9i:698m24=83.:4=48b:l23c5$0:3>2d7g8b?>o1n3:1(<6?:6`8j41a2k10e;j50;&2<5<0j2d:;k4l;:k5g?6=,82;6:l4n05e>a=8184f>h6?o0n76g9a;29 4>72>h0b<9i:g98m3?=83.:4=48b:l23c<6821b:54?:%3;4?1e3g;;:k53?6=,82;6:l4n05e>44<3`<=6=4+19293g=i9>l1=>54i7794?"60907g820>=n>=0;6)?70;5a?k70n3;>76g73;29 4>72>h0b<9i:048?l>5290/=5>57c9m52`=9>10e5?50;&2<5<0j2d:;k4>8:9j<5<72-;3<79m;o34b?7>32c5$0:3>2d5<#91:1;o5a16d95g=n1<7*>8184f>h6?o0:o65f7883>!7?83=i7c?8f;3g?>o1m3:1(<6?:6`8j41a28o07d8<:18'5=6=?k1e=:h51g98m=d=83.:4=47a:l23c<732c357>5$0:3>=g7g81?>i>;3:1(<6?:808j41a2910c4?50;&2<5<>:2d:;k4>;:m:4?6=,82;64<4n05e>7=818:6>h6?o0876a7e;29 4>72080b<9i:598k=b=83.:4=462:l23c<232e2o7>5$0:3><46`>7g84?>i>i3:1(<6?:808j41a2110c4750;&2<5<>:2d:;k46;:m:d=818:6>h6?o0i76a66;29 4>72080b<9i:b98k<3=83.:4=462:l23c5$0:3><46`>7g8e?>id:3:1(<6?:b38j41a2910cn>50;&2<5;:p10b=833ty>9o4?:6gxZ1?33W?=:6P:659]0=2X3191U85h4^5:f?[2?l2T?4n5Q49`8Z1>f3W>356P:709]126X2>01U9;64^47b?[3212T>955Q5458Z0313W?>96P:559]105m70::c;6e?821>3>m70:95;6e?821<3>m70:9f;6e?821m3>m70;51:0>=63=93865>;5180>=63=91865>;50o0>=63=81865>;5?o0>=63=7d865>;5?m0>=63=7b865>;40l0>=63<8b865>;40h0>=63<89865>;40?0>=63<85865>;40;0>=63<81865>;4?l0>=63<33865>;4;:0>=63<35865>;4;<0>=63<37865>;4<<0>=63<47865>;4<>0>=63<49865>;4<00>=63<5c865>;4=j0>=63<5e865>;4=l0>=63<5g865>;3=103;63;59822e<5=?36:o4=57;>2><5=?36:94=57;>20<5=?36:;4=57;>22<5=?36:=4=57;>24<5=?36:?4=57;>26<5=?36;h4=57;>3b<5=?36;m4=57;>3d<5=?36;o4=57;>3?<5=?36;64=57;>31<5=?36;84=57;>33<5=?36;:4=57;>=5<5=?365<4=57;>=7<5=?365>4=57;>2`<5=?36:k4=57;>2b<5=?36:74=57;>3c<5=?36;=4=57;>=d<5=?36574=57;>=>52z\7<0=:;?k1=5<4}r76b?6=;rT>9k5247595=7<5=?h6<6>;|q130<72;qU9=:4=356>4>53ty>;>4?:2y]125<5:=96i74=250>a?=7>569y]107<5;k;69;4=57f>13<5=?o69;4=57`>13<5=<=69;4=546>13<5=13<5;;869;4=331>13<5;;:69;4=333>13<5;:m69;4=32f>13<5;:o69;4=32`>13<5;<;69;4=37e>13<5;?n69;4=37g>13<5;?h69;4=37a>13<5;?j69;4=37:>13<5;?369;4=36f>13<5;>o69;4=36`>13<5;>i69;4=36b>13<5;>269;4=36;>13<5;><69;4=365>13<5;>>69;4=0f5>13<58n>69;4=0f7>13<58n869;4=0f1>13<58n:69;4=0f3>13<58im69;4=0af>13<5;n<69;4=3f5>13<5;n>69;4=3f7>13<5;n869;4=3f1>13<5;n;69;4=3ae>13<5;n:69;4=3g:>13<5;o369;4=3g4>13<5;o=69;4=3g6>13<5;o?69;4=3g0>13<5;o969;4=3g2>13<5;=?69;4=356>13<5;13<5=8o69;4=50`>13<5=8i69;4=50b>13<5=8269;4=50;>13<5=8=69;4=506>13<5=8?69;4=500>13<5=8969;4=502>13<5=8;69;4=53e>13<5=;n69;4=53g>13<5=;i69;4=53b>13<5=;269;4=53;>13<5=;<69;4=535>13<5=;>69;4=537>13<5=;869;4=531>13<5=9869;4=511>13<5=9:69;4=513>13<5=8m69;4=50f>13<5=8<69;4=53`>13<5=;:69;4=533>13<5=?369o4}r15b?6=:rT>563y]131<5=<269;4=544>13<5=<369;4=54e>13<5=13<58h:69;4=0`3>13<58km69;4=0cf>13<58ko69;4=0c`>13<58ki69;4=0cb>13<58lj69;4=0d:>13<58l369;4=0d4>13<58l=69;4=0d6>13<58l?69;4=0d0>13<58l969;4=0g;>13<58o<69;4=0g5>13<58o>69;4=0g7>13<58o869;4=0g1>13<58o:69;4=0g3>13<5;9j69;4=31:>13<5;9369;4=314>13<5;9=69;4=316>13<5;9?69;4=310>13<5;9969;4=312>13<5:;>69;4=23g>13<5:;h69;4=23a>13<5:;j69;4=23:>13<5:;369;4=234>13<5:;=69;4=237>13<5:8369;4=2`a>13<5:h269;4=2`b>13<5:hh69;4=2`g>13<5:i;69;4=2`f>13<5:hm69;4=2a2>13<5:i969;4=2ae>13<5:io69;4=2af>13<5:n;69;4=2f2>13<5:n?69;4=2f1>13<5:n869;4=2f6>13<5:n=69;4=2cg>13<5:kh69;4=2cf>13<5:kj69;4=2c:>13<5:ki69;4=2c4>13<5:k=69;4=2c;>13<5:k>69;4=2gb>13<5:o269;4=2g;>13<5:o<69;4=2g5>13<5:o>69;4=2g7>13<5:o869;4=2g1>13<5:o:69;4=24f>13<5:13<5=?36974}r11>k5233:95=452z\7`2=:<831=5<4}r1e7?6=:rT?h;5240:95=47>52z\7`0=:<8=1=5<4}r1e5?6=:rT?h95240495=452z\7`6=:<8?1=5<4}r1fb?6=:rT?h?5240695=452z\7`5=:<891=5<4}r1f`?6=:rT?ok5240095=4;j7>52z\7g`=:<:91=5<4}r63a?6=:rT?oi5242095=4;h7>52z\7gf=:<:;1=5<4}r63g?6=:rT?oo5242295=4;n7>52z\7gd=:<;l1=5<4}r63e?6=:rT?o45243g95=4;57>52z\7g==:<;=1=5<4}r636?6=:rT?o:5240a95=452z\7g0=:<8;1=5<4}r1fg?6=:rT?o95240295=4;47>52z\7g6=:<;n1=5<4}r633?6=:rT?o?5243a95=4;:7>52z\7g4=:<;h1=5<4}r631?6=:rT?o=5243c95=4;87>52z\7fc=:<;31=5<4}r637?6=:rT?nh5243:95=4;=7>52z\7fa=:<;<1=5<4}r634?6=:rT?nn5243795=452z\7`a=:<;>1=5<4}r1ea?6=:rT?hn5243195=452z\7`g=:<;81=5<4}r1eg?6=:rT?hl5243395=452z\7`<=:<;:1=5<4}r1ee?6=:rT?h55240d95=452z\7`4=:<8o1=5<4}r1e52z\7fg=:<8h1=5<4}r1e1?6=:rT?nl5240c95=4i<7>52z\7=`=:<<214;5rs5cf>5<5sW>2h63;5986=>{t7}Y<0h019;7:448yv2fj3:1>vP;9`9>00>==<1v9on:181[2>127?954:4:p0d?=838pR977;<66;3=10386s|4c594?4|V=k?70::8;43?xu3j?0;6?uQ4`18913?2>47;l;|q7f7<72;qU84h4=57;>0di=7>52z\7=3=:<<219l5rs5c4>5<5sW>2963;59866>{t9:=1<7mt=55f>41c348io7:7;<0bg?2?348no7;>;<0ff?2?3483j7:7;<04g?2?3492<7:7;<14a?2?3498>7:7;<171?2?349>n7:7;|q1e4<72;q6>l>54g9>6d4=9>h0q~:93;295=}::h:1=5?4=545>4>5348o;7:m;<0g2?2e348o97:m;<0g0?2e348o?7:m;<0g6?2e348o<7:m;<0`b?7?9279h<4;b:?1a<<3j279i54;b:?1a2<3j279i;4;b:?1a0<3j279i94;b:?1a6<3j279i?4;b:?1a4<3j279;94>809>623=91;01?8i:5`8970b2=h0q~>h7?72:?71f<3>2wx88k50;0x913b282970:90;f:?xu3>10;6>u247;90c=:=57>52z?72<<60;168;l5d89~w13d2908w0::d;6e?822k3;3>63;618ge>{t4>534>=47:i;<65f?bf3ty?9k4?:5y>030=91;0198::0:2?821<3;3=63;61823g=z{=<96=4=6z?720<60;16><:54c9>645=<<54c9>647=<>54c9>65`==k54c9>65b==m54c9>636=8h54c9>60c=8j54c9>60e=8l54c9>60g=8754c9>60>=9k54c9>61b=9m54c9>61d=9o54c9>61?=9654c9>611=9854c9>613=5a3=5a5=5a7=54c9>5f`=4>434>9n7?73:?76d<60:168?751918914?282870:=6;3;7>;3:<0:4>5243695=5<5=886<6<;<616?7?;27?><4>829>076=919019?i:0:0?826m3;3?63;1e82<6=:<8h1=5=4=53b>4>434>:57?73:?75=<60:168<9519189171282870:>5;3;7>;39=0:4>5240195=5<5=;96<6<;<607?7?;27???4>829>067=919019=?:0:0?825n3;3?63;2d82<6=:<;=1=5=4=53`>4>434>:=7?73:?755<60:1688o5d`9>00>=91o0q~:9a;297~;3>o0:4<5247g95=7<5=i70=>d;6a?856k3>i70=>b;6a?856i3>i70=>9;6a?85603>i70=>7;6a?856>3>i70=>4;6a?85ej3>i70=m9;6a?85ei3;3=63;4jm0?n63;4jl0?n63;4k80?n63;4ko0?n634>6349nm7:m;<1f=?2e349n47:m;<1f3?2e349n:7:m;<1f1?2e349n87:m;<1f7?2e349n>7:m;<1f5?2e3ty?:n4?:3cx910b282970?m2;6a?87e93>i70?m0;6a?87fn3>i70?ne;6a?87fl3>i70?nc;6a?87fj3>i70?na;6a?87ai3>i70?i9;6a?87a03>i70?i7;6a?87a>3>i70?i5;6a?87a<3>i70?i3;6a?87a:3>i70?j8;6a?87b?3>i70?j6;6a?87b=3>i70?j4;6a?87b;3>i70?j2;6a?87b93>i70?j0;6a?844i3>i70<<9;6a?84403>i70<<7;6a?844>3>i70<<5;6a?844<3>i70<<3;6a?844:3>i70<<1;6a?85503>i70=9e;6a?851n3>i70=9a;6a?xu5=>0;68u220690c=::?:1=5<4=335>ag<5;;36i74=33b>ae53z?151<60;16>4j5d89>6=g=l01v??::181846;3>m70<>6;34f>{t:9k1<7=t=330>4>53482o7jn;<0;=?bf3ty9=:4?:3y>644=<6516`8yv4713:1?v3=1382<7=::0i1hn5229;9`f=z{;;26=49{<025?2a348:m7?8b:?15f?4kc:p65>=839p1??>:0:1?84>j3nj70<78;fb?xu59k0;6?u220290c=::8i1=:l4}r033?6=;r79==4>839>6565db9~w77c2909w0=k54g9>676=9>h0q~5<5s48;h7:i;<017?70j2wx>=:50;1x976c282970<69;fb?84?>3nj7p}=2483>7}::9i18k52234952d53z?14f<60;16>475db9>6=0=lj1v:18687e:3>m70?ia;3;6>;6j=0om63>b78g=>;6j10oo6s|1`;94?3|58h96<6=;<15=?b>349>?7j6;<174?b>348m97jn;|q2f6<72;q6=o?54g9>5g2=9>h0q~?n8;291~;6j80:4?5237;9`g=:;<91ho523529`g=::ol1hl5rs0`6>5<5s4;i<7:i;<3a2?70j2wx=l950;7x94d7282970=98;f:?852:3n270=b683>3}:9hl18k521c:952d<58hj6io4=0``>a?<58hn6il4=0a3>ae55z?2ec<60;16?;65dc9>704=lk16?>h5dc9>6cb=lh1vm70?ma;34f>{t9h?1<7;t=0cf>4>5349=;7j6;<165?b>3498i7j6;<0eg?bf3ty:no4?:3y>5db=ae82<7=:;?=1ho523439`g=:;:o1ho522g`9`d=z{8ho6=4={<3bg?2a34;ii7?8b:p5d5=83?p13n270=:0;f:?854l3n270839>730=lk16?8>5dc9>76b=lk16>k75d`9~w4e42909w0?na;6e?87d<3;349?j7j6;<10g?b>348m47jn;|q101<72;q6>;>54g9>61c=9180q~<;3;296~;5=o0?j63=4e82<7=z{;?=6=4;{<06b?7?:279=;4k9:?15=6}::ad<5;;j6io4}r075?6=:r799i4;f:?10g<60;1v?;;:181842l3;3>63=1`8g=>{t:=:1<71`<5;>j6<6=;|q116<728m51908977d2m301??j:ec897472mi01?<=:e`8yv44n3:1>v3=5c87b>;5<00:4?5rs371>5<3s48>n7?72:?15`=4k9:?167>k50;0x973f2=l01?:7:0:1?xu5=80;6>u224c95=4<5;8;6io4=301>a?52z?11<<3n2798:4>839~w7372908w0<:9;3;6>;5::0o563=278ge>{t::i1<71`<5;>=6<6=;|q10c<72;q6>865190897412m30q~?kf;296~;6nh0?j63>e982<7=z{8nn6=4={<3e=?2a34;n;7?72:p5c6=83>p1de83>7}:9o218k521d495=453z?2b=<60;16=o85dc9>5g>=lh1vm70?j5;3;6>{t9lo1<74>534;i47j6;|q2`g<72;q6=k854g9>5`2=9180q~?jd;291~;6n?0:4?521cc9`<=:9ki1hl521cg9`f=:9j:1ho5rs0fb>5<5s4;m97:i;<3f7?7?:2wx=hm50;6x94`2282970?mc;fa?87em3n270?l0;fb?xu6l00;6?u21g690c=:9l81=5<4}r3ff?6=;r7:j94>839>5gc=lh16=n>5d89~w4b?2909w0?i3;6e?87b93;3>6s|1dc94?5|58l86<6=;<3`5?b>34;h87jn;|q2`2<72;q6=k<54g9>5`6=9180q~?j9;296~;6n;0:4?521b69`<=z{;9;6=4={<07a?2a3488m7?72:p67`=838p1?:k:5d8975>28297p}=2d83>7}::=i18k5222:95=452z?10g<3n279?:4>839~w74d2909w0<;a;6e?844>3;3>6s|23`94?4|5;>269h4=316>4>53ty9>l4?:3y>61>=>:51908yv4513:1>v3=4687b>;5;:0:4?5rs30;>5<5s48?:7:i;<006?7?:2wx>?950;0x97222=l01?=>:0:1?xu5;k0;652z?2a=<3n27:h;4>839~w4ed2909w0?j7;6e?87c=3;3>6s|1b`94?4|58o=69h4=0f7>4>53ty:ol4?:3y>5`3=v3>e587b>;6l;0:4?5rs0a;>5<5s4;n?7:i;<3g5?7?:2wx=n950;0x94c52=l013>m70;6190o563=8`8ge>;3=10?<6s|1g`94?4|58n>69h4=0;3>41e3ty:jn4?:3y>5a2=v3>d287b>;61;0:;o5rs0df>5<5s4;o>7:i;<3:7?70j2wx=kh50;0x94b62=l01<7;:05a?xu5890;6?u21e290c=:90?1=:l4}r035?6=:r7:ok4;f:?2=3<6?k1v?>=:18187dm3>m70?67;34f>{t;l:1<7:t=31b>1`<5:oj6<6=;<3:34>>47=9;|q124<72;q6>>754g9>5<>=9>h0q~<92;296~;5;10?j63>98823g=z{;<86=4={<003?2a34;2m7?8b:p632=838p1?=9:5d894?e28=i7p}=6483>7}:::?18k5218a952d52z?171<3n27:5i4>7c9~w7002909w0<<3;6e?87>m3;41e3ty9:44?:3y>667=516`8yv4bi3:1=8u22e5903=::m<18;522e7903=::m>18;522e1903=::m818;522e2903=::jl18;522e3903=::l318;522d:903=::l=18;522d4903=::l?18;522d6903=::l918;522d0903=::l;18;5244c9`g=::?k1=:l4=3c1>ag52z?1`2<3n279o94>7c9~w7eb290?w0;5m00?j63=9e8ge>;5k<0o56s|2`c94?4|5;n=69h4=3a0>41e3ty9oi4?:5y>6a0=91801?k7:5d897?d2m301?lm:e;8yv4f13:1>v3=d487b>;5k;0:;o5rs3a`>5<3s48o97?72:?1a2<3n2795n4kb:?1f<l650;0x97b32=l01?m>:05a?xu5kk0;69u22e695=4<5;o=69h4=3;a>a?<5;h<6i74}r0b3?6=:r79h>4;f:?1g5<6?k1v?mn:18784c;3;3>63=e487b>;51k0on63=b48g=>{t:h<1<71`<5;hm6<9m;|q1g<<72=q6>i<5190897c32=l01?7n:e;897d42m30q~1}::jl1=5<4=3g2>1`<5;326il4=3cg>a?52z?1`4<3n279nh4>7c9~w7e?290?w0;5m:0?j63=9`8gf>;5j80o56s|2cc94?4|5;i?6964=3`b>41e3ty9o84?:3y>6f2=9;301?m::05a?xu5j10;6>u22b190==::kk185522c:952d53z?1g6<6:016>oo519:897de28=i7p}=b783>6}::j8185522c:90==::k<1=:l4}r0a=?6=;r79o?4>289>6g>=91201?l6:05a?xu5j=0;6>u22b390==::k<185522c6952d53z?1g4<6:016>o8519:897d028=i7p}=b383>6}::j:185522c690==::k81=:l4}r0a1?6=;r79o=4>289>6g2=91201?l::05a?xu5j90;6>u22cd90==::k8185522c2952d53z?1fc<6:016>o<519:897d428=i7p}=ad83>6}::ko185522c290==::ho1=:l4}r0a5?6=;r79nh4>289>6g6=91201?l>:05a?xu5ij0;6>u22cf90==::ho185522`a952d53z?1fa<6:016>lk519:897ga28=i7p}=ae83>6}::ki1=?74=3c`>4>?348jh7?8b:p6a`=83?p1?k7:0:1?87>93n270?60;fb?84?13n270::8;1f?xu5ll0;68u22d595=4<58396i74=0;2>ag<5;226il4=57;>6b55z?1a3<60;16=4=5d89>5<4=lh16>565d89>00>=;j1v?jl:18684b=3;3>63>958g=>;61:0om63=898gf>;3=108n6s|2e`94?3|5;o?6<6=;<3:1?b>34;287jn;<0;3?b>34>>47=n;|q1`d<72h=5190894?12m301<7::ec897>02mh019;7:2;8yv4c13:19v3=e382<7=:90=1h4521849`d=::1<1h45244:97==z{;n36=4;{<0f5?7?:27:5:4ka:?1<363=728gf>;5?80on63=768gf>;5>k0o563=6`8gg>{t:>81<71`<5;=86<9m;|q12f<72?q6>;k5190897142m301?9>:ec897102mk01?8m:ec8970f2mh0q~6=4={<134?751279j84>7c9~w67b2909w0=?0;34f>;49<0?j6s|2g194?5|5::26964=3d7>1><5;l86<9m;|q1bc<72:q6?=7513;897`3282370{t;;=1<741e349:h7:i;|q0gg<72k:5509>7a3=91801>k6:5d896272mi01?hi:e;8yv4a:3:1?v3<0987<>;5n:0?463=f3823g=z{;ln6=4<{<134>899>6cc=9>h0q~==6;296~;4810:;o5230a90c=z{:ij6=4:{<0e7?36349o87?72:?0a=<3n278?k4ka:?1b`k?50;1x96602=201?h=:5:897`628=i7p}=fe83>6}:;9=1=?74=3d1>4>?348mh7?8b:p773=838p1>>8:05a?856j3>m7p}0}::o819<523e195=4<5:o<69h4=21e>ae<5;lo6i74}r0e4?6=;r78<;4;8:?1b4<30279j=4>7c9~w7`d2908w0=?6;31=>;5n80:45522ga952d52z?043<6?k16?w063;4;l0om63=fb8g=>{t:ll1<7=t=226>1><5;l;6964=3ge>41e3ty9jo4?:2y>753=9;301?h?:0:;?84aj3;6<9m;<12=?2a3ty8o:4?:4y>6c6==816?i?5190896c22=l01>=j:ea897`e2m30q~;5ml0:;o5rs3db>5<4s49;87?=9:?1ac<60116>ko516`8yv55:3:1>v3<05823g=:;8218k5rs2a5>5<2s48nj7;>;<1g4?7?:278i94;f:?07a><:5:897cb2=201?kk:05a?xu5n00;6>u2311957?<5;on6<67;<0e=?70j2wx???50;0x966428=i70=>7;6e?xu4k<0;68u22dg914=:;jl1=5<4=2g0>1`<5:9o6im4=3d:>a?53z?047<30279ii4;8:?1af<6?k1v?h7:180857:3;9563=ee82<==::o21=:l4}r114?6=:r787c9>740=m;:18684bl3?:70=le;3;6>;4m;0?j63<3b8ge>;5n10o56s|2d`94?5|5:::6964=3g`>1><5;oi6<9m;|q1b3<72:q6?=?513;897cd282370{t;8l1<741e349:87:i;|q037<72;kp1?km:43896de2=<01>l6:54896df2=<01>ll:54896dc2=<01>m?:54896db2=<01>li:54896e62=<01>m=:54896ea2=<01>mk:54896eb2=<01>j?:54896b62=<01>j;:54896b52=<01>j<:54896b22=<01>j9:54896gc2=<01>ol:54896gb2=<01>on:54896g>2=<01>om:54896g02=<01>o9:54896g?2=<01>o::54896cf2=<01>k6:54896c?2=<01>k8:54896c12=<01>k::54896c32=<01>k<:54896c52=<01>k>:548961428=i7p}<0`83>7}:;8?1=5<4=20b>ae52z?05a<60;16??o5dc9~w6752909w0=>c;3;6>;4:h0om6s|30394?4|5:;i6<6=;<11e?b>3ty8==4?:3y>74g=91801>v3<1882<7=:;;h1h45rs22f>5<5s49:47?72:?06f839>77e=l01v>=70=9a;65?851l3;41e3ty94h4?:3y>6<5=<116>4<516`8yv4>03:1>v3=9282<==::0n1=:l4}r0:b?6=:r795>4>7c9>6d4=l01v?6k:18184>:3>370<61;34f>{t:0=1<74>?3482o7?8b:p6=e=838p1?7>:5:897?728=i7p}=9783>7}::0;1=564=3;a>41e3ty94o4?:3y>6<6=<116>5h516`8yv4>=3:1>v3=9182<==::0k1=:l4}r0:0?6=:r794k4>899>6h0q~<8b;296~;5090?463=7g823g=z{;2>6=4={<0;4?7?02794l4>7c9~w7?b2909w0<70;34f>;5i;0on6s|26c94?4|5;=m6964=35f>41e3ty9494?:3y>62`=91201?66:05a?xu5?00;6?u226g90==::>n1=:l4}r0;7?6=:r79;h4>899>6=>=9>h0q~<88;296~;5?m0?463=7b823g=z{;296=4={<04`?7?02794:4>7c9~w7>62909w0<8c;3;<>;50?0:;o5rs2;g>5<3s49in7:i;<1b3?7?:278:;4kc:?0<61}:;k318k523`795=4<5:<>6il4=25e>a?53z?0f<<60;16?nj54g9>71`=lk1v>7l:18785ei3>m70=n6;3;6>;4><0om63<808g=>{t;k:1<7=t=2`b>4>5349hi7:i;<17b?bf3ty85h4?:5y>7ge=6::e;8yv5e:3:1?v3lk:0:1?85c93>m70=:1;f`?xu4i;0;69u23b290c=:;hi1=5<4=24;>ag<5:2o6i74}r1a2?6=;r78o=4>839>7a2=63<668ge>;4000o56s|3c694?5|5:hn6<6=;<1g6?2a349>=7jn;|q0e4<72=q6?oh54g9>7dd=91801>87:ea896>e2m30q~=m5;297~;4jo0:4?523e190c=:;<81hn5rs2c0>5<3s49h=7:i;<1b`?7?:278:44kc:?01}:;j818k523`g95=4<5:<26io4=2;b>a?53z?0g7<60;16?i854g9>705=lh1v>m<:18785dl3;3>63;4;j0on63=f68g<>{t;ji1<7:t=2f5>4>5349nm7:i;<174?bf348m97j6;|q03f<72;q6?lj54g9>7<>=9>h0q~=8b;296~;4ij0?j63<96823g=z{:=o6=4={<1ba?2a349257?8b:p72?=838p1>on:5d896?228=i7p}<7983>7}:;h318k52386952d52z?0eg<3n2785;4>7c9~w6112909w0=n7;6e?85>:3;41e3ty8;:4?:3y>7d>=v3;4190:;o5rs2:f>5<5s49257:7;<1;a?70j2wx?4o50;0x96?>288270=6a;34f>{t;1i1<7=t=2;;>1><5:2n6964=2:`>41e3ty84k4?:2y>7<>=9;301>6j:0:;?85?n3;1><5:2j6<9m;|q0d282370=7d;34f>{t;121<7=t=2;5>1><5:2j6964=2:;>41e3ty84o4?:2y>7<0=9;301>6n:0:;?85?j3;6964=2:;>1><5:2=6<9m;|q0<<<72:q6?4;513;896>?282370=79;34f>{t;1>1<7=t=2;7>1><5:2=6964=2:7>41e3ty84:4?:2y>7<2=9;301>69:0:;?85??3;1><5:296<9m;|q0<0<72:q6?4=513;896>3282370=75;34f>{t;1:1<7=t=2;1>1><5:296964=2:3>41e3ty84>4?:2y>7<4=9;301>6=:0:;?85?;3;1><5:=n6<9m;|q0<4<72:q6?4?513;896>7282370=71;34f>{t;>l1<7=t=2;3>44>349ji:18785b13;3>63>988g=>;6110om63;59800>{t;mo1<7:t=2g;>4>534;2m7j6;<3:=?bf34>>47=<;|q0`a<72=q6?h95190894?e2m301<7n:ec8913?2:80q~=kc;290~;4m?0:4?5218a9`<=:90h1hl5244:974=z{:ni6=4;{<1f1?7?:27:5i4k9:?2=fp1>k;:0:1?87>m3n270?6d;fb?822038m7p}1}:;l91=5<4=0;e>a?<583n6io4=57;>7c54z?0a7<60;16=l>5d89>5<`=lh1688652e9~w6b02908w0=j1;3;6>;6i90om63;5981g>{t;:=1<74>?3498o7?8b:p77c=838p1>==:05a?854;3>37p}<3983>7}:;:91=564=21g>41e3ty8>k4?:3y>765=9>h01>=;:5:8yv5413:1>v3<3582<==:;:o1=:l4}r104?6=:r78?94>7c9>763=<11v>=n:181854=3;3463<3g823g=z{:9:6=4={<101?70j278?;4;8:p76d=838p1>=9:0:;?85383;713=91201>:i:05a?xu4<80;6?u2357952d<5:>=6964}r17f?6=:r788;4>899>706=9>h0q~=;2;296~;4h6=4={<173?7?02789<4>7c9~w6242909w0=;7;34f>;4<10?46s|35f94?4|5:>36<67;<166?70j2wx?9:50;0x962?28=i70=;9;6;?xu4<5:?86<9m;|q010<72:q6?97516`896162m301>8l:e`8yv5183:1>v3<5c82<==:;??1=:l4}r163?6=:r789o4>7c9>70e=<11v>8>:181852k3;3463<67823g=z{:?36=4={<16g?70j2789i4;8:p734=838p1>;k:0:;?851?3;4?:3y>70c=91201>87:05a?xu4=h0;6?u234g952d<5:?m6964}r150?6=:r789k4>899>73?=9>h0q~=:6;296~;4=o0:;o5237a9`<=z{:=;6=4<{<15a?2a349=j7:i;<145?70j2wx?;k50;6x960b282970=82;fb?850;3nj70=9d;f;?xu4>k0;6?u237c90c=:;?i1=:l4}r66f?6=:07e=07g=07>=073=075=077=5479>04`=04b=04g=04>=040=042=044==5479>064=?5479>066=07c=04e=046=;l516`8yv2283:1>v3;2e87b>;3=10h;6s|45d94?4|5=8h69h4=57;>g1?i7>52z?76g<3n27?954m5:p01b=838p19{t<=h1<71`<5=?36o?4}r67=?6=:r7?>;4;f:?71=v3;2587b>;3=10ji6s|45494?4|5=8869h4=57;>f3?97>52z?767<3n27?954nd:p012=838p19<>:5d8913?2hi0q~:;3;296~;3:90?j63;598bf>{t<=81<71`<5=?36lo4}r675?6=:r7?=h4;f:?71=50;0x917c2=l019;7:`58yv24m3:1>v3;1c87b>;3=10j:6s|42f94?4|5=;j69h4=57;>d38o7>52z?75<<3n27?954l4:p06d=838p19?7:5d8913?2h>0q~:0?j63;598b7>{t<:31<71`<5=?36l<4}r60950;0x91732=l019;7:`28yv24>3:1>v3;1287b>;3=102j6s|42794?4|5=;969h4=57;>gc>;7>52z?776<3n27?954md:p000=838p19==:5d8913?2j90q~::5;296~;3;80?j63;598ag>{t<<>1<71`<5=?36ol4}r667?6=:r7?>k4;f:?71=v3;2687b>;3=10i46s|45c94?4|5=;h69h4=57;>g28j7>52z?754<3n27?954n9:p062=838p19??:5d8913?20o0q~==a;296~;4:h0:;o5233`9`g=z{=?26=4={<66e?70j27?954l9:p7`d=83?p1>9>:ec8960d2mk01>9=:05a?82203><863;598`<>{t9?:1<7ag<5;896<5f6=9;k0q~<=4;296~;5:?0on63=23823g=z{8i96=4={<3`0?be34;h<7?8b:p560=838p1>6s|4`g94?4|V=3o70:<:5;g?!2083;?h6s|4`f94?4|V=3h70:<:5;`?!2083;>;6s|4`a94?4|V=3i70:<:5;a?!2083;>56s|4``94?4|V=3j70:<:5;b?!2083;>m6s|4`c94?4|V=3270:<:5;:?!2083;>n6s|4`;94?4|V=3370:<:5;;?!2083;>h6s|4`:94?4|V=3<70:<:5;4?!2083;>i6s|4c;94?4|V=k=70:<:5c5?!2083;>j6s|4c:94?4|V=k>70:<:5c6?!2083;==6s|4c594?4|V=k?70:<:5c7?!2083;=>6s|4c494?4|V=k870:<:5c0?!2083;=?6s|4c794?4|V=k970:<:5c1?!2083;=86s|4c694?4|V=k:70:<:5c2?!2083;=96s|4c194?4|V=k;70:<:5c3?!2083;=:6s|4c094?4|V=3m70:<:5;e?!2083;=;6s|4c394?4|V=3=70:<:5;5?!2083;=46s|4`594?4|V=3>70:<:5;6?!2083;=56s|56194?4|V<=870:<:450?!2083;=m6s|54f94?4|V70:<:5f6?!2083;<>6s|4g594?4|V=n?70:<:5f7?!2083;70:<:5a6?!2083;8j6s|4d594?4|V=i?70:<:5a7?!2083;?<6s|4d494?4|V=i870:<:5a0?!2083;?=6s|4d794?4|V=i970:<:5a1?!2083;??6s|4d694?4|V=i:70:<:5a2?!2083;?86s|4d194?4|V=i;70:<:5a3?!2083;?96s|4d094?4|V=hm70:<:5`e?!2083;?:6s|4d394?4|V=hn70:<:5`f?!2083;?;6s|4d294?4|V=ho70:<:5`g?!2083;?46s|4ed94?4|V=hh70:<:5``?!2083;?56s|51094?4|V=no70:<:5fg?!2083;?m6s|51394?4|V=nh70:<:5f`?!2083;?n6s|51294?4|V=ni70:<:5fa?!2083;?o6s|4gd94?4|V=nj70:<:5fb?!2083;?i6s|4gg94?4|V=n270:<:5f:?!2083;?j6s|4gf94?4|V=n370:<:5f;?!2083;><6s|4ga94?4|V=n:70:<:5f2?!2083;>=6s|4g694?4|V=i=70:<:5a5?!2083;>>6s|4d;94?4|V=hi70:<:5`a?!2083;>?6s|4eg94?4|V=hj70:<:5`b?!2083;>86s|51c94?4|V<:j70:<:42b?!2083;>96s|49794?4|V=2>70:<:5:6?!2083;>:6s|51694?4|V<:?70:<:427?!2083;>46s|53d94?4|V<8m70:<:40e?!2083;>o6srn`f:>5<5sA><=6saaec94?4|@==:7p`ndc83>7}O<>;0qcokc;296~N3?81vbljk:181M2092wemik50;0xL1163tdjhk4?:3yK02752zJ734=zfho:6=4={I645>{iil81<7vF;709~jdc22909wE:81:me`0=838pD99>;|lba2<72;qC8:?4}ocf5<5sA><=6saadc94?4|@==:7p`nec83>7}O<>;0qcojc;296~N3?81vblkk:181M2092wemhk50;0xL1163tdjik4?:3yK02752zJ734=zfhl:6=4={I645>{iio81<7vF;709~jd`22909wE:81:mec0=838pD99>;|lbb2<72;qC8:?4}oce5<5sA><=6saagc94?4|@==:7p`nfc83>7}O<>;0qcoic;296~N3?81vblhk:181M2092wemkk50;0xL1163tdjjk4?:3yK02752zJ734=zfk::6=4={I645>{ij981<7vF;709~jg622909wE:81:mf50=838pD99>;|la42<72;qC8:?4}o`35<5sA><=6sab1c94?4|@==:7p`m0c83>7}O<>;0qcl?c;296~N3?81vbo>k:181M2092wen=k50;0xL1163tdi52zJ734=zfk;:6=4={I645>{ij881<7vF;709~jg722909wE:81:mf40=838pD99>;|la52<72;qC8:?4}o;2e?6=9rB?;<5rn87:>5<6sA><=6sa94c94?7|@==:7p`65c83>4}O<>;0qc7:c;295~N3?81vb4;k:182M2092we58k50;3xL1163td29k4?:0yK02751zJ734=zf0<:6=4>{I645>{i1?81<7?tH552?xh>>:0;6;|l:22<728qC8:?4}o;55<6sA><=6sa97c94?7|@==:7p`66c83>4}O<>;0qc79c;295~N3?81vb48k:182M2092we5;k50;3xL1163td2:k4?:0yK02751zJ734=zf0=:6=4>{I645>{i1>81<7?tH552?xh>?:0;6;|l:32<728qC8:?4}o;45<6sA><=6sa96c94?7|@==:7p`67c83>4}O<>;0qc78c;295~N3?81vb49k:182M2092we5:k50;3xL1163td2;k4?:0yK02751zJ734=zf02:6=4>{I645>{i1181<7?tH552?xh>0:0;62290:wE:81:m==0=83;pD99>;|l:<2<728qC8:?4}o;;5<6sA><=6sa99c94?7|@==:7p`68c83>4}O<>;0qc77c;295~N3?81vb46k:182M2092we55k50;3xL1163td24k4?:0yK02751zJ734=zf03:6=4>{I645>{i1081<7?tH552?xh>1:0;6<3:1=vF;709~j;|l:=2<728qC8:?4}o;:5<6sA><=6sa98c94?7|@==:7p`69c83>4}O<>;0qc76c;295~N3?81vb47k:182M2092we54k50;3xL1163td25k4?:0yK02751zJ734=zf0k:6=4>{I645>{i1h81<7?tH552?xh>i:0;6;|l:e2<728qC8:?4}o;b5<6sA><=6sa9`c94?7|@==:7p`6ac83>4}O<>;0qc7nc;295~N3?81vb4ok:182M2092we5lk50;3xL1163td2mk4?:0yK02751zJ734=zf0h:6=4>{I645>{i1k81<7?tH552?xh>j:0;6;|l:f2<728qC8:?4}o;a5<6sA><=6sa9cc94?7|@==:7p`6bc83>4}O<>;0qc7mc;295~N3?81vb4lk:182M2092we5ok50;3xL1163td2nk4?:0yK02751zJ734=zf0i:6=4>{I645>{i1j81<7?tH552?xh>k:0;6;|l:g2<728qC8:?4}o;`5<6sA><=6sa9bc94?7|@==:7p`6cc83>4}O<>;0qc7lc;295~N3?81vb4mk:182M2092we5nk50;3xL1163td2ok4?:0yK02751zJ734=zf0n:6=4>{I645>{i1m81<7?tH552?xh>l:0;6;|l:`2<728qC8:?4}o;g5<6sA><=6sa9ec94?7|@==:7p`6dc83>4}O<>;0qc7kc;295~N3?81vb4jk:182M2092we5ik50;3xL1163td2hk4?:0yK02751zJ734=zf0o:6=4>{I645>{i1l81<7?tH552?xh>m:0;6;|l:a2<728qC8:?4}o;f5<6sA><=6sa9dc94?7|@==:7p`6ec83>4}O<>;0qc7jc;295~N3?81vb4kk:182M2092we5hk50;3xL1163td2ik4?:0yK02751zJ734=zf0l:6=4>{I645>{i1o81<7?tH552?xh>n:0;6;|l:b2<728qC8:?4}o;e5<6sA><=6sa9gc94?7|@==:7p`6fc83>4}O<>;0qc7ic;295~N3?81vb4hk:182M2092we5kk50;3xL1163td2jk4?:0yK02751zJ734=zfh::6=4>{I645>{ii981<7?tH552?xhf8:0;6;|lb42<728qC8:?4}oc35<6sA><=6saa1c94?7|@==:7p`n0c83>4}O<>;0qco?c;295~N3?81vbl>k:182M2092wem=k50;3xL1163tdj51zJ734=zfh;:6=4>{I645>{ii881<7?tH552?xhf9:0;6;|lb52<728qC8:?4}oc25<6sA><=6saa0c94?7|@==:7p`n1c83>4}O<>;0qco>c;295~N3?81vbl?k:182M2092wem51zJ734=zfh8:6=4>{I645>{ii;81<7?tH552?xhf::0;6;|lb62<728qC8:?4}oc15<6sA><=6saa3c94?7|@==:7p`n2c83>4}O<>;0qco=c;295~N3?81vblk4?:0yK02751zJ734=zfh9:6=4>{I645>{ii:81<7?tH552?xhf;:0;6;|lb72<728qC8:?4}oc05<6sA><=6saa2c94?7|@==:7p`n3c83>4}O<>;0qcok50;3xL1163tdj?k4?:0yK02751zJ734=zfh>:6=4>{I645>{ii=81<7?tH552?xhf<:0;6;|lb02<728qC8:?4}oc75<6sA><=6saa5c94?7|@==:7p`n4c83>4}O<>;0qco;c;295~N3?81vbl:k:182M2092wem9k50;3xL1163tdj8k4?:0yK027<7>51zJ734=zfh?:6=4>{I645>{ii<81<7?tH552?xhf=:0;6;|lb12<728qC8:?4}oc65<6sA><=6saa4c94?7|@==:7p`n5c83>4}O<>;0qco:c;295~N3?81vbl;k:182M2092wem8k50;3xL1163tdj9k4?:0yK02751zJ734=zfh<:6=4>{I645>{ii?81<7?tH552?xhf>:0;6;|lb22<728qC8:?4}oc55<6sA><=6saa7c94?7|@==:7p`n6c83>4}O<>;0qco9c;295~N3?81vbl8k:182M2092wem;k50;3xL1163tdj:k4?:0yK02751zJ734=zfh=:6=4>{I645>{ii>81<7?tH552?xhf?:0;6;|lb32<728qC8:?4}oc45<6sA><=6saa6c94?7|@==:7p`n7c83>4}O<>;0qco8c;295~N3?81vbl9k:182M2092wem:k50;3xL1163tdj;k4?:0yK02751zJ734=zfh2:6=4>{I645>{ii181<7?tH552?xhf0:0;62290:wE:81:me=0=83;pD99>;|lb<2<728qC8:?4}oc;5<6sA><=6saa9c94?7|@==:7p`n8c83>4}O<>;0qco7c;295~N3?81vbl6k:182M2092wem5k50;3xL1163tdj4k4?:0yK02751zJ734=zfh3:6=4>{I645>{ii081<7?tH552?xhf1:0;6<3:1=vF;709~jd?2290:wE:81:me<0=83;pD99>;|lb=2<728qC8:?4}oc:5<6sA><=6saa8c94?7|@==:7p`n9c83>4}O<>;0qco6c;295~N3?81vbl7k:182M2092wem4k50;3xL1163tdj5k4?:0yK02751zJ734=zfhk:6=4>{I645>{iih81<7?tH552?xhfi:0;6;|lbe2<728qC8:?4}ocb5<6sA><=6saa`c94?7|@==:7p`nac83>4}O<>;0qconc;295~N3?81vblok:182M2092wemlk50;3xL1163tdjmk4?:0yK02751zJ734=zfhh:6=4>{I645>{iik81<7?tH552?xhfj:0;6;|lbf2<728qC8:?4}oca5<6sA><=6saacc94?7|@==:7p`nbc83>4}O<>;0qcomc;295~N3?81vbllk:182M2092wemok50;3xL1163tdjnk4?:0yK02751zJ734=zfhi:6=4>{I645>{iij81<7?tH552?xhfk:0;6;|lbg2<728qC8:?4}oc`5<6sA><=6saabc94?7|@==:7p`ncc83>4}O<>;0qcolc;295~N3?81vblmk:182M2092wemnk50;3xL1163tdjok4?:0yK02751zJ734=zfhn:6=4>{I645>{iim81<7?tH552?xhfl:0;6;|lb`2<728qC8:?4}ocg?01274>6789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123454<80;0=>5>.130?46=AGZ^X7OKDSC?=?699l1:<7GAPTV9twi`Wog`Rzgrdqk8<<76;?0==4FNQWW>uthoVl~`aQ{hsgplZgt{lx044?>378553CE\XZ5DHC?50<76890=;4@UURVP?BHI5;>6=0>2:3;>LHW]]0oec2>7;2=5>433;98?0086?IR\Y__6IA_A=394;753:81EC^ZT;FJF956294:?6==:NWWTPR=LFH7?<4?>0687301?69l29x>=>?ff662(363=>08=HI1097>LHW]]0OE]L33;2=57=32F__\XZ5DNRA86<7681=>6864:4:=32<09:;866J8@38=1=>8939748;;845=44<13CE\XZ5AEFQF9>=87;n744FNQWW>uthoVof|ywPtipfwm:?29499675IORVP?vugnUna}zv_ujqavnXizyn~y27:1<11>?=AGZ^X7~}of]fiur~W}byi~fPndebp`:?294:n675OTVSQQ55NDEPB858?3HNO^L2>>99B@ATF4;437LJKR@>0:==FLMXJ0907;@FGVD:2611JHI\N<7<;?DBCZH6<255NDEPB8=8f3HNO^L26:1<;?DBCZH62255NDEPA858?3HNO^O2>>99B@ATE4;437LJKRC>0:==FLMXI0907;@FGVG:2611JHI\M<7<;?DBCZK6<2l5NDEPA8=<7611JHI\M<9<0?DJK12KXUCMPRDE0?GS502H^_RGAFN38G7=DM880OEKLK^NJG@HTMV^R\H<4CH68GIMF<2IGGO=4CMP:?FIJE@^_II?;;BMQAZABFLXJXDAA_HLEK2=DZLK_II?4D39GG7=CA?1OEL2?>69GMD:687=0HDO310<4?AOF4885;6JFA=30:2=CAH6:8374DHC?50<76>1OEL2>5?48@LG;97<0HDO32?48@LG;;7<0HDO34?48@LG;=7<0HDO36?48@LG;?7<0HDO38?48@LG;17<0HDL30?58@LD;994<7IGM<03=3>BNJ5;92:5KIC>27;169GMG:6?7=0HDL319<4?AOE4835:6JFB=3=3>BNJ58;2:5KIC>15;1?08;EKA8759?2NBN1<;>69GMG:5=7=0HDL327<4?AOE4;=5;6JFB=0;:2=CAK695384DH@?6;14=7IGM<9<5?AOE404<7IG_A=2==>BNXH6:6=08;EKSE979?2NB\O2?>69GMUD;97=0HD^M<3<:?AOWJ591<394DHRA86813MEJ0=08;EMB8469?2NDM1?>>69GKD:6:7=0HBO312<4?AIF48>556J@A=36>5803MEJ0<;16:FLE979>2NDM1<16:FLE959>2NDM1:16:FLE939>2NDM1816:FLE919>2NDM1616:FLE9?9?2NDMR\JG79GKG:76>1OCO2>0?58@JD;984<7IAM<00=3>BHJ5;82:5KOC>20;169GKG:607=0HBL318<5?AIE484<7IAM<32=3>BHJ58:2:5KOC>16;1>08;EMA8729?2NDN1<:>69GKG:5>7=0HBL326<4?AIE4;25;6J@B=0::3=CGK692:5KOC>04;?69GKG:497<0HBL33?48@JD;<7<0HBL35?48@JD;>7<0HBL37?48@JD;07<0HBL39?58@JDXZLM<7IA_A=2==>BHXH6:6=08;EMSE979?2ND\O2?>69GKUD;97=0HB^M<3<:?AIWJ591<394DNRA86843LDJ?6KABc9FJZCDKVXNMIm4EO]FGFYPZ@^N>6H=2:D;1>@FDZO97KJ<;GF@0>@CKL90JI^;;GFSA1=AL[O?7KH7009D7>AIL81B>6G?2:K26>O5:2C846GAIUR\45>>8:KMMQVX8;20ECG[P^20<>OIA]ZT<964IOKWTZ6202CEEY^P07:8MKOSXV:<56GAIUQWEQC03@DBXR>?7:KMMQY79>1BBDZP0358MKOSW99<7D@FT^273>OIA]U;9:5FNHV\4311BBDZP1358MKOSW89<7D@FT^373>OIA]U:9:5FNHV\531969JJLRX9H=0ECG[_0@4?LHN\V;H;6GAIU]2@2=NF@^T=H94IOKW[4@03@DBXR1BBDZP2358MKOSW;9<7D@FT^073>OIA]U99:5FNHV\631H94IOKW[7@03@DBXR=?7:KMMQY49>1BBDZP3358MKOSW:9<7D@FT^173>OIA]U89:5FNHV\73198;HLJPZ5??2CEEYQ<969JJLRX;H=0ECG[_2@4?LHN\V9H;6GAIU]0@2=NF@^T?H94IOKW[6@13@DBXRO9;HLJPZD43@D]>6BF2:NL2>JHIMOO;6B@GHABH1=K]];?7A[[259OQQ533E__8;5CUU6\@0=J[NEE96CZXB[`?Hgmg{\n~~g`nb9Nmkiu^lxxeb`<;O226>H6<2D:<=:4N0220>H68;>0B<><4:L241286@>0768J460<2D:<5:4N02:7>H69=1E=<>;;O3251=I988?7C?>359M54233G;:995A1047?K76?=1E=<6;;O32=6=I9;>0B<2268J443<2D:>8:4N0050>H6:>>0B<<73:L271=I9:;87C?;3:L216=I9?>0B<8;3:L236=I9190B<7=;O00?K47;2D9=>5A2318J7543G8??6@=529M635H>;:1E59=4N870?K?1;2D2;>5A9918JIL92Z?7]O]T`9SMKYE]ZCOTo5_IO]AQVHFEL90\_K>;P38V`=UIDH::R]>8^Q02d=UMHNTJD\\Tb9QADBX_@N_DROl;SGB@ZQNL]BTN<5\129PMHYDGEFB_DAA_BJFGN0<[F_YOH94SSTBHZG03ZX]MAQM4:QPVD2<[ZXI86ZVPD11?P6(o{l%~k!hcy,`hn~(EqeySjPpovq[beXpfx;<=>PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^pg[uhszVmhSua}0122[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYulVzexQhc^zlv567:VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;<>Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?016\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4562W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;:R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?06]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[rtXxg~ySjmPxnp3456XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^e`[}iu89::S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?2^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2346YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt789>T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=>:_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1232ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678>UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=6PRdqvhq7592_;#j|i.sd,cf~)keas#jPpovq[goi4949=6[?/fpe*w`(ojr%oaew/sf\tkruWkce0<0=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<3<15>S7'nxm"h gbz-gim'{nT|cz}_ckm868592_;#j|i.sd,cf~)keas#jPpovq[goi4=49=6[?/fpe*w`(ojr%oaew/sf\tkruWkce080=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<7<15>S7'nxm"h gbz-gim'{nT|cz}_ckm828592_;#j|i.sd,cf~)keas#jPpovq[goi4149<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS= gsd-vc)`kq$h`fv re]sjqtXj`dT9?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ9219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^514>S7'nxm"h gbz-gim'{nT|cz}_ckm[=413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=>=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45679;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0004?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789;:>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123671<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?3305?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789>9;6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0127570<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<8<8;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34536:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?63:8Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678?;:>:5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123274e3\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=8Pbef363=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;;?94U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos23427582_;#j|i.sd,cf~)keas#jPpovq[be;878;7X> gsd-vc)`kq$h`fv re]sjqtXoj6:2?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo1<1219V4*aun'xm#jmw.bnh|*tcWyd~Ril<2<14>S7'nxm"h gbz-gim'{nT|cz}_fa?0;473\:$kh!rg-dg}(ddbr$~iQnup\cf:26;:0Y=!hrg,qb*adp'iggu!}d^rmpwY`k5<5>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmh0:0=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm38?3e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]35c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[47a3\:$kh!rg-dg}(ddbr$~iQnup\cfY59o1^<"i}f/pe+be&jf`t"|k_qlwvZadW:;m7X> gsd-vc)`kq$h`fv re]sjqtXojU?=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS8?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ91g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_63e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb];63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn6;2?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?5;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol0?0=6:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfc959:?1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyij2;>348Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;=78=7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh<7<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo5=5>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>;:73<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\773<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT8?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\173<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT:?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\373<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT4?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:76;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>2:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<2=>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8682?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:36;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>6:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<29>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86<2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:?6;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]36==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012360=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89::>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012160=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:8>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012760=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:>>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012560=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:<><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb1?1209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=0=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj959:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf5>5><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb1;1209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=4=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj919:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf525><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb171219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^314>S7'nxm"h gbz-gim'~xT|cz}_ckm[7473\:$kh!rg-dg}(ddbr${Qnup\flhX;;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU?>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR;=0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_703?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\376<]9%l~k }f.e`|+ekcq%|~R~ats]amkY?:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV39:6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012362=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;<<<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34575?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>>1348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678;8<7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?010263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;??94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234645>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>;269V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567<88=7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01713>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:>=?84U1-dvc(un&mht#mcky-tvZvi|{UiecQwos23434?3\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=8>1358Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678?89n6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}0125[gbc8;<0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?0604?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt789=:>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh0=0=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm31?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>1:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg959:91^<"i}f/pe+be&jf`t"y}_qlwvZad4=49<6[?/fpe*w`(ojr%oaew/vp\tkruWni793328Q5)`zo$yj"ilx/aoo})pzVzexQhc=5=65=R8&myj#|i/fa{*fjlp&}yS}`{r^e`8=8582_;#j|i.sd,cf~)keas#z|Ppovq[be;17;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU;=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU3=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS4<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8585>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk1?1279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:56;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi33?05?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4=49:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=7=63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn6=2?84U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde?3;413\:$kh!rg-dg}(ddbr${Qnup\cfYf{{ol050=6:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfc9?9:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ?249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY6:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ=249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY4:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ;249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY2:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ9249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY0:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ7249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY>:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=3=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1<1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9595>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5929:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=7=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=181289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95=5>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g59>9:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=;=6==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh55Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5Z?5=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=>=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34575=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=<=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34555=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=:=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34535=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=8=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34515=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=6<0:W3+bta&{l$ka>!re-dv4(un~l#@czx^PBIZTCWLDTJZH[200e?P6(o{l%~k!hl1,q`*au9'xm{kz Mlw{[WGJW[OLCXZPEO326a=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e=2=6a=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e=3=6f=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e^21g>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_016?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykPmtz3457;879=7X> gsd-vc)`d9$yh"i}1/pescr(k|xySkyit^qweqcXe|r;<=?30?301>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_lw{45664848:6[?/fpe*w`(oe:%~i!hr0,qbr`s'jy~Rhxfu]ppdrbWds<=>><0<26==R8&myj#|i/fn3*wb(o{;%~kyit.gntqXn~lSkl=7:W3+bta&{l$ka>!re-dv4(un~l#hctx]escrXa;l0Y=!hrg,qb*ak8'xo#j|>.sdtbq)bey~rSkyit^k\ip~789:8<6[?/fpe*w`(oe:%~i!hr0,qbr`s'lg{xtQiwgv\mZkrp9:;<<<6;T2,cw`)zo%l`= }d.eqev(u{}y$o=!laspzj`r;87827X> gsd-vc)`d9$yh"i}ar,qwqu(k9%hm|vndv?5;4>3\:$kh!rg-dh5(ul&mym~ }suq,g5)di{xrbhz32?0:?P6(o{l%~k!hl1,q`*auiz$yy} c1-`ewt~fl~7?32g9V4*aun'xm#jb?.sf,cwgt&{y"m?/fov|+ajS8W%k`}!mr0e?P6(o{l%~k!hl1,q`*auiz$yy} c1-dip~)odQ9Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a3+bkrp'mfW>S!glq-iv4a3\:$kh!rg-dh5(ul&mym~ }suq,g5)`e|r%k`U;]/enw+kt::1^<"i}f/pe+bj7&{n$ko|.sqww*e7';7<3<<;T2,cw`)zo%l`= }d.eqev(u{}y$o=!y1=3=66=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7;:7887X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=1=1229V4*aun'xm#jb?.sf,cwgt&{y"m?/w3?0;4e3\:$kh!rg-dh5(ul&mym~ }suq,g5)q9V:Tmcj?01226g=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7X9Vkeh=>?000a?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5Z4Xign;<=>>2c9V4*aun'xm#jb?.sf,cwgt&{y"m?/w3\7Zgil9:;<<45Z0.eqb+ta'nf;"j gscp*wus{&i:#no}rxlfp969:01^<"i}f/pe+bj7&{n$ko|.sqww*e6'jky~t`jt=3=6<=R8&myj#|i/fn3*wb(o{kx"}{s.a2+fguzpdnx1<1289V4*aun'xm#jb?.sf,cwgt&{y"m>/bcqv|hb|595>k5Z0.eqb+ta'nf;"j gscp*wus{&i:#jczx/en_5[)od;%a</fov|+ajS;W%k`}!mr0e?P6(o{l%~k!hl1,q`*auiz$yy} c0-dip~)odQ8Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a2+bkrp'mfW9S!glq-iv443\:$kh!rg-dh5(ul&mym~ }suq,g4)q95:5>>5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?31?00?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5949::1^<"i}f/pe+bj7&{n$ko|.sqww*e6';7?3<<;T2,cw`)zo%l`= }d.eqev(u{}y$o?000a?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5Z7Xign;<=>>2c9V4*aun'xm#jb?.sf,cwgt&{y"m>/w3\6Zgil9:;<<o5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?P4^llp567888;7X> gsd-vc)`d9$yh"i}ar,qwqu(kfg{4U1-dvc(un&mg<#|k/fpbw+tt|z%hc`~>289V4*aun'xm#jb?.sf,cwgt&{y"|nm^gntqXnkUb?=5Z0.eqb+ta'nf;"j gscp*wus{&xjaRkbpu{\bgYnWfx;<=><1:W3+bta&{l$ka>!re-dvdu)zz~x#ob_dosp|YajVcTc>?01317>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz>259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq45<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex><;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw072<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~>>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu410>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|>8?7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{83;8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6;2?m4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:76Vx>45Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}979:j1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=3=[wr512_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<3<1g>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0?0Pru0:?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7?37:Zts:01^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=7=6f=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1;1_sv1=>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0;0=c:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4?4T~y<6;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[f;?78h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?3;Yu|;k0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?4;4f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSua}<0<1e>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1<12`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{682?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;<78j7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8085i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=4=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc28>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx74311g9V4*aun'xm#jb?.sf,vuhsz&idycz31?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=0=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?7;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9299o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;=7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5<5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~7;3?i;T2,cw`)zo%l`= }d.psjqt(kfex1611d9V4*aun'xm#jb?.sf,vuhsz&idyczP00g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_03f?P6(o{l%~k!hl1,q`*twf}x$ob{at^02a>S7'nxm"h gm2-va)uxg~y#naznu]05`=R8&myj#|i/fn3*wb(zyd~"m`uov\04c<]9%l~k }f.eo4+tc'{zex!lotlw[07b3\:$kh!rg-dh5(ul&x{by| cnwmpZ06m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY09l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX0;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;7<3<=;T2,cw`)zo%l`= }d.psjqt(kfexRj><0<16>S7'nxm"h gm2-va)uxg~y#naznu]g5949:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl8682?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?34?01?P6(o{l%~k!hl1,q`*twf}x$ob{at^f28085:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc95<5>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<28>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?<;463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W98:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S<<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_302?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[6463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W=8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S8<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_702?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[2463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W18?7X> gsd-vc)`d9$yh"|nup,gjsi|Vddx=>?12d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>2:6`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8784n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:46:l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Ze~4=48j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xkp6>2>h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir0;0!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:Tot28>2d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>::17<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp9776=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5;58;5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567We0<0PIOT\416<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp949<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[iss4:4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xd|~783:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Ugyy2:>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?_mww828382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\hpr;07>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yk}}6229?4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vrd~1??>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?_ymq878382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\|jt;;7>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yg{6?29>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vrd~1;1419V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Sua}<7<74>S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pxnp?3;273\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(EhnoSigif^rmpwYwimUjhi>?01]{kw:?6=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Z~hz535?=5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"jffg]sjqtXxhn7==0=f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{mi2>>3d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok<3<1b>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae>0:7`<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg8185n2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]sea:26;l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugc4?49j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwim6<2?h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWyko050=f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{mi26>3g8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok_00e?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,`l`aWyd~R~nd^336`=R8&myj#|i/fn3*rt(o~kx"j~i.vpsb*bnnoU{by|Pp`f\67c<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[64b3\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(l`lmS}`{r^rb`Z25m2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaY2:l1^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&nbjkQnup\tdbX>;o0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcW>8n7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$hdhi_qlwvZvflV29i6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimU2?55Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"jffg]sjqtXxhnTmij?012?5584?2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaYflm:;<=2>>258Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok_`fg45674;48;6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimUjhi>?01>0:61<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[dbc89:;090<7:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{miQnde2345:26:=0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcWhno<=>?<7<03>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae]b`a67896<2>94U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWykoSljk01238=84?2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaYflm:;<=26>3c8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-svjaXn|fgSd==;T2,cw`)zo%l`= xr.etev(`xo$|~}h psmd[cskdVcTaxv?01100>S7'nxm"h gm2-sw)`hy%k}h!wsre+uthoVl~`aQf_lw{4564989?7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$|ah_gwohZoXe|r;<==>92:8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-svjaXn|fgSdQbuy23467>WZ];??5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"~}of]eqijXaVddx=>?13;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6;2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:66;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>1:7?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2<>3d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(`eR:V"jc>.l31b>S7'nxm"h gm2-sw)`hy%{~z|/b3,chs&ngP=P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28485;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8692?=4U1-dvc(un&mg<#y}/fubw+qt|z%h="x><2<17>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4:36;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S=Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U:Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W;Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4Y4Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t2[1Yffm:;<=?=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs494956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw848512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<3<1=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0>0=f:W3+bta&{l$ka>!ws-dsdu)z~x#n< glw{*bk\8T$la< b13d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.enq}(`eR;V"jc|.lq1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP>P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`6*aj}q$laV=R.fop*hu5n2_;#j|i.sd,ci6){%l{l}!wrvp+f4(ods"jcT4\,div(j{;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0=0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>2:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64;49?6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z<2<>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t28185j2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~8U;Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p6W8Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y5Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t2[6Yffm:;<=?=b:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0]7[dhc89:;=?>4U1-dvc(un&mg<#y}/fubw+qt|z%hc`~>219V4*aun'xm#jb?.vp,crgt&~y"m`mq014>S7'nxm"h gm2-sw)`hy%{~z|/bmnt64c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?4;4c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?5;4c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?6;4c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?7;543\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%laxv!glY3Y+aj9'g:?>5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m1^<"i}f/pe+bj7&~x$kzo|.vqww*afn'i8#{?32?04?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q9595>:5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#mPaof34566:o1^<"i}f/pe+bj7&~x$kzo|.vqww*afn'i8#{?P1^cm`567888m7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!y1^0\ekb789::>k5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m>2b9V4*aun'xm#jb?.vp,crgt&~y"|nm^coijusWog`Rg<4:W3+bta&{l$ka>!ws-dsdu)z~x#ob_`nnkvrXn|fgSdQbuy2345523\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXiegdyQiumn\mZkrp9:;<<=m;T2,cw`)zo%l`= xr.etev(p{}y$~lcPamolwqYa}efTeR``t12354YNF_U;>55Z0.eqb+ta'nf;"z| gvcp*rus{&xjaRhzlm]efZo5=2_;#j|i.sd,ci6){%l{l}!wrvp+wgjWog`Rg=d:W3+bta&{l$ka>!ws-dsdu)z~x#ob_gwohZoXe|r;<=>=e:W3+bta&{l$ka>!ws-dsdu)z~x#ob_gwohZoXe|r;<=>>1e9V4*aun'xm#jb?.vp,vdkX{UnbRg>1g9V4*aun'xm#jb?.vp,vdkX{UnbRg>_000?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by?=4:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp7433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d??:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov761=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}?986[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at707?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs?;>0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz7259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq?512_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<1<1g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir0=0Pru0:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7=31:Zts:01^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=1=6f=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1=1_sv1=>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir090=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4=4T~y<6;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;=78h7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?1;Yu|;30Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPcx>5:7e<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot29>^pw6<=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1912b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5=5Sz=9:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4149o6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8=8Xz}8j7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8585i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=3=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc2=>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7?35:7g<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|37?0b?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey050=a:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZ~hz535>i5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]{kw:>6Vx=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~7<3?i;T2,cw`)zo%l`= xr.usjqt(kfex1?11g9V4*aun'xm#jb?.vp,suhsz&idycz32?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=1=5c=R8&myj#|i/fn3*rt(yd~"m`uov?0;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9399o1^<"i}f/pe+bj7&~x${}`{r.alqkr;>7;m7X> gsd-vc)`d9$|~"ynup,gjsi|5=5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~743?i;T2,cw`)zo%l`= xr.usjqt(kfex1711d9V4*aun'xm#jb?.vp,suhsz&idyczP00g8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_03f?P6(o{l%~k!hl1,tv*qwf}x$ob{at^02a>S7'nxm"h gm2-sw)pxg~y#naznu]05`=R8&myj#|i/fn3*rt(yd~"m`uov\04c<]9%l~k }f.eo4+qu'~zex!lotlw[07b3\:$kh!rg-dh5(pz&}{by| cnwmpZ06m2_;#j|i.sd,ci6){%||cz}/bmvjqY09l1^<"i}f/pe+bj7&~x${}`{r.alqkrX08o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW0897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:0=0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=3=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:56;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7?3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><5<16>S7'nxm"h gm2-sw)pxg~y#naznu]g5939:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl86=2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?37?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28=85:2_;#j|i.sd,ci6){%||cz}/bmvjqYc9535><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<5Z0.eqb+ta'nf;"z| wqlwv*eh}g~ThS7'nxm"h gm2-sw)pxg~y#naznu]g6959:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;6?2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<35?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f18385:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5=5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?27>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?=;463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W98:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S<<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_302?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[6463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W=8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S8<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_702?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[2463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W18:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S4<=;T2,cw`)zo%l`= xr.usjqt(kfexRj<<1<16>S7'nxm"h gm2-sw)pxg~y#naznu]g7979:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl:692?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=33?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f08185:2_;#j|i.sd,ci6){%||cz}/bmvjqYc;5?5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>29>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1?3;453\:$kh!rg-dh5(pz&}{by| cnwmpZb44149>6[?/fpe*w`(oe:%{!xpovq+firf}Uo?171209V4*aun'xm#jb?.vp,suhsz&idyczPd2]364=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y6:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U9><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q<209V4*aun'xm#jb?.vp,suhsz&idyczPd2]764=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y2:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U=><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q8209V4*aun'xm#jb?.vp,suhsz&idyczPd2];64=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y>:=1^<"i}f/pe+bj7&~x${}`{r.alqkrXff~;<=?>7:W3+bta&{l$ahc dnww[l:76820Y=!hrg,qb*kbe&ndyyQf<02=5==R8&myj#|i/lgn+air|Vc7=<0>8:W3+bta&{l$ahc dnww[l:6:7;37X> gsd-vc)jmd%ocxzPi=30:4><]9%l~k }f.ofi*bh}}Ub0<:1199V4*aun'xm#`kb/emvpZo;9<4:46[?/fpe*w`(elg$hb{{_h>22;7?3\:$kh!rg-nah)cg|~Te1?8>0:8Q5)`zo$yj"cjm.flqqYn4825=55Z0.eqb+ta'dof#iazt^k?5<86?2_;#j|i.sd,i`k(lfSd2>>0:8Q5)`zo$yj"cjm.flqqYn4;:5=55Z0.eqb+ta'dof#iazt^k?648602_;#j|i.sd,i`k(lfSd2=2?3;?P6(o{l%~k!bel-gkprXa5882<64U1-dvc(un&gna"j`uu]j8729911^<"i}f/pe+hcj'me~xRg324<2<>S7'nxm"h mdo,`jssW`69:3?7;T2,cw`)zo%fi`!kotv\m9406820Y=!hrg,qb*kbe&ndyyQf<3:=5==R8&myj#|i/lgn+air|Vc7>40>7:W3+bta&{l$ahc dnww[l:56820Y=!hrg,qb*kbe&ndyyQf<22=5==R8&myj#|i/lgn+air|Vc7?<0>8:W3+bta&{l$ahc dnww[l:4:7;37X> gsd-vc)jmd%ocxzPi=10:4><]9%l~k }f.ofi*bh}}Ub0>:1199V4*aun'xm#`kb/emvpZo;;<4:;6[?/fpe*w`(elg$hb{{_h>0:41<]9%l~k }f.ofi*bh}}Ub090>7:W3+bta&{l$ahc dnww[l:268=0Y=!hrg,qb*kbe&ndyyQf<7<23>S7'nxm"h mdo,`jssW`6<2<94U1-dvc(un&gna"j`uu]j8=86?2_;#j|i.sd,i`k(lfSd26>048Q5)`zo$yj"cjm.flqqYnW9;=7X> gsd-vc)jmd%ocxzPi^323>S7'nxm"h mdo,`jssW`U:<<94U1-dvc(un&gna"j`uu]j[476?2_;#j|i.sd,i`k(lfSdQ>2058Q5)`zo$yj"cjm.flqqYnW89:;6[?/fpe*w`(elg$hb{{_h]2041<]9%l~k }f.ofi*bh}}UbS<;>7:W3+bta&{l$ahc dnww[lY6>8=0Y=!hrg,qb*kbe&ndyyQf_0523>S7'nxm"h mdo,`jssW`U:4<94U1-dvc(un&gna"j`uu]j[4?6>2_;#j|i.sd,i`k(lfSdQ=169V4*aun'xm#`kb/emvpZoX:9;<7X> gsd-vc)jmd%ocxzPi^0252=R8&myj#|i/lgn+air|VcT>??8;T2,cw`)zo%fi`!kotv\mZ449>1^<"i}f/pe+hcj'me~xRgP2534?P6(o{l%~k!bel-gkprXaV8>=:5Z0.eqb+ta'dof#iazt^k\63703\:$kh!rg-nah)cg|~TeR<8169V4*aun'xm#`kb/emvpZoX:1;<7X> gsd-vc)jmd%ocxzPi^0:53=R8&myj#|i/lgn+air|VcT?<94U1-dvc(un&gna"j`uu]j[666?2_;#j|i.sd,i`k(lfSdQ<1058Q5)`zo$yj"cjm.flqqYnW:8:;6[?/fpe*w`(elg$hb{{_h]0741<]9%l~k }f.ofi*bh}}UbS>:>7:W3+bta&{l$ahc dnww[lY4=8<0Y=!hrg,qb*kbe&ndyyQf_535?P6(o{l%~k!bel-gkprXaV?::6[?/fpe*w`(elg$hb{{_h]553=R8&myj#|i/lgn+air|VcT;<84U1-dvc(un&gna"j`uu]j[=713\:$kh!rg-nah)cg|~TeR7>9:W3+bta&{l$ahc dnww[hcj494:m6[?/fpe*w`(elg$hb{{_lgn84699h1^<"i}f/pe+hcj'me~xRcjm=32:4g<]9%l~k }f.ofi*bh}}Ufi`2>2?3b?P6(o{l%~k!bel-gkprXelg7=>0>a:W3+bta&{l$ahc dnww[hcj48>5=l5Z0.eqb+ta'dof#iazt^ofi97268k0Y=!hrg,qb*kbe&ndyyQbel>22;7f3\:$kh!rg-nah)cg|~Tahc316<2e>S7'nxm"h mdo,`jssWdof0<611`9V4*aun'xm#`kb/emvpZkbe5;22<74U1-dvc(un&gna"j`uu]nah:668k0Y=!hrg,qb*kbe&ndyyQbel>14;7f3\:$kh!rg-nah)cg|~Tahc320<2e>S7'nxm"h mdo,`jssWdof0?<11`9V4*aun'xm#`kb/emvpZkbe5882 gsd-vc)jmd%ocxzPmdo?6086i2_;#j|i.sd,i`k(lfS`kb<34=5d=R8&myj#|i/lgn+air|Vgna1<8>0c8Q5)`zo$yj"cjm.flqqYjmd6943?n;T2,cw`)zo%fi`!kotv\i`k;:04:56[?/fpe*w`(elg$hb{{_lgn8786i2_;#j|i.sd,i`k(lfS`kb<22=5d=R8&myj#|i/lgn+air|Vgna1=>>0c8Q5)`zo$yj"cjm.flqqYjmd68>3?n;T2,cw`)zo%fi`!kotv\i`k;;:4:m6[?/fpe*w`(elg$hb{{_lgn86299h1^<"i}f/pe+hcj'me~xRcjm=16:4?<]9%l~k }f.ofi*bh}}Ufi`2<>0;8Q5)`zo$yj"cjm.flqqYjmd6?2<74U1-dvc(un&gna"j`uu]nah:26830Y=!hrg,qb*kbe&ndyyQbel>5:4?<]9%l~k }f.ofi*bh}}Ufi`28>0;8Q5)`zo$yj"cjm.flqqYjmd632<74U1-dvc(un&gna"j`uu]nah:>6>>0Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+sgkam$hy| r`ookjv\8T$ym` }/r1\jjoia}$ym`!kpscn*av60q9="ob1c9V4*aun'xm#`kb/uos[wgjW{nTic?l;T2,cw`)zo%fi`!{mq]qehYulVoe=<94U1-dvc(un&xjaR|jgnww[`h6l2_;#j|i.sd,vvredb%yhR||t^cpv`a582_;#j|i.sd,vvredb%yhR||t^cpv`aXl88;7X> gsd-vc)u{}hgg"|k_sqw[duumnUo>d:W3+bta&{l$~~zmlj-q`Ztt|VxnkR>>d:W3+bta&{l$~~zmlj-q`Ztt|VxnkR?>d:W3+bta&{l$~~zmlj-q`Ztt|VxnkR<>d:W3+bta&{l$~~zmlj-tvZtt|Vkx~hi=0:W3+bta&{l$~~zmlj-tvZtt|Vkx~hiPd003?P6(o{l%~k!}su`oo*quW{ySl}}ef]g64e<]9%l~k }f.pppgjl'~xT~~zPcnoa5a=R8&myj#|i/sqwfim({UyyQlol`25`=R8&myj#|i/sqwfim({UyyQ}ef>3:4c<]9%l~k }f.pppgjl'~xT~~zPrde?5;7c3\:$kh!rg-qwqdkc&}yS}{_sgd[57c3\:$kh!rg-qwqdkc&}yS}{_sgd[4g<]ZOYSLBFARa8QVCUW_CXEOBJ3:T@G<=QAL]TXT^J3:UFE6=PMKi0[_G[E^OL@@YFk2]YEYKPMNFF[Gb<_[C_IRYFDUJ\Ea=PZ@^NSZGKTI]A5a=_AECET VKB!2-5%US]K*;"<.NSBKJ1>^HZJS=7U][LH@4?]USWNDO;6V\T^T@Gg=_WJEYIRGAFN48\adXAml0TifPPsknR`ttafd:<6Vkm^ObnjtQm{ybcc??;Yfn[Hoig{\n~~g`nb9bhhit|Vof|ywm;`nnkvrXn|fg:6lncjws`>dfkb{S`o}kdp0?fjll2njxlQlotlw,5/c3mkmRm`uov+5,bbf|hUhcx`{(5+g?agsiVidycz'5(f8`drfWje~by&9)e9geqgXkfex%9&d:fbpdYdg|d$5'k;ecweZeh}g~#5$h4d`vb[firf}626=08;e`jp`tu>2nbb%>&6:fjj-7.?2nbb%??)69gmk.69 =0hd`'13+4?aoi 89";6jfn)37-2=cag":9$94dhl+53/03mce$<9&6:fjj-4.>2nbb%=&6:fjj-2.>2nbb%;&6:fjj-0.>2nbb%9&6:fjj->.>2nbb%7&6:fjj969?2nbb1??>69gmk:697=0hd`313<4?aoi4895;6jfn=37:2=cag6:9394dhl?538>3mce0<950?58`lh;9>4=7iga<0<5?aoi4;4=7iga<2<5?aoi4=4=7iga<4<5?aoi4?4=7iga<6<5?aoi414=7iga<8<4?air|!:";6j`uu*2-==cg|~#=='7;emvp-76!11ocxz'13+;?air|!;8%55kotv+51/?3me~x%?:)99gkpr/9?#37iazt)34-==cg|~#=5'7;emvp-7>!>1ocxz'2(:8`jss ;:"46j`uu*15,>bh}}"99$64dnww,70.02ndyy&=7(:8`jss ;2"46j`uu*1=,1'7;emvp-57!11ocxz'30+;?air|!99%55kotv+76/?3me~x%=;)99gkpr/;<#<7iazt)6*3>bh}}">%:5kotv+2,1.?2ndyy&6)69gkpr;8720hb{{<02=<>bh}}6:=364dnww844902ndyy2>3?:8`jss48>546j`uu>21;>bh}}6:5394dnww848?3me~x199gkpr;:8437iazt=01:==cg|~7>>07;emvp943611ocxz324<;?air|58=255kotv?628?3me~x1<7>99gkpr;:04<7iazt=0=<>bh}}68<364dnww867902ndyy2<2?:8`jss4:9546j`uu>00;g;50?:8`jss4:?5;6j`uu>0:2=cg|~78394dnww80803me~x1817:flqq:06>1ocxz38?58`jss40437hjff3ld`0=bey~r>k5iigm\c`hbzh~d~Rx9_0.#\ljnfq*HC_K/Gdlfvdrhz);9"=?v<6^0`hnY60}e8:>o4fhdl[}jipV?:>u=9_3aooZ7?|f9= kgio^efj`tf|fxTz;Q>,OMMA)HHFL>;?6hffn]{hk~X=88s?;Q=cmi\5=rh;?&mekaPgdlfvdrhzV|=S<"tc^jbwZoi|Vigg0>#c^jbwZuu{}7; nQ}d^dqat;6$jUnbllce^pppZu~fj7: nQgar]q`Zbf|hUhcx`{=1.`[aoiW~coxe3>8-a\lduX{UomyoPcnwmp86+kVl~`aQil`ep[wusWkg1="l_hosh`kbf}keb`Ptxrf97*dW|ynShcmeeff`Ztbo4:'oRy}_gpfu87+kVxiRj`uu]qwq;6$jU~bik}fmmt[iip59&hSeo|_ntfvcjh4:'oR~}emmb`Zjf|ldhu0>#c^flqqYpam~c1>8#c^opcjhX~hf6=!mPre]gauro5<;9 nQjrsmq[lhmmj~bccQ{yqg>4)eX`hyTycjjrgnls86+kVbjRocmnqw[cskd4;'oRfns^ppp87+kVnjxlQlotlw[roc|a7:4)eXx{elSk{cl^vkv`uoWgolmykPv`n>5573$jU|~Rjjpuj>5543$jU{~biPelrw}ZrozlycSckhaug\rdj:=%iT|ah_dosp|Ys`{oxdRo|sdpw[sgk5=&hSeo|_wcoma;7$jU{~biPftno[qnumzbTm~}jru]uei;688?'obcoogmpZhfel7mekaPxml{[075p:nbd_0:wk60+kV|j`djPlnu>4)eXx{cfSkgio^vzt`;6cq;3 nQrne\bpjkW}s{i0?#c^ofijt~W}s{i0?#}248bl`hWqfetR;>2y15[7ekcV;3xb=9_gkekZabflxjxb|Pv7]2[}usW8>0jxbcd:kmn`eslkci|k;hliafrtj`~n~94iov\gim?3gmhnxgcd99lr`tadf}j7}|`g^gntq6<2zycjQjmqvz[qnumzb#<$?;;qplcZcjx}sTxe|jsi*2-42vugnUna}zv_ujqavn/< ;?7}|`g^gntqX|axne&:)068twi`Wlg{xtQ{hsgpl-0.9=1{~biPelrw}Zrozlyc$:'>4:rqkbYbey~rSyf}erj+<,713yxdkRkbpu{\pmtb{a636=0>b:rqkbYbey~rSyf}erj\evubz}";%vugnUna}zv_ujqavnXizyn~y&9)0`8twi`Wlg{xtQ{hsgplZgt{lx$:'>b:rqkbYbey~rSyf}erj\evubz}"3%vugnUna}zv_ujqavnXflmjxh&:)0`8twi`Wlg{xtQ{hsgplZhboh~n$;'>b:rqkbYbey~rSyf}erj\j`af|l"<%5rne\bpjkW}byi~f'1(30?uthoVl~`aQ{hsgpl-4.9:1{~biPftno[qnumzb#?$?<;qplcZ`rdeUdk|h)6*56=wzfmTjxbc_ujqavn/= ;87}|`g^dvhiYs`{oxd%8&129svjaXn|fgSyf}erj+3,743yxdkRhzlm]wlwct`!2"=>5rne\bpjkW}byi~f'9(36?uthoVl~`aQ{hsgpl9?=87;j7}|`g^dvhiYs`{oxdRo|sdpw,5/6i2zycjQiumn\pmtb{aUj~k}t)3*5d=wzfmTjxbc_ujqavnXizyn~y&=)0c8twi`Wog`Rzgrdqk[dutm{~#?$?n;qplcZ`rdeUdk|h^cpw`ts =#:m6~}of]eqijX|axneQnsrgqp-3.9h1{~biPftno[qnumzbTm~}jru*5-4ga:rqkbYa}efTxe|jsi]bwvcu|!3"=n5rne\bpjkW}byi~fParqfvq:>294:m6~}of]eqijX|axneQaefcwa-6.9h1{~biPftno[qnumzbTbhintd*2-4g'>a:rqkbYa}efTxe|jsi]mabgsm!>"=l5rne\bpjkW}byi~fPndebp`.2!8k0|ah_gwohZrozlycSckhaug+2,7f3yxdkRhzlm]wlwct`Vdnklzj(6+2e>vugnUmyabPtipfwmYimnki%6&1`9svjaXn|fgSyf}erj\j`af|l"2%4re]geqgXkfex%=&119q`Zbf|hUhcx`{(5+24>tcWmkmRm`uov+1,773{nThlzn_bmvjq.1!8:0~iQkauc\gjsi|!="==5}d^fbpdYdg|d$5'>0:pg[agsiVidycz30?31?wbXlh~jSnaznu>;>5823{nTic84re]qwq5uu{}837yc/^ad+coagVrgbuQ:13z02Z4ddbU:4ya<6/ldk1=sz|o27x`kesdokr3<~hfbh;5xr^c`o3=pzVigg<>4ws]geqgXkfex%>&119tvZbf|hUhcx`{(0+24>quWmkmRm`uov+6,773~xThlzn_bmvjq.4!8:0{Qkauc\gjsi|!>"==5xr^fbpdYdg|d$8'>0:uq[agsiVidycz'6(33?rtXlh~jSnaznu*4-46<{UomyoPcnwmp->.991|~Rjnt`]`kphs 0#:>6y}_ecweZeh}g~757>15:uq[`h13~xT~~zr@Ar``==GHq?=>7H54;3xW1c==991;7?<2c4g6?4f:k=pb96=:09m0=5=>2.?4=4;7`9~W1e==991;7?<2c4g6?4f:k=0_<5<6;;h=h?4=a3`;?V2d2<:n6=4>33`5`7<5i;h37i;?6;295?7|[=o19==57;306g0c:38j>o94vU3;e?6=93;1=n>tS5g9155=?3;8>o8k2;0b6g1<,==86<{#9>o1=55m51494?5a2:08jvF;709Y01<5s8=1==4r$0:e>0613->;>4?::m64d<722e><94?::k622<722c>9k4?::m7`2<72-;3<7:ia:l23c<732e?h;4?:%3;4?2ai2d:;k4>;:m7`0<72-;3<7:ia:l23c<532e?h94?:%3;4?2ai2d:;k4<;:m7`6<72-;3<7:ia:l23c<332e?h?4?:%3;4?2ai2d:;k4:;:m7`5<72-;3<7:ia:l23c<132e?ok4?:%3;4?2ai2d:;k48;:m7g`<72-;3<7:ia:l23c54gc8j41a28807b:l2;29 4>72=lj7c?8f;30?>i3k80;6)?70;6ee>h6?o0:865`4b294?"6090?jl5a16d950=8:9l0ge=83.:4=4;f`9m52`=9010c9jk:18'5=6=!7?83>mm6`>7g82g>=h8187bd=i9>l1=i54o5f:>5<#91:18ko4n05e>4c<3f>o47>5$0:3>1`f3g;54gc8j41a2;807b:ma;29 4>72=lj7c?8f;00?>o31l0;6)?70;6bb>h6?o0;76g;9e83>!7?83>jj6`>7g82?>o31j0;6)?70;6bb>h6?o0976g;9c83>!7?83>jj6`>7g80?>o31h0;6)?70;6bb>h6?o0?76g;9883>!7?83>jj6`>7g86?>o3110;6)?70;6bb>h6?o0=76g;9683>!7?83>jj6`>7g84?>o3i?0;6)?70;6bb>h6?o0376g;a483>!7?83>jj6`>7g8:?>o3i=0;6)?70;6bb>h6?o0j76g;a283>!7?83>jj6`>7g8a?>o3i;0;6)?70;6bb>h6?o0h76g;a083>!7?83>jj6`>7g8g?>o3i90;6)?70;6bb>h6?o0n76g;9g83>!7?83>jj6`>7g8e?>o31?0;6)?70;6bb>h6?o0:<65f48794?"6090?mk5a16d954=5<6290;wE:81:&2tH552?!7?n3n<7bj9:188yg24290j:7?74;3`4~N3?81Q894>6z0;>71=:00h644n:c823?772;k1h7m5d;34>7g=:10:<7l5a;;96<<5?3w/=5h551;8 11==9=0(9j551:8 41>28=h7d;=3;29 4>72<8?7c?8f;28?l35:3:1(<6?:407?k70n3;07d;=1;29 4>72<8?7c?8f;08?l3583:1(<6?:407?k70n3907d;>f;29 4>72<8?7c?8f;68?l36m3:1(<6?:407?k70n3?07d;>d;29 4>72<8?7c?8f;48?l36k3:1(<6?:407?k70n3=07d;>b;29 4>72<8?7c?8f;:8?l37k3:17d;:e;29?l3193:17b;95;29?l3613:1(<6?:43b?k70n3:07d;>8;29 4>72<;j7c?8f;38?l36?3:1(<6?:43b?k70n3807d;>6;29 4>72<;j7c?8f;18?l36=3:1(<6?:43b?k70n3>07d;>4;29 4>72<;j7c?8f;78?l36;3:1(<6?:43b?k70n3<07d;>2;29 4>72<;j7c?8f;58?l3693:1(<6?:43b?k70n3207d;:d;29?j37n3:17d;=d;29 4>72<8n7c?8f;28?l35k3:1(<6?:40f?k70n3;07d;=b;29 4>72<8n7c?8f;08?l35i3:1(<6?:40f?k70n3907d;=9;29 4>72<8n7c?8f;68?l3503:1(<6?:40f?k70n3?07d;=7;29 4>72<8n7c?8f;48?l35>3:1(<6?:40f?k70n3=07d;=5;29 4>72<8n7c?8f;:8?j2?=3:17b:62;29 4>72=387c?8f;28?j2>93:1(<6?:5;0?k70n3;07b:60;29 4>72=387c?8f;08?j2?n3:1(<6?:5;0?k70n3907b:7e;29 4>72=387c?8f;68?j2?l3:1(<6?:5;0?k70n3?07b:7c;29 4>72=387c?8f;48?j2?j3:1(<6?:5;0?k70n3=07b:7a;29 4>72=387c?8f;:8?j2?13:1(<6?:5;0?k70n3307b;=f;29?l30;3:17d;<9;29 4>72<9j7c?8f;28?l3403:1(<6?:41b?k70n3;07d;<7;29 4>72<9j7c?8f;08?l34>3:1(<6?:41b?k70n3907d;<5;29 4>72<9j7c?8f;68?l34<3:1(<6?:41b?k70n3?07d;<3;29 4>72<9j7c?8f;48?l34:3:1(<6?:41b?k70n3=07d;<1;29 4>72<9j7c?8f;:8?l3483:1(<6?:41b?k70n3307b;?a;29?j37<3:17d;97;29?l2??3:17d;;4;29 4>72<>>7c?8f;28?l33;3:1(<6?:466?k70n3;07d;;2;29 4>72<>>7c?8f;08?l3393:1(<6?:466?k70n3907d;;0;29 4>72<>>7c?8f;68?l34n3:1(<6?:466?k70n3?07d;72<>>7c?8f;48?l34l3:1(<6?:466?k70n3=07d;72<>>7c?8f;:8?l34j3:1(<6?:466?k70n3307d;;f;29 4>72727272723:1(<6?:473?k70n3307b:74;29?l37l3:17d:78;29?l30<3:17b;90;29?j31>3:17d;:f;29?j2c?3:1(<6?:5db?k70n3:07b:k6;29 4>72=lj7c?8f;38?j2c=3:1(<6?:5db?k70n3807b:k4;29 4>72=lj7c?8f;18?j2c;3:1(<6?:5db?k70n3>07b:k2;29 4>72=lj7c?8f;78?j2c83:1(<6?:5db?k70n3<07b:lf;29 4>72=lj7c?8f;58?j2dm3:1(<6?:5db?k70n3207b:ld;29 4>72=lj7c?8f;;8?j2dk3:1(<6?:5db?k70n3k07b:lb;29 4>72=lj7c?8f;`8?j2di3:1(<6?:5db?k70n3i07b:l9;29 4>72=lj7c?8f;f8?j2d03:1(<6?:5db?k70n3o07b:l7;29 4>72=lj7c?8f;d8?j2d=3:1(<6?:5db?k70n3;;76a;c583>!7?83>mm6`>7g825>=h8187bd=i9>l1=?54o5a1>5<#91:18ko4n05e>45<3f>h=7>5$0:3>1`f3g;54gc8j41a28=07b:md;29 4>72=lj7c?8f;3;?>i3jj0;6)?70;6ee>h6?o0:565`4ef94?"6090?jl5a16d95d=d:9l0a?=83.:4=4;f`9m52`=9l10c9j7:18'5=6=!7?83>mm6`>7g815>=h8187bd=i9>l1>?54o5`b>5<#91:18ko4n05e>75<3`>2i7>5$0:3>1ga3g;4;h6:`?6=,82;69oi;o34b?7<3`>2o7>5$0:3>1ga3g;2m7>5$0:3>1ga3g;247>5$0:3>1ga3g;j:7>5$0:3>1ga3g;j87>5$0:3>1ga3g;j>7>5$0:3>1ga3g;j<7>5$0:3>1ga3g;2:7>5$0:3>1ga3g;=83.:4=4:5b9m52`=:21d98950;&2<5<2=j1e=:h53:9l100=83.:4=4:5b9m52`=<21d98;50;&2<5<2=j1e=:h55:9l102=83.:4=4:5b9m52`=>21d98=50;&2<5<2=j1e=:h57:9l104=83.:4=4:5b9m52`=021d9:?50;&2<5<2?;1e=:h50:9l126=83.:4=4:739m52`=921d9;h50;&2<5<2?;1e=:h52:9l13c=83.:4=4:739m52`=;21d9;j50;&2<5<2?;1e=:h54:9l13e=83.:4=4:739m52`==21d9;l50;&2<5<2?;1e=:h56:9l13g=83.:4=4:739m52`=?21d9;750;&2<5<2?;1e=:h58:9l13>=83.:4=4:739m52`=121d9<>50;9j15d=831d84:50;9j107=831d9;:50;9a02b=83;1<7>t$0:e>a1<@==h7E:81:mg2?6=3th?;h4?:083>5}#91l18:<4H55`?M2092e:;i4?::a6d6=83>1<7>t$0:e>a4<@==h7E:81:&f1?0>o6080;66a>8383>>{e<a2jl0D99l;I645>N3:2.:??4:629'a0<63`>>6=44i5d94?=h9181<75rb54:>5<4290;w)?7f;ae?M20k2B?;<5G439'564==?90(h;51:k71?6=3`>m6=44o0:1>5<>h7>53;294~"60o0hj6F;7b9K027<@=80(<==:440?!c2281b884?::k7b?6=3f;3>7>5;|`722<72<0;6=u+19d9`6=O<>i0D99>;I61?!74:3?=?6g;5;29?l212900e9h50;9j5=7=831d=5<50;9~f10?29086=4?{%3;b?ea3A>o3=3:17d:i:188k4>52900qo::c;291?6=8r.:4k4k3:J73f=O<>;0D9<4$011>0043`>>6=44i5494?=n8083>>i60;0;66sm47494?2=83:p(<6i:e08L11d3A><=6*j5;48m13=831b8k4?::k2<4<722e:4?4?::a033=83>1<7>t$0:e>a4<@==h7E:81:&f1?0>o6080;66a>8383>>{e1<7:50;2x 4>a2m80D99l;I645>"b=3<0e9;50;9j0c<722c:4<4?::m2<7<722wi8;h50;694?6|,82m6i<4H55`?M2092.n9784i5794?=n8083>>i60;0;66sm47g94?2=83:p(<6i:e08L11d3A><=6*j5;48m13=831b8k4?::k2<4<722e:4?4?::a642=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd59:0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<7>54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn??>:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm20294?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`14c<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg47m3:187>50z&25;h6a>5<=m50;694?6|,82m6i>4H55`?M2092.n97?4i5794?=nb383>1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f4d7290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e9hl1<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th:mh4?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo?nd;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb0c`>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a5dd=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd6ih0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn?;i:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm24g94?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`11a<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg42k3:187>50z&25;h6a>5<8o50;694?6|,82m6i>4H55`?M2092.n97?4i5794?=n1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f4`f290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e9o31<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th:j54?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo?i7;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb0d5>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a5c3=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd6n=0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm25g94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25f94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25a94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25`94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25c94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25;94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25:94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25594?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25494?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25794?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d:94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d594?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d494?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d794?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d694?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d194?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d094?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d394?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d294?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1e494?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`2`0<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg7c<3:187>50z&25;h6a>5<4H55`?M2092.n97?4i5794?=nd083>1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f4ea290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e9jo1<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th9?l4?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo<<9;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb31;>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a661=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd5;?0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn?=;:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm22194?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`177<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg4493:187>50z&25;h6a>5<7>5;|`1`3<72<0;6=u+19d9`4=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2e2900e9h50;9l5=4=831vn?j::186>5<7s-;3j7j>;I64g>N3?81/i84>;h66>5<>o3n3:17b?72;29?xd5l=0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb3f0>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th9h?4?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f7b7290>6=4?{%3;b?b63A>>6=44i5494?=n0<729q/=5h5d29K02e<@==:7)k::79j00<722c?:7>5;h6e>5<5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a6f2=8391<7>t$0:e>11e3A>44?::m23g<722wi>n=50;194?6|,82m699m;I64g>N3?81b854?::k26<<722e:;o4?::a6gg=83>1<7>t$0:e>4543A>=7>5;h3;5;|`1g7<72:0;6=u+19d902d<@==h7E:81:k75;n34f?6=3th9n54?:583>5}#91l1=>=4H55`?M2092c?47>5;h72>5<5<53;294~"60o0?;o5G46a8L1163`>36=44i00:>5<8g8276=O<>i0D99>;h6;>5<h1<75rb3a3>5<4290;w)?7f;64f>N3?j1C8:?4i5:94?=n9;31<75`16`94?=zj;h?6=4;:183!7?n3;8?6F;7b9K027>o6010;66a>7c83>>{e:kl1<7=50;2x 4>a2==i7E:8c:J734=n<10;66g>2883>>i6?k0;66sm2c094?2=83:p(<6i:010?M20k2B?;<5f4983>>o293:17d?78;29?j70j3:17pl=bd83>6<729q/=5h546`8L11d3A><=6g;8;29?l7513:17b?8b;29?xd5j90;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg4el3:1?7>50z&2329K02e<@==:7d:7:188m07=831b=5650;9l52d=831vn?ll:180>5<7s-;3j7:8b:J73f=O<>;0e9650;9j57?=831d=:l50;9~f7gd290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a6`?=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo;0(h;51:k71?6=3`>=6=44i5`94?=n8383>>{e:l=1<7;50;2x 4>a2m;0D99l;I645>"b=3;0e9;50;9j03<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi>h;50;794?6|,82m6i?4H55`?M2092.n97?4i5794?=n50z&25;h65>5<>i60;0;66sm2d194?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<7>55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a6`7=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo<84;290?6=8r.:4k4k2:J73f=O<>;0(h;56:k71?6=3`>m6=44i0:2>5<8g8g6>N3?j1C8:?4$d792>o3=3:17d:i:188m4>62900c<6=:188yg41n3:187>50z&25;h6a>5<50;194?6|,82m699m;I64g>N3?81b854?::k26<<722e:;o4?::a75?=8391<7>t$0:e>11e3A>44?::m23g<722wi>k:50;694?6|,82m6<=<;I64g>N3?81b854?::k65?6=3`;347>5;n34f?6=3th8<54?:283>5}#91l18:l4H55`?M2092c?47>5;h31=?6=3f;5;|`1b6<72=0;6=u+19d9565<@==h7E:81:k75<8g873g=O<>i0D99>;h6;>5<5<7>54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj::=6=4<:183!7?n3>h1<75rb3d2>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm31794?5=83:p(<6i:55a?M20k2B?;<5f4983>>o6:00;66a>7c83>>{e:o:1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd48=0;6>4?:1y'5=`=<>h0D99l;I645>o303:17d?=9;29?j70j3:17pl=eg83>1<729q/=5h51218L11d3A><=6g;8;29?l362900e<67:188k41e2900qo=?3;297?6=8r.:4k4;7c9K02e<@==:7d:7:188m44>2900c<9m:188yg4bm3:187>50z&2=831d=:l50;9~f66529086=4?{%3;b?20j2B?;n5G4638m1>=831b=?750;9l52d=831vn?kk:187>5<7s-;3j7?<3:J73f=O<>;0e9650;9j14<722c:454?::m23g<722wi?=?50;194?6|,82m699m;I64g>N3?81b854?::k26<<722e:;o4?::a6`e=83>1<7>t$0:e>4543A>=7>5;h3;5;|`1ag<72=0;6=u+19d9565<@==h7E:81:k75<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f67c290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e;8i1<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th8=o4?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo=>a;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb23:>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a74>=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd49>0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn>?;:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm33:94?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj;396=4;:183!7?n3;8?6F;7b9K027>o6010;66a>7c83>>{e:0;1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd5190;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg4?n3:187>50z&2=831d=:l50;9~f7>7290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a62`=83>1<7>t$0:e>4543A>=7>5;h3;5;|`13`<72=0;6=u+19d9565<@==h7E:81:k75<8g8276=O<>i0D99>;h6;>5<h1<75rb35`>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm3c`94?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a7gg=83?1<7>t$0:e>a5<@==h7E:81:&f1?0>o3n3:17d?71;29?j7?:3:17pl0<729q/=5h5d09K02e<@==:7)k::09j00<722c?:7>5;h6a>5<7>5;|`0g5<72<0;6=u+19d9`4=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2e2900e9h50;9l5=4=831vn>lj:186>5<7s-;3j7j>;I64g>N3?81/i84>;h66>5<>o3n3:17b?72;29?xd4jo0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb2a2>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th8o?4?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f6ea290>6=4?{%3;b?b63A>>6=44i5494?=n0<729q/=5h5d29K02e<@==:7)k::79j00<722c?:7>5;h6e>5<5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a7a6=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo=k1;291?6=8r.:4k4k1:J73f=O<>;0(h;51:k71?6=3`>=6=44i5`94?=n8383>>{e;m>1<7;50;2x 4>a2m;0D99l;I645>"b=3;0e9;50;9j03<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi?i=50;794?6|,82m6i?4H55`?M2092.n97?4i5794?=n50z&25;h65>5<>i60;0;66sm3e494?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a7de=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo=ne;291?6=8r.:4k4k1:J73f=O<>;0(h;51:k71?6=3`>=6=44i5`94?=n8383>>{e;hk1<7;50;2x 4>a2m;0D99l;I645>"b=3;0e9;50;9j03<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi?ll50;794?6|,82m6i?4H55`?M2092.n97?4i5794?=n50z&25;h65>5<>i60;0;66sm3`494?3=83:p(<6i:e18L11d3A><=6*j5;48m13=831b8;4?::k7b?6=3`;3=7>5;n3;6?6=3th8m54?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f6g2290>6=4?{%3;b?b43A>>6=44i5494?=n8083>>i60;0;66sm38;94?5=83:p(<6i:55a?M20k2B?;<5f4983>>o6:00;66a>7c83>>{e;021<7=50;2x 4>a2==i7E:8c:J734=n<10;66g>2883>>i6?k0;66sm39g94?2=83:p(<6i:010?M20k2B?;<5f4983>>o293:17d?78;29?j70j3:17pl<9683>6<729q/=5h546`8L11d3A><=6g;8;29?l7513:17b?8b;29?xd40j0;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg5>>3:1?7>50z&2329K02e<@==:7d:7:188m07=831b=5650;9l52d=831vn>7::180>5<7s-;3j7:8b:J73f=O<>;0e9650;9j57?=831d=:l50;9~f6>?290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a7<2=8391<7>t$0:e>11e3A>44?::m23g<722wi?5850;694?6|,82m6<=<;I64g>N3?81b854?::k65?6=3`;347>5;n34f?6=3th85>4?:283>5}#91l18:l4H55`?M2092c?47>5;h31=?6=3f;5;|`0<1<72=0;6=u+19d9565<@==h7E:81:k75<8g873g=O<>i0D99>;h6;>5<5<7>54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj:3:6=4<:183!7?n3>h1<75rb2:3>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm38294?5=83:p(<6i:55a?M20k2B?;<5f4983>>o6:00;66a>7c83>>{e;>o1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd4mh0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb2g:>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th8i54?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f6c0290>6=4?{%3;b?b63A>>6=44i5494?=n0<729q/=5h5d09K02e<@==:7)k::09j00<722c?:7>5;h6a>5<6=4::183!7?n3n:7E:8c:J734=#m<0:7d:::188m10=831b8o4?::k7b?6=3f;3>7>5;|`0a1<72<0;6=u+19d9`4=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2e2900e9h50;9l5=4=831vn>k<:186>5<7s-;3j7j>;I64g>N3?81/i84>;h66>5<>o3n3:17b?72;29?xd4m;0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb2g2>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th8??4?:583>5}#91l1=>=4H55`?M2092c?47>5;h72>5<5<54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj:9?6=4;:183!7?n3;8?6F;7b9K027>o6010;66a>7c83>>{e;:?1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd4;?0;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg53=3:187>50z&2=831d=:l50;9~f621290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a711=83>1<7>t$0:e>4543A>=7>5;h3;5;|`00=<72=0;6=u+19d9565<@==h7E:81:k75<8g8276=O<>i0D99>;h6;>5<h1<75rb27a>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm34a94?2=83:p(<6i:010?M20k2B?;<5f4983>>o293:17d?78;29?j70j3:17pl<5e83>1<729q/=5h51218L11d3A><=6g;8;29?l362900e<67:188k41e2900qo=:e;290?6=8r.:4k4>329K02e<@==:7d:7:188m07=831b=5650;9l52d=831vn>;i:187>5<7s-;3j7?<3:J73f=O<>;0e9650;9j14<722c:454?::m23g<722wi?;k50;694?6|,82m6i>4H55`?M2092.n97?4i5794?=n1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi8?j50;794?6|,82m6i:4H55`?M2092.n97?4i5794?=nm6=44i0:0>5<8g8g0>N3?j1C8:?4$d795>o3=3:17d:9:188m1`=831b=5=50;9l5=4=831vn95<7s-;3j7j;;I64g>N3?81/i84>;h66>5<>o60:0;66a>8383>>{e<;31<7;50;2x 4>a2m>0D99l;I645>"b=3;0e9;50;9j03<722c?j7>5;h3;7?6=3f;3>7>5;|`76=<72<0;6=u+19d9`1=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2a2900e<6<:188k4>52900qo:=6;291?6=8r.:4k4k4:J73f=O<>;0(h;51:k71?6=3`>=6=44i5d94?=n9191<75`19094?=zj=8>6=4::183!7?n3n?7E:8c:J734=#m<0:7d:::188m10=831b8k4?::k2<6<722e:4?4?::a072=83?1<7>t$0:e>a2<@==h7E:81:&f1?7>o3n3:17d?73;29?j7?:3:17pl;2283>0<729q/=5h5d59K02e<@==:7)k::09j00<722c?:7>5;h6e>5<5<9>7>55;294~"60o0o86F;7b9K027<,l?1=6g;5;29?l212900e9h50;9j5=5=831d=5<50;9~f146290>6=4?{%3;b?b33A>>6=44i5494?=n8283>>i60;0;66sm43294?3=83:p(<6i:e68L11d3A><=6*j5;38m13=831b8;4?::k7b?6=3`;3?7>5;n3;6?6=3th?=k4?:483>5}#91l1h95G46a8L1163-o>6<5f4483>>o3>3:17d:i:188m4>42900c<6=:188yg26m3:197>50z&25;h65>5<5<2290;w)?7f;f7?M20k2B?;<5+e482?l222900e9850;9j0c<722c:4>4?::m2<7<722wi8m6=44i0:0>5<8g8g0>N3?j1C8:?4$d795>o3=3:17d:9:188m1`=831b=5=50;9l5=4=831vn9?7:186>5<7s-;3j7j;;I64g>N3?81/i84>;h66>5<>o60:0;66a>8383>>{e<8=1<7;50;2x 4>a2m>0D99l;I645>"b=3;0e9;50;9j03<722c?j7>5;h3;7?6=3f;3>7>5;|`753<72<0;6=u+19d9`1=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2a2900e<6<:188k4>52900qo:>5;291?6=8r.:4k4k4:J73f=O<>;0(h;51:k71?6=3`>=6=44i5d94?=n9191<75`19094?=zj=;?6=4::183!7?n3n?7E:8c:J734=#m<0:7d:::188m10=831b8k4?::k2<6<722e:4?4?::a045=83?1<7>t$0:e>a2<@==h7E:81:&f1?7>o3n3:17d?73;29?j7?:3:17pl;1383>0<729q/=5h5d59K02e<@==:7)k::09j00<722c?:7>5;h6e>5<5<8?7>55;294~"60o0o86F;7b9K027<,l?1=6g;5;29?l212900e9h50;9j5=5=831d=5<50;9~f155290>6=4?{%3;b?b33A>>6=44i5494?=n8283>>i60;0;66sm42394?3=83:p(<6i:e68L11d3A><=6*j5;38m13=831b8;4?::k7b?6=3`;3?7>5;n3;6?6=3th??=4?:483>5}#91l1h95G46a8L1163-o>6<5f4483>>o3>3:17d:i:188m4>42900c<6=:188yg25n3:197>50z&25;h65>5<5<2290;w)?7f;f7?M20k2B?;<5+e482?l222900e9850;9j0c<722c:4>4?::m2<7<722wi8?950;794?6|,82m6i:4H55`?M2092.n97?4i5794?=nm6=44i0:0>5<8g8g0>N3?j1C8:?4$d795>o3=3:17d:9:188m1`=831b=5=50;9l5=4=831vn9??:186>5<7s-;3j7j;;I64g>N3?81/i84>;h66>5<>o60:0;66a>8383>>{ea288n7E:8c:J734=#m<0:56gk9;29?lbf2900c<9m:188yg2183:1?7>50z&2t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm1`294?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo?6f;297?6=8r.:4k4>2d9K02e<@==:7)k::0f8ma?=831bhl4?::m23g<722wi=4k50;194?6|,82m6<N3?81/i84>d:kg=?6=3`nj6=44o05a>5<53;294~"60o0:>h5G46a8L1163-o>67c83>>{e90i1<7=50;2x 4>a288n7E:8c:J734=#m<0:h6gk9;29?lbf2900c<9m:188yg7>j3:1?7>50z&2t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm18:94?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo?67;297?6=8r.:4k4>2d9K02e<@==:7)k::0f8ma?=831bhl4?::m23g<722wi=4850;194?6|,82m6<N3?81/i84>d:kg=?6=3`nj6=44o05a>5<53;294~"60o0:>h5G46a8L1163-o>67c83>>{e90>1<7=50;2x 4>a288n7E:8c:J734=#m<0:h6gk9;29?lbf2900c<9m:188yg7>;3:1?7>50z&2t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm18294?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo<83;290?6=8r.:4k4>2g9K02e<@==:7)k::ba8ma?=831bhl4?::kgf?6=3f;5;|`15=<72=0;6=u+19d957`<@==h7E:81:&f1?433`n26=44iec94?=nlk0;66a>7c83>>{e9k<1<7:50;2x 4>a288m7E:8c:J734=#m<0986gk9;29?lbf2900eil50;9l52d=831vn?9>:186>5<7s-;3j7?<0:J73f=O<>;0(h;51`9j`<<722com7>5;hfa>5<>oci3:17djm:188mae=831d=:l50;9~f4d?290>6=4?{%3;b?7482B?;n5G4638 `3=9o1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb354>5<2290;w)?7f;304>N3?j1C8:?4$d7964=nl00;66gka;29?lbe2900eim50;9l52d=831vn?8m:187>5<7s-;3j7?=f:J73f=O<>;0(h;52c9j`<<722com7>5;hfa>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm1cc94?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo<>e;290?6=8r.:4k4>2g9K02e<@==:7)k::368ma?=831bhl4?::kgf?6=3f;5;|`2ff<72=0;6=u+19d957`<@==h7E:81:&f1?433`n26=44iec94?=nlk0;66a>7c83>>{e:;:1<7;50;2x 4>a289;7E:8c:J734=#m<0:j6gk9;29?lbf2900eil50;9j`f<722e:;o4?::a5gc=83?1<7>t$0:e>4573A>5;hfb>5<>i6?k0;66sm33c94?3=83:p(<6i:013?M20k2B?;<5+e4814>oc13:17djn:188mad=831bhn4?::m23g<722wi88o50;694?6|,82m6<N3?81/i84:0:kg=?6=3`nj6=44ie`94?=h9>h1<75rb34b>5<2290;w)?7f;304>N3?j1C8:?4$d7957=nl00;66gka;29?lbe2900eim50;9l52d=831vn?7k:180>5<7s-;3j7?=e:J73f=O<>;0(h;5239j`<<722com7>5;n34f?6=3th94l4?:283>5}#91l1=?k4H55`?M2092.n97<=;hf:>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f634290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb263>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn>87:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f65a290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb3;`>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn?66:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f636290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb21f>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn?7m:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f601290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb273>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn>=k:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f7>0290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb252>5<3290;w)?7f;31b>N3?j1C8:?4$d79ga=nl00;66gka;29?lbe2900c<9m:188yg51k3:187>50z&25;n34f?6=3th9m?4?:583>5}#91l1=?h4H55`?M2092.n97mk;hf:>5<>i6?k0;66sm37794?2=83:p(<6i:00e?M20k2B?;<5+e486?lb>2900eio50;9j`g<722e:;o4?::a71`=83>1<7>t$0:e>44a3A>7c83>>{e;:i1<7:50;2x 4>a288m7E:8c:J734=#m<0>7dj6:188mag=831bho4?::m23g<722wi>4750;794?6|,82m6<=?;I64g>N3?81/i84=3:kg=?6=3`nj6=44ie`94?=nlj0;66a>7c83>>{e:1<1<7;50;2x 4>a289;7E:8c:J734=#m<09?6gk9;29?lbf2900eil50;9j`f<722e:;o4?::a675=8391<7>t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>74>i6?k0;66sm23494?2=83:p(<6i:00e?M20k2B?;<5+e482a>oc13:17djn:188mad=831d=:l50;9~f4e3290?6=4?{%3;b?75n2B?;n5G4638 `3=9l1bh44?::kge?6=3`ni6=44o05a>5<7>53;294~"60o0:>h5G46a8L1163-o>67c83>>{e:kh1<7<50;2x 4>a288o7E:8c:J734=#m<0:=6gk9;29?j70j3:17pl=b883>7<729q/=5h513f8L11d3A><=6*j5;32?lb>2900c<9m:188yg4e?3:1>7>50z&25<7s-;3j7?=d:J73f=O<>;0(h;5109j`<<722e:;o4?::a6g5=8381<7>t$0:e>44c3A>5;n34f?6=3th9n<4?:383>5}#91l1=?j4H55`?M2092.n97?>;hf:>5<8g826a=O<>i0D99>;%g6>47>i6?k0;66sm39d94?4=83:p(<6i:00g?M20k2B?;<5+e4825>oc13:17b?8b;29?xd40m0;6?4?:1y'5=`=9;n0D99l;I645>"b=3;:7dj6:188k41e2900qo=7b;296?6=8r.:4k4>2e9K02e<@==:7)k::038ma?=831d=:l50;9~f6>>29096=4?{%3;b?75l2B?;n5G4638 `3=981bh44?::m23g<722wi?5950;094?6|,82m6<N3?81/i84>1:kg=?6=3f;5;|`0<0<72;0;6=u+19d957b<@==h7E:81:&f1?763`n26=44o05a>5<52;294~"60o0:>i5G46a8L1163-o>6h1<75rb2:2>5<5290;w)?7f;31`>N3?j1C8:?4$d7954=nl00;66a>7c83>>{e;>l1<7<50;2x 4>a288o7E:8c:J734=#m<0:=6gk9;29?j70j3:17pl=c483>7<729q/=5h513f8L11d3A><=6*j5;32?lb>2900c<9m:188yg5>i3:1>7>50z&25<7s-;3j7?=e:J73f=O<>;0(h;5239j`<<722com7>5;n34f?6=3th9j44?:283>5}#91l1=?k4H55`?M2092.n97<=;hf:>5<?5fd883>>oci3:17b?8b;29?xd5nk0;6>4?:1y'5=`=9;o0D99l;I645>"b=3897dj6:188mag=831d=:l50;9~f7`d29086=4?{%3;b?75m2B?;n5G4638 `3=:;1bh44?::kge?6=3f;5;|`1ba<72:0;6=u+19d957c<@==h7E:81:&f1?453`n26=44iec94?=h9>h1<75rb3df>5<4290;w)?7f;31a>N3?j1C8:?4$d7967=nl00;66gka;29?j70j3:17pl=fg83>6<729q/=5h513g8L11d3A><=6*j5;01?lb>2900eio50;9l52d=831vn?h::180>5<7s-;3j7?=e:J73f=O<>;0(h;5239j`<<722com7>5;n34f?6=3th8>n4?:483>5}#91l1=>>4H55`?M2092.n97j:;hf:>5<>ock3:17b?8b;29?xd4:k0;684?:1y'5=`=9::0D99l;I645>"b=38;7dj6:188mag=831bho4?::kgg?6=3f;5;|`036<72:0;6=u+19d957c<@==h7E:81:&f1?763`n26=44iec94?=h9>h1<75rb3d4>5<5290;w)?7f;31<>N3?j1C8:?4ie:94?=h9>h1<75rb24g>5<5290;w)?7f;31<>N3?j1C8:?4ie:94?=h9>h1<75rb301>5<1290;w)?7f;305>N3?j1C8:?4$d7960=nl00;66gka;29?lbe2900eim50;9l57g=831d=:l50;9~f4e7290=6=4?{%3;b?7492B?;n5G4638 `3=:<1bh44?::kge?6=3`ni6=44iea94?=h9;k1<75`16`94?=zj=?36=477;294~N3?81/=5h51968^12=ir21>;4j:07956<6j3l1=;4>4;3`>x"6:>087)jk:59'``<33-nm695+e187?!c62=1/i?4;;%g0>1=#kh0hi6*j6;68 `1=<2.n47:4$d;90>"bi3>0(hl54:&fg?2<,ln186*je;68 ``=<2.m<7:4$g390>"a:3>0(k=54:&e0?2<,o?186*i6;68 c1=<2.m47:4$g;90>"ai3>0(kl54:&eg?2<,on186*ie;68 c`=<2.:<=4;;%335?2<,8:9695+11190>"68=0?7)??5;68 4612=1/==954:&24=<33-;;57:4$02b>1=#99h186*>0b87?!77l3>0(<>j:59'55`=<2.:==4;;%325?2<,8;9695+10190>"69=0?7)?>5;68 4712=1/=<954:&25=<33-;:57:4$03b>1=#98h186*>1b87?!76l3>0(=4;;%315?2<,889695+13190>"6:=0?7)?=5;68 4412;1/=575409'a1<33-;3n7<4$555>4>23-><;7?75:l:`?687826>h60>0986`;79826>h3?00986*lb;af?!7?k390e9750;9j0d<722c?;94?::k`=?6=3`2<6=4+1929l1?65f19g94?=n;?0;6)?70;16?k70n3:07d=;:18'5=6=;<1e=:h51:9j76<72-;3<7=:;o34b?4<3`996=4+192970=i9>l1?65f3083>!7?839>7c?8f;68?l57290/=5>5349m52`==21b>k4?:%3;4?523g;5<#91:1?85a16d93>=n:m0;6)?70;16?k70n3207dl1=65f3e83>!7?839m7c?8f;08?l5d290/=5>53g9m52`=;21b?o4?:%3;4?5a3g;5<#91:1?k5a16d91>=n;00;6)?70;1e?k70n3<07d=7:18'5=6=;o1e=:h57:9j72<72-;3<7=i;o34b?><3`?26=4+19291==i9>l1<65f5683>!7?83?37c?8f;38?l31290/=5>5599m52`=:21b984?:%3;4?3?3g;5<#91:1955a16d90>=n=:0;6)?70;7;?k70n3?07d8=:18'5=6==11e=:h56:9j24<72-;3<7;7;o34b?1<3`<;6=4+19291==i9>l1465f5g83>!7?83?37c?8f;;8?l3b290/=5>5599m52`=i21b9i4?:%3;4?3?3g;5<#91:1955a16d9g>=n=k0;6)?70;7;?k70n3n07d;n:18'5=6==11e=:h5e:9j17<72-;3<7;7;o34b?`<3`2=6=4+1929<0=i9>l1<65f8583>!7?832>7c?8f;38?jd0290/=5>5b79m52`=821dn84?:%3;4?d13g;5<#91:1n;5a16d96>=hj;0;6)?70;`5?k70n3907bl>:18'5=6=j?1e=:h54:9lf5<72-;3<7l9;o34b?3<3fkm6=4+1929f3=i9>l1:65`ad83>!7?83h=7c?8f;58?jgc290/=5>5b79m52`=021dmn4?:%3;4?d13g;5<#91:1n;5a16d9e>=hih0;6)?70;`5?k70n3h07bo7:18'5=6=j?1e=:h5c:9le2<72-;3<7l9;o34b?b<3fk=6=4+1929f3=i9>l1i65`a483>!7?83h=7c?8f;d8?jg3290/=5>5b79m52`=9910cl=50;&2<52d:;k4>1:9le7<72-;3<7l9;o34b?7532ej=7>5$0:3>g05<#91:1n;5a16d951=818a2>h6?o0:965`bd83>!7?83h=7c?8f;35?>iel3:1(<6?:c48j41a28=07bll:18'5=6=j?1e=:h51998kgd=83.:4=4m6:l23c<6121dnl4?:%3;4?d13g;4d<3fh36=4+1929f3=i9>l1=n54oc694?"6090i:6`>7g82`>=hi00;6)?70;`5?k70n3;n76a6e;29 4>72k<0b<9i:0d8?je0290/=5>5c79m52`=821do84?:%3;4?e13g;5<#91:1o;5a16d96>=hk:0;6)?70;a5?k70n3907dm7:188m4>c2900e99::188m2e=83.:4=48b:l23c<732c5$0:3>2d7g81?>o0?3:1(<6?:6`8j41a2:10e:850;&2<5<0j2d:;k4;;:k41?6=,82;6:l4n05e>0=>1<7*>8184f>h6?o0=76g83;29 4>72>h0b<9i:698m24=83.:4=48b:l23c5$0:3>2d7g8b?>o1n3:1(<6?:6`8j41a2k10e;j50;&2<5<0j2d:;k4l;:k5g?6=,82;6:l4n05e>a=8184f>h6?o0n76g9a;29 4>72>h0b<9i:g98m3?=83.:4=48b:l23c<6821b:54?:%3;4?1e3g;;:k53?6=,82;6:l4n05e>44<3`<=6=4+19293g=i9>l1=>54i7794?"60907g820>=n>=0;6)?70;5a?k70n3;>76g73;29 4>72>h0b<9i:048?l>5290/=5>57c9m52`=9>10e5?50;&2<5<0j2d:;k4>8:9j<5<72-;3<79m;o34b?7>32c5$0:3>2d5<#91:1;o5a16d95g=n1<7*>8184f>h6?o0:o65f7883>!7?83=i7c?8f;3g?>o1m3:1(<6?:6`8j41a28o07d8<:18'5=6=?k1e=:h51g98m=d=83.:4=47a:l23c<732c357>5$0:3>=g7g81?>i>;3:1(<6?:808j41a2910c4?50;&2<5<>:2d:;k4>;:m:4?6=,82;64<4n05e>7=818:6>h6?o0876a7e;29 4>72080b<9i:598k=b=83.:4=462:l23c<232e2o7>5$0:3><46`>7g84?>i>i3:1(<6?:808j41a2110c4750;&2<5<>:2d:;k46;:m:d=818:6>h6?o0i76a66;29 4>72080b<9i:b98k<3=83.:4=462:l23c5$0:3><46`>7g8e?>id:3:1(<6?:b38j41a2910cn>50;&2<5;:p10b=833ty>9o4?:6gxZ1?33W?=:6P:659]0=2X3191U85h4^5:f?[2?l2T?4n5Q49`8Z1>f3W>356P:709]126X2>01U9;64^47b?[3212T>955Q5458Z0313W?>96P:559]105m70::c;6e?821>3>m70:95;6e?821<3>m70:9f;6e?821m3>m70;51:0>=63=93865>;5180>=63=91865>;50o0>=63=81865>;5?o0>=63=7d865>;5?m0>=63=7b865>;40l0>=63<8b865>;40h0>=63<89865>;40?0>=63<85865>;40;0>=63<81865>;4?l0>=63<33865>;4;:0>=63<35865>;4;<0>=63<37865>;4<<0>=63<47865>;4<>0>=63<49865>;4<00>=63<5c865>;4=j0>=63<5e865>;4=l0>=63<5g865>;3=103;63;59822e<5=?36:o4=57;>2><5=?36:94=57;>20<5=?36:;4=57;>22<5=?36:=4=57;>24<5=?36:?4=57;>26<5=?36;h4=57;>3b<5=?36;m4=57;>3d<5=?36;o4=57;>3?<5=?36;64=57;>31<5=?36;84=57;>33<5=?36;:4=57;>=5<5=?365<4=57;>=7<5=?365>4=57;>2`<5=?36:k4=57;>2b<5=?36:74=57;>3c<5=?36;=4=57;>=d<5=?36574=57;>=>52z\7<0=:;?k1=5<4}r76b?6=;rT>9k5247595=7<5=?h6<6>;|q130<72;qU9=:4=356>4>53ty>;>4?:2y]125<5:=96i74=250>a?=7>569y]107<5;k;69;4=57f>13<5=?o69;4=57`>13<5=<=69;4=546>13<5=13<5;;869;4=331>13<5;;:69;4=333>13<5;:m69;4=32f>13<5;:o69;4=32`>13<5;<;69;4=37e>13<5;?n69;4=37g>13<5;?h69;4=37a>13<5;?j69;4=37:>13<5;?369;4=36f>13<5;>o69;4=36`>13<5;>i69;4=36b>13<5;>269;4=36;>13<5;><69;4=365>13<5;>>69;4=0f5>13<58n>69;4=0f7>13<58n869;4=0f1>13<58n:69;4=0f3>13<58im69;4=0af>13<5;n<69;4=3f5>13<5;n>69;4=3f7>13<5;n869;4=3f1>13<5;n;69;4=3ae>13<5;n:69;4=3g:>13<5;o369;4=3g4>13<5;o=69;4=3g6>13<5;o?69;4=3g0>13<5;o969;4=3g2>13<5;=?69;4=356>13<5;13<5=8o69;4=50`>13<5=8i69;4=50b>13<5=8269;4=50;>13<5=8=69;4=506>13<5=8?69;4=500>13<5=8969;4=502>13<5=8;69;4=53e>13<5=;n69;4=53g>13<5=;i69;4=53b>13<5=;269;4=53;>13<5=;<69;4=535>13<5=;>69;4=537>13<5=;869;4=531>13<5=9869;4=511>13<5=9:69;4=513>13<5=8m69;4=50f>13<5=8<69;4=53`>13<5=;:69;4=533>13<5=?369o4}r15b?6=:rT>563y]131<5=<269;4=544>13<5=<369;4=54e>13<5=13<58h:69;4=0`3>13<58km69;4=0cf>13<58ko69;4=0c`>13<58ki69;4=0cb>13<58lj69;4=0d:>13<58l369;4=0d4>13<58l=69;4=0d6>13<58l?69;4=0d0>13<58l969;4=0g;>13<58o<69;4=0g5>13<58o>69;4=0g7>13<58o869;4=0g1>13<58o:69;4=0g3>13<5;9j69;4=31:>13<5;9369;4=314>13<5;9=69;4=316>13<5;9?69;4=310>13<5;9969;4=312>13<5:;>69;4=23g>13<5:;h69;4=23a>13<5:;j69;4=23:>13<5:;369;4=234>13<5:;=69;4=237>13<5:8369;4=2`a>13<5:h269;4=2`b>13<5:hh69;4=2`g>13<5:i;69;4=2`f>13<5:hm69;4=2a2>13<5:i969;4=2ae>13<5:io69;4=2af>13<5:n;69;4=2f2>13<5:n?69;4=2f1>13<5:n869;4=2f6>13<5:n=69;4=2cg>13<5:kh69;4=2cf>13<5:kj69;4=2c:>13<5:ki69;4=2c4>13<5:k=69;4=2c;>13<5:k>69;4=2gb>13<5:o269;4=2g;>13<5:o<69;4=2g5>13<5:o>69;4=2g7>13<5:o869;4=2g1>13<5:o:69;4=24f>13<5:13<5=?36974}r11>k5233:95=452z\7`2=:<831=5<4}r1e7?6=:rT?h;5240:95=47>52z\7`0=:<8=1=5<4}r1e5?6=:rT?h95240495=452z\7`6=:<8?1=5<4}r1fb?6=:rT?h?5240695=452z\7`5=:<891=5<4}r1f`?6=:rT?ok5240095=4;j7>52z\7g`=:<:91=5<4}r63a?6=:rT?oi5242095=4;h7>52z\7gf=:<:;1=5<4}r63g?6=:rT?oo5242295=4;n7>52z\7gd=:<;l1=5<4}r63e?6=:rT?o45243g95=4;57>52z\7g==:<;=1=5<4}r636?6=:rT?o:5240a95=452z\7g0=:<8;1=5<4}r1fg?6=:rT?o95240295=4;47>52z\7g6=:<;n1=5<4}r633?6=:rT?o?5243a95=4;:7>52z\7g4=:<;h1=5<4}r631?6=:rT?o=5243c95=4;87>52z\7fc=:<;31=5<4}r637?6=:rT?nh5243:95=4;=7>52z\7fa=:<;<1=5<4}r634?6=:rT?nn5243795=452z\7`a=:<;>1=5<4}r1ea?6=:rT?hn5243195=452z\7`g=:<;81=5<4}r1eg?6=:rT?hl5243395=452z\7`<=:<;:1=5<4}r1ee?6=:rT?h55240d95=452z\7`4=:<8o1=5<4}r1e52z\7fg=:<8h1=5<4}r1e1?6=:rT?nl5240c95=4i<7>52z\7=`=:<<214;5rs5cf>5<5sW>2h63;5986=>{t7}Y<0h019;7:448yv2fj3:1>vP;9`9>00>==<1v9on:181[2>127?954:4:p0d?=838pR977;<66;3=10386s|4c594?4|V=k?70::8;43?xu3j?0;6?uQ4`18913?2>47;l;|q7f7<72;qU84h4=57;>0di=7>52z\7=3=:<<219l5rs5c4>5<5sW>2963;59866>{t9:=1<7mt=55f>41c348io7:7;<0bg?2?348no7;>;<0ff?2?3483j7:7;<04g?2?3492<7:7;<14a?2?3498>7:7;<171?2?349>n7:7;|q1e4<72;q6>l>54g9>6d4=9>h0q~:93;295=}::h:1=5?4=545>4>5348o;7:m;<0g2?2e348o97:m;<0g0?2e348o?7:m;<0g6?2e348o<7:m;<0`b?7?9279h<4;b:?1a<<3j279i54;b:?1a2<3j279i;4;b:?1a0<3j279i94;b:?1a6<3j279i?4;b:?1a4<3j279;94>809>623=91;01?8i:5`8970b2=h0q~>h7?72:?71f<3>2wx88k50;0x913b282970:90;f:?xu3>10;6>u247;90c=:=57>52z?72<<60;168;l5d89~w13d2908w0::d;6e?822k3;3>63;618ge>{t4>534>=47:i;<65f?bf3ty?9k4?:5y>030=91;0198::0:2?821<3;3=63;61823g=z{=<96=4=6z?720<60;16><:54c9>645=<<54c9>647=<>54c9>65`==k54c9>65b==m54c9>636=8h54c9>60c=8j54c9>60e=8l54c9>60g=8754c9>60>=9k54c9>61b=9m54c9>61d=9o54c9>61?=9654c9>611=9854c9>613=5a3=5a5=5a7=54c9>5f`=4>434>9n7?73:?76d<60:168?751918914?282870:=6;3;7>;3:<0:4>5243695=5<5=886<6<;<616?7?;27?><4>829>076=919019?i:0:0?826m3;3?63;1e82<6=:<8h1=5=4=53b>4>434>:57?73:?75=<60:168<9519189171282870:>5;3;7>;39=0:4>5240195=5<5=;96<6<;<607?7?;27???4>829>067=919019=?:0:0?825n3;3?63;2d82<6=:<;=1=5=4=53`>4>434>:=7?73:?755<60:1688o5d`9>00>=91o0q~:9a;297~;3>o0:4<5247g95=7<5=i70=>d;6a?856k3>i70=>b;6a?856i3>i70=>9;6a?85603>i70=>7;6a?856>3>i70=>4;6a?85ej3>i70=m9;6a?85ei3;3=63;4jm0?n63;4jl0?n63;4k80?n63;4ko0?n634>6349nm7:m;<1f=?2e349n47:m;<1f3?2e349n:7:m;<1f1?2e349n87:m;<1f7?2e349n>7:m;<1f5?2e3ty?:n4?:3cx910b282970?m2;6a?87e93>i70?m0;6a?87fn3>i70?ne;6a?87fl3>i70?nc;6a?87fj3>i70?na;6a?87ai3>i70?i9;6a?87a03>i70?i7;6a?87a>3>i70?i5;6a?87a<3>i70?i3;6a?87a:3>i70?j8;6a?87b?3>i70?j6;6a?87b=3>i70?j4;6a?87b;3>i70?j2;6a?87b93>i70?j0;6a?844i3>i70<<9;6a?84403>i70<<7;6a?844>3>i70<<5;6a?844<3>i70<<3;6a?844:3>i70<<1;6a?85503>i70=9e;6a?851n3>i70=9a;6a?xu5=>0;68u220690c=::?:1=5<4=335>ag<5;;36i74=33b>ae53z?151<60;16>4j5d89>6=g=l01v??::181846;3>m70<>6;34f>{t:9k1<7=t=330>4>53482o7jn;<0;=?bf3ty9=:4?:3y>644=<6516`8yv4713:1?v3=1382<7=::0i1hn5229;9`f=z{;;26=49{<025?2a348:m7?8b:?15f?4kc:p65>=839p1??>:0:1?84>j3nj70<78;fb?xu59k0;6?u220290c=::8i1=:l4}r033?6=;r79==4>839>6565db9~w77c2909w0=k54g9>676=9>h0q~5<5s48;h7:i;<017?70j2wx>=:50;1x976c282970<69;fb?84?>3nj7p}=2483>7}::9i18k52234952d53z?14f<60;16>475db9>6=0=lj1v:18687e:3>m70?ia;3;6>;6j=0om63>b78g=>;6j10oo6s|1`;94?3|58h96<6=;<15=?b>349>?7j6;<174?b>348m97jn;|q2f6<72;q6=o?54g9>5g2=9>h0q~?n8;291~;6j80:4?5237;9`g=:;<91ho523529`g=::ol1hl5rs0`6>5<5s4;i<7:i;<3a2?70j2wx=l950;7x94d7282970=98;f:?852:3n270=b683>3}:9hl18k521c:952d<58hj6io4=0``>a?<58hn6il4=0a3>ae55z?2ec<60;16?;65dc9>704=lk16?>h5dc9>6cb=lh1vm70?ma;34f>{t9h?1<7;t=0cf>4>5349=;7j6;<165?b>3498i7j6;<0eg?bf3ty:no4?:3y>5db=ae82<7=:;?=1ho523439`g=:;:o1ho522g`9`d=z{8ho6=4={<3bg?2a34;ii7?8b:p5d5=83?p13n270=:0;f:?854l3n270839>730=lk16?8>5dc9>76b=lk16>k75d`9~w4e42909w0?na;6e?87d<3;349?j7j6;<10g?b>348m47jn;|q101<72;q6>;>54g9>61c=9180q~<;3;296~;5=o0?j63=4e82<7=z{;?=6=4;{<06b?7?:279=;4k9:?15=6}::ad<5;;j6io4}r075?6=:r799i4;f:?10g<60;1v?;;:181842l3;3>63=1`8g=>{t:=:1<71`<5;>j6<6=;|q116<728m51908977d2m301??j:ec897472mi01?<=:e`8yv44n3:1>v3=5c87b>;5<00:4?5rs371>5<3s48>n7?72:?15`=4k9:?167>k50;0x973f2=l01?:7:0:1?xu5=80;6>u224c95=4<5;8;6io4=301>a?52z?11<<3n2798:4>839~w7372908w0<:9;3;6>;5::0o563=278ge>{t::i1<71`<5;>=6<6=;|q10c<72;q6>865190897412m30q~?kf;296~;6nh0?j63>e982<7=z{8nn6=4={<3e=?2a34;n;7?72:p5c6=83>p1de83>7}:9o218k521d495=453z?2b=<60;16=o85dc9>5g>=lh1vm70?j5;3;6>{t9lo1<74>534;i47j6;|q2`g<72;q6=k854g9>5`2=9180q~?jd;291~;6n?0:4?521cc9`<=:9ki1hl521cg9`f=:9j:1ho5rs0fb>5<5s4;m97:i;<3f7?7?:2wx=hm50;6x94`2282970?mc;fa?87em3n270?l0;fb?xu6l00;6?u21g690c=:9l81=5<4}r3ff?6=;r7:j94>839>5gc=lh16=n>5d89~w4b?2909w0?i3;6e?87b93;3>6s|1dc94?5|58l86<6=;<3`5?b>34;h87jn;|q2`2<72;q6=k<54g9>5`6=9180q~?j9;296~;6n;0:4?521b69`<=z{;9;6=4={<07a?2a3488m7?72:p67`=838p1?:k:5d8975>28297p}=2d83>7}::=i18k5222:95=452z?10g<3n279?:4>839~w74d2909w0<;a;6e?844>3;3>6s|23`94?4|5;>269h4=316>4>53ty9>l4?:3y>61>=>:51908yv4513:1>v3=4687b>;5;:0:4?5rs30;>5<5s48?:7:i;<006?7?:2wx>?950;0x97222=l01?=>:0:1?xu5;k0;652z?2a=<3n27:h;4>839~w4ed2909w0?j7;6e?87c=3;3>6s|1b`94?4|58o=69h4=0f7>4>53ty:ol4?:3y>5`3=v3>e587b>;6l;0:4?5rs0a;>5<5s4;n?7:i;<3g5?7?:2wx=n950;0x94c52=l013>m70;6190o563=8`8ge>;3=10?<6s|1g`94?4|58n>69h4=0;3>41e3ty:jn4?:3y>5a2=v3>d287b>;61;0:;o5rs0df>5<5s4;o>7:i;<3:7?70j2wx=kh50;0x94b62=l01<7;:05a?xu5890;6?u21e290c=:90?1=:l4}r035?6=:r7:ok4;f:?2=3<6?k1v?>=:18187dm3>m70?67;34f>{t;l:1<7:t=31b>1`<5:oj6<6=;<3:34>>47=9;|q124<72;q6>>754g9>5<>=9>h0q~<92;296~;5;10?j63>98823g=z{;<86=4={<003?2a34;2m7?8b:p632=838p1?=9:5d894?e28=i7p}=6483>7}:::?18k5218a952d52z?171<3n27:5i4>7c9~w7002909w0<<3;6e?87>m3;41e3ty9:44?:3y>667=516`8yv4bi3:1=8u22e5903=::m<18;522e7903=::m>18;522e1903=::m818;522e2903=::jl18;522e3903=::l318;522d:903=::l=18;522d4903=::l?18;522d6903=::l918;522d0903=::l;18;5244c9`g=::?k1=:l4=3c1>ag52z?1`2<3n279o94>7c9~w7eb290?w0;5m00?j63=9e8ge>;5k<0o56s|2`c94?4|5;n=69h4=3a0>41e3ty9oi4?:5y>6a0=91801?k7:5d897?d2m301?lm:e;8yv4f13:1>v3=d487b>;5k;0:;o5rs3a`>5<3s48o97?72:?1a2<3n2795n4kb:?1f<l650;0x97b32=l01?m>:05a?xu5kk0;69u22e695=4<5;o=69h4=3;a>a?<5;h<6i74}r0b3?6=:r79h>4;f:?1g5<6?k1v?mn:18784c;3;3>63=e487b>;51k0on63=b48g=>{t:h<1<71`<5;hm6<9m;|q1g<<72=q6>i<5190897c32=l01?7n:e;897d42m30q~1}::jl1=5<4=3g2>1`<5;326il4=3cg>a?52z?1`4<3n279nh4>7c9~w7e?290?w0;5m:0?j63=9`8gf>;5j80o56s|2cc94?4|5;i?6964=3`b>41e3ty9o84?:3y>6f2=9;301?m::05a?xu5j10;6>u22b190==::kk185522c:952d53z?1g6<6:016>oo519:897de28=i7p}=b783>6}::j8185522c:90==::k<1=:l4}r0a=?6=;r79o?4>289>6g>=91201?l6:05a?xu5j=0;6>u22b390==::k<185522c6952d53z?1g4<6:016>o8519:897d028=i7p}=b383>6}::j:185522c690==::k81=:l4}r0a1?6=;r79o=4>289>6g2=91201?l::05a?xu5j90;6>u22cd90==::k8185522c2952d53z?1fc<6:016>o<519:897d428=i7p}=ad83>6}::ko185522c290==::ho1=:l4}r0a5?6=;r79nh4>289>6g6=91201?l>:05a?xu5ij0;6>u22cf90==::ho185522`a952d53z?1fa<6:016>lk519:897ga28=i7p}=ae83>6}::ki1=?74=3c`>4>?348jh7?8b:p6a`=83?p1?k7:0:1?87>93n270?60;fb?84?13n270::8;1f?xu5ll0;68u22d595=4<58396i74=0;2>ag<5;226il4=57;>6b55z?1a3<60;16=4=5d89>5<4=lh16>565d89>00>=;j1v?jl:18684b=3;3>63>958g=>;61:0om63=898gf>;3=108n6s|2e`94?3|5;o?6<6=;<3:1?b>34;287jn;<0;3?b>34>>47=n;|q1`d<72h=5190894?12m301<7::ec897>02mh019;7:2;8yv4c13:19v3=e382<7=:90=1h4521849`d=::1<1h45244:97==z{;n36=4;{<0f5?7?:27:5:4ka:?1<363=728gf>;5?80on63=768gf>;5>k0o563=6`8gg>{t:>81<71`<5;=86<9m;|q12f<72?q6>;k5190897142m301?9>:ec897102mk01?8m:ec8970f2mh0q~6=4={<134?751279j84>7c9~w67b2909w0=?0;34f>;49<0?j6s|2g194?5|5::26964=3d7>1><5;l86<9m;|q1bc<72:q6?=7513;897`3282370{t;;=1<741e349:h7:i;|q0gg<72k:5509>7a3=91801>k6:5d896272mi01?hi:e;8yv4a:3:1?v3<0987<>;5n:0?463=f3823g=z{;ln6=4<{<134>899>6cc=9>h0q~==6;296~;4810:;o5230a90c=z{:ij6=4:{<0e7?36349o87?72:?0a=<3n278?k4ka:?1b`k?50;1x96602=201?h=:5:897`628=i7p}=fe83>6}:;9=1=?74=3d1>4>?348mh7?8b:p773=838p1>>8:05a?856j3>m7p}0}::o819<523e195=4<5:o<69h4=21e>ae<5;lo6i74}r0e4?6=;r78<;4;8:?1b4<30279j=4>7c9~w7`d2908w0=?6;31=>;5n80:45522ga952d52z?043<6?k16?w063;4;l0om63=fb8g=>{t:ll1<7=t=226>1><5;l;6964=3ge>41e3ty9jo4?:2y>753=9;301?h?:0:;?84aj3;6<9m;<12=?2a3ty8o:4?:4y>6c6==816?i?5190896c22=l01>=j:ea897`e2m30q~;5ml0:;o5rs3db>5<4s49;87?=9:?1ac<60116>ko516`8yv55:3:1>v3<05823g=:;8218k5rs2a5>5<2s48nj7;>;<1g4?7?:278i94;f:?07a><:5:897cb2=201?kk:05a?xu5n00;6>u2311957?<5;on6<67;<0e=?70j2wx???50;0x966428=i70=>7;6e?xu4k<0;68u22dg914=:;jl1=5<4=2g0>1`<5:9o6im4=3d:>a?53z?047<30279ii4;8:?1af<6?k1v?h7:180857:3;9563=ee82<==::o21=:l4}r114?6=:r787c9>740=m;:18684bl3?:70=le;3;6>;4m;0?j63<3b8ge>;5n10o56s|2d`94?5|5:::6964=3g`>1><5;oi6<9m;|q1b3<72:q6?=?513;897cd282370{t;8l1<741e349:87:i;|q037<72;kp1?km:43896de2=<01>l6:54896df2=<01>ll:54896dc2=<01>m?:54896db2=<01>li:54896e62=<01>m=:54896ea2=<01>mk:54896eb2=<01>j?:54896b62=<01>j;:54896b52=<01>j<:54896b22=<01>j9:54896gc2=<01>ol:54896gb2=<01>on:54896g>2=<01>om:54896g02=<01>o9:54896g?2=<01>o::54896cf2=<01>k6:54896c?2=<01>k8:54896c12=<01>k::54896c32=<01>k<:54896c52=<01>k>:548961428=i7p}<0`83>7}:;8?1=5<4=20b>ae52z?05a<60;16??o5dc9~w6752909w0=>c;3;6>;4:h0om6s|30394?4|5:;i6<6=;<11e?b>3ty8==4?:3y>74g=91801>v3<1882<7=:;;h1h45rs22f>5<5s49:47?72:?06f839>77e=l01v>=70=9a;65?851l3;41e3ty94h4?:3y>6<5=<116>4<516`8yv4>03:1>v3=9282<==::0n1=:l4}r0:b?6=:r795>4>7c9>6d4=l01v?6k:18184>:3>370<61;34f>{t:0=1<74>?3482o7?8b:p6=e=838p1?7>:5:897?728=i7p}=9783>7}::0;1=564=3;a>41e3ty94o4?:3y>6<6=<116>5h516`8yv4>=3:1>v3=9182<==::0k1=:l4}r0:0?6=:r794k4>899>6h0q~<8b;296~;5090?463=7g823g=z{;2>6=4={<0;4?7?02794l4>7c9~w7?b2909w0<70;34f>;5i;0on6s|26c94?4|5;=m6964=35f>41e3ty9494?:3y>62`=91201?66:05a?xu5?00;6?u226g90==::>n1=:l4}r0;7?6=:r79;h4>899>6=>=9>h0q~<88;296~;5?m0?463=7b823g=z{;296=4={<04`?7?02794:4>7c9~w7>62909w0<8c;3;<>;50?0:;o5rs2;g>5<3s49in7:i;<1b3?7?:278:;4kc:?0<61}:;k318k523`795=4<5:<>6il4=25e>a?53z?0f<<60;16?nj54g9>71`=lk1v>7l:18785ei3>m70=n6;3;6>;4><0om63<808g=>{t;k:1<7=t=2`b>4>5349hi7:i;<17b?bf3ty85h4?:5y>7ge=6::e;8yv5e:3:1?v3lk:0:1?85c93>m70=:1;f`?xu4i;0;69u23b290c=:;hi1=5<4=24;>ag<5:2o6i74}r1a2?6=;r78o=4>839>7a2=63<668ge>;4000o56s|3c694?5|5:hn6<6=;<1g6?2a349>=7jn;|q0e4<72=q6?oh54g9>7dd=91801>87:ea896>e2m30q~=m5;297~;4jo0:4?523e190c=:;<81hn5rs2c0>5<3s49h=7:i;<1b`?7?:278:44kc:?01}:;j818k523`g95=4<5:<26io4=2;b>a?53z?0g7<60;16?i854g9>705=lh1v>m<:18785dl3;3>63;4;j0on63=f68g<>{t;ji1<7:t=2f5>4>5349nm7:i;<174?bf348m97j6;|q03f<72;q6?lj54g9>7<>=9>h0q~=8b;296~;4ij0?j63<96823g=z{:=o6=4={<1ba?2a349257?8b:p72?=838p1>on:5d896?228=i7p}<7983>7}:;h318k52386952d52z?0eg<3n2785;4>7c9~w6112909w0=n7;6e?85>:3;41e3ty8;:4?:3y>7d>=v3;4190:;o5rs2:f>5<5s49257:7;<1;a?70j2wx?4o50;0x96?>288270=6a;34f>{t;1i1<7=t=2;;>1><5:2n6964=2:`>41e3ty84k4?:2y>7<>=9;301>6j:0:;?85?n3;1><5:2j6<9m;|q0d282370=7d;34f>{t;121<7=t=2;5>1><5:2j6964=2:;>41e3ty84o4?:2y>7<0=9;301>6n:0:;?85?j3;6964=2:;>1><5:2=6<9m;|q0<<<72:q6?4;513;896>?282370=79;34f>{t;1>1<7=t=2;7>1><5:2=6964=2:7>41e3ty84:4?:2y>7<2=9;301>69:0:;?85??3;1><5:296<9m;|q0<0<72:q6?4=513;896>3282370=75;34f>{t;1:1<7=t=2;1>1><5:296964=2:3>41e3ty84>4?:2y>7<4=9;301>6=:0:;?85?;3;1><5:=n6<9m;|q0<4<72:q6?4?513;896>7282370=71;34f>{t;>l1<7=t=2;3>44>349ji:18785b13;3>63>988g=>;6110om63;59800>{t;mo1<7:t=2g;>4>534;2m7j6;<3:=?bf34>>47=<;|q0`a<72=q6?h95190894?e2m301<7n:ec8913?2:80q~=kc;290~;4m?0:4?5218a9`<=:90h1hl5244:974=z{:ni6=4;{<1f1?7?:27:5i4k9:?2=fp1>k;:0:1?87>m3n270?6d;fb?822038m7p}1}:;l91=5<4=0;e>a?<583n6io4=57;>7c54z?0a7<60;16=l>5d89>5<`=lh1688652e9~w6b02908w0=j1;3;6>;6i90om63;5981g>{t;:=1<74>?3498o7?8b:p77c=838p1>==:05a?854;3>37p}<3983>7}:;:91=564=21g>41e3ty8>k4?:3y>765=9>h01>=;:5:8yv5413:1>v3<3582<==:;:o1=:l4}r104?6=:r78?94>7c9>763=<11v>=n:181854=3;3463<3g823g=z{:9:6=4={<101?70j278?;4;8:p76d=838p1>=9:0:;?85383;713=91201>:i:05a?xu4<80;6?u2357952d<5:>=6964}r17f?6=:r788;4>899>706=9>h0q~=;2;296~;4h6=4={<173?7?02789<4>7c9~w6242909w0=;7;34f>;4<10?46s|35f94?4|5:>36<67;<166?70j2wx?9:50;0x962?28=i70=;9;6;?xu4<5:?86<9m;|q010<72:q6?97516`896162m301>8l:e`8yv5183:1>v3<5c82<==:;??1=:l4}r163?6=:r789o4>7c9>70e=<11v>8>:181852k3;3463<67823g=z{:?36=4={<16g?70j2789i4;8:p734=838p1>;k:0:;?851?3;4?:3y>70c=91201>87:05a?xu4=h0;6?u234g952d<5:?m6964}r150?6=:r789k4>899>73?=9>h0q~=:6;296~;4=o0:;o5237a9`<=z{:=;6=4<{<15a?2a349=j7:i;<145?70j2wx?;k50;6x960b282970=82;fb?850;3nj70=9d;f;?xu4>k0;6?u237c90c=:;?i1=:l4}r66f?6=:07e=07g=07>=073=075=077=5479>04`=04b=04g=04>=040=042=044==5479>064=?5479>066=07c=04e=046=;l516`8yv2283:1>v3;2e87b>;3=10h;6s|45d94?4|5=8h69h4=57;>g1?i7>52z?76g<3n27?954m5:p01b=838p19{t<=h1<71`<5=?36o?4}r67=?6=:r7?>;4;f:?71=v3;2587b>;3=10ji6s|45494?4|5=8869h4=57;>f3?97>52z?767<3n27?954nd:p012=838p19<>:5d8913?2hi0q~:;3;296~;3:90?j63;598bf>{t<=81<71`<5=?36lo4}r675?6=:r7?=h4;f:?71=50;0x917c2=l019;7:`58yv24m3:1>v3;1c87b>;3=10j:6s|42f94?4|5=;j69h4=57;>d38o7>52z?75<<3n27?954l4:p06d=838p19?7:5d8913?2h>0q~:0?j63;598b7>{t<:31<71`<5=?36l<4}r60950;0x91732=l019;7:`28yv24>3:1>v3;1287b>;3=102j6s|42794?4|5=;969h4=57;>gc>;7>52z?776<3n27?954md:p000=838p19==:5d8913?2j90q~::5;296~;3;80?j63;598ag>{t<<>1<71`<5=?36ol4}r667?6=:r7?>k4;f:?71=v3;2687b>;3=10i46s|45c94?4|5=;h69h4=57;>g28j7>52z?754<3n27?954n9:p062=838p19??:5d8913?20o0q~==a;296~;4:h0:;o5233`9`g=z{=?26=4={<66e?70j27?954l9:p7`d=83?p1>9>:ec8960d2mk01>9=:05a?82203><863;598`<>{t9?:1<7ag<5;896<5f6=9;k0q~<=4;296~;5:?0on63=23823g=z{8i96=4={<3`0?be34;h<7?8b:p560=838p1>6s|4`g94?4|V=3o70:<:5;g?!2083;?h6s|4`f94?4|V=3h70:<:5;`?!2083;>;6s|4`a94?4|V=3i70:<:5;a?!2083;>56s|4``94?4|V=3j70:<:5;b?!2083;>m6s|4`c94?4|V=3270:<:5;:?!2083;>n6s|4`;94?4|V=3370:<:5;;?!2083;>h6s|4`:94?4|V=3<70:<:5;4?!2083;>i6s|4c;94?4|V=k=70:<:5c5?!2083;>j6s|4c:94?4|V=k>70:<:5c6?!2083;==6s|4c594?4|V=k?70:<:5c7?!2083;=>6s|4c494?4|V=k870:<:5c0?!2083;=?6s|4c794?4|V=k970:<:5c1?!2083;=86s|4c694?4|V=k:70:<:5c2?!2083;=96s|4c194?4|V=k;70:<:5c3?!2083;=:6s|4c094?4|V=3m70:<:5;e?!2083;=;6s|4c394?4|V=3=70:<:5;5?!2083;=46s|4`594?4|V=3>70:<:5;6?!2083;=56s|56194?4|V<=870:<:450?!2083;=m6s|54f94?4|V70:<:5f6?!2083;<>6s|4g594?4|V=n?70:<:5f7?!2083;70:<:5a6?!2083;8j6s|4d594?4|V=i?70:<:5a7?!2083;?<6s|4d494?4|V=i870:<:5a0?!2083;?=6s|4d794?4|V=i970:<:5a1?!2083;??6s|4d694?4|V=i:70:<:5a2?!2083;?86s|4d194?4|V=i;70:<:5a3?!2083;?96s|4d094?4|V=hm70:<:5`e?!2083;?:6s|4d394?4|V=hn70:<:5`f?!2083;?;6s|4d294?4|V=ho70:<:5`g?!2083;?46s|4ed94?4|V=hh70:<:5``?!2083;?56s|51094?4|V=no70:<:5fg?!2083;?m6s|51394?4|V=nh70:<:5f`?!2083;?n6s|51294?4|V=ni70:<:5fa?!2083;?o6s|4gd94?4|V=nj70:<:5fb?!2083;?i6s|4gg94?4|V=n270:<:5f:?!2083;?j6s|4gf94?4|V=n370:<:5f;?!2083;><6s|4ga94?4|V=n:70:<:5f2?!2083;>=6s|4g694?4|V=i=70:<:5a5?!2083;>>6s|4d;94?4|V=hi70:<:5`a?!2083;>?6s|4eg94?4|V=hj70:<:5`b?!2083;>86s|51c94?4|V<:j70:<:42b?!2083;>96s|49794?4|V=2>70:<:5:6?!2083;>:6s|51694?4|V<:?70:<:427?!2083;>46s|53d94?4|V<8m70:<:40e?!2083;>o6srn`f:>5<5sA><=6saaec94?4|@==:7p`ndc83>7}O<>;0qcokc;296~N3?81vbljk:181M2092wemik50;0xL1163tdjhk4?:3yK02752zJ734=zfho:6=4={I645>{iil81<7vF;709~jdc22909wE:81:me`0=838pD99>;|lba2<72;qC8:?4}ocf5<5sA><=6saadc94?4|@==:7p`nec83>7}O<>;0qcojc;296~N3?81vblkk:181M2092wemhk50;0xL1163tdjik4?:3yK02752zJ734=zfhl:6=4={I645>{iio81<7vF;709~jd`22909wE:81:mec0=838pD99>;|lbb2<72;qC8:?4}oce5<5sA><=6saagc94?4|@==:7p`nfc83>7}O<>;0qcoic;296~N3?81vblhk:181M2092wemkk50;0xL1163tdjjk4?:3yK02752zJ734=zfk::6=4={I645>{ij981<7vF;709~jg622909wE:81:mf50=838pD99>;|la42<72;qC8:?4}o`35<5sA><=6sab1c94?4|@==:7p`m0c83>7}O<>;0qcl?c;296~N3?81vbo>k:181M2092wen=k50;0xL1163tdi52zJ734=zfk;:6=4={I645>{ij881<7vF;709~jg722909wE:81:mf40=838pD99>;|la52<72;qC8:?4}o;2e?6=9rB?;<5rn87:>5<6sA><=6sa94c94?7|@==:7p`65c83>4}O<>;0qc7:c;295~N3?81vb4;k:182M2092we58k50;3xL1163td29k4?:0yK02751zJ734=zf0<:6=4>{I645>{i1?81<7?tH552?xh>>:0;6;|l:22<728qC8:?4}o;55<6sA><=6sa97c94?7|@==:7p`66c83>4}O<>;0qc79c;295~N3?81vb48k:182M2092we5;k50;3xL1163td2:k4?:0yK02751zJ734=zf0=:6=4>{I645>{i1>81<7?tH552?xh>?:0;6;|l:32<728qC8:?4}o;45<6sA><=6sa96c94?7|@==:7p`67c83>4}O<>;0qc78c;295~N3?81vb49k:182M2092we5:k50;3xL1163td2;k4?:0yK02751zJ734=zf02:6=4>{I645>{i1181<7?tH552?xh>0:0;62290:wE:81:m==0=83;pD99>;|l:<2<728qC8:?4}o;;5<6sA><=6sa99c94?7|@==:7p`68c83>4}O<>;0qc77c;295~N3?81vb46k:182M2092we55k50;3xL1163td24k4?:0yK02751zJ734=zf03:6=4>{I645>{i1081<7?tH552?xh>1:0;6<3:1=vF;709~j;|l:=2<728qC8:?4}o;:5<6sA><=6sa98c94?7|@==:7p`69c83>4}O<>;0qc76c;295~N3?81vb47k:182M2092we54k50;3xL1163td25k4?:0yK02751zJ734=zf0k:6=4>{I645>{i1h81<7?tH552?xh>i:0;6;|l:e2<728qC8:?4}o;b5<6sA><=6sa9`c94?7|@==:7p`6ac83>4}O<>;0qc7nc;295~N3?81vb4ok:182M2092we5lk50;3xL1163td2mk4?:0yK02751zJ734=zf0h:6=4>{I645>{i1k81<7?tH552?xh>j:0;6;|l:f2<728qC8:?4}o;a5<6sA><=6sa9cc94?7|@==:7p`6bc83>4}O<>;0qc7mc;295~N3?81vb4lk:182M2092we5ok50;3xL1163td2nk4?:0yK02751zJ734=zf0i:6=4>{I645>{i1j81<7?tH552?xh>k:0;6;|l:g2<728qC8:?4}o;`5<6sA><=6sa9bc94?7|@==:7p`6cc83>4}O<>;0qc7lc;295~N3?81vb4mk:182M2092we5nk50;3xL1163td2ok4?:0yK02751zJ734=zf0n:6=4>{I645>{i1m81<7?tH552?xh>l:0;6;|l:`2<728qC8:?4}o;g5<6sA><=6sa9ec94?7|@==:7p`6dc83>4}O<>;0qc7kc;295~N3?81vb4jk:182M2092we5ik50;3xL1163td2hk4?:0yK02751zJ734=zf0o:6=4>{I645>{i1l81<7?tH552?xh>m:0;6;|l:a2<728qC8:?4}o;f5<6sA><=6sa9dc94?7|@==:7p`6ec83>4}O<>;0qc7jc;295~N3?81vb4kk:182M2092we5hk50;3xL1163td2ik4?:0yK02751zJ734=zf0l:6=4>{I645>{i1o81<7?tH552?xh>n:0;6;|l:b2<728qC8:?4}o;e5<6sA><=6sa9gc94?7|@==:7p`6fc83>4}O<>;0qc7ic;295~N3?81vb4hk:182M2092we5kk50;3xL1163td2jk4?:0yK02751zJ734=zfh::6=4>{I645>{ii981<7?tH552?xhf8:0;6;|lb42<728qC8:?4}oc35<6sA><=6saa1c94?7|@==:7p`n0c83>4}O<>;0qco?c;295~N3?81vbl>k:182M2092wem=k50;3xL1163tdj51zJ734=zfh;:6=4>{I645>{ii881<7?tH552?xhf9:0;6;|lb52<728qC8:?4}oc25<6sA><=6saa0c94?7|@==:7p`n1c83>4}O<>;0qco>c;295~N3?81vbl?k:182M2092wem51zJ734=zfh8:6=4>{I645>{ii;81<7?tH552?xhf::0;6;|lb62<728qC8:?4}oc15<6sA><=6saa3c94?7|@==:7p`n2c83>4}O<>;0qco=c;295~N3?81vblk4?:0yK02751zJ734=zfh9:6=4>{I645>{ii:81<7?tH552?xhf;:0;6;|lb72<728qC8:?4}oc05<6sA><=6saa2c94?7|@==:7p`n3c83>4}O<>;0qcok50;3xL1163tdj?k4?:0yK02751zJ734=zfh>:6=4>{I645>{ii=81<7?tH552?xhf<:0;6;|lb02<728qC8:?4}oc75<6sA><=6saa5c94?7|@==:7p`n4c83>4}O<>;0qco;c;295~N3?81vbl:k:182M2092wem9k50;3xL1163tdj8k4?:0yK027<7>51zJ734=zfh?:6=4>{I645>{ii<81<7?tH552?xhf=:0;6;|lb12<728qC8:?4}oc65<6sA><=6saa4c94?7|@==:7p`n5c83>4}O<>;0qco:c;295~N3?81vbl;k:182M2092wem8k50;3xL1163tdj9k4?:0yK02751zJ734=zfh<:6=4>{I645>{ii?81<7?tH552?xhf>:0;6;|lb22<728qC8:?4}oc55<6sA><=6saa7c94?7|@==:7p`n6c83>4}O<>;0qco9c;295~N3?81vbl8k:182M2092wem;k50;3xL1163tdj:k4?:0yK02751zJ734=zfh=:6=4>{I645>{ii>81<7?tH552?xhf?:0;6;|lb32<728qC8:?4}oc45<6sA><=6saa6c94?7|@==:7p`n7c83>4}O<>;0qco8c;295~N3?81vbl9k:182M2092wem:k50;3xL1163tdj;k4?:0yK02751zJ734=zfh2:6=4>{I645>{ii181<7?tH552?xhf0:0;62290:wE:81:me=0=83;pD99>;|lb<2<728qC8:?4}oc;5<6sA><=6saa9c94?7|@==:7p`n8c83>4}O<>;0qco7c;295~N3?81vbl6k:182M2092wem5k50;3xL1163tdj4k4?:0yK02751zJ734=zfh3:6=4>{I645>{ii081<7?tH552?xhf1:0;6<3:1=vF;709~jd?2290:wE:81:me<0=83;pD99>;|lb=2<728qC8:?4}oc:5<6sA><=6saa8c94?7|@==:7p`n9c83>4}O<>;0qco6c;295~N3?81vbl7k:182M2092wem4k50;3xL1163tdj5k4?:0yK02751zJ734=zfhk:6=4>{I645>{iih81<7?tH552?xhfi:0;6;|lbe2<728qC8:?4}ocb5<6sA><=6saa`c94?7|@==:7p`nac83>4}O<>;0qconc;295~N3?81vblok:182M2092wemlk50;3xL1163tdjmk4?:0yK02751zJ734=zfhh:6=4>{I645>{iik81<7?tH552?xhfj:0;6;|lbf2<728qC8:?4}oca5<6sA><=6saacc94?7|@==:7p`nbc83>4}O<>;0qcomc;295~N3?81vbllk:182M2092wemok50;3xL1163tdjnk4?:0yK02751zJ734=zfhi:6=4>{I645>{iij81<7?tH552?xhfk:0;6;|lbg2<728qC8:?4}oc`5<6sA><=6saabc94?7|@==:7p`ncc83>4}O<>;0qcolc;295~N3?81vblmk:182M2092wemnk50;3xL1163tdjok4?:0yK02751zJ734=zfhn:6=4>{I645>{iim81<7?tH552?xhfl:0;6;|lb`2<728qC8:?4}ocg6789:;<=>;0:23456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?013856=6&9;87<>5IORVP?GCL[K757>11g924?OIX\^1|ah_dosp|Ys`{oxd1750?05?46=AGZ^X7~}of]fiur~W}byi~fParqfvq:>2949:6??:HLSQQ712@D[YY4KI@>21?699:1::7AZTQWW>AIF48?1<3?;;0:9KPRW]]0ocxz31683:4=5:28:86<<3232?76==:HLSQQ112906?IR\Y__6IAM<2394;753:<1EC^ZT;fjj952294o7>}=012ec131%<;0895;0GD25>2=AGZ^X7JFPC>0>586:2>1CXZ_UU8GKUD;;3:5=68=;7;7?3?>>=138??;;9G;E4=><23;<4<49768=30>9;126D@_UU8B@ATE410;22@D[YY4rne\bpjkW}byi~fPndebp`:?294:4675OTVSQQG502KOH_O30?:8EABUI5;546OKDSC?6;>GCL[K7:364AEFQE91902KOH_O38?c8EABUI531<364AEFQE9?902KOH_L30?:8EABUJ5;546OKDS@?6;>GCL[H7:364AEFQF919i2KOH_L38;2=<>GCL[H743=4AMN:?DU^FJUYIJ=4BT0;?GSTW@DMC<5L2:AF57=D@LI@SAGLEOQF[Q_WM;1HE95LLJC7?FJLJ:1H@_74CNONMQRBL8>0OB\J_FGMAWGSAFDTECH@7:AQADRBL81O>6JL2:FJ2>BNI5:5;6JFA=33:2=CAH6:=394DHC?57803MCJ0<=17:FJE973601OEL2>5;2=3>BNI5;>2;5KI@>2:3=CAH692;5KI@>0:3=CAH6?2;5KI@>6:3=CAH6=2;5KI@>4:3=CAH632;5KI@>::3=CAK6;2:5KIC>24;169GMG:6<7=0HDL314<4?AOE48<5;6JFB=34:2=CAK6:4394DH@?5<813MCI0<08;EKA8769?2NBN1<>>69GMG:5:7=0HDL322<4?AOE4;>5;6JFB=06:2=CAK69:394DH@?62803MCI0?617:FJF94>6?1OEO2=>69GMG:48730HDL33083:2=CAK68=384DH@?7;02:2=CAYH7>374DHRA86<76>1OE]L33?48@JG;87=0HBO311<4?AIF48;5;6J@A=31:2=CGH6:?394DNC?518>3MEJ0<;50?58@JG;9<4=7IAN<0<5?AIF4;4=7IAN<2<5?AIF4=4=7IAN<4<5?AIF4?4=7IAN<6<5?AIF414=7IAN<8<4?AIFW[OL:6J@B=2=3>BHJ5;;2:5KOC>25;169GKG:6=7=0HBL317<4?AIE48=5;6J@B=3;:2=CGK6:5384DN@?5;1=08;EMA8779?2NDN1<=>69GKG:5;7=0HBL325<4?AIE4;?5;6J@B=05:2=CGK69;394DN@?6=803MEI0?716:FLF949?2NDN1=?>89GKG:493:5;6J@B=12:3=CGK682;5KOC>7:3=CGK6>2;5KOC>5:3=CGK6<2;5KOC>;:3=CGK622:5KOC]QAB12:2=CGYH7>374DNRA86<76>1OC]L33?18AKG43LDIn6KA_DA@[WCFLj1NBRKLC^UQMQC53O8?7K6HK3:DGG1=ALJO87KJ_4:DGT@2O7:2C:>6G=2:K0<>OIA]ZT<=64IOKWTZ6602CEEY^P03:8MKOSXV:846GAIUR\41>:8:KMMQVX8?20ECG[P^24=>OIA]Y_MYK8;HLJPZ67?2CEEYQ?169JJLRX8;=0ECG[_114?LHN\V:?;6GAIU]312=NF@^T<;94IOKW[5103@DBXR>77:KMMQY71>1BBDZP0@58MKOSW9H<7D@FT^2@3>OIA]U;H:5FNHV\4@1169JJLRX9;=0ECG[_014?LHN\V;?;6GAIU]212=NF@^T=;94IOKW[4103@DBXR?77:KMMQY61>1BBDZP1@58MKOSW8H<7D@FT^3@3>OIA]U:H:5FNHV\5@1;94IOKW[7103@DBXR<77:KMMQY51>1BBDZP2@58MKOSW;H<7D@FT^0@3>OIA]U9H:5FNHV\6@11BBDZP3@58MKOSW:H<7D@FT^1@3>OIA]U8H:5FNHV\7@1H9;HLJPZG13@DBXRL=;MK1?II13EEJHHJ8;MMDMFGK<2F^X<:4LTV10>JR\:>0@XZ;6:NVP1YC=2GXKB@:;LW[G\eKnffx]i}foo08J42159M54633G;:=95A1007?K76;=1E=<:;;O3211=I98759M54>33G;:5>5A1368J447<2D:><:4N0010>H6::>0B<<;4:L26022618J4533G;8=>5A1518J4343G;=?6@>729M5=5H59:1E>?=4N310?K43;2D99>5A2718J7143G83?6@=929M755;<;O157>H4?:1E?5=4N2;0?K27;2D?=>5A4318J1543G>??6@;529M035H0:2D2j6@M_CWPTLHXX[E[_:5AEUULVN7W63[o0^LCM17]P5=YT;?k0^HOK_GKQWQeTBIMU\EIZG_C38W45<[@GTOBBCIRKLJZEOMJA=7^AZRBG4?VTQIEUJ;6]]V@N\F1=T[[K?7^]]B59W]UC4:2_;#j|i.sd,cf~)keas#@v`r^pg[uhszVmhSua}0123[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYulVzexQhc^zlv5679VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4563W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;9R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?07]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3451XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:3S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?0^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2344YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt7898T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=><_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1230ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678<5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb1?1209V4*aun'xm#jmw.bnh|*tcWyd~Rlfn=0=64=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj959:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf5>5><5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb1;1209V4*aun'xm#jmw.bnh|*tcWyd~Rlfn=4=64=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj919:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf525><5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb171219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^314>S7'nxm"h gbz-gim'{nT|cz}_ckm[7473\:$kh!rg-dg}(ddbr$~iQnup\flhX;;:0Y=!hrg,qb*adp'iggu!}d^rmpwYeagU?>=5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbR;=0:W3+bta&{l$knv!cmi{+wbXxg~ySoga_703?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\376<]9%l~k }f.e`|+ekcq%yhR~ats]amkY?:91^<"i}f/pe+be&jf`t"|k_qlwvZdnfV39:6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}012362=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;<<<9;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34575?2_;#j|i.sd,cf~)keas#jPpovq[goiWqey<=>>1348Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678;8<7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?010263=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;??94U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos234645>2_;#j|i.sd,cf~)keas#jPpovq[goiWqey<=>;269V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567<88=7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?01713>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:>=?84U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos23434?3\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=8>1358Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678?89n6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0125[gbc8;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0604?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789=:>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmh0=0=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm31?03?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb>1:76<]9%l~k }f.e`|+ekcq%yhR~ats]dg959:91^<"i}f/pe+be&jf`t"|k_qlwvZad4=49<6[?/fpe*w`(ojr%oaew/sf\tkruWni793328Q5)`zo$yj"ilx/aoo})ulVzexQhc=5=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`8=8582_;#j|i.sd,cf~)keas#jPpovq[be;17;m7X> gsd-vc)`kq$h`fv re]sjqtXojU;=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS;m7X> gsd-vc)`kq$h`fv re]sjqtXojU3=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS4<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8585>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk1?1279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:56;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi33?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4=49:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=7=63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn6=2?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?3;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol050=6:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfc9?9:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ?249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY6:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ=249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY4:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ;249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY2:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ9249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY0:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ7249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY>:01^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1=3=6<=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=1<1289V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabYc9595>45Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g5929:01^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1=7=6<=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=181289V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabYc95=5>45Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g59>9:01^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1=;=6==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh55Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g5Z?5=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=>=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34575=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=<=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34555=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=:=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34535=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=8=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34515=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=6=1:W3+bta&{l$knv!cmi{+rtXxg~ySoga<1<15>S7'nxm"h gbz-gim'~xT|cz}_ckm848592_;#j|i.sd,cf~)keas#z|Ppovq[goi4;49=6[?/fpe*w`(ojr%oaew/vp\tkruWkce0>0=1:W3+bta&{l$knv!cmi{+rtXxg~ySoga<5<15>S7'nxm"h gbz-gim'~xT|cz}_ckm808592_;#j|i.sd,cf~)keas#z|Ppovq[goi4?49=6[?/fpe*w`(ojr%oaew/vp\tkruWkce0:0=1:W3+bta&{l$knv!cmi{+rtXxg~ySoga<9<14>S7'nxm"h gbz-gim'~xT|cz}_ckm[5473\:$kh!rg-dg}(ddbr${Qnup\flhX9;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU9>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR==0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_503?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\176<]9%l~k }f.e`|+ekcq%|~R~ats]amkY1:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV=9<6[?/fpe*w`(ojr%oaew/vp\tkruWkceS5<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34565?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>?1348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw67888<7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?013263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;>?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234775>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=><269V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567;;8=7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01613>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:?=?84U1-dvc(un&mht#mcky-tvZvi|{UiecQwos2340403\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=;>279V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567>;20Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?073262=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;:?;5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r123371<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<:?=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm30?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>2:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg949:91^<"i}f/pe+be&jf`t"y}_qlwvZad4:49<6[?/fpe*w`(ojr%oaew/vp\tkruWni783328Q5)`zo$yj"ilx/aoo})pzVzexQhc=4=65=R8&myj#|i/fa{*fjlp&}yS}`{r^e`828582_;#j|i.sd,cf~)keas#z|Ppovq[be;07;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU;=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU3>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>3:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm7=3<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8785>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk1=1279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:36;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi35?05?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4?49:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=5=63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn632?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\473<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT=?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\673<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT??;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\073<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT9?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\273<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT;?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\<7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2?>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86:2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:56;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>0:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2;>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86>2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:16;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>4:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<27>3:8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8U;>55Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5Z7502_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>_30;?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;T??64U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4Y3:11^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1^71<>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S;<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X?;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0];60=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:;>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012260=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:9>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012060=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:?>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012660=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:=>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012475=R8&myj#|i/fn3*wb(o{;%~kyit.Onq}YUIDUYHRKA_GUEP775n2_;#j|i.sd,ci6)zm%l~< }fvdw+HkrpVXJAR\JGNWW[@H69;n0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`:76;n0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`:66;i0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`Y7:j1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwaZ74=2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[hs89::0=0<6:W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nS`{w01228586;<1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwaZkrp9:;=1?1379V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}kiRczx12359799;20Y=!hrg,qb*ak8'xo#j|>.sdtbq)bey~rSkyit^da62=R8&myj#|i/fn3*wb(o{;%~kyit.gntqXn~lSd?319V4*aun'xm#jb?.sf,cw7)zo}mx"kbpu{\br`sW`Ufyu>?0131=>S7'nxm"h gm2-va)`zhy%~~z|/b2,gdtuqgo0=0=9:W3+bta&{l$ka>!re-dvdu)zz~x#n> c`pq}kcs484956[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$ol|}yogw878512_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(khxyuck{<2<1b>S7'nxm"h gm2-va)`zhy%~~z|/b2,chs&ngP

<1<17>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4:66;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&|:0?0=3:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0>0:75<]9%l~k }f.eo4+tc'nxj#||tr-`4*p64=49n6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$z?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4Y3Whdo<=>?13;8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.abvwim}6;2?74U1-dvc(un&mg<#|k/fpbw+tt|z%h="mnrs{maq:66;30Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&ij~waeu>1:7?<]9%l~k }f.eo4+tc'nxj#||tr-`5*efz{seiy2<>3d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.enq}(`eR:V"jc>.l31b>S7'nxm"h gm2-va)`zhy%~~z|/b3,chs&ngP=P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`5*aj}q$laV318Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t28485;2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~8692?=4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x><2<17>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4:36;h0Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&|:S=Qnne234575j2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~8U:Sl`k012357d<]9%l~k }f.eo4+tc'nxj#||tr-`5*p6W;Ujbi>?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4Y4Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t2[1Yffm:;<=?=0:W3+bta&{l$ka>!re-dvdu)zz~x#nabp103?P6(o{l%~k!hl1,q`*auiz$yy} cnos57?<]9%l~k }f.eo4+tc'nxj#||tr-qehYbey~rSklPi228Q5)`zo$yj"ic0/pg+btf{'xxx~!}al]fiur~WohTeRa}012374=R8&myj#|i/fn3*wb(o{kx"}{s.pbiZcjx}sTjoQf_np34566::1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by<;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw572<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~9>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu110>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|=8?7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{5368Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkr1:=1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by9=4:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmp=433\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d5?74U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:76;i0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>3:Zts:01^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=3=6f=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1?1_sv1=>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0?0=c:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4;4T~y<6;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[f;;78h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?7;Yu|;30Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>7:7e<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2;>^pw6<=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1;12b9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5?5Sz=9:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4?49o6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az838Xz}827X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?3;4d3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw37?]qp7?<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot27>3a8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp632R|{2`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{6;2?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;978j7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8785i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=1=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc2;>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx793;:7g<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|39?0g?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWqey040Pru3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=2=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?5;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9499o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;;7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5>5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~793?i;T2,cw`)zo%l`= }d.psjqt(kfex1811g9V4*aun'xm#jb?.sf,vuhsz&idycz37?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=:=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?=;7b3\:$kh!rg-dh5(ul&x{by| cnwmpZ66m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY69l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX:8o0Y=!hrg,qb*ak8'xo#~ats-`kphsW:;n7X> gsd-vc)`d9$yh"|nup,gjsi|V>:i6[?/fpe*w`(oe:%~i!}povq+firf}U>=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T:e:W3+bta&{l$ka>!re-qtkru'je~byQ6239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>3:74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;97897X> gsd-vc)`d9$yh"|nup,gjsi|Vn:0?0=2:W3+bta&{l$ka>!re-qtkru'je~byQk1=1=67=R8&myj#|i/fn3*wb(zyd~"m`uov\`4:36;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;793<=;T2,cw`)zo%l`= }d.psjqt(kfexRj><7<16>S7'nxm"h gm2-va)uxg~y#naznu]g5919:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl8632?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?39?02?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[5463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W88:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S?<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_202?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[1463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W<8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S;<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_602?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[=463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W08?7X> gsd-vc)`d9$yh"|nup,gjsi|Vddx=>?13;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6;2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:66;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>1:7?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2<>3d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(`eR:V"jc>.l31b>S7'nxm"h gm2-sw)`hy%{~z|/b3,chs&ngP=P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28485;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8692?=4U1-dvc(un&mg<#y}/fubw+qt|z%h="x><2<17>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4:36;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S=Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U:Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W;Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4Y4Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t2[1Yig}:;<=?=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs494956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw848512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<3<1=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0>0=f:W3+bta&{l$ka>!ws-dsdu)z~x#n< glw{*bk\8T$la< b13d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.enq}(`eR;V"jc|.lq1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP>P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`6*aj}q$laV=R.fop*hu5n2_;#j|i.sd,ci6){%l{l}!wrvp+f4(ods"jcT4\,div(j{;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0=0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>2:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64;49?6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z<2<>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t28185j2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~8U;Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p6W8Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y5Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t2[6Yffm:;<=?=b:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0]7[kis89:;=?>4U1-dvc(un&mg<#y}/fubw+qt|z%hc`~>219V4*aun'xm#jb?.vp,crgt&~y"m`mq01<>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVliSd<:;T2,cw`)zo%l`= xr.etev(p{}y$~lcPftno[l4c3\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXn|fgSdQbuy23454b3\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXn|fgSdQbuy234576l2_;#j|i.sd,ci6){%ym`Qxr^gm[l75;2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex?:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov261=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}8986[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at207?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs<;>0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz:259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq05<2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex:<;;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw<7?<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2?>3a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6;2R|{289V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5;5>n5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}979W{~956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8785k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<3<\vq4>3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw33?0`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7?3Q}t3;8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6?2?m4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\g|:36Vx>45Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}939:j1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=7=[wr512_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<7<1g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir0;0Pru0:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7;3 gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8485i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=0=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc2<>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7834:7g<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|38?0g?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey050Pru3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=2=5c=R8&myj#|i/fn3*rt(yd~"m`uov?5;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9499o1^<"i}f/pe+bj7&~x${}`{r.alqkr;;7;m7X> gsd-vc)`d9$|~"ynup,gjsi|5>5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~793?i;T2,cw`)zo%l`= xr.usjqt(kfex1811g9V4*aun'xm#jb?.vp,suhsz&idycz37?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=:=5`=R8&myj#|i/fn3*rt(yd~"m`uov\44c<]9%l~k }f.eo4+qu'~zex!lotlw[47b3\:$kh!rg-dh5(pz&}{by| cnwmpZ46m2_;#j|i.sd,ci6){%||cz}/bmvjqY49l1^<"i}f/pe+bj7&~x${}`{r.alqkrX<8o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW<;n7X> gsd-vc)`d9$|~"ynup,gjsi|V<:i6[?/fpe*w`(oe:%{!xpovq+firf}U<=h5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T4?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?30?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28485:2_;#j|i.sd,ci6){%||cz}/bmvjqYc9585>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<2<>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3?0;453\:$kh!rg-dh5(pz&}{by| cnwmpZb64<49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=181239V4*aun'xm#jb?.vp,suhsz&idyczPd0>4:74<]9%l~k }f.eo4+qu'~zex!lotlw[a7;078:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S=<>;T2,cw`)zo%l`= xr.usjqt(kfexRj>_002?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f2[7463\:$kh!rg-dh5(pz&}{by| cnwmpZb6W:8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S9<>;T2,cw`)zo%l`= xr.usjqt(kfexRj>_402?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f2[3463\:$kh!rg-dh5(pz&}{by| cnwmpZb6W>8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S5<=;T2,cw`)zo%l`= xr.usjqt(kfexRj=<1<16>S7'nxm"h gm2-sw)pxg~y#naznu]g6979:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;692?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<33?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f18185:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5?5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?29>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?3;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54149=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R>=1:W3+bta&{l$ka>!ws-ttkru'je~byQk2^315>S7'nxm"h gm2-sw)pxg~y#naznu]g6Z4592_;#j|i.sd,ci6){%||cz}/bmvjqYc:V99=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R:=1:W3+bta&{l$ka>!ws-ttkru'je~byQk2^715>S7'nxm"h gm2-sw)pxg~y#naznu]g6Z0592_;#j|i.sd,ci6){%||cz}/bmvjqYc:V=9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R6=4:W3+bta&{l$ka>!ws-ttkru'je~byQaou2344703\:$kh!rg-nah)cg|~Te1>1199V4*aun'xm#`kb/emvpZo;994:46[?/fpe*w`(elg$hb{{_h>25;7?3\:$kh!rg-nah)cg|~Te1?=>0:8Q5)`zo$yj"cjm.flqqYn4895=55Z0.eqb+ta'dof#iazt^k?518602_;#j|i.sd,i`k(lfSd2>5?3;?P6(o{l%~k!bel-gkprXa5;=2<64U1-dvc(un&gna"j`uu]j84199>1^<"i}f/pe+hcj'me~xRg31?34?P6(o{l%~k!bel-gkprXa585=:5Z0.eqb+ta'dof#iazt^k?7;703\:$kh!rg-nah)cg|~Te1:1169V4*aun'xm#`kb/emvpZo;=7;<7X> gsd-vc)jmd%ocxzPi=4=52=R8&myj#|i/lgn+air|Vc7;3?8;T2,cw`)zo%fi`!kotv\m9>99>1^<"i}f/pe+hcj'me~xRg39?35?P6(o{l%~k!bel-gkprXaV:::6[?/fpe*w`(elg$hb{{_h]252=R8&myj#|i/lgn+air|VcT==?8;T2,cw`)zo%fi`!kotv\mZ769>1^<"i}f/pe+hcj'me~xRgP1334?P6(o{l%~k!bel-gkprXaV;8=:5Z0.eqb+ta'dof#iazt^k\51703\:$kh!rg-nah)cg|~TeR?:169V4*aun'xm#`kb/emvpZoX9?;<7X> gsd-vc)jmd%ocxzPi^3453=R8&myj#|i/lgn+air|VcT><84U1-dvc(un&gna"j`uu]j[6713\:$kh!rg-nah)cg|~TeR:>6:W3+bta&{l$ahc dnww[lY29?1^<"i}f/pe+hcj'me~xRgP6048Q5)`zo$yj"cjm.flqqYnW>;=7X> gsd-vc)jmd%ocxzPi^:22>S7'nxm"h mdo,`jssW`U2=45Z0.eqb+ta'dof#iazt^ofi9699h1^<"i}f/pe+hcj'me~xRcjm=33:4g<]9%l~k }f.ofi*bh}}Ufi`2>1?3b?P6(o{l%~k!bel-gkprXelg7=?0>a:W3+bta&{l$ahc dnww[hcj4895=l5Z0.eqb+ta'dof#iazt^ofi97368k0Y=!hrg,qb*kbe&ndyyQbel>21;7f3\:$kh!rg-nah)cg|~Tahc317<2e>S7'nxm"h mdo,`jssWdof0<91189V4*aun'xm#`kb/emvpZkbe5;5=45Z0.eqb+ta'dof#iazt^ofi949901^<"i}f/pe+hcj'me~xRcjm=1=5<=R8&myj#|i/lgn+air|Vgna1:1189V4*aun'xm#`kb/emvpZkbe5?5=45Z0.eqb+ta'dof#iazt^ofi909901^<"i}f/pe+hcj'me~xRcjm=5=5<=R8&myj#|i/lgn+air|Vgna161189V4*aun'xm#`kb/emvpZkbe535;95Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(~hfbh#m|ts-qehjhgyQ;Q#|nm/p,w6Yig`dbx#|nm.fsvdk)ly9=t<6!r`o2f>S7'nxm"h mdo,phvXzhgT~iQjn0a8Q5)`zo$yj"cjm.vntZtfeVxoSh`>169V4*aun'xm#ob_sgdkprXmg;o7X> gsd-vc)u{}hgg"|k_sqw[duumn8;7X> gsd-vc)u{}hgg"|k_sqw[duumnUo=?>4U1-dvc(un&xxxobd/sf\vvrXizxnkRj=1b9V4*aun'xm#}{bmi,vaYu{}Uhc`l>d:W3+bta&{l$~~zmlj-q`Ztt|Vidao?>e:W3+bta&{l$~~zmlj-q`Ztt|Vxnk1>11d9V4*aun'xm#}{bmi,vaYu{}Uyij2>>0g8Q5)`zo$yj"||tcnh+wbXzz~T~hi32?3g?P6(o{l%~k!}su`oo*tcW{ySkh_13g?P6(o{l%~k!}su`oo*tcW{ySkh_03g?P6(o{l%~k!}su`oo*tcW{ySkh_33g?P6(o{l%~k!}su`oo*quW{ySl}}ef03?P6(o{l%~k!}su`oo*quW{ySl}}ef]g576<]9%l~k }f.pppgjl'~xT~~zParpfcZb59j1^<"i}f/pe+wusjea${Q}su]`khd6l2_;#j|i.sd,vvredb%|~R||t^alig76m2_;#j|i.sd,vvredb%|~R||t^pfc9699l1^<"i}f/pe+wusjea${Q}su]qab:668n0Y=!hrg,qb*tt|kf`#z|Prrv\v`aX88n0Y=!hrg,qb*tt|kf`#z|Prrv\v`aX9h1^_H\PAMKBWf=R[LXTZD]FBMG0?SED12\BIZQ[YQG0?RCF;2]NNn5XRHVF[HICMVKh7Z\FTD]NKACXJm1\^DZJ_VKGPMYFl2]YEYKPWHFWLZD6l2RB@D@W-YFA$5(6(Z^^N->!1!CPGLO23QEYOT84XRVOMG1gkefyShctx`8eikh{}Umyab9;cc`opvc3kkhgx~Pm`phaw5bf|hUhcx`{(6+g?agsiVidycz'8(d8`drfWje~by27:1<4?adn|lxy:6jfn)2*2>bnf!;";6jfn)33-2=cag":=$94dhl+57/03mce$<=&7:fjj-73!>1oec&>5(58`lh/9?#<7iga(05*3>bnf!;3%:5kio*2=,0$94dhl+65/03mce$??&7:fjj-45!>1oec&=3(58`lh/:=#<7iga(37*3>bnf!8=%:5kio*13,15'8;ekm,7?.>2nbb%=&7:fjj-57!>1oec&<1(58`lh/;;#<7iga(21*3>bnf!9?%:5kio*01,01oec2>3?58`lh;9=4<7iga<07=3>bnf5;=2:5kio>23;12nbb1?17:fjj9476>1oec2=1?58`lh;:;4<7iga<31=3>bnf58?2:5kio>11;1;08;ekm8719?2nbb1<7>69gmk:517<0hd`32?58`lh;;94<7iga<23=3>bnf5992:5kio>07;14=7iga<9<5?aoi404<7iazt)2*3>bh}}":%55kotv+55/?3me~x%?>)99gkpr/9;#37iazt)30-==cg|~#=9'7;emvp-72!11ocxz'17+;?air|!;<%:5kotv+6,1'8;emvp-2.?2ndyy&:)69gkpr/> =0hb{{(6+4?air|!2";6j`uu*:-2=cg|~7<364dnww846902ndyy2>1?:8`jss488546j`uu>27;>bh}}6:;7>18:flqq:6?7=0hb{{<0<4?air|585;6j`uu>0:2=cg|~78394dnww80803me~x1817:flqq:06>1ocxz38?58`jss40437hjff3ld`0=bey~r>k5iigm\c`hbzh~d~Rx9_0.#\ljnfq*HC_K/Gdlfvdrhz);9"=?v<6^0`hnY4>}e:4>o4fhdl[}jipV?:>u=9_3aooZ51|f;3 kgio^efj`tf|fxTz;Q>,OMMA)HHFL>;=6hffn]{hk~X=88s?;Q=cmi\73rh91&mekaPgdlfvdrhzV|=S<"tc^jbwZoi|Vigg0>#c^jbwZuu{}7; nQ}d^dqat;6$jUnbllce^pppZu~fj7: nQgar]q`Zbf|hUhcx`{=1.`[aoiW~coxe3<6-a\lduX{UomyoPcnwmp86+kVl~`aQil`ep[wusWkg1="l_hosh`kbf}keb`Ptxrf97*dW|ynShcmeeff`Ztbo4:'oRy}_gpfu87+kVxiRj`uu]qwq;6$jU~bik}fmmt[iip59&hSeo|_ntfvcjh4:'oR~}emmb`Zjf|ldhu0>#c^flqqYpam~c1<6#c^opcjhX~hf6=!mPre]gauro58:98!mPesplvZoiblieb`Ptxrf95*dWakxSx`kesdokr;7$jUcm~QnllmppZ`rde7; nQgar]qwq;6$jUomyoPcnwmpZqnl}b65!mPh`q\swYfkb7; nQzsd]fgf;7$jUhc`c`n^aokfm:8%iT{Qncj]okr;7$jUyhR~ats]tmaro58:'oR{|e^dtbqYci}kTob{at<2/gZnf{Vkgab}{_dosp|;7$jUyhRjnt`]`kphsW~coxe3>0-a\kscunee|Saax=1.`[rtXxg~ySzgkti?:(fYwzfmTi`~{y^vzt`;7$jU|~Rjnt`]`kphsW~coxe36,b]sv`jhimUyij}21-a\`jssW{yS{oc=1.`[mgtWmkmRm`uov>4)eXx{elSk{cl^vkv`uoWgolmykPv`n>15>+kV}ySikti?657*dWyxdkRkbpu{\pmtb{aUeijo{e^tbh83+kVzycjQjmqvz[qnumzbTm~}jru]uei;3$jUcm~Qyamkg95*dWyxdkRhzlm]wlwct`Vkxh|{_wco906>$jef|b`jnu]mehc:n`ldSubax^726}51W;iggR=9tn3;(fYqiecoSaax=1.`[utneVlbjbQ{yqg>144;?&hS}|`g^dvhiYsqyo6vugnUna}zv_ujqavn/: ;?7}|`g^gntqX|axne&<)068twi`Wlg{xtQ{hsgpl-2.9=1{~biPelrw}Zrozlyc$8'>4:rqkbYbey~rSyf}erj+2,733yxdkRkbpu{\pmtb{a"<%<:4psmd[`kw|pUdk|h):*51=wzfmTi`~{y^vkv`uo 0#::6~}of]fiur~W}byi~f39;2=5g=wzfmTi`~{y^vkv`uoWhyxiz'0(3a?uthoVof|ywPtipfwmYf{zoyx%?&1c9svjaXmdzuRzgrdqk[dutm{~#>$?m;qplcZcjx}sTxe|jsi]bwvcu|!9"=o5rne\ahvsqV~c~h}g_`qpawr/< ;i7}|`g^gntqX|axneQnsrgqp-3.9k1{~biPelrw}ZrozlycSl}|esv+2,7e3yxdkRkbpu{\pmtb{aUj~k}t)5*5g=wzfmTi`~{y^vkv`uoWhyxiz'8(3a?uthoVof|ywPtipfwmYf{zoyx%7&1e9svjaXmdzuRzgrdqk[dutm{~757>11c9svjaXmdzuRzgrdqk[kc`i}o#<$?m;qplcZcjx}sTxe|jsi]mabgsm!;"=o5rne\ahvsqV~c~h}g_ogdeqc/: ;i7}|`g^gntqX|axneQaefcwa-5.9k1{~biPelrw}ZrozlycSckhaug+0,7e3yxdkRkbpu{\pmtb{aUeijo{e)7*5g=wzfmTi`~{y^vkv`uoWgolmyk'6(3a?uthoVof|ywPtipfwmYimnki%9&1c9svjaXmdzuRzgrdqk[kc`i}o#4$?m;qplcZcjx}sTxe|jsi]mabgsm!3"=i5rne\ahvsqV~c~h}g_ogdeqc;13:556~}of]eqij6;2zycjQiumn\pmtb{a";%<=4psmd[cskdV~c~h}g(0+27>vugnUmyabPtipfwm.5!890|ah_gwohZrozlyc$>'>3:rqkbYa}efTxe|jsi*7-45a:rqkbYa}efTxe|jsi]bwvcu|!8"=l5rne\bpjkW}byi~fParqfvq.4!8k0|ah_gwohZrozlycSl}|esv+0,7f3yxdkRhzlm]wlwct`Vkxh|{(4+2e>vugnUmyabPtipfwmYf{zoyx%8&1`9svjaXn|fgSyf}erj\evubz}"<%vugnUmyabPtipfwmYimnki%<&1`9svjaXn|fgSyf}erj\j`af|l"8%$??;sf\`drfWje~by&<)028vaYci}kTob{at)6*55=ulVnjxlQlotlw,0/682xoSio{a^alqkr/> ;;7jPd`vb[firf}"<%<>4re]geqgXkfex%6&119q`Zbf|hUhcx`{(8+24>tcWmkmRm`uov?4;753{nThlzn_bmvjq:>294>7jPeo48vaYu{}90~~z8;r`jp`tu<2yyy:4tswf=>sillxm`by:;wcoma0<{Ujof84ws]`hn773~xThlzn_bmvjq.7!8:0{Qkauc\gjsi|!;"==5xr^fbpdYdg|d$?'>0:uq[agsiVidycz'3(33?rtXlh~jSnaznu*7-46<{UomyoPcnwmp-3.991|~Rjnt`]`kphs ?#:<6y}_ecweZeh}g~#;$??;vp\`drfWje~by&7)008swYci}kTob{at=:94;3<{Unb;5xr^pppxFGxh<>7MNw1;D90?7|[=l188;57;306g0dk398:ljtn2f6>4=i;m<1:6*107290:??l9cb8073gb3Z>o698?:18277d1kj08?;oi;e66hn0(>m9:00a?S5c<38py<=<:09v562=82w/=:75199a00>=839o6>47;'5=g=<<20(>j=:574?l2e83:17d:l4;29?j22k3:17b::6;29?l2e13:17d:m2;29?j2413:1(<9m:56b?k70i3:07b:<8;29 41e2=>j7c?8a;38?j24?3:1(<9m:56b?k70i3807b:<6;29 41e2=>j7c?8a;18?j24=3:1(<9m:56b?k70i3>07b:<4;29 41e2=>j7c?8a;78?j24;3:1(<9m:56b?k70i3<07b:<2;29 41e2=>j7c?8a;58?j2393:1(<9m:56b?k70i3207b:;0;29 41e2=>j7c?8a;;8?j24n3:1(<9m:56b?k70i3k07b:j7c?8a;`8?j24l3:1(<9m:56b?k70i3i07b:j7c?8a;f8?j24j3:1(<9m:56b?k70i3o07b:j7c?8a;d8?j2493:1(<9m:56b?k70i3;;76a;3183>!70j3>?m6`>7`825>=n<9>1<7*>7c8762=i9>k1<65f41194?"6?k0?>:5a16c95>=n<981<7*>7c8762=i9>k1>65f41394?"6?k0?>:5a16c97>=n<9:1<7*>7c8762=i9>k1865f3gd94?"6?k0?>:5a16c91>=n;on1<7*>7c8762=i9>k1:65f3ga94?"6?k0?>:5a16c93>=n;oh1<7*>7c8762=i9>k1465f3gc94?"6?k0?>:5a16c9=>=n;o31<7*>7c8762=i9>k1m65f3g:94?"6?k0?>:5a16c9f>=n;o=1<7*>7c8762=i9>k1o65f3g494?"6?k0?>:5a16c9`>=n;o?1<7*>7c8762=i9>k1i65f3g694?"6?k0?>:5a16c9b>=n;o81<7*>7c8762=i9>k1==54i2d2>5<#9>h18?94n05b>47<3`9m<7>5$05a>1403g;1e=:o51598m6cc290/=:l54358j41f28?07d=jc;29 41e2=8<7c?8a;35?>o4mk0;6)?8b;613>h6?h0:;65f3dc94?"6?k0?>:5a16c95==b:9j05>=83.:;o4;269m52g=9j10e9>8:18'52d=<;=0b<9n:0f8?l27>3:1(<9m:504?k70i3;n76g;0483>!70j3>9;6`>7`82b>=n;oo1<7*>7c8762=i9>k1>=54i2d0>5<#9>h18?94n05b>77<3`9n47>5$05a>1403g;tH2a7?!7?i39h96a>7983>>{el10;6<4?:1yK7f2<,82j6i64oe594?=zj=>1<7o::00g>40>sA9h86T;5;35d<>2k09m7<8:3:96<8`871g=#<10?945+4d871d=#9>>1=:94i554>5<#9>h18:64n05b>5=5<#9>h18:64n05b>7=54i550>5<#9>h18:64n05b>1=5<#9>h18:64n05b>3=5<#9>h18:64n05b>==5<5<5<#9>h18;j4n05b>5=5<#9>h18;j4n05b>7=54i54;>5<#9>h18;j4n05b>1=5<#9>h18;j4n05b>3=6=4+16`903b5<#9>h18;j4n05b>==5<5<#9>h185=4n05b>5=5<#9>h185=4n05b>7=54i55f>5<#9>h185=4n05b>1=5<#9>h185=4n05b>3=5<#9>h185=4n05b>==5<5<#9>h1?h;4n05b>4=5<#9>h1?h;4n05b>6=5<#9>h1?h;4n05b>0=5<#9>h1?h;4n05b>2=5<5<#9>h185k4n05b>5=5<#9>h185k4n05b>7=54i5::>5<#9>h185k4n05b>1=5<#9>h185k4n05b>3=5<#9>h185k4n05b>==5<5<5<#9>h18464n05b>4=6=4+16`90<>5<#9>h18464n05b>6=5<#9>h18464n05b>0=5<#9>h18464n05b>2=5<#9>h18l<4n05b>5=5<#9>h18l<4n05b>7=54i5;g>5<#9>h18l<4n05b>1=5<#9>h18l<4n05b>3=5<#9>h18l<4n05b>==5<5<5<5<#9>h189o4n05b>5=5<#9>h189o4n05b>7=54o516>5<#9>h189o4n05b>1=5<#9>h189o4n05b>3=5<#9>h189o4n05b>==;6=4+16`901g5<#9>h189o4n05b>d=5<#9>h189o4n05b>f=5<#9>h189o4n05b>`=5<#9>h189o4n05b>46<3f>8<7>5$05a>12f3g;;:k741<72-;4?:%34f?25?2d:;l4>;:k747<72-;1e=:o51098m6`7290/=:l54358j41f28807d=jf;29 41e2=8<7c?8a;30?>o4ml0;6)?8b;613>h6?h0:865f3df94?"6?k0?>:5a16c950=8:9j7`?=83.:;o4;269m52g=9010e9>n:18'52d=<;=0b<9n:0c8?l2713:1(<9m:504?k70i3;i76g;0983>!70j3>9;6`>7`82g>=n<9=1<7*>7c8762=i9>k1=i54i525>5<#9>h18?94n05b>4c<3`>;97>5$05a>1403g;1e=:o52098m6c?290/=:l54358j41f2;807d=j7;29 41e2=8<7c?8a;00?>o4l00;66a;ae83>!70j3>jj6`>7`83?>i3ij0;6)?8b;6bb>h6?h0:76a;ac83>!70j3>jj6`>7`81?>i3ih0;6)?8b;6bb>h6?h0876a;a883>!70j3>jj6`>7`87?>i3i10;6)?8b;6bb>h6?h0>76a;a683>!70j3>jj6`>7`85?>i3i?0;6)?8b;6bb>h6?h0<76a;a483>!70j3>jj6`>7`8;?>i3i=0;6)?8b;6bb>h6?h0276a;c383>!70j3>h?6`>7`83?>i3k80;6)?8b;6`7>h6?h0:76a;c183>!70j3>h?6`>7`81?>i3jo0;6)?8b;6`7>h6?h0876a;bd83>!70j3>h?6`>7`87?>i3jm0;6)?8b;6`7>h6?h0>76a;bb83>!70j3>h?6`>7`85?>i3jk0;6)?8b;6`7>h6?h0<76a;b`83>!70j3>h?6`>7`8;?>i3>;0;66g;5e83>>i4m?0;66g;a283>>i3j?0;66l4<729q/=5o5d99K7f`<@:i?7bj8:188yg5c93:1=7>50z&21<729q/=5o5d59K7f`<@:i?7)k::79j03<722c><7>5;h34g?6=3f;5;|`052<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n3:187>50z&25;h6`>5<?54c78 `3=:2c?:7>5;h73>5<8`8g5>N4ko1C?n:4H518 4562=h>7)k::39j03<722c><7>5;n34`?6=3th8n=4?:283>5}#91k1h<5G3bd8L6e33A>87)?<1;6a1>"b=380e9850;9j15<722e:;i4?::a7gg=83?1<7>t$0:b>a3<@:im7E=l4:J77>"6;80?n85f4783>>o3?3:17d;?:188m41d2900c<9k:188yg5ej3:1?7>50z&27=n0<729q/=5o5d49K7f`<@:i?7E:<;%305?2e=2c?:7>5;h64>5<n1<75rb2`:>5<3290;w)?7a;f7?M5dn2B8o95+e485?l212900e8>50;9j52e=831d=:j50;9~f6d?290?6=4?{%3;e?b33A9hj6F=6=44i4294?=n9>i1<75`16f94?=zj:h<6=4;:183!7?i3n?7E=lf:J0g1=#m<0=7d:9:188m06=831b=:m50;9l52b=831vn>m=:187>5<7s-;3m7j;;I1`b>N4k=1/i849;h65>5<n1<75rb2a2>5<3290;w)?7a;f7?M5dn2B8o95+e485?l212900e8>50;9j52e=831d=:j50;9~f4gc290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e9hi1<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th:mo4?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo?na;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb0c:>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a5d>=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd6i>0;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<54;294~"60h0o>6F6g;6;29?l2d2900e8>50;9l52b=831vn5<7s-;3m7j=;I1`b>N4k=1/i84=;h65>5<>i6?m0;66sm20694?2=83:p(<6n:e08L6ea3A9h86*j5;08m10=831b8n4?::k64?6=3f;5;|`156<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n50z&25;h6`>5<<>50;694?6|,82j6i<4H2ae?M5d<2.n97<4i5494?=n1<729q/=5o5d39K7f`<@:i?7)k::39j03<722c?o7>5;h73>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f76c290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e:9i1<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th99n4?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo<:b;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb37b>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a60?=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd5=10;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<;7>54;294~"60h0o>6F6g;6;29?l2d2900e8>50;9l52b=831vn?;9:187>5<7s-;3m7j=;I1`b>N4k=1/i84=;h65>5<>i6?m0;66sm24794?2=83:p(<6n:e08L6ea3A9h86*j5;08m10=831b8n4?::k64?6=3f;5;|`111<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n50z&25;h6`>5<f783>1<729q/=5o5d39K7f`<@:i?7)k::39j03<722c?o7>5;h73>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f4`3290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e9o91<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th:j?4?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo?i1;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb36b>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb36:>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb36;>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb364>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb365>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb366>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb367>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb360>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb361>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g4>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g5>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g6>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g7>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g0>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g1>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g2>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g3>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0fe>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0ff>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0f0>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a5a4=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd6l80;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<54;294~"60h0o>6F6g;6;29?l2d2900e8>50;9l52b=831vn5<7s-;3m7j=;I1`b>N4k=1/i84=;h65>5<>i6?m0;66sm1bg94?2=83:p(<6n:e08L6ea3A9h86*j5;08m10=831b8n4?::k64?6=3f;5;|`2ga<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n50z&25;h6`>5<1<729q/=5o5d39K7f`<@:i?7)k::39j03<722c?o7>5;h73>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f751290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e::?1<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th9?94?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo<<3;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb311>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a667=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd5;90;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a6a1=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo0(h;52:k72?6=3`><6=44i5a94?=n=90;66a>7e83>>{e:m>1<7;50;2x 4>f2m90D>mi;I1`0>"b=380e9850;9j02<722c?o7>5;h73>5<8`8g7>N4ko1C?n:4$d796>o3>3:17d:8:188m1e=831b9=4?::m23a<722wi>i=50;794?6|,82j6i=4H2ae?M5d<2.n97<4i5494?=n<>0;66g;c;29?l372900c<9k:188yg4c:3:197>50z&25;h64>5<>i6?m0;66sm2e294?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o96F50;9j52e=831d=:j50;9~f7b6290>6=4?{%3;e?b43A9hj6F=6=44i5594?=n6<729q/=5o53bg8L6ea3A9h86g;9;29?l7503:17b?86;29?xd5k;0;6>4?:1y'5=g=;jo0D>mi;I1`0>o313:17d?=8;29?j70>3:17pl=b983>1<729q/=5o51208L6ea3A9h86g;9;29?l352900e<6<:188k4112900qo3:187>50z&22900e8<50;9j5=5=831d=:850;9~f7e729086=4?{%3;e?5dm2B8ok5G3b68m1?=831b=?650;9l520=831vn?l;:187>5<7s-;3m7?<2:J0gc=O;j>0e9750;9j17<722c:4>4?::m233<722wi>oh50;194?6|,82j6>mj;I1`b>N4k=1b844?::k26=<722e:;;4?::a6g4=83>1<7>t$0:b>4553A9hj6F>7>5;h3;7?6=3f;<:7>5;|`1f`<72:0;6=u+19c97fc<@:im7E=l4:k7=?6=3`;947>5;n342?6=3th9n=4?:583>5}#91k1=><4H2ae?M5d<2c?57>5;h71>5<5<53;294~"60h08oh5G3bd8L6e33`>26=44i00;>5<8`8277=O;jl0D>m;;h6:>5<<1<75rb3``>5<4290;w)?7a;1`a>N4ko1C?n:4i5;94?=n9;21<75`16494?=zj;kh6=4;:183!7?i3;8>6F>o60:0;66a>7783>>{e:kh1<7=50;2x 4>f2:in7E=lf:J0g1=n<00;66g>2983>>i6??0;66sm2`c94?2=83:p(<6n:011?M5dn2B8o95f4883>>o2:3:17d?73;29?j70>3:17pl=b`83>6<729q/=5o53bg8L6ea3A9h86g;9;29?l7503:17b?86;29?xd5i10;694?:1y'5=g=9:80D>mi;I1`0>o313:17d;=:188m4>42900c<99:188yg4bk3:197>50z&25;h64>5<>i6?m0;66sm2d`94?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a6`?=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo0(h;52:k72?6=3`><6=44i5a94?=n=90;66a>7e83>>{e:l=1<7;50;2x 4>f2m90D>mi;I1`0>"b=380e9850;9j02<722c?o7>5;h73>5<8`8g7>N4ko1C?n:4$d796>o3>3:17d:8:188m1e=831b9=4?::m23a<722wi>h;50;794?6|,82j6i=4H2ae?M5d<2.n97<4i5494?=n<>0;66g;c;29?l372900c<9k:188yg4b<3:197>50z&25;h64>5<>i6?m0;66sm2d194?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<54;294~"60h0o86F0(h;56:k72?6=3`?;6=44i05`>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f70>290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e:1o1<7:50;2x 4>f28997E=lf:J0g1=n<00;66g:2;29?l7?;3:17b?86;29?xd50m0;694?:1y'5=g=9:80D>mi;I1`0>o313:17d;=:188m4>42900c<99:188yg4?k3:187>50z&22900e8<50;9j5=5=831d=:850;9~f7>e290?6=4?{%3;e?74:2B8ok5G3b68m1?=831b9?4?::k2<6<722e:;;4?::a6=g=83>1<7>t$0:b>4553A9hj6F>7>5;h3;7?6=3f;<:7>5;|`13g<72=0;6=u+19c9564<@:im7E=l4:k7=?6=3`?96=44i0:0>5<8`8277=O;jl0D>m;;h6:>5<<1<75rb35:>5<3290;w)?7a;306>N4ko1C?n:4i5;94?=n=;0;66g>8283>>i6??0;66sm26:94?2=83:p(<6n:011?M5dn2B8o95f4883>>o2:3:17d?73;29?j70>3:17pl=7683>1<729q/=5o51208L6ea3A9h86g;9;29?l352900e<6<:188k4112900qo=?9;290?6=8r.:4l4>339K7f`<@:i?7d:6:188m04=831b=5=50;9l520=831vn>>7:187>5<7s-;3m7?<2:J0gc=O;j>0e9750;9j17<722c:4>4?::m233<722wi?=950;694?6|,82j6<==;I1`b>N4k=1b844?::k66?6=3`;3?7>5;n342?6=3th8<;4?:583>5}#91k1=><4H2ae?M5d<2c?57>5;h71>5<5<54;294~"60h0:??5G3bd8L6e33`>26=44i4094?=n9191<75`16494?=zj;l=6=4;:183!7?i3;8>6F>o60:0;66a>7783>>{e:o?1<7:50;2x 4>f28997E=lf:J0g1=n<00;66g:2;29?l7?;3:17b?86;29?xd5n=0;694?:1y'5=g=9:80D>mi;I1`0>o313:17d;=:188m4>42900c<99:188yg4a;3:187>50z&22900e8<50;9j5=5=831d=:850;9~f7`5290?6=4?{%3;e?74:2B8ok5G3b68m1?=831b9?4?::k2<6<722e:;;4?::a70d=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo=:9;291?6=8r.:4l4k5:J0gc=O;j>0(h;56:k72?6=3`><6=44i4294?=n9>i1<75`16f94?=zj:?j6=4::183!7?i3n87E=lf:J0g1=#m<097d:9:188m11=831b8n4?::k64?6=3f;5;|`01f<72<0;6=u+19c9`6=O;jl0D>m;;%g6>7=n50;9l52b=831vn>;k:186>5<7s-;3m7j<;I1`b>N4k=1/i84=;h65>5<>o283:17b?8d;29?xd4=l0;684?:1y'5=g=l:1C?nh4H2a7?!c22;1b8;4?::k73?6=3`>h6=44i4294?=h9>n1<75rb27e>5<2290;w)?7a;f0?M5dn2B8o95+e481?l212900e9950;9j0f<722c><7>5;n34`?6=3th8:=4?:483>5}#91k1h>5G3bd8L6e33-o>6?5f4783>>o3?3:17d:l:188m06=831d=:j50;9~f606290>6=4?{%3;e?b43A9hj6F=6=44i5594?=n0<729q/=5o5d29K7f`<@:i?7)k::39j03<722c?;7>5;h6`>5<n6=4::183!7?i3n87E=lf:J0g1=#m<097d:9:188m11=831b8n4?::k64?6=3f;5;|`00f<72<0;6=u+19c9`6=O;jl0D>m;;%g6>7=n50;9l52b=831vn>:m:186>5<7s-;3m7j<;I1`b>N4k=1/i84=;h65>5<>o283:17b?8d;29?xd4h6=44i4294?=h9>n1<75rb26b>5<2290;w)?7a;f0?M5dn2B8o95+e481?l212900e9950;9j0f<722c><7>5;n34`?6=3th8844?:483>5}#91k1h>5G3bd8L6e33-o>6?5f4783>>o3?3:17d:l:188m06=831d=:j50;9~f620290>6=4?{%3;e?b43A9hj6F=6=44i5594?=n0<729q/=5o5d49K7f`<@:i?7)k::79j03<722c?;7>5;h73>5<5<53;294~"60h08oh5G3bd8L6e33`>26=44i00;>5<8`80g`=O;jl0D>m;;h6:>5<5<7>54;294~"60h0:??5G3bd8L6e33`>26=44i4094?=n9191<75`16494?=zj:9j6=4<:183!7?i39hi6F<1<75rb213>5<3290;w)?7a;306>N4ko1C?n:4i5;94?=n=;0;66g>8283>>i6??0;66sm32;94?5=83:p(<6n:2af?M5dn2B8o95f4883>>o6:10;66a>7783>>{e;;o1<7:50;2x 4>f28997E=lf:J0g1=n<00;66g:2;29?l7?;3:17b?86;29?xd4;10;6>4?:1y'5=g=;jo0D>mi;I1`0>o313:17d?=8;29?j70>3:17pl<2b83>1<729q/=5o51208L6ea3A9h86g;9;29?l352900e<6<:188k4112900qo=<7;297?6=8r.:4l450z&22900e8<50;9j5=5=831d=:850;9~f65129086=4?{%3;e?5dm2B8ok5G3b68m1?=831b=?650;9l520=831vn><7:187>5<7s-;3m7?<2:J0gc=O;j>0e9750;9j17<722c:4>4?::m233<722wi?>;50;194?6|,82j6>mj;I1`b>N4k=1b844?::k26=<722e:;;4?::a770=83>1<7>t$0:b>4553A9hj6F>7>5;h3;7?6=3f;<:7>5;|`071<72:0;6=u+19c97fc<@:im7E=l4:k7=?6=3`;947>5;n342?6=3th8>94?:583>5}#91k1=><4H2ae?M5d<2c?57>5;h71>5<5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a724=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo=81;291?6=8r.:4l4k3:J0gc=O;j>0(h;52:k72?6=3`><6=44i5a94?=n=90;66a>7e83>>{e;>:1<7;50;2x 4>f2m90D>mi;I1`0>"b=380e9850;9j02<722c?o7>5;h73>5<8`8g7>N4ko1C?n:4$d796>o3>3:17d:8:188m1e=831b9=4?::m23a<722wi?;k50;794?6|,82j6i=4H2ae?M5d<2.n97<4i5494?=n<>0;66g;c;29?l372900c<9k:188yg51l3:197>50z&25;h64>5<>i6?m0;66sm37a94?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a7<6=83?1<7>t$0:b>a0<@:im7E=l4:&f1?4>o283:17d?8e;29?j70l3:17pl<8g83>0<729q/=5o5d79K7f`<@:i?7)k::39j03<722c?;7>5;h73>5<5<55;294~"60h0o:6F6g;6;29?l202900e8>50;9j52c=831d=:j50;9~f6>c290>6=4?{%3;e?b13A9hj6F=6=44i5594?=n=90;66g>7d83>>i6?m0;66sm39a94?3=83:p(<6n:e48L6ea3A9h86*j5;08m10=831b8:4?::k64?6=3`;5;n34`?6=3th84o4?:483>5}#91k1h;5G3bd8L6e33-o>6?5f4783>>o3?3:17d;?:188m41b2900c<9k:188yg5?i3:197>50z&22B8ok5G3b68 `3=:2c?:7>5;h64>5<n1<75rb2::>5<2290;w)?7a;f5?M5dn2B8o95+e481?l212900e9950;9j15<722c:;h4?::m23a<722wi?4650;794?6|,82j6i84H2ae?M5d<2.n97<4i5494?=n<>0;66g:0;29?l70m3:17b?8d;29?xd41>0;684?:1y'5=g=l?1C?nh4H2a7?!c22;1b8;4?::k73?6=3`?;6=44i05f>5<8`8g2>N4ko1C?n:4$d796>o3>3:17d:8:188m06=831b=:k50;9l52b=831vn>7::186>5<7s-;3m7j9;I1`b>N4k=1/i84=;h65>5<>o6?l0;66a>7e83>>{e;0>1<7;50;2x 4>f2m<0D>mi;I1`0>"b=380e9850;9j02<722c><7>5;h34a?6=3f;5;|`0=6<72<0;6=u+19c9`3=O;jl0D>m;;%g6>7=n0(h;52:k72?6=3`><6=44i4294?=n9>o1<75`16f94?=zj:3:6=4::183!7?i3n=7E=lf:J0g1=#m<097d:9:188m11=831b9=4?::k23`<722e:;i4?::a7=>=83?1<7>t$0:b>a0<@:im7E=l4:&f1?4>o283:17d?8e;29?j70l3:17pl<8683>0<729q/=5o5d79K7f`<@:i?7)k::39j03<722c?;7>5;h73>5<5<53;294~"60h0:>i5G3bd8L6e33-o>6<74ie;94?=nlh0;66a>7783>>{e;k91<7=50;2x 4>f288o7E=lf:J0g1=#m<0:56gk9;29?lbf2900c<99:188yg46>3:1?7>50z&2t$0:b>44c3A9hj6F5;hfb>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm18c94?5=83:p(<6n:00g?M5dn2B8o95+e482`>oc13:17djn:188k4112900qo?69;297?6=8r.:4l4>2e9K7f`<@:i?7)k::0f8ma?=831bhl4?::m233<722wi=4650;194?6|,82j6<N4k=1/i84>d:kg=?6=3`nj6=44o055>5<53;294~"60h0:>i5G3bd8L6e33-o>67783>>{e90<1<7=50;2x 4>f288o7E=lf:J0g1=#m<0:h6gk9;29?lbf2900c<99:188yg7>=3:1?7>50z&2t$0:b>44c3A9hj6F5;hfb>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm18094?5=83:p(<6n:00g?M5dn2B8o95+e482`>oc13:17djn:188k4112900qo?61;297?6=8r.:4l4>2e9K7f`<@:i?7)k::0f8ma?=831bhl4?::m233<722wi=4>50;194?6|,82j6<N4k=1/i84>d:kg=?6=3`nj6=44o055>5<53;294~"60h0:>i5G3bd8L6e33-o>67783>>{e91o1<7=50;2x 4>f288o7E=lf:J0g1=#m<0:h6gk9;29?lbf2900c<99:188yg7?l3:1?7>50z&2t$0:b>44c3A9hj6F5;hfb>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm27g94?2=83:p(<6n:00f?M5dn2B8o95+e48``>oc13:17djn:188mad=831d=:850;9~f77?290?6=4?{%3;e?75m2B8ok5G3b68 `3=:=1bh44?::kge?6=3`ni6=44o055>5<54;294~"60h0:>h5G3bd8L6e33-o>6?:4ie;94?=nlh0;66gkb;29?j70>3:17pl=6b83>0<729q/=5o513d8L6ea3A9h86*j5;3b?lb>2900eio50;9j`g<722coo7>5;n342?6=3th9=l4?:483>5}#91k1=?h4H2ae?M5d<2.n97?i;hf:>5<>ock3:17b?86;29?xd6j:0;684?:1y'5=g=9;l0D>mi;I1`0>"b=3;m7dj6:188mag=831bho4?::kgg?6=3f;<:7>5;|`137<72<0;6=u+19c957`<@:im7E=l4:&f1?463`n26=44iec94?=nlk0;66gkc;29?j70>3:17pl<1`83>6<729q/=5o513f8L6ea3A9h86*j5;33?lb>2900eio50;9l520=831vn?89:187>5<7s-;3m7?=e:J0gc=O;j>0(h;52b9j`<<722com7>5;hfa>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm1c794?5=83:p(<6n:00g?M5dn2B8o95+e482`>oc13:17djn:188k4112900qo<>e;290?6=8r.:4l4>2d9K7f`<@:i?7)k::368ma?=831bhl4?::kgf?6=3f;<:7>5;|`2f2<72=0;6=u+19c957c<@:im7E=l4:&f1?433`n26=44iec94?=nlk0;66a>7783>>{e:;:1<7;50;2x 4>f288m7E=lf:J0g1=#m<0:j6gk9;29?lbf2900eil50;9j`f<722e:;;4?::a5g?=83?1<7>t$0:b>44a3A9hj6F5;hfb>5<>i6??0;66sm3`f94?2=83:p(<6n:00f?M5dn2B8o95+e4865>oc13:17djn:188mad=831d=:850;9~f702290>6=4?{%3;e?75n2B8ok5G3b68 `3=9;1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb230>5<4290;w)?7a;31`>N4ko1C?n:4$d7967=nl00;66gka;29?j70>3:17pl<0183>6<729q/=5o513f8L6ea3A9h86*j5;01?lb>2900eio50;9l520=831vn?77:186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<6=4::183!7?i3;9j6F>5fd883>>oci3:17djm:188mae=831d=:850;9~f675290>6=4?{%3;e?75n2B8ok5G3b68 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb3de>5<2290;w)?7a;31b>N4ko1C?n:4$d7966=nl00;66gka;29?lbe2900eim50;9l520=831vn?78:186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<=5fd883>>oci3:17djm:188mae=831d=:850;9~f676290>6=4?{%3;e?75n2B8ok5G3b68 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb3df>5<2290;w)?7a;31b>N4ko1C?n:4$d7966=nl00;66gka;29?lbe2900eim50;9l520=831vn?79:186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<=5fd883>>oci3:17djm:188mae=831d=:850;9~f677290>6=4?{%3;e?75n2B8ok5G3b68 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb3dg>5<2290;w)?7a;31b>N4ko1C?n:4$d7966=nl00;66gka;29?lbe2900eim50;9l520=831vn?7::186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<=5fd883>>oci3:17djm:188mae=831d=:850;9~f7?c290?6=4?{%3;e?75m2B8ok5G3b68 `3=ko1bh44?::kge?6=3`ni6=44o055>5<54;294~"60h0:>h5G3bd8L6e33-o>63:17pl=8083>1<729q/=5o513g8L6ea3A9h86*j5;32?lb>2900eio50;9j`g<722e:;;4?::a74?=83?1<7>t$0:b>44a3A9hj6F5;hfb>5<>i6??0;66sm31d94?3=83:p(<6n:00e?M5dn2B8o95+e4817>oc13:17djn:188mad=831bhn4?::m233<722wi>km50;794?6|,82j6<N4k=1/i84=3:kg=?6=3`nj6=44ie`94?=nlj0;66a>7783>>{e:;91<7=50;2x 4>f288o7E=lf:J0g1=#m<09>6gk9;29?lbf2900c<99:188yg7ek3:1?7>50z&21<7>t$0:b>44b3A9hj6F5;hfb>5<>oci3:17djm:188k4112900qo2b9K7f`<@:i?7)k::028ma?=831d=:850;9~f7d029096=4?{%3;e?75k2B8ok5G3b68 `3=991bh44?::m233<722wi>o;50;094?6|,82j6<N4k=1/i84>0:kg=?6=3f;<:7>5;|`1f6<72;0;6=u+19c957e<@:im7E=l4:&f1?773`n26=44o055>5<52;294~"60h0:>n5G3bd8L6e33-o>6<>4ie;94?=h9><1<75rb3ce>5<5290;w)?7a;31g>N4ko1C?n:4$d7955=nl00;66a>7783>>{e:hn1<7<50;2x 4>f288h7E=lf:J0g1=#m<0:<6gk9;29?j70>3:17pl=ac83>7<729q/=5o513a8L6ea3A9h86*j5;33?lb>2900c<99:188yg4f13:1>7>50z&2=<:181>5<7s-;3m7?=c:J0gc=O;j>0(h;5119j`<<722e:;;4?::a767=8381<7>t$0:b>44d3A9hj6F5;n342?6=3th8>k4?:383>5}#91k1=?m4H2ae?M5d<2.n97??;hf:>5<8`826f=O;jl0D>m;;%g6>46>i6??0;66sm33;94?4=83:p(<6n:00`?M5dn2B8o95+e4824>oc13:17b?86;29?xd4:>0;6?4?:1y'5=g=9;i0D>mi;I1`0>"b=3;;7dj6:188k4112900qo==5;296?6=8r.:4l4>2b9K7f`<@:i?7)k::028ma?=831d=:850;9~f7e329096=4?{%3;e?75k2B8ok5G3b68 `3=991bh44?::m233<722wi?>j50;094?6|,82j6<N4k=1/i84>0:kg=?6=3f;<:7>5;|`167<72?0;6=u+19c9566<@:im7E=l4:&f1?423`n26=44iec94?=nlk0;66gkc;29?j7513:17b?86;29?xd6jk0;6;4?:1y'5=g=9::0D>mi;I1`0>"b=38>7dj6:188mag=831bho4?::kgg?6=3f;957>5;n342?6=3th8mo4?:9594?6|@:i?7)?7a;34b>\3=3kp47<9:e821?7428h1i7?9:0695f0=#m80>7)k=:49'a6<23-ii6i>4$d491>"b?3?0(h655:&f=?3<,lk196*jb;78 `e==2.nh7;4$dg91>"bn3?0(k>55:&e5?3<,o8196*i3;78 c2==2.m97;4$g491>"a?3?0(k655:&e=?3<,ok196*ib;78 ce==2.mh7;4$gg91>"an3?0(<>?:49'557==2.:"68?0>7)??7;78 46?2<1/==755:&24d<23-;;n7;4$02`>0=#99n196*>0d86?!77n3?0("69?0>7)?>7;78 47?2<1/=<755:&25d<23-;:n7;4$03`>0=#98n196*>1d86?!76n3?0(<?4:;%317?3<,88?685+13791>"6:?087)?74;61?!c32<1/=5853:&0g<<6091/?no51928j4n0:2>4444=831b=5650;9j<0<72-;k1<65f3483>!70j39=7c?8a;38?l53290/=:l5379m52g=:21b?>4?:%34f?513g;5<#9>h1?;5a16c90>=n;80;6)?8b;15?k70i3?07d=?:18'52d=;?1e=:o56:9j6c<72-;k1465f2e83>!70j39=7c?8a;;8?l26290/=:l5419m52g=821b?k4?:%34f?273g;5<#9>h18=5a16c96>=n;m0;6)?8b;63?k70i3907d=l:18'52d=<91e=:o54:9j7g<72-;k1:65f3883>!70j3>;7c?8a;58?l5?290/=:l5419m52g=021b;i4?:%34f?1d3g;4;h5a>5<#9>h1;n5a16c95>=n?00;6)?8b;5`?k70i3807d97:18'52d=?j1e=:o53:9j32<72-;k1965f7483>!70j3=h7c?8a;48?l13290/=:l57b9m52g=?21b;>4?:%34f?1d3g;5<#9>h1;n5a16c9=>=n?80;6)?8b;5`?k70i3k07d9?:18'52d=?j1e=:o5b:9j2`<72-;k1h65f6b83>!70j3=h7c?8a;g8?l0e290/=:l57b9m52g=n21b:l4?:%34f?1d3g;47<3`<36=4+16`93f=i9>k1=?54i7594?"6?k07`827>=n>?0;6)?8b;5`?k70i3;?76g95;29 41e2>i0b<9n:078?l>3290/=:l57b9m52g=9?10e5=50;&23g<0k2d:;l4>7:9j<7<72-;5$05a>2e5<#9>h1;n5a16c95d=l1<7*>7c84g>h6?h0:n65f7d83>!70j3=h7c?8a;3`?>o0i3:1(<9m:6a8j41f28n07d8i:18'52d=?j1e=:o51d98m32=83.:;o48c:l23d<6n21b4n4?:%34f?>e3g;4;h:b>5<#9>h14o5a16c95>=n000;6)?8b;:a?k70i3807d67:18'52d=0k1e=:o53:9l=1<72-;k1=65`9083>!70j3387c?8a;08?j?7290/=:l5929m52g=;21d4k4?:%34f??43g;5<#9>h15>5a16c91>=h1m0;6)?8b;;0?k70i3<07b7l:18'52d=1:1e=:o57:9l=g<72-;<3f3j6=4+16`9=6=i9>k1565`9883>!70j3387c?8a;c8?j??290/=:l5929m52g=j21d5:4?:%34f??43g;5<#9>h15>5a16c9`>=h1<0;6)?8b;;0?k70i3o07b6k:18'52d=1:1e=:o5f:9lg6<72-;k1=65fc`83>>o6000;66g>o2i3:1(<9m:4;8j41f2910e8650;&23g<212d:;l4>;:k63?6=,8=i6874n05b>7=7c86=>h6?h0876g:5;29 41e2<30b<9n:598m02=83.:;o4:9:l23d<232c=?7>5$05a>0?56`>7`84?>o193:1(<9m:4;8j41f2110e;>50;&23g<212d:;l46;:k6b?6=,8=i6874n05b>d=7c86=>h6?h0i76g:d;29 41e2<30b<9n:b98m0e=83.:;o4:9:l23dn7>5$05a>0?56`>7`8e?>o??3:1(<9m:948j41f2910co650;&23g4=1<7*>7c8a3>h6?h0976am3;29 41e2k=0b<9n:298kg4=83.:;o4m7:l23d<332ei=7>5$05a>g17`85?>ifn3:1(<9m:c58j41f2>10clk50;&23g<=7c8a3>h6?h0j76anb;29 41e2k=0b<9n:c98kd?=83.:;o4m7:l23d5$05a>g17`8f?>if>3:1(<9m:c58j41f2o10cl;50;&23g0:9le1<72-;5$05a>g15<#9>h1n:5a16c956=7c8a3>h6?h0:865`a183>!70j3h<7c?8a;36?>ien3:1(<9m:c58j41f28<07blj:18'52d=j>1e=:o51698kgb=83.:;o4m7:l23d<6021dnn4?:%34f?d03g;4g<3fhj6=4+16`9f2=i9>k1=o54oc;94?"6?k0i;6`>7`82g>=hj<0;6)?8b;`4?k70i3;o76ana;29 41e2k=0b<9n:0g8?j?a290/=:l5b69m52g=9o10cn650;&23g4=7c8`3>h6?h0976al4;29 41e2j=0b<9n:298yv2e83:1:vP;b19>63c=lh16>;m5d89>624=lj16>;85dc9>633=l01v9oj:1853~X4m?1U?i64^5`;?[2e>2T8h:5Q4c18Z1063W>i;6P;639]0=2k?;_1gb>X4ll1U?ij4^2f`?[2d:2T?o<5Q4b28Z1da3W>ii6P;be9]0geX3i01U8l64^5c4?[2f>2T?m85Q4`6896b72m=01>ln:42896ga2<:01>l6:42896d?2<:01>l8:42896e52<:01>m>:42897d?2<801?l9:40897d32<801?l=:40897d72<801?oj:40897gd2<801?on:40897g?2<801?6j:40897>c2<801?6l:40897>e2<801?6n:408971e2<801?9n:408971>2<801?97:40897102<801>>6:408966?2<801>>8:40896612<801>>::40897`12<801?h::40897`32<801?h<:40897`52<801>==:40896572<801><9:40896432<801>om:97896ge282270=nb;1`3>;4ik0>m63;4ik0>;63;4ik0>963;4ik0=?63;4ik0==63;4ik0>j63;4ik0>h63;4ik0>n63;4ik03;6s|4c094?5|V=h970=ma;34g>;4io0:;n5rs353>5<5sW>>:63=71823a=z{=i?6=4<{_6`0>;49h0o563<188g=>{t;51k0?:63;4j90?:63;4j00?:63;4j>0?:63=15872>;59:0?:63=13872>;5980?:63=11872>;58o0?:63=0d872>;58m0?:63=0b872>;5=j0?:63=5c872>;5=h0?:63=58872>;5=10?:63=56872>;5=?0?:63=54872>;5==0?:63=4`872>;5<00?:63=49872>;5<>0?:63=47872>;5<<0?:63=45872>;5<:0?:63=43872>;6l:0?:63>d3872>;6l80?:63>d1872>;6ko0?:63>cd872>;6km0?:63>cb872>;6kk0?:63>c`872>;5l10?:63=d6872>;5l<0?:63=d5872>;5l?0?:63=d2872>;5l;0?:63=d1872>;5ko0?:63=d0872>;5mj0?:63=ec872>;5mh0?:63=e8872>;5m10?:63=e6872>;5m?0?:63=e4872>;5m=0?:63=e2872>;5>o0?:63=71872>;5>h0?:63=68872>;4190?:63<8g872>;40l0?:63<8e872>;40j0?:63<8c872>;40h0?:63<88872>;4110?:63<96872>;41?0?:63<94872>;41=0?:63<92872>;41;0?:63<90872>;4010?:63<86872>;4ik0?m6s|30594?4|V=?h70=>7;34`>{t;49>0?:63<17872>;4jj0?:63;4jk0?:63;4k80?:63>ae872>;6ij0?:63>ac872>;6ih0?:63>a8872>;6i10?:63>a6872>;6i?0?:63>a4872>;6n00?:63>f9872>;6n>0?:63>f7872>;6n<0?:63>f5872>;6n:0?:63>f3872>;6n80?:63>e6872>;6m?0?:63>e4872>;6m=0?:63>e2872>;6m;0?:63>e0872>;6m90?:63>dg872>;6ll0?:63=39872>;5;>0?:63=37872>;5;<0?:63=35872>;5;:0?:63=33872>;5;80?:63=31872>;4=k0?:63<58872>;4=h0?:63<5b872>;4=m0?:63<5d872>;4=o0?:63<61872>;4>80?:63<4g872>;4;4;4;4<>0?:63<49872>;4?:0?:63<73872>;4?80?:63<71872>;4>o0?:63<6d872>;4>m0?:63<6b872>;4>k0?:63{t;>n1<783;{t;>h1<7{t;>31<7{t;>=1<7{t;1<1<703;;70=67;34`>{t;1>1<7>3;{t;181<7<3;{t;1:1<7:3;{t;>o1<7{t<;21<77}Y<9901>om:7c8yv25=3:1>vP;039>7dd=>01v9<;:181[279278mo498:p075=838pR9>?;<1bf?003ty?>?4?:3y]7c`<5:ki6;84}r614?6=:rT8ji523``920=z{=;m6=4={_1eg>;4ik0386s|40g94?4|V:li70=nb;:0?xu39m0;6?uQ3gc896ge2120q~:>c;296~X4n016?ll5839~w17e2909wS=i8:?0eg2`:47>52z\0b0=:;hh1;h5rs534>5<5sW9m863{t<8?1<77}Y;o;01>om:768yv26;3:1>vP7dd=0j1v9?=:181[5bn278mo48d:p047=838pR>kj;<1bf?1e3ty?==4?:3y]7`b<5:ki6:74}r63b?6=:rT8in523``93==z{=:n6=4={_1ff>;4ik0<;6s|41f94?4|V:oj70=nb;55?xu38j0;6?uQ3d;896ge2>?0q~:=f;296~X38h16?ll5759~w14b2909wS:?9:?0eg249n7>52z\743=:;hh1;<5rs50b>5<5sW>;963{t<;31<77}Y;o901>om:7f8yv26>3:1>vP7dd=>j1v9>m:181[5b?278mo49b:p563=833p1>j>:05;?84ei3>270270<87;6:?857=3>270270==4;6:?xu51j0;6?u228`915=::0n1=:84}r1a2?6=9hq6>4l516a896d>28=o70h70h70h70h70;5l80?o63=eb87g>;5mk0?o63=e`87g>;5m00?o63=e987g>;5m>0?o63=e787g>;5m<0?o63=e587g>;5m:0?o63=6g823f=::>:1=:m4=34b>1e<5;<269m4}r0:f?6=7e9>63e=lj16?lj5d89>633=lh1v>li:181<~;49>0?o63<1787g>;4k80:;i521`f90f=:9hi18n521``90f=:9hk18n521`;90f=:9h218n521`590f=:9h<18n521`790f=:9o318n521g:90f=:9o=18n521g490f=:9o?18n521g690f=:9o918n521g090f=:9o;18n521d590f=:9l<18n521d790f=:9l>18n521d190f=:9l818n521d390f=:9l:18n521ed90f=:9mo18n5222:90f=:::=18n5222490f=:::?18n5222690f=:::918n5222090f=:::;18n5222290f=z{:;36=4<{<123?37349::7;?;<12=?70>2wx?<850;1x967128=o70=>a;fb?85613nj7p}6}:;k;19=523c2952b<5:km6994}r1a5?6=:r78n<4>7e9>7g5=l01v>lm:18085ek3?;70=ma;64?85ej3;3ty8mk4?:2y>7g6==916?lh516f896d42mk0q~=ma;297~;4jh0:;i523c`915=:;ko1hl5rs2`1>5<3s49i57?8c:?0f=<6?j16?o9516a896d428==7p}70|5:h36<9k;<020?2d348:?7:l;<026?2d348:=7:l;<024?2d348;j7:l;<03a?2d348;h7:l;<03g?2d348>o7:l;<06f?2d348>m7:l;<06=?2d348>47:l;<063?2d348>:7:l;<061?2d348>87:l;<07e?2d348?57:l;<07;40o0:;h5239g952c<5:2o6<9j;<1;g?70m2784o4>7d9>7=g=9>o01>66:05f?85>03;41b349287?8e:?0=6<6?l16?4<516g896?628=n70=78;34a>;40>0:;h523`f9`d=:;hh1=564}r1a`?6=;r78o?4>7b9>7f7=9>i01>lj:055?xu4k90;641c349>n7:l;<16=?70k2789l4;c:?01f<3k2789i4;c:?01`<3k2789k4;c:?025<3k278:<4;c:?00c<3k2788h4;c:?00f<3k2788o4;c:?00a<3k2788l4;c:?00<<3k2788:4;c:?00=<6?j16?:=54b9>724=726=73c=73e=w0?nd;73?87a13;ag8ge>;6j80o563>b28gg>{t9h>1<7=t=0cg>41c349:?7jn;<134?bf3ty:mh4?:3y>5de==916=lh51648yv7f;3:1?v3>ab823a=:;881h4522gd9`<=z{8h;6=4={<3bf?3734;i=7?86:p5d4=839p1ag<58h<6i74=0`:>ae<58hi6im4}r3b5?6=;r7:ml4>7e9>747=l016>kk5d89~w4d32909w0?n9;73?87e=3;<:6s|1`294?5|58k26<9k;<125?be348mi7jm;|q2f3<72;q6=l65519>5g1=9><0q~?6f;297~;6i10:;i523029`<=::on1h45rs0`;>5<5s4;j;7;?;<3a=?70>2wx=4k50;1x94g028=o70=>0;fa?84al3ni7p}>b`83>7}:9h<19=521ca952053z?2e3<6?m16?=h5d89>6ce=l01v{t90i1<7=t=0c6>41c349;j7jm;<0eg?be3ty99>4?:4y>642==916>8m516f897712mk01??7:e;8977f2mi0q~5<5s48:?7;?;<022?70>2wx>=o50;1x977428=o70<68;f:?84?=3nh7p}=1683>7}::8819=5220:952053z?157<6?m16>495d`9>6=2=lh1v??6:18584693?;70<>a;342>;59j0om63=1d8g=>;5:90oo63=238gg>{t:921<7=t=332>41c3482;7j6;<0;0?b>3ty9=o4?:3y>646==916>i:05g?84>>3n270<73;f:?xu59o0;6?u221g915=::;:1=:84}r031?6=;r79

7e9>6<3=lh16>5<5d`9~w7462909w03483>7j6;|q160<72;q6>=m5519>670=9><0q~5<5s48>o7;?;<07e?70l2wx>9>50;0x973e2<:01?:6:05g?xu5=;0;69u224`952b<5;;=6i74=33;>ag<5;;j6il4}r00b?6=:r799l4:0:?10=<6?m1v?;>:180842i3;;59h0om6s|22g94?4|5;?268>4=364>41c3ty99=4?:3y>60?=9>n01??n:e;8yv44l3:1>v3=59864>;55<2s48>47?8d:?15f?4kb:p66e=838p1?;8:428972228=o7p}=4d83>1}::<=1=:j4=33f>ad<5;8;6io4=301>ag52z?113<28279894>7e9~w72c2908w0<:6;34`>;5:90o563=238g=>{t::k1<706<5;>86<9k;|q10f<72:q6>8;516f897442m301?<9:ec8yv4413:1>v3=55864>;5<;0:;i5rs36a>5<5s48>87?8d:?1632<:017e9>5d`=l016=o?5d`9>5g5=lk1v{t9lo1<7=t=0d4>41c34;i=7jm;<3a7?bf3ty:hl4?:3y>5c0==916=h:516f8yv7bl3:1>v3>f7823a=:9k91h45rs0f:>5<5s4;m97;?;<3f7?70l2wx=hm50;7x94`228=o70?m5;f:?87e?3nj70?m9;fa?87ej3ni7p}>d983>7}:9o>19=521d0952b54z?2b1<6?m16=o95dc9>5g?=lh16=ol5d`9~w4b02909w0?i3;73?87b93;34;in7j6;|q2`3<72;q6=k<5519>5`6=9>n0q~?j9;297~;6n;0:;i521ca9`<=:9kl1hl5rs0f6>5<5s4;m=7;?;<3gb?70l2wx=h650;0x94`628=o70?mf;f:?xu5:o0;6?u225c915=:::21=:j4}r01a?6=:r79844:0:?172<6?m1v?{t:;i1<706<5;9>6<9k;|q16g<72;q6>985519>662=9>n0q~<=a;296~;5<<0><63=32823a=z{;826=4={<070?373488>7?8d:p67>=838p1?:<:428975628=o7p}=2683>7}::=819=52222952b52z?2a2<2827:h>4>7e9~w4e?2909w0?j6;73?87c:3;68>4=0f2>41c3ty:o;4?:3y>5`2==916=i>516f8yv7d=3:1>v3>e2864>;6ko0:;i5rs0a7>5<5s4;n>7;?;<3`a?70l2wx=n=50;0x94c62<:01{t9m>1<7?t=0ff>41c3ty9i?4?:4y>5a5==916>hm516f894>e2m301?6::e;896ge2:=0q~?ia;296~;6l;0><63>8c8233=z{8li6=4={<3g5?3734;3o7?86:p5ce=838p1c28==7p}>fe83>7}:9jl19=5219g952052z?2g`<2827:4k4>779~w4`a2909w0?ld;73?87>83;<:6s|21294?4|58ih68>4=0;2>4113ty9<<4?:3y>5fd==916=4<51648yv47:3:1>v3>c`864>;61:0:;;5rs24b>5<3s48847;?;<147?70l27:594k9:?0eg<392wx>8j50;0x97502<:01<7;:055?xu5=l0;6?u2224915=:90?1=:84}r06b?6=:r79?84:0:?2=3<6??1v?8?:181844<3?;70?67;342>{t:?;1<706<58336<99;|q127<72;q6>><5519>5<0q~<93;296~;5;80><63>9`8233=z{;<70<70<70<70<70<70<70<70<70<70=nd;fa?841=3;<:63=9e8g=>{t:h=1<706<5;i86<99;|q1g`<72=q6>i6516f897cd2<:01?77:ea897e32m30q~0><63=c38233=z{;io6=4;{<0g3?70l279io4:0:?1==1}::m?1=:j4=3g:>06<5;3<6il4=3`6>a?52z?1`1<28279nk4>779~w7ef290?w0;5m10><63=978gg>;5j:0o56s|2`794?4|5;n=68>4=3a2>4113ty9on4?:5y>6a0=9>n01?kn:42897?02mi01?l8:e;8yv4f:3:1>v3=d2864>;5jl0:;;5rs3a:>5<3s48o?7?8d:?1a2<282795;4kb:?1f4l?50;0x97b52<:01?lk:055?xu5k10;69u22e0952b<5;o=68>4=3;6>ae<5;km6i74}r0:b?6=:r79h=4:0:?1fg<6??1v?m9:18784c83;;51=0on63=ac8g=>{t:0o1<706<5;hj6<99;|q1g0<72=q6>nh516f897c42<:01?7;:ec897g>2m30q~<63=bb8233=z{;i<6=4;{<0g5?70l279i84:0:?1=0=838p1?m<:5;897d?28==7p}=c583>7}::j91=?64=3a7>4113ty9n;4?:2y>6f4=<016>o65489>6g0=9><0q~5522c:95=5<5;h26<99;|q1f1<72:q6>n?5489>6g0=<016>o:51648yv4e?3:1?v3=c0826==::k<1=5=4=3`4>4113ty9n?4?:2y>6f6=<016>o:5489>6g4=9><0q~5522c695=5<5;h>6<99;|q1f5<72:q6>oh5489>6g4=<016>o>51648yv4e;3:1?v3=bg826==::k81=5=4=3`0>4113ty9mh4?:2y>6gc=<016>o>5489>6dc=9><0q~5522c295=5<5;h:6<99;|q1ef<72:q6>oj5489>6dc=<016>lm51648yv4fn3:1?v3=be826==::ho1=5=4=3ce>4113ty9ml4?:2y>6ge=<016>lm5489>6dg=9><0q~5522`a95=5<5;ko6<99;|q1e=<72:q6>ol5489>6dg=<016>l651648yv4fj3:1?v3=bc826==::hk1=5=4=3ca>4113ty9m44?:2y>6gg=9;201?o7:0:0?84f13;<:6s|2d394?3|5;oi6<9k;<3;g?b>34;3n7jn;<0;1?be349jn7=:;|q1a5<72ho516f894>c2m301<6l:ec897>32mi01>om:268yv4cn3:19v3=e8823a=:91o1h45219f9`d=::1>1ho523``976=z{;nn6=4:{<0f4kc:?0eg<4:2wx>ij50;7x97c028=o70?60;f:?87?n3nj70<73;fa?85fj39:7p}=db83>0}::l<1=:j4=0;2>a?<583;6io4=3:1>ae<5:ki6>>4}r0gf?6==r79i84>7e9>5<4=l016=4?5d`9>6=4=lk16?ll52g9~w7bf290>w0;61:0o563>938ge>;5080on63{t:m31<7:t=3g0>41c34;2?7jn;<0;5?bf349jn7;h5519>626==916>:<51648yv41n3:1>v3=6g823a=::>81h45rs34a>5<5s48=m7;?;<05g?70>2wx>;650;4x970f28=o70<9e;fa?841k3ni70<82;fa?841>3n270<95;fa?xu5>m0;6?u227;915=::?o1=:84}r053?6=>r79:44>7e9>63c=l016>;m5d`9>624=lh16>;85d`9>633=lj1v?66:18184?m3>270<7d;342>{t:091<74>4348247?86:p6l3nj7p}=8983>7}::1n1845229a95207>52z?14951648yv4??3:1>v3=8b87=>;50k0:;;5rs3;2>5<5s483o7?73:?1=3<6??1v?69:18184?j3>270<7a;342>{t:0:1<74>4348297?86:p6=`=838p1?6n:0:0?84><3;<:6s|26494?4|5;=i6974=35b>4113ty94=4?:3y>62d=91901?6::055?xu5100;6?u226`9520<5;3o6il4}r041?6=:r79;l4;9:?13<<6??1v?9i:181840i3;3?63=858233=z{;=?6=4={<04=?2>348<47?86:p62c=838p1?96:0:0?84?;3;<:6s|26194?4|5;=36974=354>4113ty9;i4?:3y>62>=91901?6=:055?xu5?j0;6?u226595=5<5;2:6<99;|q041<72;q6?=75489>75>=9><0q~=?e;296~;4800:4>52301952052z?04<<6??16?<75db9~w6642909w0=?8;6:?857?3;<:6s|31f94?4|5::36<6<;<126?70>2wx?=<50;0x96602=301>>9:055?xu48j0;6?u231595=5<5:;:6<99;|q044<72;q6?=85489>753=9><0q~=?b;296~;48?0:4>52302952052z?040<60:16?=h51648yv4a93:1>v3=f787=>;5n<0:;;5rs3da>5<5s48m:7?73:?045<6??1v>?;:18184a>3;<:63<188gf>{t:o:1<71?<5;l?6<99;|q1bd<72;q6>k;5191897`a28==7p}=eg83>7}::o>184522g1952052z?1b1<60:16>kk51648yv4bm3:1>v3=f287=>;5n;0:;;5rs3d;>5<5s48m?7?73:?1ba<6??1v?h8:18184a:3;3?63=fb8233=z{:=?6=4>ez?01g<3?278944;7:?01d<3?2789n4;7:?01a<3?2789h4;7:?01c<3?278:=4;7:?024<3?2788k4;7:?00`<3?2788n4;7:?00g<3?2788i4;7:?00d<3?278844;7:?002<3?278854;7:?036<3?278;?4;7:?034<3?278;=4;7:?02c<3?278:h4;7:?02a<3?278:n4;7:?02g<3?278=l4>779>7dd=;j201>om:bc8yv5383:18v3<5c864>;4<00:;i523029`f=:;;31h45rs271>5<4s49>n7?8d:?02a<28279ji4kc:p76c=83>p1>;6:428962028=o70=?f;f`?855=3n27p}<5183>6}:;<31=:j4=24a>06<5;lh6im4}r10b?6=771=l01v>;>:180852i3;;5nj0om6s|35394?2|5:?h68>4=26b>41c349:<7jn;<11f?b>3ty89>4?:2y>70e=9>n01>8j:42897`c2mk0q~=;2;290~;4=m0><63<4c823a=:;8;1hn5233f9`<=z{:??6=4<{<16`?70l278:k4:0:?1b`:l:05g?85693nj70==f;f:?xu4=<0;6>u234g952b<5:=;68>4=3df>ag54z?01c<282788i4>7e9>744=lj16?>?5d89~w6312908w0=:f;34`>;4?80><63=fg8gg>{t;=?1<7:t=243>06<5:>n6<9k;<126?bf3498?7j6;|q012<72:q6?;>516f896152<:01?hi:ec8yv53>3:18v3<60864>;45<4s49==7?8d:?036<28278<=4k9:p775=838p1>:i:428965d28==7p}<2383>7}:;=o19=5232`952052z?00f<28278?44>779~w67a2909w0=;b;73?85403;<:6s|33394?4|5:>o68>4=21b>4113ty8=h4?:3y>71g==916?>951648yv56l3:1>v3<48864>;4;?0:;;5rs23a>5<5s49?;7;?;<100?70>2wx?=::055?xu4;;0;6?u232a90<=:;:81=:84}r10`?6=:r78?n4>299>76b=9><0q~=<0;297~;4;k0?563<3387=>;4;90:;;5rs210>5<4s498n7?=8:?077<60:16?>=51648yv55m3:1?v3<3`87=>;4;90?563<2d8233=z{:9:6=4<{<10e?750278?=4>829>767=9><0q~==c;297~;4;00?563<2d87=>;4:j0:;;5rs20e>5<4s49857?=8:?06`<60:16??h51648yv55i3:1?v3<3987=>;4:j0?563<2`8233=z{:8o6=4<{<10n4>829>77b=9><0q~==8;297~;4;>0?563<2`87=>;4:10:;;5rs20a>5<4s498;7?=8:?06d<60:16??l51648yv55>3:1?v3<3787=>;4:10?563<278233=z{:826=4<{<102?750278>54>829>77?=9><0q~==4;297~;4;<0?563<2787=>;4:=0:;;5rs204>5<4s49897?=8:?063<60:16??951648yv55=3:1?v3<35826==:;;>1=5=4=206>4113ty8:44?:5y>724=9>n01<7::e;894?32mk01>om:2d8yv5103:18v3<70823a=:90<1h4521879`d=:;hh1?h5rs244>5<3s49<<7?8d:?2=2?3nj70=nb;1`?xu4><0;69u237g952b<58326i74=0;;>ag<5:ki6>l4}r150?6=7e9>57dd=;h1v>8<:187851k3;9c8g=>;61h0om63{t;?81<7=t=24a>41c34;2n7jn;<1bf?5?3ty8mh4?:01x96?72==01>6i:55896>b2==01>6k:55896>d2==01>6m:55896>f2==01>66:55896??2==01>78:55896?12==01>7::55896?32==01>7<:55896?52==01>7>:55896>?2==01>68:558970128==7p}7}:;0:19=523``9g6=z{:k;6=4={<1;b?37349jn77;;|q0=c<72;q6?5k5519>7dd=1;1v>7j:18185?l3?;70=nb;;2?xu41m0;6?u239a915=:;hh15=5rs2;`>5<5s493n7;?;<1bf?>a3ty85o4?:3y>7=g==916?ll58d9~w6?f2909w0=79;73?85fj33o7p}7}:;0219=523``9=f=z{:k26=4={<1:3?37349jn7m>;|q0e=<72;q6?485519>7dd=1k1v>o8:18185>=3?;70=nb;;b?xu4i?0;6?u2386915=:;hh1545rs2c6>5<5s492?7;?;<1bf???3ty8m94?:3y>7<4==916?ll5969~w6g42909w0=61;73?85fj33=7p}7}:;1219=523``9=0=z{:326=4={<1;3?37349jn76k;|q0ef<72;q6?lj5164896ge2j30q~?<7;296~;5::0om63=23826<=z{8?86=4={<3ag?bf34;in7?=9:p672=838p1?<9:e`8974528==7p}>be83>7}:9kl1ho521c`952018o<4$2a0>4163ty?n44?:3y]0g?<5=>18o74$2a0>4153ty?m>4?:3y]0d5<5=>18l=4$2a0>4143ty?>54?:3y]052<5=>18=:4$2a0>4503ty?>;4?:3y]055<5=>18==4$2a0>4253ty?>84?:3y]054<5=>18=<4$2a0>42e3ty?>94?:3y]057<5=>18=?4$2a0>42c3ty?>>4?:3y]056<5=>18=>4$2a0>42b3ty?>?4?:3y]7c`<5=>1?kh4$2a0>42a3ty?>=4?:3y]7cb<5=>1?kj4$2a0>4373ty?=k4?:3y]7ce<5=>1?km4$2a0>4363ty?=h4?:3y]7cd<5=>1?kl4$2a0>4353ty?=i4?:3y]7cg<5=>1?ko4$2a0>4333ty?=n4?:3y]7c?<5=>1?k74$2a0>4323ty?=o4?:3y]7c><5=>1?k64$2a0>4313ty?=l4?:3y]7c1<5=>1?k94$2a0>4303ty?=44?:3y]7c0<5=>1?k84$2a0>43?3ty?=54?:3y]7c3<5=>1?k;4$2a0>43>3ty?=:4?:3y]7c2<5=>1?k:4$2a0>43f3ty?=84?:3y]7c4<5=>1?k<4$2a0>43e3ty?=94?:3y]7c7<5=>1?k?4$2a0>43d3ty?=>4?:3y]7c6<5=>1?k>4$2a0>43c3ty?=?4?:3y]7``<5=>1?hh4$2a0>43b3ty?=<4?:3y]7`c<5=>1?hk4$2a0>43a3ty?==4?:3y]7`b<5=>1?hj4$2a0>4073ty?1?hm4$2a0>4063ty?1?hl4$2a0>4053ty?1?ho4$2a0>4043ty?1?h74$2a0>4033ty?>k4?:3y]05g<5=>18=o4$2a0>4023ty?>h4?:3y]05?<5=>18=74$2a0>4013ty?>i4?:3y]05><5=>18=64$2a0>4003ty?>n4?:3y]051<5=>18=94$2a0>40?3ty?>o4?:3y]050<5=>18=84$2a0>40>3ty?>l4?:3y]053<5=>18=;4$2a0>40f3ty?>44?:3y]7cc<5=>1?kk4$2a0>40e3ty?><4?:3y]7c5<5=>1?k=4$2a0>40d3ty?=;4?:3y]7`><5=>1?h64$2a0>40c3ty?1?h94$2a0>40b3ty?o94?:3y]0f2<5=>18n:4$2a0>40a3ty?n=4?:3y]0g6<5=>18o>4$2a0>4173ty?8o4?:3y]06?<5=>18>74$2a0>4513ty?844?:3y]06><5=>18>64$2a0>45?3ty?854?:3y]061<5=>18>94$2a0>45>3ty?8:4?:3y]060<5=>18>84$2a0>45f3ty?8;4?:3y]063<5=>18>;4$2a0>45e3ty?884?:3y]062<5=>18>:4$2a0>45d3ty?894?:3y]065<5=>18>=4$2a0>45c3ty?8>4?:3y]064<5=>18><4$2a0>45b3ty?994?:3y]017<5=>189?4$2a0>45a3ty?9>4?:3y]016<5=>189>4$2a0>4273ty?9?4?:3y]06`<5=>18>h4$2a0>4263ty?9<4?:3y]06c<5=>18>k4$2a0>4243ty?9=4?:3y]06b<5=>18>j4$2a0>4233ty?8k4?:3y]06e<5=>18>m4$2a0>4223ty?8h4?:3y]06d<5=>18>l4$2a0>4213ty?8i4?:3y]06g<5=>18>o4$2a0>4203ty?8n4?:3y]067<5=>18>?4$2a0>42?3ty?8?4?:3y]066<5=>18>>4$2a0>42>3ty?9n4?:3y]00e<5=>188m4$2a0>42f3ty?9;4?:3y]000<5=>18884$2a0>42d3twe4oh50;0xL6e33td3o=4?:3yK7f252zJ0g1=zf1i96=4={I1`0>{i0j91<7d=3:1>vFm;;|l;g=<72;qC?n:4}o:`=?6=:rB8o95rn9ab>5<5sA9h86sa8b`94?4|@:i?7p`7cb83>7}O;j>0qc6ld;296~N4k=1vb5mj:181M5d<2we4nh50;0xL6e33td3h=4?:3yK7f252zJ0g1=zf1n96=4={I1`0>{i0m91<7c=3:1>vFm;;|l;`=<72;qC?n:4}o:g=?6=:rB8o95rn9fb>5<5sA9h86sa8e`94?4|@:i?7p`7db83>7}O;j>0qc6kd;296~N4k=1vb5jj:181M5d<2we4ih50;0xL6e33td3i=4?:3yK7f252zJ0g1=zf1o96=4={I1`0>{i0l91<7b=3:1>vFm;;|l;a=<72;qC?n:4}o:f=?6=:rB8o95rn9gb>5<5sA9h86sa8d`94?4|@:i?7p`7eb83>7}O;j>0qc6jd;296~N4k=1vb5kj:181M5d<2we4hh50;0xL6e33td3j=4?:3yK7f252zJ0g1=zf1l96=4={I1`0>{i0o91<7a=3:1>vFm;;|l;b=<72;qC?n:4}o:e=?6=:rB8o95rn9db>5<5sA9h86sa8g`94?4|@:i?7p`85683>4}O;j>0qc964;295~N4k=1vb:7::182M5d<2we;4850;3xL6e33td<5:4?:0yK7f251zJ0g1=zf>326=4>{I1`0>{i?0k1<7?tH2a7?xh01k0;6k3:1=vFm;;|l4=c<728qC?n:4}o5b4?6=9rB8o95rn6c2>5<6sA9h86sa7`094?7|@:i?7p`8a283>4}O;j>0qc9n4;295~N4k=1vb:o::182M5d<2we;l850;3xL6e33td51zJ0g1=zf>k26=4>{I1`0>{i?hk1<7?tH2a7?xh0ik0;6m;;|l4ec<728qC?n:4}o5a4?6=9rB8o95rn6`2>5<6sA9h86sa7c094?7|@:i?7p`8b283>4}O;j>0qc9m4;295~N4k=1vb:l::182M5d<2we;o850;3xL6e33td51zJ0g1=zf>h26=4>{I1`0>{i?kk1<7?tH2a7?xh0jk0;6m;;|l4fc<728qC?n:4}o5`4?6=9rB8o95rn6a2>5<6sA9h86sa7b094?7|@:i?7p`8c283>4}O;j>0qc9l4;295~N4k=1vb:m::182M5d<2we;n850;3xL6e33td51zJ0g1=zf>i26=4>{I1`0>{i?jk1<7?tH2a7?xh0kk0;6m;;|l4gc<728qC?n:4}o5g4?6=9rB8o95rn6f2>5<6sA9h86sa7e094?7|@:i?7p`8d283>4}O;j>0qc9k4;295~N4k=1vb:j::182M5d<2we;i850;3xL6e33td51zJ0g1=zf>n26=4>{I1`0>{i?mk1<7?tH2a7?xh0lk0;6m;;|l4`c<728qC?n:4}o5f4?6=9rB8o95rn6g2>5<6sA9h86sa7d094?7|@:i?7p`8e283>4}O;j>0qc9j4;295~N4k=1vb:k::182M5d<2we;h850;3xL6e33td51zJ0g1=zf>o26=4>{I1`0>{i?lk1<7?tH2a7?xh0mk0;6m;;|l4ac<728qC?n:4}o5e4?6=9rB8o95rn6d2>5<6sA9h86sa7g094?7|@:i?7p`8f283>4}O;j>0qc9i4;295~N4k=1vb:h::182M5d<2we;k850;3xL6e33td51zJ0g1=zf>l26=4>{I1`0>{i?ok1<7?tH2a7?xh0nk0;6m;;|l4bc<728qC?n:4}o:34?6=9rB8o95rn922>5<6sA9h86sa81094?7|@:i?7p`70283>4}O;j>0qc6?4;295~N4k=1vb5>::182M5d<2we4=850;3xL6e33td3<:4?:0yK7f251zJ0g1=zf1:26=4>{I1`0>{i09k1<7?tH2a7?xh?8k0;67k3:1=vFm;;|l;4c<728qC?n:4}o:24?6=9rB8o95rn932>5<6sA9h86sa80094?7|@:i?7p`71283>4}O;j>0qc6>4;295~N4k=1vb5?::182M5d<2we4<850;3xL6e33td3=:4?:0yK7f251zJ0g1=zf1;26=4>{I1`0>{i08k1<7?tH2a7?xh?9k0;66k3:1=vFm;;|l;5c<728qC?n:4}o:14?6=9rB8o95rn902>5<6sA9h86sa83094?7|@:i?7p`72283>4}O;j>0qc6=4;295~N4k=1vb5<::182M5d<2we4?850;3xL6e33td3>:4?:0yK7f251zJ0g1=zf1826=4>{I1`0>{i0;k1<7?tH2a7?xh?:k0;65k3:1=vFm;;|l;6c<728qC?n:4}o:04?6=9rB8o95rn912>5<6sA9h86sa82094?7|@:i?7p`73283>4}O;j>0qc6<4;295~N4k=1vb5=::182M5d<2we4>850;3xL6e33td3?:4?:0yK7f251zJ0g1=zf1926=4>{I1`0>{i0:k1<7?tH2a7?xh?;k0;64k3:1=vFm;;|l;7c<728qC?n:4}o:74?6=9rB8o95rn962>5<6sA9h86sa85094?7|@:i?7p`74283>4}O;j>0qc6;4;295~N4k=1vb5:::182M5d<2we49850;3xL6e33td38:4?:0yK7f251zJ0g1=zf1>26=4>{I1`0>{i0=k1<7?tH2a7?xh?3k3:1=vFm;;|l;0c<728qC?n:4}o:64?6=9rB8o95rn972>5<6sA9h86sa84094?7|@:i?7p`75283>4}O;j>0qc6:4;295~N4k=1vb5;::182M5d<2we48850;3xL6e33td39:4?:0yK7f247>51zJ0g1=zf1?26=4>{I1`0>{i02k3:1=vFm;;|l;1c<728qC?n:4}o:54?6=9rB8o95rn942>5<6sA9h86sa87094?7|@:i?7p`76283>4}O;j>0qc694;295~N4k=1vb58::182M5d<2we4;850;3xL6e33td3::4?:0yK7f251zJ0g1=zf1<26=4>{I1`0>{i0?k1<7?tH2a7?xh?>k0;61k3:1=vFm;;|l;2c<728qC?n:4}o:44?6=9rB8o95rn952>5<6sA9h86sa86094?7|@:i?7p`77283>4}O;j>0qc684;295~N4k=1vb59::182M5d<2we4:850;3xL6e33td3;:4?:0yK7f251zJ0g1=zf1=26=4>{I1`0>{i0>k1<7?tH2a7?xh??k0;60k3:1=vFm;;|l;3c<728qC?n:4}o:;4?6=9rB8o95rn9:2>5<6sA9h86sa89094?7|@:i?7p`78283>4}O;j>0qc674;295~N4k=1vb56::182M5d<2we45850;3xL6e33td34:4?:0yK7f251zJ0g1=zf1226=4>{I1`0>{i01k1<7?tH2a7?xh?0k0;6?k3:1=vFc290:wE=l4:m<=c=83;pD>m;;|l;5<6sA9h86sa88094?7|@:i?7p`79283>4}O;j>0qc664;295~N4k=1vb57::182M5d<2we44850;3xL6e33td35:4?:0yK7f251zJ0g1=zf1326=4>{I1`0>{i00k1<7?tH2a7?xh?1k0;6>k3:1=vFm;;|l;=c<728qC?n:4}o:b4?6=9rB8o95rn9c2>5<6sA9h86sa8`094?7|@:i?7p`7a283>4}O;j>0qc6n4;295~N4k=1vb5o::182M5d<2we4l850;3xL6e33td3m:4?:0yK7f251zJ0g1=zf1k26=4>{I1`0>{i0hk1<7?tH2a7?xh?ik0;6fk3:1=vFm;;|l;ec<728qC?n:4}o:a4?6=9rB8o95rn9`2>5<6sA9h86sa8c094?7|@:i?7p`7b283>4}O;j>0qc6m4;295~N4k=1vb5l::182M5d<2we4o850;3xL6e33td3n:4?:0yK7f251zJ0g1=zf1h26=4>{I1`0>{i0kk1<7?tH2a7?xh?jk0;6ek3:1=vFm;;|~yEFDsh<>69>i25f;exFGJr:vLM^t}AB +$5a540<,[o}e~g`n;"2*726&;$:,)<6;.vnt*Ydo&lbjbQwloz\144;?U9oaeP37vl5=(iof;0<85?0123=>6789:;<=>;0:23456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?013856=6&9;87<>5IORVP?GCL[K757>11g924?OIX\^1|ah_dosp|Ys`{oxd1750?05?46=AGZ^X7~}of]fiur~W}byi~fParqfvq:>2949:6??:HLSQQ712@D[YY4KI@>21?699:1::7AZTQWW>AIF48?1<3?;;0:9KPRW]]0ocxz31683:4=5:28:86<<3232?76==:HLSQQ112906?IR\Y__6IAM<2394;753:<1EC^ZT;fjj952294o7>}=012ec131%<;0895;0GD25>2=AGZ^X7JFPC>0>586:2>1CXZ_UU8GKUD;;3:5=68=;7;7?3?>>=138??;;9G;E4=><23;<4<49768=30>9;126D@_UU8B@ATE410;22@D[YY4rne\bpjkW}byi~fPndebp`:?294:4675OTVSQQG502KOH_O30?:8EABUI5;546OKDSC?6;>GCL[K7:364AEFQE91902KOH_O38?c8EABUI531<364AEFQE9?902KOH_L30?:8EABUJ5;546OKDS@?6;>GCL[H7:364AEFQF919i2KOH_L38;2=<>GCL[H743=4AMN:?DU^FJUYIJ=4BT0;?GSTW@DMC<5L2:AF57=D@LI@SAGLEOQF[Q_WM;1HE95LLJC7?FJLJ:1H@_74CNONMQRBL8>0OB\J_FGMAWGSAFDTECH@7:AQADRBL81O>6JL2:FJ2>BNI5:5;6JFA=33:2=CAH6:=394DHC?57803MCJ0<=17:FJE973601OEL2>5;2=3>BNI5;>2;5KI@>2:3=CAH692;5KI@>0:3=CAH6?2;5KI@>6:3=CAH6=2;5KI@>4:3=CAH632;5KI@>::3=CAK6;2:5KIC>24;169GMG:6<7=0HDL314<4?AOE48<5;6JFB=34:2=CAK6:4394DH@?5<813MCI0<08;EKA8769?2NBN1<>>69GMG:5:7=0HDL322<4?AOE4;>5;6JFB=06:2=CAK69:394DH@?62803MCI0?617:FJF94>6?1OEO2=>69GMG:48730HDL33083:2=CAK68=384DH@?7;02:2=CAYH7>374DHRA86<76>1OE]L33?48@JG;87=0HBO311<4?AIF48;5;6J@A=31:2=CGH6:?394DNC?518>3MEJ0<;50?58@JG;9<4=7IAN<0<5?AIF4;4=7IAN<2<5?AIF4=4=7IAN<4<5?AIF4?4=7IAN<6<5?AIF414=7IAN<8<4?AIFW[OL:6J@B=2=3>BHJ5;;2:5KOC>25;169GKG:6=7=0HBL317<4?AIE48=5;6J@B=3;:2=CGK6:5384DN@?5;1=08;EMA8779?2NDN1<=>69GKG:5;7=0HBL325<4?AIE4;?5;6J@B=05:2=CGK69;394DN@?6=803MEI0?716:FLF949?2NDN1=?>89GKG:493:5;6J@B=12:3=CGK682;5KOC>7:3=CGK6>2;5KOC>5:3=CGK6<2;5KOC>;:3=CGK622:5KOC]QAB12:2=CGYH7>374DNRA86<76>1OC]L33?18AKG43LDIn6KA_DA@[WCFLj1NBRKLC^UQMQC53O8?7K6HK3:DGG1=ALJO87KJ_4:DGT@2O7:2C:>6G=2:K0<>OIA]ZT<=64IOKWTZ6602CEEY^P03:8MKOSXV:846GAIUR\41>:8:KMMQVX8?20ECG[P^24=>OIA]Y_MYK8;HLJPZ67?2CEEYQ?169JJLRX8;=0ECG[_114?LHN\V:?;6GAIU]312=NF@^T<;94IOKW[5103@DBXR>77:KMMQY71>1BBDZP0@58MKOSW9H<7D@FT^2@3>OIA]U;H:5FNHV\4@1169JJLRX9;=0ECG[_014?LHN\V;?;6GAIU]212=NF@^T=;94IOKW[4103@DBXR?77:KMMQY61>1BBDZP1@58MKOSW8H<7D@FT^3@3>OIA]U:H:5FNHV\5@1;94IOKW[7103@DBXR<77:KMMQY51>1BBDZP2@58MKOSW;H<7D@FT^0@3>OIA]U9H:5FNHV\6@11BBDZP3@58MKOSW:H<7D@FT^1@3>OIA]U8H:5FNHV\7@1H9;HLJPZG13@DBXRL=;MK1?II13EEJHHJ8;MMDMFGK<2F^X<:4LTV10>JR\:>0@XZ;6:NVP1YC=2GXKB@:;LW[G\eKnffx]i}foo08J42159M54633G;:=95A1007?K76;=1E=<:;;O3211=I98759M54>33G;:5>5A1368J447<2D:><:4N0010>H6::>0B<<;4:L26022618J4533G;8=>5A1518J4343G;=?6@>729M5=5H59:1E>?=4N310?K43;2D99>5A2718J7143G83?6@=929M755;<;O157>H4?:1E?5=4N2;0?K27;2D?=>5A4318J1543G>??6@;529M035H0:2D2j6@M_CWPTLHXX[E[_:5AEUULVN7W63[o0^LCM17]P5=YT;?k0^HOK_GKQWQeTBIMU\EIZG_C38W45<[@GTOBBCIRKLJZEOMJA=7^AZRBG4?VTQIEUJ;6]]V@N\F1=T[[K?7^]]B59W]UC4:2_;#j|i.sd,cf~)keas#@v`r^pg[uhszVmhSua}0123[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYulVzexQhc^zlv5679VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4563W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;9R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?07]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3451XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:3S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?0^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2344YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt7898T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=><_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1230ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678<5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb1?1209V4*aun'xm#jmw.bnh|*tcWyd~Rlfn=0=64=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj959:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf5>5><5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb1;1209V4*aun'xm#jmw.bnh|*tcWyd~Rlfn=4=64=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj919:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf525><5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb171219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^314>S7'nxm"h gbz-gim'{nT|cz}_ckm[7473\:$kh!rg-dg}(ddbr$~iQnup\flhX;;:0Y=!hrg,qb*adp'iggu!}d^rmpwYeagU?>=5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbR;=0:W3+bta&{l$knv!cmi{+wbXxg~ySoga_703?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\376<]9%l~k }f.e`|+ekcq%yhR~ats]amkY?:91^<"i}f/pe+be&jf`t"|k_qlwvZdnfV39:6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}012362=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;<<<9;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34575?2_;#j|i.sd,cf~)keas#jPpovq[goiWqey<=>>1348Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678;8<7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?010263=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;??94U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos234645>2_;#j|i.sd,cf~)keas#jPpovq[goiWqey<=>;269V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567<88=7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?01713>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:>=?84U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos23434?3\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=8>1358Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678?89n6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0125[gbc8;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0604?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789=:>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmh0=0=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm31?03?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb>1:76<]9%l~k }f.e`|+ekcq%yhR~ats]dg959:91^<"i}f/pe+be&jf`t"|k_qlwvZad4=49<6[?/fpe*w`(ojr%oaew/sf\tkruWni793328Q5)`zo$yj"ilx/aoo})ulVzexQhc=5=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`8=8582_;#j|i.sd,cf~)keas#jPpovq[be;17;m7X> gsd-vc)`kq$h`fv re]sjqtXojU;=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS;m7X> gsd-vc)`kq$h`fv re]sjqtXojU3=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS4<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8585>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk1?1279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:56;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi33?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4=49:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=7=63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn6=2?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?3;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol050=6:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfc9?9:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ?249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY6:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ=249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY4:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ;249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY2:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ9249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY0:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ7249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY>:01^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1=3=6<=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=1<1289V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabYc9595>45Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g5929:01^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1=7=6<=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=181289V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabYc95=5>45Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g59>9:01^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1=;=6==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh55Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g5Z?5=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=>=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34575=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=<=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34555=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=:=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34535=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=8=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34515=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=6=1:W3+bta&{l$knv!cmi{+rtXxg~ySoga<1<15>S7'nxm"h gbz-gim'~xT|cz}_ckm848592_;#j|i.sd,cf~)keas#z|Ppovq[goi4;49=6[?/fpe*w`(ojr%oaew/vp\tkruWkce0>0=1:W3+bta&{l$knv!cmi{+rtXxg~ySoga<5<15>S7'nxm"h gbz-gim'~xT|cz}_ckm808592_;#j|i.sd,cf~)keas#z|Ppovq[goi4?49=6[?/fpe*w`(ojr%oaew/vp\tkruWkce0:0=1:W3+bta&{l$knv!cmi{+rtXxg~ySoga<9<14>S7'nxm"h gbz-gim'~xT|cz}_ckm[5473\:$kh!rg-dg}(ddbr${Qnup\flhX9;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU9>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR==0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_503?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\176<]9%l~k }f.e`|+ekcq%|~R~ats]amkY1:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV=9<6[?/fpe*w`(ojr%oaew/vp\tkruWkceS5<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34565?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>?1348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw67888<7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?013263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;>?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234775>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=><269V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567;;8=7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01613>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:?=?84U1-dvc(un&mht#mcky-tvZvi|{UiecQwos2340403\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=;>279V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567>;20Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?073262=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;:?;5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r123371<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<:?=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm30?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>2:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg949:91^<"i}f/pe+be&jf`t"y}_qlwvZad4:49<6[?/fpe*w`(ojr%oaew/vp\tkruWni783328Q5)`zo$yj"ilx/aoo})pzVzexQhc=4=65=R8&myj#|i/fa{*fjlp&}yS}`{r^e`828582_;#j|i.sd,cf~)keas#z|Ppovq[be;07;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU;=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU3>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>3:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm7=3<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8785>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk1=1279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:36;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi35?05?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4?49:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=5=63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn632?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\473<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT=?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\673<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT??;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\073<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT9?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\273<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT;?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\<7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2?>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86:2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:56;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>0:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2;>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86>2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:16;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>4:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<27>3:8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8U;>55Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5Z7502_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>_30;?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;T??64U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4Y3:11^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1^71<>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S;<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X?;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0];60=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:;>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012260=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:9>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012060=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:?>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012660=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:=>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012475=R8&myj#|i/fn3*wb(o{;%~kyit.Onq}YUIDUYHRKA_GUEP775n2_;#j|i.sd,ci6)zm%l~< }fvdw+HkrpVXJAR\JGNWW[@H69;n0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`:76;n0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`:66;i0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`Y7:j1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwaZ74=2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[hs89::0=0<6:W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nS`{w01228586;<1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwaZkrp9:;=1?1379V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}kiRczx12359799;20Y=!hrg,qb*ak8'xo#j|>.sdtbq)bey~rSkyit^da62=R8&myj#|i/fn3*wb(o{;%~kyit.gntqXn~lSd?319V4*aun'xm#jb?.sf,cw7)zo}mx"kbpu{\br`sW`Ufyu>?0131=>S7'nxm"h gm2-va)`zhy%~~z|/b2,gdtuqgo0=0=9:W3+bta&{l$ka>!re-dvdu)zz~x#n> c`pq}kcs484956[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$ol|}yogw878512_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(khxyuck{<2<1b>S7'nxm"h gm2-va)`zhy%~~z|/b2,chs&ngP

<1<17>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4:66;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&|:0?0=3:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0>0:75<]9%l~k }f.eo4+tc'nxj#||tr-`4*p64=49n6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$z?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4Y3Whdo<=>?13;8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.abvwim}6;2?74U1-dvc(un&mg<#|k/fpbw+tt|z%h="mnrs{maq:66;30Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&ij~waeu>1:7?<]9%l~k }f.eo4+tc'nxj#||tr-`5*efz{seiy2<>3d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.enq}(`eR:V"jc>.l31b>S7'nxm"h gm2-va)`zhy%~~z|/b3,chs&ngP=P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`5*aj}q$laV318Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t28485;2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~8692?=4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x><2<17>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4:36;h0Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&|:S=Qnne234575j2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~8U:Sl`k012357d<]9%l~k }f.eo4+tc'nxj#||tr-`5*p6W;Ujbi>?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4Y4Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t2[1Yffm:;<=?=0:W3+bta&{l$ka>!re-dvdu)zz~x#nabp103?P6(o{l%~k!hl1,q`*auiz$yy} cnos57?<]9%l~k }f.eo4+tc'nxj#||tr-qehYbey~rSklPi228Q5)`zo$yj"ic0/pg+btf{'xxx~!}al]fiur~WohTeRa}012374=R8&myj#|i/fn3*wb(o{kx"}{s.pbiZcjx}sTjoQf_np34566::1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by<;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw572<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~9>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu110>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|=8?7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{5368Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkr1:=1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by9=4:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmp=433\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d5?74U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:76;i0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>3:Zts:01^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=3=6f=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1?1_sv1=>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0?0=c:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4;4T~y<6;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[f;;78h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?7;Yu|;30Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>7:7e<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2;>^pw6<=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1;12b9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5?5Sz=9:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4?49o6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az838Xz}827X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?3;4d3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw37?]qp7?<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot27>3a8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp632R|{2`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{6;2?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;978j7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8785i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=1=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc2;>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx793;:7g<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|39?0g?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWqey040Pru3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=2=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?5;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9499o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;;7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5>5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~793?i;T2,cw`)zo%l`= }d.psjqt(kfex1811g9V4*aun'xm#jb?.sf,vuhsz&idycz37?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=:=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?=;7b3\:$kh!rg-dh5(ul&x{by| cnwmpZ66m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY69l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX:8o0Y=!hrg,qb*ak8'xo#~ats-`kphsW:;n7X> gsd-vc)`d9$yh"|nup,gjsi|V>:i6[?/fpe*w`(oe:%~i!}povq+firf}U>=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T:e:W3+bta&{l$ka>!re-qtkru'je~byQ6239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>3:74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;97897X> gsd-vc)`d9$yh"|nup,gjsi|Vn:0?0=2:W3+bta&{l$ka>!re-qtkru'je~byQk1=1=67=R8&myj#|i/fn3*wb(zyd~"m`uov\`4:36;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;793<=;T2,cw`)zo%l`= }d.psjqt(kfexRj><7<16>S7'nxm"h gm2-va)uxg~y#naznu]g5919:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl8632?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?39?02?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[5463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W88:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S?<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_202?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[1463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W<8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S;<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_602?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[=463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W08?7X> gsd-vc)`d9$yh"|nup,gjsi|Vddx=>?13;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6;2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:66;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>1:7?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2<>3d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(`eR:V"jc>.l31b>S7'nxm"h gm2-sw)`hy%{~z|/b3,chs&ngP=P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28485;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8692?=4U1-dvc(un&mg<#y}/fubw+qt|z%h="x><2<17>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4:36;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S=Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U:Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W;Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4Y4Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t2[1Yig}:;<=?=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs494956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw848512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<3<1=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0>0=f:W3+bta&{l$ka>!ws-dsdu)z~x#n< glw{*bk\8T$la< b13d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.enq}(`eR;V"jc|.lq1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP>P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`6*aj}q$laV=R.fop*hu5n2_;#j|i.sd,ci6){%l{l}!wrvp+f4(ods"jcT4\,div(j{;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0=0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>2:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64;49?6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z<2<>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t28185j2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~8U;Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p6W8Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y5Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t2[6Yffm:;<=?=b:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0]7[kis89:;=?>4U1-dvc(un&mg<#y}/fubw+qt|z%hc`~>219V4*aun'xm#jb?.vp,crgt&~y"m`mq01<>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVliSd<:;T2,cw`)zo%l`= xr.etev(p{}y$~lcPftno[l4c3\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXn|fgSdQbuy23454b3\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXn|fgSdQbuy234576l2_;#j|i.sd,ci6){%ym`Qxr^gm[l75;2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex?:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov261=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}8986[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at207?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs<;>0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz:259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq05<2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex:<;;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw<7?<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2?>3a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6;2R|{289V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5;5>n5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}979W{~956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8785k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<3<\vq4>3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw33?0`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7?3Q}t3;8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6?2?m4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\g|:36Vx>45Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}939:j1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=7=[wr512_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<7<1g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir0;0Pru0:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7;3 gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8485i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=0=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc2<>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7834:7g<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|38?0g?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey050Pru3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=2=5c=R8&myj#|i/fn3*rt(yd~"m`uov?5;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9499o1^<"i}f/pe+bj7&~x${}`{r.alqkr;;7;m7X> gsd-vc)`d9$|~"ynup,gjsi|5>5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~793?i;T2,cw`)zo%l`= xr.usjqt(kfex1811g9V4*aun'xm#jb?.vp,suhsz&idycz37?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=:=5`=R8&myj#|i/fn3*rt(yd~"m`uov\44c<]9%l~k }f.eo4+qu'~zex!lotlw[47b3\:$kh!rg-dh5(pz&}{by| cnwmpZ46m2_;#j|i.sd,ci6){%||cz}/bmvjqY49l1^<"i}f/pe+bj7&~x${}`{r.alqkrX<8o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW<;n7X> gsd-vc)`d9$|~"ynup,gjsi|V<:i6[?/fpe*w`(oe:%{!xpovq+firf}U<=h5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T4?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?30?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28485:2_;#j|i.sd,ci6){%||cz}/bmvjqYc9585>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<2<>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3?0;453\:$kh!rg-dh5(pz&}{by| cnwmpZb64<49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=181239V4*aun'xm#jb?.vp,suhsz&idyczPd0>4:74<]9%l~k }f.eo4+qu'~zex!lotlw[a7;078:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S=<>;T2,cw`)zo%l`= xr.usjqt(kfexRj>_002?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f2[7463\:$kh!rg-dh5(pz&}{by| cnwmpZb6W:8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S9<>;T2,cw`)zo%l`= xr.usjqt(kfexRj>_402?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f2[3463\:$kh!rg-dh5(pz&}{by| cnwmpZb6W>8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S5<=;T2,cw`)zo%l`= xr.usjqt(kfexRj=<1<16>S7'nxm"h gm2-sw)pxg~y#naznu]g6979:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;692?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<33?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f18185:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5?5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?29>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?3;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54149=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R>=1:W3+bta&{l$ka>!ws-ttkru'je~byQk2^315>S7'nxm"h gm2-sw)pxg~y#naznu]g6Z4592_;#j|i.sd,ci6){%||cz}/bmvjqYc:V99=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R:=1:W3+bta&{l$ka>!ws-ttkru'je~byQk2^715>S7'nxm"h gm2-sw)pxg~y#naznu]g6Z0592_;#j|i.sd,ci6){%||cz}/bmvjqYc:V=9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R6=4:W3+bta&{l$ka>!ws-ttkru'je~byQaou2344703\:$kh!rg-nah)cg|~Te1>1199V4*aun'xm#`kb/emvpZo;994:46[?/fpe*w`(elg$hb{{_h>25;7?3\:$kh!rg-nah)cg|~Te1?=>0:8Q5)`zo$yj"cjm.flqqYn4895=55Z0.eqb+ta'dof#iazt^k?518602_;#j|i.sd,i`k(lfSd2>5?3;?P6(o{l%~k!bel-gkprXa5;=2<64U1-dvc(un&gna"j`uu]j84199>1^<"i}f/pe+hcj'me~xRg31?34?P6(o{l%~k!bel-gkprXa585=:5Z0.eqb+ta'dof#iazt^k?7;703\:$kh!rg-nah)cg|~Te1:1169V4*aun'xm#`kb/emvpZo;=7;<7X> gsd-vc)jmd%ocxzPi=4=52=R8&myj#|i/lgn+air|Vc7;3?8;T2,cw`)zo%fi`!kotv\m9>99>1^<"i}f/pe+hcj'me~xRg39?35?P6(o{l%~k!bel-gkprXaV:::6[?/fpe*w`(elg$hb{{_h]252=R8&myj#|i/lgn+air|VcT==?8;T2,cw`)zo%fi`!kotv\mZ769>1^<"i}f/pe+hcj'me~xRgP1334?P6(o{l%~k!bel-gkprXaV;8=:5Z0.eqb+ta'dof#iazt^k\51703\:$kh!rg-nah)cg|~TeR?:169V4*aun'xm#`kb/emvpZoX9?;<7X> gsd-vc)jmd%ocxzPi^3453=R8&myj#|i/lgn+air|VcT><84U1-dvc(un&gna"j`uu]j[6713\:$kh!rg-nah)cg|~TeR:>6:W3+bta&{l$ahc dnww[lY29?1^<"i}f/pe+hcj'me~xRgP6048Q5)`zo$yj"cjm.flqqYnW>;=7X> gsd-vc)jmd%ocxzPi^:22>S7'nxm"h mdo,`jssW`U2=45Z0.eqb+ta'dof#iazt^ofi9699h1^<"i}f/pe+hcj'me~xRcjm=33:4g<]9%l~k }f.ofi*bh}}Ufi`2>1?3b?P6(o{l%~k!bel-gkprXelg7=?0>a:W3+bta&{l$ahc dnww[hcj4895=l5Z0.eqb+ta'dof#iazt^ofi97368k0Y=!hrg,qb*kbe&ndyyQbel>21;7f3\:$kh!rg-nah)cg|~Tahc317<2e>S7'nxm"h mdo,`jssWdof0<91189V4*aun'xm#`kb/emvpZkbe5;5=45Z0.eqb+ta'dof#iazt^ofi949901^<"i}f/pe+hcj'me~xRcjm=1=5<=R8&myj#|i/lgn+air|Vgna1:1189V4*aun'xm#`kb/emvpZkbe5?5=45Z0.eqb+ta'dof#iazt^ofi909901^<"i}f/pe+hcj'me~xRcjm=5=5<=R8&myj#|i/lgn+air|Vgna161189V4*aun'xm#`kb/emvpZkbe535;95Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(~hfbh#m|ts-qehjhgyQ;Q#|nm/p,w6Yig`dbx#|nm.fsvdk)ly9=t<6!r`o2f>S7'nxm"h mdo,phvXzhgT~iQjn0a8Q5)`zo$yj"cjm.vntZtfeVxoSh`>169V4*aun'xm#ob_sgdkprXmg;o7X> gsd-vc)u{}hgg"|k_sqw[duumn8;7X> gsd-vc)u{}hgg"|k_sqw[duumnUo=?>4U1-dvc(un&xxxobd/sf\vvrXizxnkRj=1b9V4*aun'xm#}{bmi,vaYu{}Uhc`l>d:W3+bta&{l$~~zmlj-q`Ztt|Vidao?>e:W3+bta&{l$~~zmlj-q`Ztt|Vxnk1>11d9V4*aun'xm#}{bmi,vaYu{}Uyij2>>0g8Q5)`zo$yj"||tcnh+wbXzz~T~hi32?3g?P6(o{l%~k!}su`oo*tcW{ySkh_13g?P6(o{l%~k!}su`oo*tcW{ySkh_03g?P6(o{l%~k!}su`oo*tcW{ySkh_33g?P6(o{l%~k!}su`oo*quW{ySl}}ef03?P6(o{l%~k!}su`oo*quW{ySl}}ef]g576<]9%l~k }f.pppgjl'~xT~~zParpfcZb59j1^<"i}f/pe+wusjea${Q}su]`khd6l2_;#j|i.sd,vvredb%|~R||t^alig76m2_;#j|i.sd,vvredb%|~R||t^pfc9699l1^<"i}f/pe+wusjea${Q}su]qab:668n0Y=!hrg,qb*tt|kf`#z|Prrv\v`aX88n0Y=!hrg,qb*tt|kf`#z|Prrv\v`aX9h1^_H\PAMKBWf=R[LXTZD]FBMG0?SED12\BIZQ[YQG0?RCF;2]NNn5XRHVF[HICMVKh7Z\FTD]NKACXJm1\^DZJ_VKGPMYFl2]YEYKPWHFWLZD6l2RB@D@W-YFA$5(6(Z^^N->!1!CPGLO23QEYOT84XRVOMG1gkefyShctx`8eikh{}Umyab9;cc`opvc3kkhgx~Pm`phaw5bf|hUhcx`{(6+g?agsiVidycz'8(d8`drfWje~by27:1<4?adn|lxy:6jfn)2*2>bnf!;";6jfn)33-2=cag":=$94dhl+57/03mce$<=&7:fjj-73!>1oec&>5(58`lh/9?#<7iga(05*3>bnf!;3%:5kio*2=,0$94dhl+65/03mce$??&7:fjj-45!>1oec&=3(58`lh/:=#<7iga(37*3>bnf!8=%:5kio*13,15'8;ekm,7?.>2nbb%=&7:fjj-57!>1oec&<1(58`lh/;;#<7iga(21*3>bnf!9?%:5kio*01,01oec2>3?58`lh;9=4<7iga<07=3>bnf5;=2:5kio>23;12nbb1?17:fjj9476>1oec2=1?58`lh;:;4<7iga<31=3>bnf58?2:5kio>11;1;08;ekm8719?2nbb1<7>69gmk:517<0hd`32?58`lh;;94<7iga<23=3>bnf5992:5kio>07;14=7iga<9<5?aoi404<7iazt)2*3>bh}}":%55kotv+55/?3me~x%?>)99gkpr/9;#37iazt)30-==cg|~#=9'7;emvp-72!11ocxz'17+;?air|!;<%:5kotv+6,1'8;emvp-2.?2ndyy&:)69gkpr/> =0hb{{(6+4?air|!2";6j`uu*:-2=cg|~7<364dnww846902ndyy2>1?:8`jss488546j`uu>27;>bh}}6:;7>18:flqq:6?7=0hb{{<0<4?air|585;6j`uu>0:2=cg|~78394dnww80803me~x1817:flqq:06>1ocxz38?58`jss40437hjff3ld`0=bey~r>k5iigm\c`hbzh~d~Rx9_0.#\ljnfq*HC_K/Gdlfvdrhz);9"=?v<6^0`hnY4>}e:4>o4fhdl[}jipV?:>u=9_3aooZ51|f;3 kgio^efj`tf|fxTz;Q>,OMMA)HHFL>;=6hffn]{hk~X=88s?;Q=cmi\73rh91&mekaPgdlfvdrhzV|=S<"tc^jbwZoi|Vigg0>#c^jbwZuu{}7; nQ}d^dqat;6$jUnbllce^pppZu~fj7: nQgar]q`Zbf|hUhcx`{=1.`[aoiW~coxe3<6-a\lduX{UomyoPcnwmp86+kVl~`aQil`ep[wusWkg1="l_hosh`kbf}keb`Ptxrf97*dW|ynShcmeeff`Ztbo4:'oRy}_gpfu87+kVxiRj`uu]qwq;6$jU~bik}fmmt[iip59&hSeo|_ntfvcjh4:'oR~}emmb`Zjf|ldhu0>#c^flqqYpam~c1<6#c^opcjhX~hf6=!mPre]gauro58:98!mPesplvZoiblieb`Ptxrf95*dWakxSx`kesdokr;7$jUcm~QnllmppZ`rde7; nQgar]qwq;6$jUomyoPcnwmpZqnl}b65!mPh`q\swYfkb7; nQzsd]fgf;7$jUhc`c`n^aokfm:8%iT{Qncj]okr;7$jUyhR~ats]tmaro58:'oR{|e^dtbqYci}kTob{at<2/gZnf{Vkgab}{_dosp|;7$jUyhRjnt`]`kphsW~coxe3>0-a\kscunee|Saax=1.`[rtXxg~ySzgkti?:(fYwzfmTi`~{y^vzt`;7$jU|~Rjnt`]`kphsW~coxe36,b]sv`jhimUyij}21-a\`jssW{yS{oc=1.`[mgtWmkmRm`uov>4)eXx{elSk{cl^vkv`uoWgolmykPv`n>15>+kV}ySikti?657*dWyxdkRkbpu{\pmtb{aUeijo{e^tbh83+kVzycjQjmqvz[qnumzbTm~}jru]uei;3$jUcm~Qyamkg95*dWyxdkRhzlm]wlwct`Vkxh|{_wco906>$jef|b`jnu]mehc:n`ldSubax^726}51W;iggR=9tn3;(fYqiecoSaax=1.`[utneVlbjbQ{yqg>144;?&hS}|`g^dvhiYsqyo6vugnUna}zv_ujqavn/: ;?7}|`g^gntqX|axne&<)068twi`Wlg{xtQ{hsgpl-2.9=1{~biPelrw}Zrozlyc$8'>4:rqkbYbey~rSyf}erj+2,733yxdkRkbpu{\pmtb{a"<%<:4psmd[`kw|pUdk|h):*51=wzfmTi`~{y^vkv`uo 0#::6~}of]fiur~W}byi~f39;2=5g=wzfmTi`~{y^vkv`uoWhyxiz'0(3a?uthoVof|ywPtipfwmYf{zoyx%?&1c9svjaXmdzuRzgrdqk[dutm{~#>$?m;qplcZcjx}sTxe|jsi]bwvcu|!9"=o5rne\ahvsqV~c~h}g_`qpawr/< ;i7}|`g^gntqX|axneQnsrgqp-3.9k1{~biPelrw}ZrozlycSl}|esv+2,7e3yxdkRkbpu{\pmtb{aUj~k}t)5*5g=wzfmTi`~{y^vkv`uoWhyxiz'8(3a?uthoVof|ywPtipfwmYf{zoyx%7&1e9svjaXmdzuRzgrdqk[dutm{~757>11c9svjaXmdzuRzgrdqk[kc`i}o#<$?m;qplcZcjx}sTxe|jsi]mabgsm!;"=o5rne\ahvsqV~c~h}g_ogdeqc/: ;i7}|`g^gntqX|axneQaefcwa-5.9k1{~biPelrw}ZrozlycSckhaug+0,7e3yxdkRkbpu{\pmtb{aUeijo{e)7*5g=wzfmTi`~{y^vkv`uoWgolmyk'6(3a?uthoVof|ywPtipfwmYimnki%9&1c9svjaXmdzuRzgrdqk[kc`i}o#4$?m;qplcZcjx}sTxe|jsi]mabgsm!3"=i5rne\ahvsqV~c~h}g_ogdeqc;13:556~}of]eqij6;2zycjQiumn\pmtb{a";%<=4psmd[cskdV~c~h}g(0+27>vugnUmyabPtipfwm.5!890|ah_gwohZrozlyc$>'>3:rqkbYa}efTxe|jsi*7-45a:rqkbYa}efTxe|jsi]bwvcu|!8"=l5rne\bpjkW}byi~fParqfvq.4!8k0|ah_gwohZrozlycSl}|esv+0,7f3yxdkRhzlm]wlwct`Vkxh|{(4+2e>vugnUmyabPtipfwmYf{zoyx%8&1`9svjaXn|fgSyf}erj\evubz}"<%vugnUmyabPtipfwmYimnki%<&1`9svjaXn|fgSyf}erj\j`af|l"8%$??;sf\`drfWje~by&<)028vaYci}kTob{at)6*55=ulVnjxlQlotlw,0/682xoSio{a^alqkr/> ;;7jPd`vb[firf}"<%<>4re]geqgXkfex%6&119q`Zbf|hUhcx`{(8+24>tcWmkmRm`uov?4;753{nThlzn_bmvjq:>294>7jPeo48vaYu{}90~~z8;r`jp`tu<2yyy:4tswf=>sillxm`by:;wcoma0<{Ujof84ws]`hn773~xThlzn_bmvjq.7!8:0{Qkauc\gjsi|!;"==5xr^fbpdYdg|d$?'>0:uq[agsiVidycz'3(33?rtXlh~jSnaznu*7-46<{UomyoPcnwmp-3.991|~Rjnt`]`kphs ?#:<6y}_ecweZeh}g~#;$??;vp\`drfWje~by&7)008swYci}kTob{at=:94;3<{Unb;5xr^pppxFGxh<>7MNw1;D90?7|[=l188;57;306g0dk398:ljtn2f6>4=i;m<1:6*107290:??l9cb8073gb3Z>o698?:18277d1kj08?;oi;e66hn0(>m9:00a?S5c<38py<=<:09v562=82w/=:75199a00>=839o6>47;'5=g=<<20(>j=:574?l2e83:17d:l4;29?j22k3:17b::6;29?l2e13:17d:m2;29?j2413:1(<9m:56b?k70i3:07b:<8;29 41e2=>j7c?8a;38?j24?3:1(<9m:56b?k70i3807b:<6;29 41e2=>j7c?8a;18?j24=3:1(<9m:56b?k70i3>07b:<4;29 41e2=>j7c?8a;78?j24;3:1(<9m:56b?k70i3<07b:<2;29 41e2=>j7c?8a;58?j2393:1(<9m:56b?k70i3207b:;0;29 41e2=>j7c?8a;;8?j24n3:1(<9m:56b?k70i3k07b:j7c?8a;`8?j24l3:1(<9m:56b?k70i3i07b:j7c?8a;f8?j24j3:1(<9m:56b?k70i3o07b:j7c?8a;d8?j2493:1(<9m:56b?k70i3;;76a;3183>!70j3>?m6`>7`825>=n<9>1<7*>7c8762=i9>k1<65f41194?"6?k0?>:5a16c95>=n<981<7*>7c8762=i9>k1>65f41394?"6?k0?>:5a16c97>=n<9:1<7*>7c8762=i9>k1865f3gd94?"6?k0?>:5a16c91>=n;on1<7*>7c8762=i9>k1:65f3ga94?"6?k0?>:5a16c93>=n;oh1<7*>7c8762=i9>k1465f3gc94?"6?k0?>:5a16c9=>=n;o31<7*>7c8762=i9>k1m65f3g:94?"6?k0?>:5a16c9f>=n;o=1<7*>7c8762=i9>k1o65f3g494?"6?k0?>:5a16c9`>=n;o?1<7*>7c8762=i9>k1i65f3g694?"6?k0?>:5a16c9b>=n;o81<7*>7c8762=i9>k1==54i2d2>5<#9>h18?94n05b>47<3`9m<7>5$05a>1403g;1e=:o51598m6cc290/=:l54358j41f28?07d=jc;29 41e2=8<7c?8a;35?>o4mk0;6)?8b;613>h6?h0:;65f3dc94?"6?k0?>:5a16c95==b:9j05>=83.:;o4;269m52g=9j10e9>8:18'52d=<;=0b<9n:0f8?l27>3:1(<9m:504?k70i3;n76g;0483>!70j3>9;6`>7`82b>=n;oo1<7*>7c8762=i9>k1>=54i2d0>5<#9>h18?94n05b>77<3`9n47>5$05a>1403g;tH2a7?!7?i39h96a>7983>>{el10;6<4?:1yK7f2<,82j6i64oe594?=zj=>1<7o::00g>40>sA9h86T;5;35d<>2k09m7<8:3:96<8`871g=#<10?945+4d871d=#9>>1=:94i554>5<#9>h18:64n05b>5=5<#9>h18:64n05b>7=54i550>5<#9>h18:64n05b>1=5<#9>h18:64n05b>3=5<#9>h18:64n05b>==5<5<5<#9>h18;j4n05b>5=5<#9>h18;j4n05b>7=54i54;>5<#9>h18;j4n05b>1=5<#9>h18;j4n05b>3=6=4+16`903b5<#9>h18;j4n05b>==5<5<#9>h185=4n05b>5=5<#9>h185=4n05b>7=54i55f>5<#9>h185=4n05b>1=5<#9>h185=4n05b>3=5<#9>h185=4n05b>==5<5<#9>h1?h;4n05b>4=5<#9>h1?h;4n05b>6=5<#9>h1?h;4n05b>0=5<#9>h1?h;4n05b>2=5<5<#9>h185k4n05b>5=5<#9>h185k4n05b>7=54i5::>5<#9>h185k4n05b>1=5<#9>h185k4n05b>3=5<#9>h185k4n05b>==5<5<5<#9>h18464n05b>4=6=4+16`90<>5<#9>h18464n05b>6=5<#9>h18464n05b>0=5<#9>h18464n05b>2=5<#9>h18l<4n05b>5=5<#9>h18l<4n05b>7=54i5;g>5<#9>h18l<4n05b>1=5<#9>h18l<4n05b>3=5<#9>h18l<4n05b>==5<5<5<5<#9>h189o4n05b>5=5<#9>h189o4n05b>7=54o516>5<#9>h189o4n05b>1=5<#9>h189o4n05b>3=5<#9>h189o4n05b>==;6=4+16`901g5<#9>h189o4n05b>d=5<#9>h189o4n05b>f=5<#9>h189o4n05b>`=5<#9>h189o4n05b>46<3f>8<7>5$05a>12f3g;;:k741<72-;4?:%34f?25?2d:;l4>;:k747<72-;1e=:o51098m6`7290/=:l54358j41f28807d=jf;29 41e2=8<7c?8a;30?>o4ml0;6)?8b;613>h6?h0:865f3df94?"6?k0?>:5a16c950=8:9j7`?=83.:;o4;269m52g=9010e9>n:18'52d=<;=0b<9n:0c8?l2713:1(<9m:504?k70i3;i76g;0983>!70j3>9;6`>7`82g>=n<9=1<7*>7c8762=i9>k1=i54i525>5<#9>h18?94n05b>4c<3`>;97>5$05a>1403g;1e=:o52098m6c?290/=:l54358j41f2;807d=j7;29 41e2=8<7c?8a;00?>o4l00;66a;ae83>!70j3>jj6`>7`83?>i3ij0;6)?8b;6bb>h6?h0:76a;ac83>!70j3>jj6`>7`81?>i3ih0;6)?8b;6bb>h6?h0876a;a883>!70j3>jj6`>7`87?>i3i10;6)?8b;6bb>h6?h0>76a;a683>!70j3>jj6`>7`85?>i3i?0;6)?8b;6bb>h6?h0<76a;a483>!70j3>jj6`>7`8;?>i3i=0;6)?8b;6bb>h6?h0276a;c383>!70j3>h?6`>7`83?>i3k80;6)?8b;6`7>h6?h0:76a;c183>!70j3>h?6`>7`81?>i3jo0;6)?8b;6`7>h6?h0876a;bd83>!70j3>h?6`>7`87?>i3jm0;6)?8b;6`7>h6?h0>76a;bb83>!70j3>h?6`>7`85?>i3jk0;6)?8b;6`7>h6?h0<76a;b`83>!70j3>h?6`>7`8;?>i3>;0;66g;5e83>>i4m?0;66g;a283>>i3j?0;66l4<729q/=5o5d99K7f`<@:i?7bj8:188yg5c93:1=7>50z&21<729q/=5o5d59K7f`<@:i?7)k::79j03<722c><7>5;h34g?6=3f;5;|`052<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n3:187>50z&25;h6`>5<?54c78 `3=:2c?:7>5;h73>5<8`8g5>N4ko1C?n:4H518 4562=h>7)k::39j03<722c><7>5;n34`?6=3th8n=4?:283>5}#91k1h<5G3bd8L6e33A>87)?<1;6a1>"b=380e9850;9j15<722e:;i4?::a7gg=83?1<7>t$0:b>a3<@:im7E=l4:J77>"6;80?n85f4783>>o3?3:17d;?:188m41d2900c<9k:188yg5ej3:1?7>50z&27=n0<729q/=5o5d49K7f`<@:i?7E:<;%305?2e=2c?:7>5;h64>5<n1<75rb2`:>5<3290;w)?7a;f7?M5dn2B8o95+e485?l212900e8>50;9j52e=831d=:j50;9~f6d?290?6=4?{%3;e?b33A9hj6F=6=44i4294?=n9>i1<75`16f94?=zj:h<6=4;:183!7?i3n?7E=lf:J0g1=#m<0=7d:9:188m06=831b=:m50;9l52b=831vn>m=:187>5<7s-;3m7j;;I1`b>N4k=1/i849;h65>5<n1<75rb2a2>5<3290;w)?7a;f7?M5dn2B8o95+e485?l212900e8>50;9j52e=831d=:j50;9~f4gc290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e9hi1<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th:mo4?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo?na;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb0c:>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a5d>=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd6i>0;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<54;294~"60h0o>6F6g;6;29?l2d2900e8>50;9l52b=831vn5<7s-;3m7j=;I1`b>N4k=1/i84=;h65>5<>i6?m0;66sm20694?2=83:p(<6n:e08L6ea3A9h86*j5;08m10=831b8n4?::k64?6=3f;5;|`156<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n50z&25;h6`>5<<>50;694?6|,82j6i<4H2ae?M5d<2.n97<4i5494?=n1<729q/=5o5d39K7f`<@:i?7)k::39j03<722c?o7>5;h73>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f76c290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e:9i1<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th99n4?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo<:b;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb37b>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a60?=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd5=10;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<;7>54;294~"60h0o>6F6g;6;29?l2d2900e8>50;9l52b=831vn?;9:187>5<7s-;3m7j=;I1`b>N4k=1/i84=;h65>5<>i6?m0;66sm24794?2=83:p(<6n:e08L6ea3A9h86*j5;08m10=831b8n4?::k64?6=3f;5;|`111<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n50z&25;h6`>5<f783>1<729q/=5o5d39K7f`<@:i?7)k::39j03<722c?o7>5;h73>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f4`3290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e9o91<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th:j?4?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo?i1;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb36b>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb36:>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb36;>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb364>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb365>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb366>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb367>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb360>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb361>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g4>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g5>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g6>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g7>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g0>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g1>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g2>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g3>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0fe>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0ff>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0f0>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a5a4=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd6l80;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<54;294~"60h0o>6F6g;6;29?l2d2900e8>50;9l52b=831vn5<7s-;3m7j=;I1`b>N4k=1/i84=;h65>5<>i6?m0;66sm1bg94?2=83:p(<6n:e08L6ea3A9h86*j5;08m10=831b8n4?::k64?6=3f;5;|`2ga<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n50z&25;h6`>5<1<729q/=5o5d39K7f`<@:i?7)k::39j03<722c?o7>5;h73>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f751290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e::?1<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th9?94?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo<<3;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb311>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a667=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd5;90;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a6a1=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo0(h;52:k72?6=3`><6=44i5a94?=n=90;66a>7e83>>{e:m>1<7;50;2x 4>f2m90D>mi;I1`0>"b=380e9850;9j02<722c?o7>5;h73>5<8`8g7>N4ko1C?n:4$d796>o3>3:17d:8:188m1e=831b9=4?::m23a<722wi>i=50;794?6|,82j6i=4H2ae?M5d<2.n97<4i5494?=n<>0;66g;c;29?l372900c<9k:188yg4c:3:197>50z&25;h64>5<>i6?m0;66sm2e294?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o96F50;9j52e=831d=:j50;9~f7b6290>6=4?{%3;e?b43A9hj6F=6=44i5594?=n6<729q/=5o53bg8L6ea3A9h86g;9;29?l7503:17b?86;29?xd5k;0;6>4?:1y'5=g=;jo0D>mi;I1`0>o313:17d?=8;29?j70>3:17pl=b983>1<729q/=5o51208L6ea3A9h86g;9;29?l352900e<6<:188k4112900qo3:187>50z&22900e8<50;9j5=5=831d=:850;9~f7e729086=4?{%3;e?5dm2B8ok5G3b68m1?=831b=?650;9l520=831vn?l;:187>5<7s-;3m7?<2:J0gc=O;j>0e9750;9j17<722c:4>4?::m233<722wi>oh50;194?6|,82j6>mj;I1`b>N4k=1b844?::k26=<722e:;;4?::a6g4=83>1<7>t$0:b>4553A9hj6F>7>5;h3;7?6=3f;<:7>5;|`1f`<72:0;6=u+19c97fc<@:im7E=l4:k7=?6=3`;947>5;n342?6=3th9n=4?:583>5}#91k1=><4H2ae?M5d<2c?57>5;h71>5<5<53;294~"60h08oh5G3bd8L6e33`>26=44i00;>5<8`8277=O;jl0D>m;;h6:>5<<1<75rb3``>5<4290;w)?7a;1`a>N4ko1C?n:4i5;94?=n9;21<75`16494?=zj;kh6=4;:183!7?i3;8>6F>o60:0;66a>7783>>{e:kh1<7=50;2x 4>f2:in7E=lf:J0g1=n<00;66g>2983>>i6??0;66sm2`c94?2=83:p(<6n:011?M5dn2B8o95f4883>>o2:3:17d?73;29?j70>3:17pl=b`83>6<729q/=5o53bg8L6ea3A9h86g;9;29?l7503:17b?86;29?xd5i10;694?:1y'5=g=9:80D>mi;I1`0>o313:17d;=:188m4>42900c<99:188yg4bk3:197>50z&25;h64>5<>i6?m0;66sm2d`94?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a6`?=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo0(h;52:k72?6=3`><6=44i5a94?=n=90;66a>7e83>>{e:l=1<7;50;2x 4>f2m90D>mi;I1`0>"b=380e9850;9j02<722c?o7>5;h73>5<8`8g7>N4ko1C?n:4$d796>o3>3:17d:8:188m1e=831b9=4?::m23a<722wi>h;50;794?6|,82j6i=4H2ae?M5d<2.n97<4i5494?=n<>0;66g;c;29?l372900c<9k:188yg4b<3:197>50z&25;h64>5<>i6?m0;66sm2d194?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<54;294~"60h0o86F0(h;56:k72?6=3`?;6=44i05`>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f70>290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e:1o1<7:50;2x 4>f28997E=lf:J0g1=n<00;66g:2;29?l7?;3:17b?86;29?xd50m0;694?:1y'5=g=9:80D>mi;I1`0>o313:17d;=:188m4>42900c<99:188yg4?k3:187>50z&22900e8<50;9j5=5=831d=:850;9~f7>e290?6=4?{%3;e?74:2B8ok5G3b68m1?=831b9?4?::k2<6<722e:;;4?::a6=g=83>1<7>t$0:b>4553A9hj6F>7>5;h3;7?6=3f;<:7>5;|`13g<72=0;6=u+19c9564<@:im7E=l4:k7=?6=3`?96=44i0:0>5<8`8277=O;jl0D>m;;h6:>5<<1<75rb35:>5<3290;w)?7a;306>N4ko1C?n:4i5;94?=n=;0;66g>8283>>i6??0;66sm26:94?2=83:p(<6n:011?M5dn2B8o95f4883>>o2:3:17d?73;29?j70>3:17pl=7683>1<729q/=5o51208L6ea3A9h86g;9;29?l352900e<6<:188k4112900qo=?9;290?6=8r.:4l4>339K7f`<@:i?7d:6:188m04=831b=5=50;9l520=831vn>>7:187>5<7s-;3m7?<2:J0gc=O;j>0e9750;9j17<722c:4>4?::m233<722wi?=950;694?6|,82j6<==;I1`b>N4k=1b844?::k66?6=3`;3?7>5;n342?6=3th8<;4?:583>5}#91k1=><4H2ae?M5d<2c?57>5;h71>5<5<54;294~"60h0:??5G3bd8L6e33`>26=44i4094?=n9191<75`16494?=zj;l=6=4;:183!7?i3;8>6F>o60:0;66a>7783>>{e:o?1<7:50;2x 4>f28997E=lf:J0g1=n<00;66g:2;29?l7?;3:17b?86;29?xd5n=0;694?:1y'5=g=9:80D>mi;I1`0>o313:17d;=:188m4>42900c<99:188yg4a;3:187>50z&22900e8<50;9j5=5=831d=:850;9~f7`5290?6=4?{%3;e?74:2B8ok5G3b68m1?=831b9?4?::k2<6<722e:;;4?::a70d=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo=:9;291?6=8r.:4l4k5:J0gc=O;j>0(h;56:k72?6=3`><6=44i4294?=n9>i1<75`16f94?=zj:?j6=4::183!7?i3n87E=lf:J0g1=#m<097d:9:188m11=831b8n4?::k64?6=3f;5;|`01f<72<0;6=u+19c9`6=O;jl0D>m;;%g6>7=n50;9l52b=831vn>;k:186>5<7s-;3m7j<;I1`b>N4k=1/i84=;h65>5<>o283:17b?8d;29?xd4=l0;684?:1y'5=g=l:1C?nh4H2a7?!c22;1b8;4?::k73?6=3`>h6=44i4294?=h9>n1<75rb27e>5<2290;w)?7a;f0?M5dn2B8o95+e481?l212900e9950;9j0f<722c><7>5;n34`?6=3th8:=4?:483>5}#91k1h>5G3bd8L6e33-o>6?5f4783>>o3?3:17d:l:188m06=831d=:j50;9~f606290>6=4?{%3;e?b43A9hj6F=6=44i5594?=n0<729q/=5o5d29K7f`<@:i?7)k::39j03<722c?;7>5;h6`>5<n6=4::183!7?i3n87E=lf:J0g1=#m<097d:9:188m11=831b8n4?::k64?6=3f;5;|`00f<72<0;6=u+19c9`6=O;jl0D>m;;%g6>7=n50;9l52b=831vn>:m:186>5<7s-;3m7j<;I1`b>N4k=1/i84=;h65>5<>o283:17b?8d;29?xd4h6=44i4294?=h9>n1<75rb26b>5<2290;w)?7a;f0?M5dn2B8o95+e481?l212900e9950;9j0f<722c><7>5;n34`?6=3th8844?:483>5}#91k1h>5G3bd8L6e33-o>6?5f4783>>o3?3:17d:l:188m06=831d=:j50;9~f620290>6=4?{%3;e?b43A9hj6F=6=44i5594?=n0<729q/=5o5d49K7f`<@:i?7)k::79j03<722c?;7>5;h73>5<5<53;294~"60h08oh5G3bd8L6e33`>26=44i00;>5<8`80g`=O;jl0D>m;;h6:>5<5<7>54;294~"60h0:??5G3bd8L6e33`>26=44i4094?=n9191<75`16494?=zj:9j6=4<:183!7?i39hi6F<1<75rb213>5<3290;w)?7a;306>N4ko1C?n:4i5;94?=n=;0;66g>8283>>i6??0;66sm32;94?5=83:p(<6n:2af?M5dn2B8o95f4883>>o6:10;66a>7783>>{e;;o1<7:50;2x 4>f28997E=lf:J0g1=n<00;66g:2;29?l7?;3:17b?86;29?xd4;10;6>4?:1y'5=g=;jo0D>mi;I1`0>o313:17d?=8;29?j70>3:17pl<2b83>1<729q/=5o51208L6ea3A9h86g;9;29?l352900e<6<:188k4112900qo=<7;297?6=8r.:4l450z&22900e8<50;9j5=5=831d=:850;9~f65129086=4?{%3;e?5dm2B8ok5G3b68m1?=831b=?650;9l520=831vn><7:187>5<7s-;3m7?<2:J0gc=O;j>0e9750;9j17<722c:4>4?::m233<722wi?>;50;194?6|,82j6>mj;I1`b>N4k=1b844?::k26=<722e:;;4?::a770=83>1<7>t$0:b>4553A9hj6F>7>5;h3;7?6=3f;<:7>5;|`071<72:0;6=u+19c97fc<@:im7E=l4:k7=?6=3`;947>5;n342?6=3th8>94?:583>5}#91k1=><4H2ae?M5d<2c?57>5;h71>5<5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a724=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo=81;291?6=8r.:4l4k3:J0gc=O;j>0(h;52:k72?6=3`><6=44i5a94?=n=90;66a>7e83>>{e;>:1<7;50;2x 4>f2m90D>mi;I1`0>"b=380e9850;9j02<722c?o7>5;h73>5<8`8g7>N4ko1C?n:4$d796>o3>3:17d:8:188m1e=831b9=4?::m23a<722wi?;k50;794?6|,82j6i=4H2ae?M5d<2.n97<4i5494?=n<>0;66g;c;29?l372900c<9k:188yg51l3:197>50z&25;h64>5<>i6?m0;66sm37a94?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a7<6=83?1<7>t$0:b>a0<@:im7E=l4:&f1?4>o283:17d?8e;29?j70l3:17pl<8g83>0<729q/=5o5d79K7f`<@:i?7)k::39j03<722c?;7>5;h73>5<5<55;294~"60h0o:6F6g;6;29?l202900e8>50;9j52c=831d=:j50;9~f6>c290>6=4?{%3;e?b13A9hj6F=6=44i5594?=n=90;66g>7d83>>i6?m0;66sm39a94?3=83:p(<6n:e48L6ea3A9h86*j5;08m10=831b8:4?::k64?6=3`;5;n34`?6=3th84o4?:483>5}#91k1h;5G3bd8L6e33-o>6?5f4783>>o3?3:17d;?:188m41b2900c<9k:188yg5?i3:197>50z&22B8ok5G3b68 `3=:2c?:7>5;h64>5<n1<75rb2::>5<2290;w)?7a;f5?M5dn2B8o95+e481?l212900e9950;9j15<722c:;h4?::m23a<722wi?4650;794?6|,82j6i84H2ae?M5d<2.n97<4i5494?=n<>0;66g:0;29?l70m3:17b?8d;29?xd41>0;684?:1y'5=g=l?1C?nh4H2a7?!c22;1b8;4?::k73?6=3`?;6=44i05f>5<8`8g2>N4ko1C?n:4$d796>o3>3:17d:8:188m06=831b=:k50;9l52b=831vn>7::186>5<7s-;3m7j9;I1`b>N4k=1/i84=;h65>5<>o6?l0;66a>7e83>>{e;0>1<7;50;2x 4>f2m<0D>mi;I1`0>"b=380e9850;9j02<722c><7>5;h34a?6=3f;5;|`0=6<72<0;6=u+19c9`3=O;jl0D>m;;%g6>7=n0(h;52:k72?6=3`><6=44i4294?=n9>o1<75`16f94?=zj:3:6=4::183!7?i3n=7E=lf:J0g1=#m<097d:9:188m11=831b9=4?::k23`<722e:;i4?::a7=>=83?1<7>t$0:b>a0<@:im7E=l4:&f1?4>o283:17d?8e;29?j70l3:17pl<8683>0<729q/=5o5d79K7f`<@:i?7)k::39j03<722c?;7>5;h73>5<5<53;294~"60h0:>i5G3bd8L6e33-o>6<74ie;94?=nlh0;66a>7783>>{e;k91<7=50;2x 4>f288o7E=lf:J0g1=#m<0:56gk9;29?lbf2900c<99:188yg46>3:1?7>50z&2t$0:b>44c3A9hj6F5;hfb>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm18c94?5=83:p(<6n:00g?M5dn2B8o95+e482`>oc13:17djn:188k4112900qo?69;297?6=8r.:4l4>2e9K7f`<@:i?7)k::0f8ma?=831bhl4?::m233<722wi=4650;194?6|,82j6<N4k=1/i84>d:kg=?6=3`nj6=44o055>5<53;294~"60h0:>i5G3bd8L6e33-o>67783>>{e90<1<7=50;2x 4>f288o7E=lf:J0g1=#m<0:h6gk9;29?lbf2900c<99:188yg7>=3:1?7>50z&2t$0:b>44c3A9hj6F5;hfb>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm18094?5=83:p(<6n:00g?M5dn2B8o95+e482`>oc13:17djn:188k4112900qo?61;297?6=8r.:4l4>2e9K7f`<@:i?7)k::0f8ma?=831bhl4?::m233<722wi=4>50;194?6|,82j6<N4k=1/i84>d:kg=?6=3`nj6=44o055>5<53;294~"60h0:>i5G3bd8L6e33-o>67783>>{e91o1<7=50;2x 4>f288o7E=lf:J0g1=#m<0:h6gk9;29?lbf2900c<99:188yg7?l3:1?7>50z&2t$0:b>44c3A9hj6F5;hfb>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm27g94?2=83:p(<6n:00f?M5dn2B8o95+e48``>oc13:17djn:188mad=831d=:850;9~f77?290?6=4?{%3;e?75m2B8ok5G3b68 `3=:=1bh44?::kge?6=3`ni6=44o055>5<54;294~"60h0:>h5G3bd8L6e33-o>6?:4ie;94?=nlh0;66gkb;29?j70>3:17pl=6b83>0<729q/=5o513d8L6ea3A9h86*j5;3b?lb>2900eio50;9j`g<722coo7>5;n342?6=3th9=l4?:483>5}#91k1=?h4H2ae?M5d<2.n97?i;hf:>5<>ock3:17b?86;29?xd6j:0;684?:1y'5=g=9;l0D>mi;I1`0>"b=3;m7dj6:188mag=831bho4?::kgg?6=3f;<:7>5;|`137<72<0;6=u+19c957`<@:im7E=l4:&f1?463`n26=44iec94?=nlk0;66gkc;29?j70>3:17pl<1`83>6<729q/=5o513f8L6ea3A9h86*j5;33?lb>2900eio50;9l520=831vn?89:187>5<7s-;3m7?=e:J0gc=O;j>0(h;52b9j`<<722com7>5;hfa>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm1c794?5=83:p(<6n:00g?M5dn2B8o95+e482`>oc13:17djn:188k4112900qo<>e;290?6=8r.:4l4>2d9K7f`<@:i?7)k::368ma?=831bhl4?::kgf?6=3f;<:7>5;|`2f2<72=0;6=u+19c957c<@:im7E=l4:&f1?433`n26=44iec94?=nlk0;66a>7783>>{e:;:1<7;50;2x 4>f288m7E=lf:J0g1=#m<0:j6gk9;29?lbf2900eil50;9j`f<722e:;;4?::a5g?=83?1<7>t$0:b>44a3A9hj6F5;hfb>5<>i6??0;66sm3`f94?2=83:p(<6n:00f?M5dn2B8o95+e4865>oc13:17djn:188mad=831d=:850;9~f702290>6=4?{%3;e?75n2B8ok5G3b68 `3=9;1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb230>5<4290;w)?7a;31`>N4ko1C?n:4$d7967=nl00;66gka;29?j70>3:17pl<0183>6<729q/=5o513f8L6ea3A9h86*j5;01?lb>2900eio50;9l520=831vn?77:186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<6=4::183!7?i3;9j6F>5fd883>>oci3:17djm:188mae=831d=:850;9~f675290>6=4?{%3;e?75n2B8ok5G3b68 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb3de>5<2290;w)?7a;31b>N4ko1C?n:4$d7966=nl00;66gka;29?lbe2900eim50;9l520=831vn?78:186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<=5fd883>>oci3:17djm:188mae=831d=:850;9~f676290>6=4?{%3;e?75n2B8ok5G3b68 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb3df>5<2290;w)?7a;31b>N4ko1C?n:4$d7966=nl00;66gka;29?lbe2900eim50;9l520=831vn?79:186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<=5fd883>>oci3:17djm:188mae=831d=:850;9~f677290>6=4?{%3;e?75n2B8ok5G3b68 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb3dg>5<2290;w)?7a;31b>N4ko1C?n:4$d7966=nl00;66gka;29?lbe2900eim50;9l520=831vn?7::186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<=5fd883>>oci3:17djm:188mae=831d=:850;9~f7?c290?6=4?{%3;e?75m2B8ok5G3b68 `3=ko1bh44?::kge?6=3`ni6=44o055>5<54;294~"60h0:>h5G3bd8L6e33-o>63:17pl=8083>1<729q/=5o513g8L6ea3A9h86*j5;32?lb>2900eio50;9j`g<722e:;;4?::a74?=83?1<7>t$0:b>44a3A9hj6F5;hfb>5<>i6??0;66sm31d94?3=83:p(<6n:00e?M5dn2B8o95+e4817>oc13:17djn:188mad=831bhn4?::m233<722wi>km50;794?6|,82j6<N4k=1/i84=3:kg=?6=3`nj6=44ie`94?=nlj0;66a>7783>>{e:;91<7=50;2x 4>f288o7E=lf:J0g1=#m<09>6gk9;29?lbf2900c<99:188yg7ek3:1?7>50z&21<7>t$0:b>44b3A9hj6F5;hfb>5<>oci3:17djm:188k4112900qo2b9K7f`<@:i?7)k::028ma?=831d=:850;9~f7d029096=4?{%3;e?75k2B8ok5G3b68 `3=991bh44?::m233<722wi>o;50;094?6|,82j6<N4k=1/i84>0:kg=?6=3f;<:7>5;|`1f6<72;0;6=u+19c957e<@:im7E=l4:&f1?773`n26=44o055>5<52;294~"60h0:>n5G3bd8L6e33-o>6<>4ie;94?=h9><1<75rb3ce>5<5290;w)?7a;31g>N4ko1C?n:4$d7955=nl00;66a>7783>>{e:hn1<7<50;2x 4>f288h7E=lf:J0g1=#m<0:<6gk9;29?j70>3:17pl=ac83>7<729q/=5o513a8L6ea3A9h86*j5;33?lb>2900c<99:188yg4f13:1>7>50z&2=<:181>5<7s-;3m7?=c:J0gc=O;j>0(h;5119j`<<722e:;;4?::a767=8381<7>t$0:b>44d3A9hj6F5;n342?6=3th8>k4?:383>5}#91k1=?m4H2ae?M5d<2.n97??;hf:>5<8`826f=O;jl0D>m;;%g6>46>i6??0;66sm33;94?4=83:p(<6n:00`?M5dn2B8o95+e4824>oc13:17b?86;29?xd4:>0;6?4?:1y'5=g=9;i0D>mi;I1`0>"b=3;;7dj6:188k4112900qo==5;296?6=8r.:4l4>2b9K7f`<@:i?7)k::028ma?=831d=:850;9~f7e329096=4?{%3;e?75k2B8ok5G3b68 `3=991bh44?::m233<722wi?>j50;094?6|,82j6<N4k=1/i84>0:kg=?6=3f;<:7>5;|`167<72?0;6=u+19c9566<@:im7E=l4:&f1?423`n26=44iec94?=nlk0;66gkc;29?j7513:17b?86;29?xd6jk0;6;4?:1y'5=g=9::0D>mi;I1`0>"b=38>7dj6:188mag=831bho4?::kgg?6=3f;957>5;n342?6=3th8mo4?:9594?6|@:i?7)?7a;34b>\3=3kp47<9:e821?7428h1i7?9:0695f0=#m80>7)k=:49'a6<23-ii6i>4$d491>"b?3?0(h655:&f=?3<,lk196*jb;78 `e==2.nh7;4$dg91>"bn3?0(k>55:&e5?3<,o8196*i3;78 c2==2.m97;4$g491>"a?3?0(k655:&e=?3<,ok196*ib;78 ce==2.mh7;4$gg91>"an3?0(<>?:49'557==2.:"68?0>7)??7;78 46?2<1/==755:&24d<23-;;n7;4$02`>0=#99n196*>0d86?!77n3?0("69?0>7)?>7;78 47?2<1/=<755:&25d<23-;:n7;4$03`>0=#98n196*>1d86?!76n3?0(<?4:;%317?3<,88?685+13791>"6:?087)?74;61?!c32<1/=5853:&0g<<6091/?no51928j4n0:2>4444=831b=5650;9j<0<72-;k1<65f3483>!70j39=7c?8a;38?l53290/=:l5379m52g=:21b?>4?:%34f?513g;5<#9>h1?;5a16c90>=n;80;6)?8b;15?k70i3?07d=?:18'52d=;?1e=:o56:9j6c<72-;k1465f2e83>!70j39=7c?8a;;8?l26290/=:l5419m52g=821b?k4?:%34f?273g;5<#9>h18=5a16c96>=n;m0;6)?8b;63?k70i3907d=l:18'52d=<91e=:o54:9j7g<72-;k1:65f3883>!70j3>;7c?8a;58?l5?290/=:l5419m52g=021b;i4?:%34f?1d3g;4;h5a>5<#9>h1;n5a16c95>=n?00;6)?8b;5`?k70i3807d97:18'52d=?j1e=:o53:9j32<72-;k1965f7483>!70j3=h7c?8a;48?l13290/=:l57b9m52g=?21b;>4?:%34f?1d3g;5<#9>h1;n5a16c9=>=n?80;6)?8b;5`?k70i3k07d9?:18'52d=?j1e=:o5b:9j2`<72-;k1h65f6b83>!70j3=h7c?8a;g8?l0e290/=:l57b9m52g=n21b:l4?:%34f?1d3g;47<3`<36=4+16`93f=i9>k1=?54i7594?"6?k07`827>=n>?0;6)?8b;5`?k70i3;?76g95;29 41e2>i0b<9n:078?l>3290/=:l57b9m52g=9?10e5=50;&23g<0k2d:;l4>7:9j<7<72-;5$05a>2e5<#9>h1;n5a16c95d=l1<7*>7c84g>h6?h0:n65f7d83>!70j3=h7c?8a;3`?>o0i3:1(<9m:6a8j41f28n07d8i:18'52d=?j1e=:o51d98m32=83.:;o48c:l23d<6n21b4n4?:%34f?>e3g;4;h:b>5<#9>h14o5a16c95>=n000;6)?8b;:a?k70i3807d67:18'52d=0k1e=:o53:9l=1<72-;k1=65`9083>!70j3387c?8a;08?j?7290/=:l5929m52g=;21d4k4?:%34f??43g;5<#9>h15>5a16c91>=h1m0;6)?8b;;0?k70i3<07b7l:18'52d=1:1e=:o57:9l=g<72-;<3f3j6=4+16`9=6=i9>k1565`9883>!70j3387c?8a;c8?j??290/=:l5929m52g=j21d5:4?:%34f??43g;5<#9>h15>5a16c9`>=h1<0;6)?8b;;0?k70i3o07b6k:18'52d=1:1e=:o5f:9lg6<72-;k1=65fc`83>>o6000;66g>o2i3:1(<9m:4;8j41f2910e8650;&23g<212d:;l4>;:k63?6=,8=i6874n05b>7=7c86=>h6?h0876g:5;29 41e2<30b<9n:598m02=83.:;o4:9:l23d<232c=?7>5$05a>0?56`>7`84?>o193:1(<9m:4;8j41f2110e;>50;&23g<212d:;l46;:k6b?6=,8=i6874n05b>d=7c86=>h6?h0i76g:d;29 41e2<30b<9n:b98m0e=83.:;o4:9:l23dn7>5$05a>0?56`>7`8e?>o??3:1(<9m:948j41f2910co650;&23g4=1<7*>7c8a3>h6?h0976am3;29 41e2k=0b<9n:298kg4=83.:;o4m7:l23d<332ei=7>5$05a>g17`85?>ifn3:1(<9m:c58j41f2>10clk50;&23g<=7c8a3>h6?h0j76anb;29 41e2k=0b<9n:c98kd?=83.:;o4m7:l23d5$05a>g17`8f?>if>3:1(<9m:c58j41f2o10cl;50;&23g0:9le1<72-;5$05a>g15<#9>h1n:5a16c956=7c8a3>h6?h0:865`a183>!70j3h<7c?8a;36?>ien3:1(<9m:c58j41f28<07blj:18'52d=j>1e=:o51698kgb=83.:;o4m7:l23d<6021dnn4?:%34f?d03g;4g<3fhj6=4+16`9f2=i9>k1=o54oc;94?"6?k0i;6`>7`82g>=hj<0;6)?8b;`4?k70i3;o76ana;29 41e2k=0b<9n:0g8?j?a290/=:l5b69m52g=9o10cn650;&23g4=7c8`3>h6?h0976al4;29 41e2j=0b<9n:298yv2e83:1:vP;b19>63c=lh16>;m5d89>624=lj16>;85dc9>633=l01v9oj:1853~X4m?1U?i64^5`;?[2e>2T8h:5Q4c18Z1063W>i;6P;639]0=2k?;_1gb>X4ll1U?ij4^2f`?[2d:2T?o<5Q4b28Z1da3W>ii6P;be9]0geX3i01U8l64^5c4?[2f>2T?m85Q4`6896b72m=01>ln:42896ga2<:01>l6:42896d?2<:01>l8:42896e52<:01>m>:42897d?2<801?l9:40897d32<801?l=:40897d72<801?oj:40897gd2<801?on:40897g?2<801?6j:40897>c2<801?6l:40897>e2<801?6n:408971e2<801?9n:408971>2<801?97:40897102<801>>6:408966?2<801>>8:40896612<801>>::40897`12<801?h::40897`32<801?h<:40897`52<801>==:40896572<801><9:40896432<801>om:97896ge282270=nb;1`3>;4ik0>m63;4ik0>;63;4ik0>963;4ik0=?63;4ik0==63;4ik0>j63;4ik0>h63;4ik0>n63;4ik03;6s|4c094?5|V=h970=ma;34g>;4io0:;n5rs353>5<5sW>>:63=71823a=z{=i?6=4<{_6`0>;49h0o563<188g=>{t;51k0?:63;4j90?:63;4j00?:63;4j>0?:63=15872>;59:0?:63=13872>;5980?:63=11872>;58o0?:63=0d872>;58m0?:63=0b872>;5=j0?:63=5c872>;5=h0?:63=58872>;5=10?:63=56872>;5=?0?:63=54872>;5==0?:63=4`872>;5<00?:63=49872>;5<>0?:63=47872>;5<<0?:63=45872>;5<:0?:63=43872>;6l:0?:63>d3872>;6l80?:63>d1872>;6ko0?:63>cd872>;6km0?:63>cb872>;6kk0?:63>c`872>;5l10?:63=d6872>;5l<0?:63=d5872>;5l?0?:63=d2872>;5l;0?:63=d1872>;5ko0?:63=d0872>;5mj0?:63=ec872>;5mh0?:63=e8872>;5m10?:63=e6872>;5m?0?:63=e4872>;5m=0?:63=e2872>;5>o0?:63=71872>;5>h0?:63=68872>;4190?:63<8g872>;40l0?:63<8e872>;40j0?:63<8c872>;40h0?:63<88872>;4110?:63<96872>;41?0?:63<94872>;41=0?:63<92872>;41;0?:63<90872>;4010?:63<86872>;4ik0?m6s|30594?4|V=?h70=>7;34`>{t;49>0?:63<17872>;4jj0?:63;4jk0?:63;4k80?:63>ae872>;6ij0?:63>ac872>;6ih0?:63>a8872>;6i10?:63>a6872>;6i?0?:63>a4872>;6n00?:63>f9872>;6n>0?:63>f7872>;6n<0?:63>f5872>;6n:0?:63>f3872>;6n80?:63>e6872>;6m?0?:63>e4872>;6m=0?:63>e2872>;6m;0?:63>e0872>;6m90?:63>dg872>;6ll0?:63=39872>;5;>0?:63=37872>;5;<0?:63=35872>;5;:0?:63=33872>;5;80?:63=31872>;4=k0?:63<58872>;4=h0?:63<5b872>;4=m0?:63<5d872>;4=o0?:63<61872>;4>80?:63<4g872>;4;4;4;4<>0?:63<49872>;4?:0?:63<73872>;4?80?:63<71872>;4>o0?:63<6d872>;4>m0?:63<6b872>;4>k0?:63{t;>n1<783;{t;>h1<7{t;>31<7{t;>=1<7{t;1<1<703;;70=67;34`>{t;1>1<7>3;{t;181<7<3;{t;1:1<7:3;{t;>o1<7{t<;21<77}Y<9901>om:7c8yv25=3:1>vP;039>7dd=>01v9<;:181[279278mo498:p075=838pR9>?;<1bf?003ty?>?4?:3y]7c`<5:ki6;84}r614?6=:rT8ji523``920=z{=;m6=4={_1eg>;4ik0386s|40g94?4|V:li70=nb;:0?xu39m0;6?uQ3gc896ge2120q~:>c;296~X4n016?ll5839~w17e2909wS=i8:?0eg2`:47>52z\0b0=:;hh1;h5rs534>5<5sW9m863{t<8?1<77}Y;o;01>om:768yv26;3:1>vP7dd=0j1v9?=:181[5bn278mo48d:p047=838pR>kj;<1bf?1e3ty?==4?:3y]7`b<5:ki6:74}r63b?6=:rT8in523``93==z{=:n6=4={_1ff>;4ik0<;6s|41f94?4|V:oj70=nb;55?xu38j0;6?uQ3d;896ge2>?0q~:=f;296~X38h16?ll5759~w14b2909wS:?9:?0eg249n7>52z\743=:;hh1;<5rs50b>5<5sW>;963{t<;31<77}Y;o901>om:7f8yv26>3:1>vP7dd=>j1v9>m:181[5b?278mo49b:p563=833p1>j>:05;?84ei3>270270<87;6:?857=3>270270==4;6:?xu51j0;6?u228`915=::0n1=:84}r1a2?6=9hq6>4l516a896d>28=o70h70h70h70h70;5l80?o63=eb87g>;5mk0?o63=e`87g>;5m00?o63=e987g>;5m>0?o63=e787g>;5m<0?o63=e587g>;5m:0?o63=6g823f=::>:1=:m4=34b>1e<5;<269m4}r0:f?6=7e9>63e=lj16?lj5d89>633=lh1v>li:181<~;49>0?o63<1787g>;4k80:;i521`f90f=:9hi18n521``90f=:9hk18n521`;90f=:9h218n521`590f=:9h<18n521`790f=:9o318n521g:90f=:9o=18n521g490f=:9o?18n521g690f=:9o918n521g090f=:9o;18n521d590f=:9l<18n521d790f=:9l>18n521d190f=:9l818n521d390f=:9l:18n521ed90f=:9mo18n5222:90f=:::=18n5222490f=:::?18n5222690f=:::918n5222090f=:::;18n5222290f=z{:;36=4<{<123?37349::7;?;<12=?70>2wx?<850;1x967128=o70=>a;fb?85613nj7p}6}:;k;19=523c2952b<5:km6994}r1a5?6=:r78n<4>7e9>7g5=l01v>lm:18085ek3?;70=ma;64?85ej3;3ty8mk4?:2y>7g6==916?lh516f896d42mk0q~=ma;297~;4jh0:;i523c`915=:;ko1hl5rs2`1>5<3s49i57?8c:?0f=<6?j16?o9516a896d428==7p}70|5:h36<9k;<020?2d348:?7:l;<026?2d348:=7:l;<024?2d348;j7:l;<03a?2d348;h7:l;<03g?2d348>o7:l;<06f?2d348>m7:l;<06=?2d348>47:l;<063?2d348>:7:l;<061?2d348>87:l;<07e?2d348?57:l;<07;40o0:;h5239g952c<5:2o6<9j;<1;g?70m2784o4>7d9>7=g=9>o01>66:05f?85>03;41b349287?8e:?0=6<6?l16?4<516g896?628=n70=78;34a>;40>0:;h523`f9`d=:;hh1=564}r1a`?6=;r78o?4>7b9>7f7=9>i01>lj:055?xu4k90;641c349>n7:l;<16=?70k2789l4;c:?01f<3k2789i4;c:?01`<3k2789k4;c:?025<3k278:<4;c:?00c<3k2788h4;c:?00f<3k2788o4;c:?00a<3k2788l4;c:?00<<3k2788:4;c:?00=<6?j16?:=54b9>724=726=73c=73e=w0?nd;73?87a13;ag8ge>;6j80o563>b28gg>{t9h>1<7=t=0cg>41c349:?7jn;<134?bf3ty:mh4?:3y>5de==916=lh51648yv7f;3:1?v3>ab823a=:;881h4522gd9`<=z{8h;6=4={<3bf?3734;i=7?86:p5d4=839p1ag<58h<6i74=0`:>ae<58hi6im4}r3b5?6=;r7:ml4>7e9>747=l016>kk5d89~w4d32909w0?n9;73?87e=3;<:6s|1`294?5|58k26<9k;<125?be348mi7jm;|q2f3<72;q6=l65519>5g1=9><0q~?6f;297~;6i10:;i523029`<=::on1h45rs0`;>5<5s4;j;7;?;<3a=?70>2wx=4k50;1x94g028=o70=>0;fa?84al3ni7p}>b`83>7}:9h<19=521ca952053z?2e3<6?m16?=h5d89>6ce=l01v{t90i1<7=t=0c6>41c349;j7jm;<0eg?be3ty99>4?:4y>642==916>8m516f897712mk01??7:e;8977f2mi0q~5<5s48:?7;?;<022?70>2wx>=o50;1x977428=o70<68;f:?84?=3nh7p}=1683>7}::8819=5220:952053z?157<6?m16>495d`9>6=2=lh1v??6:18584693?;70<>a;342>;59j0om63=1d8g=>;5:90oo63=238gg>{t:921<7=t=332>41c3482;7j6;<0;0?b>3ty9=o4?:3y>646==916>i:05g?84>>3n270<73;f:?xu59o0;6?u221g915=::;:1=:84}r031?6=;r79

7e9>6<3=lh16>5<5d`9~w7462909w03483>7j6;|q160<72;q6>=m5519>670=9><0q~5<5s48>o7;?;<07e?70l2wx>9>50;0x973e2<:01?:6:05g?xu5=;0;69u224`952b<5;;=6i74=33;>ag<5;;j6il4}r00b?6=:r799l4:0:?10=<6?m1v?;>:180842i3;;59h0om6s|22g94?4|5;?268>4=364>41c3ty99=4?:3y>60?=9>n01??n:e;8yv44l3:1>v3=59864>;55<2s48>47?8d:?15f?4kb:p66e=838p1?;8:428972228=o7p}=4d83>1}::<=1=:j4=33f>ad<5;8;6io4=301>ag52z?113<28279894>7e9~w72c2908w0<:6;34`>;5:90o563=238g=>{t::k1<706<5;>86<9k;|q10f<72:q6>8;516f897442m301?<9:ec8yv4413:1>v3=55864>;5<;0:;i5rs36a>5<5s48>87?8d:?1632<:017e9>5d`=l016=o?5d`9>5g5=lk1v{t9lo1<7=t=0d4>41c34;i=7jm;<3a7?bf3ty:hl4?:3y>5c0==916=h:516f8yv7bl3:1>v3>f7823a=:9k91h45rs0f:>5<5s4;m97;?;<3f7?70l2wx=hm50;7x94`228=o70?m5;f:?87e?3nj70?m9;fa?87ej3ni7p}>d983>7}:9o>19=521d0952b54z?2b1<6?m16=o95dc9>5g?=lh16=ol5d`9~w4b02909w0?i3;73?87b93;34;in7j6;|q2`3<72;q6=k<5519>5`6=9>n0q~?j9;297~;6n;0:;i521ca9`<=:9kl1hl5rs0f6>5<5s4;m=7;?;<3gb?70l2wx=h650;0x94`628=o70?mf;f:?xu5:o0;6?u225c915=:::21=:j4}r01a?6=:r79844:0:?172<6?m1v?{t:;i1<706<5;9>6<9k;|q16g<72;q6>985519>662=9>n0q~<=a;296~;5<<0><63=32823a=z{;826=4={<070?373488>7?8d:p67>=838p1?:<:428975628=o7p}=2683>7}::=819=52222952b52z?2a2<2827:h>4>7e9~w4e?2909w0?j6;73?87c:3;68>4=0f2>41c3ty:o;4?:3y>5`2==916=i>516f8yv7d=3:1>v3>e2864>;6ko0:;i5rs0a7>5<5s4;n>7;?;<3`a?70l2wx=n=50;0x94c62<:01{t9m>1<7?t=0ff>41c3ty9i?4?:4y>5a5==916>hm516f894>e2m301?6::e;896ge2:=0q~?ia;296~;6l;0><63>8c8233=z{8li6=4={<3g5?3734;3o7?86:p5ce=838p1c28==7p}>fe83>7}:9jl19=5219g952052z?2g`<2827:4k4>779~w4`a2909w0?ld;73?87>83;<:6s|21294?4|58ih68>4=0;2>4113ty9<<4?:3y>5fd==916=4<51648yv47:3:1>v3>c`864>;61:0:;;5rs24b>5<3s48847;?;<147?70l27:594k9:?0eg<392wx>8j50;0x97502<:01<7;:055?xu5=l0;6?u2224915=:90?1=:84}r06b?6=:r79?84:0:?2=3<6??1v?8?:181844<3?;70?67;342>{t:?;1<706<58336<99;|q127<72;q6>><5519>5<0q~<93;296~;5;80><63>9`8233=z{;<70<70<70<70<70<70<70<70<70<70=nd;fa?841=3;<:63=9e8g=>{t:h=1<706<5;i86<99;|q1g`<72=q6>i6516f897cd2<:01?77:ea897e32m30q~0><63=c38233=z{;io6=4;{<0g3?70l279io4:0:?1==1}::m?1=:j4=3g:>06<5;3<6il4=3`6>a?52z?1`1<28279nk4>779~w7ef290?w0;5m10><63=978gg>;5j:0o56s|2`794?4|5;n=68>4=3a2>4113ty9on4?:5y>6a0=9>n01?kn:42897?02mi01?l8:e;8yv4f:3:1>v3=d2864>;5jl0:;;5rs3a:>5<3s48o?7?8d:?1a2<282795;4kb:?1f4l?50;0x97b52<:01?lk:055?xu5k10;69u22e0952b<5;o=68>4=3;6>ae<5;km6i74}r0:b?6=:r79h=4:0:?1fg<6??1v?m9:18784c83;;51=0on63=ac8g=>{t:0o1<706<5;hj6<99;|q1g0<72=q6>nh516f897c42<:01?7;:ec897g>2m30q~<63=bb8233=z{;i<6=4;{<0g5?70l279i84:0:?1=0=838p1?m<:5;897d?28==7p}=c583>7}::j91=?64=3a7>4113ty9n;4?:2y>6f4=<016>o65489>6g0=9><0q~5522c:95=5<5;h26<99;|q1f1<72:q6>n?5489>6g0=<016>o:51648yv4e?3:1?v3=c0826==::k<1=5=4=3`4>4113ty9n?4?:2y>6f6=<016>o:5489>6g4=9><0q~5522c695=5<5;h>6<99;|q1f5<72:q6>oh5489>6g4=<016>o>51648yv4e;3:1?v3=bg826==::k81=5=4=3`0>4113ty9mh4?:2y>6gc=<016>o>5489>6dc=9><0q~5522c295=5<5;h:6<99;|q1ef<72:q6>oj5489>6dc=<016>lm51648yv4fn3:1?v3=be826==::ho1=5=4=3ce>4113ty9ml4?:2y>6ge=<016>lm5489>6dg=9><0q~5522`a95=5<5;ko6<99;|q1e=<72:q6>ol5489>6dg=<016>l651648yv4fj3:1?v3=bc826==::hk1=5=4=3ca>4113ty9m44?:2y>6gg=9;201?o7:0:0?84f13;<:6s|2d394?3|5;oi6<9k;<3;g?b>34;3n7jn;<0;1?be349jn7=:;|q1a5<72ho516f894>c2m301<6l:ec897>32mi01>om:268yv4cn3:19v3=e8823a=:91o1h45219f9`d=::1>1ho523``976=z{;nn6=4:{<0f4kc:?0eg<4:2wx>ij50;7x97c028=o70?60;f:?87?n3nj70<73;fa?85fj39:7p}=db83>0}::l<1=:j4=0;2>a?<583;6io4=3:1>ae<5:ki6>>4}r0gf?6==r79i84>7e9>5<4=l016=4?5d`9>6=4=lk16?ll52g9~w7bf290>w0;61:0o563>938ge>;5080on63{t:m31<7:t=3g0>41c34;2?7jn;<0;5?bf349jn7;h5519>626==916>:<51648yv41n3:1>v3=6g823a=::>81h45rs34a>5<5s48=m7;?;<05g?70>2wx>;650;4x970f28=o70<9e;fa?841k3ni70<82;fa?841>3n270<95;fa?xu5>m0;6?u227;915=::?o1=:84}r053?6=>r79:44>7e9>63c=l016>;m5d`9>624=lh16>;85d`9>633=lj1v?66:18184?m3>270<7d;342>{t:091<74>4348247?86:p6l3nj7p}=8983>7}::1n1845229a95207>52z?14951648yv4??3:1>v3=8b87=>;50k0:;;5rs3;2>5<5s483o7?73:?1=3<6??1v?69:18184?j3>270<7a;342>{t:0:1<74>4348297?86:p6=`=838p1?6n:0:0?84><3;<:6s|26494?4|5;=i6974=35b>4113ty94=4?:3y>62d=91901?6::055?xu5100;6?u226`9520<5;3o6il4}r041?6=:r79;l4;9:?13<<6??1v?9i:181840i3;3?63=858233=z{;=?6=4={<04=?2>348<47?86:p62c=838p1?96:0:0?84?;3;<:6s|26194?4|5;=36974=354>4113ty9;i4?:3y>62>=91901?6=:055?xu5?j0;6?u226595=5<5;2:6<99;|q041<72;q6?=75489>75>=9><0q~=?e;296~;4800:4>52301952052z?04<<6??16?<75db9~w6642909w0=?8;6:?857?3;<:6s|31f94?4|5::36<6<;<126?70>2wx?=<50;0x96602=301>>9:055?xu48j0;6?u231595=5<5:;:6<99;|q044<72;q6?=85489>753=9><0q~=?b;296~;48?0:4>52302952052z?040<60:16?=h51648yv4a93:1>v3=f787=>;5n<0:;;5rs3da>5<5s48m:7?73:?045<6??1v>?;:18184a>3;<:63<188gf>{t:o:1<71?<5;l?6<99;|q1bd<72;q6>k;5191897`a28==7p}=eg83>7}::o>184522g1952052z?1b1<60:16>kk51648yv4bm3:1>v3=f287=>;5n;0:;;5rs3d;>5<5s48m?7?73:?1ba<6??1v?h8:18184a:3;3?63=fb8233=z{:=?6=4>ez?01g<3?278944;7:?01d<3?2789n4;7:?01a<3?2789h4;7:?01c<3?278:=4;7:?024<3?2788k4;7:?00`<3?2788n4;7:?00g<3?2788i4;7:?00d<3?278844;7:?002<3?278854;7:?036<3?278;?4;7:?034<3?278;=4;7:?02c<3?278:h4;7:?02a<3?278:n4;7:?02g<3?278=l4>779>7dd=;j201>om:bc8yv5383:18v3<5c864>;4<00:;i523029`f=:;;31h45rs271>5<4s49>n7?8d:?02a<28279ji4kc:p76c=83>p1>;6:428962028=o70=?f;f`?855=3n27p}<5183>6}:;<31=:j4=24a>06<5;lh6im4}r10b?6=771=l01v>;>:180852i3;;5nj0om6s|35394?2|5:?h68>4=26b>41c349:<7jn;<11f?b>3ty89>4?:2y>70e=9>n01>8j:42897`c2mk0q~=;2;290~;4=m0><63<4c823a=:;8;1hn5233f9`<=z{:??6=4<{<16`?70l278:k4:0:?1b`:l:05g?85693nj70==f;f:?xu4=<0;6>u234g952b<5:=;68>4=3df>ag54z?01c<282788i4>7e9>744=lj16?>?5d89~w6312908w0=:f;34`>;4?80><63=fg8gg>{t;=?1<7:t=243>06<5:>n6<9k;<126?bf3498?7j6;|q012<72:q6?;>516f896152<:01?hi:ec8yv53>3:18v3<60864>;45<4s49==7?8d:?036<28278<=4k9:p775=838p1>:i:428965d28==7p}<2383>7}:;=o19=5232`952052z?00f<28278?44>779~w67a2909w0=;b;73?85403;<:6s|33394?4|5:>o68>4=21b>4113ty8=h4?:3y>71g==916?>951648yv56l3:1>v3<48864>;4;?0:;;5rs23a>5<5s49?;7;?;<100?70>2wx?=::055?xu4;;0;6?u232a90<=:;:81=:84}r10`?6=:r78?n4>299>76b=9><0q~=<0;297~;4;k0?563<3387=>;4;90:;;5rs210>5<4s498n7?=8:?077<60:16?>=51648yv55m3:1?v3<3`87=>;4;90?563<2d8233=z{:9:6=4<{<10e?750278?=4>829>767=9><0q~==c;297~;4;00?563<2d87=>;4:j0:;;5rs20e>5<4s49857?=8:?06`<60:16??h51648yv55i3:1?v3<3987=>;4:j0?563<2`8233=z{:8o6=4<{<10n4>829>77b=9><0q~==8;297~;4;>0?563<2`87=>;4:10:;;5rs20a>5<4s498;7?=8:?06d<60:16??l51648yv55>3:1?v3<3787=>;4:10?563<278233=z{:826=4<{<102?750278>54>829>77?=9><0q~==4;297~;4;<0?563<2787=>;4:=0:;;5rs204>5<4s49897?=8:?063<60:16??951648yv55=3:1?v3<35826==:;;>1=5=4=206>4113ty8:44?:5y>724=9>n01<7::e;894?32mk01>om:2d8yv5103:18v3<70823a=:90<1h4521879`d=:;hh1?h5rs244>5<3s49<<7?8d:?2=2?3nj70=nb;1`?xu4><0;69u237g952b<58326i74=0;;>ag<5:ki6>l4}r150?6=7e9>57dd=;h1v>8<:187851k3;9c8g=>;61h0om63{t;?81<7=t=24a>41c34;2n7jn;<1bf?5?3ty8mh4?:01x96?72==01>6i:55896>b2==01>6k:55896>d2==01>6m:55896>f2==01>66:55896??2==01>78:55896?12==01>7::55896?32==01>7<:55896?52==01>7>:55896>?2==01>68:558970128==7p}7}:;0:19=523``9g6=z{:k;6=4={<1;b?37349jn77;;|q0=c<72;q6?5k5519>7dd=1;1v>7j:18185?l3?;70=nb;;2?xu41m0;6?u239a915=:;hh15=5rs2;`>5<5s493n7;?;<1bf?>a3ty85o4?:3y>7=g==916?ll58d9~w6?f2909w0=79;73?85fj33o7p}7}:;0219=523``9=f=z{:k26=4={<1:3?37349jn7m>;|q0e=<72;q6?485519>7dd=1k1v>o8:18185>=3?;70=nb;;b?xu4i?0;6?u2386915=:;hh1545rs2c6>5<5s492?7;?;<1bf???3ty8m94?:3y>7<4==916?ll5969~w6g42909w0=61;73?85fj33=7p}7}:;1219=523``9=0=z{:326=4={<1;3?37349jn76k;|q0ef<72;q6?lj5164896ge2j30q~?<7;296~;5::0om63=23826<=z{8?86=4={<3ag?bf34;in7?=9:p672=838p1?<9:e`8974528==7p}>be83>7}:9kl1ho521c`952018o<4$2a0>4163ty?n44?:3y]0g?<5=>18o74$2a0>4153ty?m>4?:3y]0d5<5=>18l=4$2a0>4143ty?>54?:3y]052<5=>18=:4$2a0>4503ty?>;4?:3y]055<5=>18==4$2a0>4253ty?>84?:3y]054<5=>18=<4$2a0>42e3ty?>94?:3y]057<5=>18=?4$2a0>42c3ty?>>4?:3y]056<5=>18=>4$2a0>42b3ty?>?4?:3y]7c`<5=>1?kh4$2a0>42a3ty?>=4?:3y]7cb<5=>1?kj4$2a0>4373ty?=k4?:3y]7ce<5=>1?km4$2a0>4363ty?=h4?:3y]7cd<5=>1?kl4$2a0>4353ty?=i4?:3y]7cg<5=>1?ko4$2a0>4333ty?=n4?:3y]7c?<5=>1?k74$2a0>4323ty?=o4?:3y]7c><5=>1?k64$2a0>4313ty?=l4?:3y]7c1<5=>1?k94$2a0>4303ty?=44?:3y]7c0<5=>1?k84$2a0>43?3ty?=54?:3y]7c3<5=>1?k;4$2a0>43>3ty?=:4?:3y]7c2<5=>1?k:4$2a0>43f3ty?=84?:3y]7c4<5=>1?k<4$2a0>43e3ty?=94?:3y]7c7<5=>1?k?4$2a0>43d3ty?=>4?:3y]7c6<5=>1?k>4$2a0>43c3ty?=?4?:3y]7``<5=>1?hh4$2a0>43b3ty?=<4?:3y]7`c<5=>1?hk4$2a0>43a3ty?==4?:3y]7`b<5=>1?hj4$2a0>4073ty?1?hm4$2a0>4063ty?1?hl4$2a0>4053ty?1?ho4$2a0>4043ty?1?h74$2a0>4033ty?>k4?:3y]05g<5=>18=o4$2a0>4023ty?>h4?:3y]05?<5=>18=74$2a0>4013ty?>i4?:3y]05><5=>18=64$2a0>4003ty?>n4?:3y]051<5=>18=94$2a0>40?3ty?>o4?:3y]050<5=>18=84$2a0>40>3ty?>l4?:3y]053<5=>18=;4$2a0>40f3ty?>44?:3y]7cc<5=>1?kk4$2a0>40e3ty?><4?:3y]7c5<5=>1?k=4$2a0>40d3ty?=;4?:3y]7`><5=>1?h64$2a0>40c3ty?1?h94$2a0>40b3ty?o94?:3y]0f2<5=>18n:4$2a0>40a3ty?n=4?:3y]0g6<5=>18o>4$2a0>4173ty?8o4?:3y]06?<5=>18>74$2a0>4513ty?844?:3y]06><5=>18>64$2a0>45?3ty?854?:3y]061<5=>18>94$2a0>45>3ty?8:4?:3y]060<5=>18>84$2a0>45f3ty?8;4?:3y]063<5=>18>;4$2a0>45e3ty?884?:3y]062<5=>18>:4$2a0>45d3ty?894?:3y]065<5=>18>=4$2a0>45c3ty?8>4?:3y]064<5=>18><4$2a0>45b3ty?994?:3y]017<5=>189?4$2a0>45a3ty?9>4?:3y]016<5=>189>4$2a0>4273ty?9?4?:3y]06`<5=>18>h4$2a0>4263ty?9<4?:3y]06c<5=>18>k4$2a0>4243ty?9=4?:3y]06b<5=>18>j4$2a0>4233ty?8k4?:3y]06e<5=>18>m4$2a0>4223ty?8h4?:3y]06d<5=>18>l4$2a0>4213ty?8i4?:3y]06g<5=>18>o4$2a0>4203ty?8n4?:3y]067<5=>18>?4$2a0>42?3ty?8?4?:3y]066<5=>18>>4$2a0>42>3ty?9n4?:3y]00e<5=>188m4$2a0>42f3ty?9;4?:3y]000<5=>18884$2a0>42d3twe4oh50;0xL6e33td3o=4?:3yK7f252zJ0g1=zf1i96=4={I1`0>{i0j91<7d=3:1>vFm;;|l;g=<72;qC?n:4}o:`=?6=:rB8o95rn9ab>5<5sA9h86sa8b`94?4|@:i?7p`7cb83>7}O;j>0qc6ld;296~N4k=1vb5mj:181M5d<2we4nh50;0xL6e33td3h=4?:3yK7f252zJ0g1=zf1n96=4={I1`0>{i0m91<7c=3:1>vFm;;|l;`=<72;qC?n:4}o:g=?6=:rB8o95rn9fb>5<5sA9h86sa8e`94?4|@:i?7p`7db83>7}O;j>0qc6kd;296~N4k=1vb5jj:181M5d<2we4ih50;0xL6e33td3i=4?:3yK7f252zJ0g1=zf1o96=4={I1`0>{i0l91<7b=3:1>vFm;;|l;a=<72;qC?n:4}o:f=?6=:rB8o95rn9gb>5<5sA9h86sa8d`94?4|@:i?7p`7eb83>7}O;j>0qc6jd;296~N4k=1vb5kj:181M5d<2we4hh50;0xL6e33td3j=4?:3yK7f252zJ0g1=zf1l96=4={I1`0>{i0o91<7a=3:1>vFm;;|l;b=<72;qC?n:4}o:e=?6=:rB8o95rn9db>5<5sA9h86sa8g`94?4|@:i?7p`85683>4}O;j>0qc964;295~N4k=1vb:7::182M5d<2we;4850;3xL6e33td<5:4?:0yK7f251zJ0g1=zf>326=4>{I1`0>{i?0k1<7?tH2a7?xh01k0;6k3:1=vFm;;|l4=c<728qC?n:4}o5b4?6=9rB8o95rn6c2>5<6sA9h86sa7`094?7|@:i?7p`8a283>4}O;j>0qc9n4;295~N4k=1vb:o::182M5d<2we;l850;3xL6e33td51zJ0g1=zf>k26=4>{I1`0>{i?hk1<7?tH2a7?xh0ik0;6m;;|l4ec<728qC?n:4}o5a4?6=9rB8o95rn6`2>5<6sA9h86sa7c094?7|@:i?7p`8b283>4}O;j>0qc9m4;295~N4k=1vb:l::182M5d<2we;o850;3xL6e33td51zJ0g1=zf>h26=4>{I1`0>{i?kk1<7?tH2a7?xh0jk0;6m;;|l4fc<728qC?n:4}o5`4?6=9rB8o95rn6a2>5<6sA9h86sa7b094?7|@:i?7p`8c283>4}O;j>0qc9l4;295~N4k=1vb:m::182M5d<2we;n850;3xL6e33td51zJ0g1=zf>i26=4>{I1`0>{i?jk1<7?tH2a7?xh0kk0;6m;;|l4gc<728qC?n:4}o5g4?6=9rB8o95rn6f2>5<6sA9h86sa7e094?7|@:i?7p`8d283>4}O;j>0qc9k4;295~N4k=1vb:j::182M5d<2we;i850;3xL6e33td51zJ0g1=zf>n26=4>{I1`0>{i?mk1<7?tH2a7?xh0lk0;6m;;|l4`c<728qC?n:4}o5f4?6=9rB8o95rn6g2>5<6sA9h86sa7d094?7|@:i?7p`8e283>4}O;j>0qc9j4;295~N4k=1vb:k::182M5d<2we;h850;3xL6e33td51zJ0g1=zf>o26=4>{I1`0>{i?lk1<7?tH2a7?xh0mk0;6m;;|l4ac<728qC?n:4}o5e4?6=9rB8o95rn6d2>5<6sA9h86sa7g094?7|@:i?7p`8f283>4}O;j>0qc9i4;295~N4k=1vb:h::182M5d<2we;k850;3xL6e33td51zJ0g1=zf>l26=4>{I1`0>{i?ok1<7?tH2a7?xh0nk0;6m;;|l4bc<728qC?n:4}o:34?6=9rB8o95rn922>5<6sA9h86sa81094?7|@:i?7p`70283>4}O;j>0qc6?4;295~N4k=1vb5>::182M5d<2we4=850;3xL6e33td3<:4?:0yK7f251zJ0g1=zf1:26=4>{I1`0>{i09k1<7?tH2a7?xh?8k0;67k3:1=vFm;;|l;4c<728qC?n:4}o:24?6=9rB8o95rn932>5<6sA9h86sa80094?7|@:i?7p`71283>4}O;j>0qc6>4;295~N4k=1vb5?::182M5d<2we4<850;3xL6e33td3=:4?:0yK7f251zJ0g1=zf1;26=4>{I1`0>{i08k1<7?tH2a7?xh?9k0;66k3:1=vFm;;|l;5c<728qC?n:4}o:14?6=9rB8o95rn902>5<6sA9h86sa83094?7|@:i?7p`72283>4}O;j>0qc6=4;295~N4k=1vb5<::182M5d<2we4?850;3xL6e33td3>:4?:0yK7f251zJ0g1=zf1826=4>{I1`0>{i0;k1<7?tH2a7?xh?:k0;65k3:1=vFm;;|l;6c<728qC?n:4}o:04?6=9rB8o95rn912>5<6sA9h86sa82094?7|@:i?7p`73283>4}O;j>0qc6<4;295~N4k=1vb5=::182M5d<2we4>850;3xL6e33td3?:4?:0yK7f251zJ0g1=zf1926=4>{I1`0>{i0:k1<7?tH2a7?xh?;k0;64k3:1=vFm;;|l;7c<728qC?n:4}o:74?6=9rB8o95rn962>5<6sA9h86sa85094?7|@:i?7p`74283>4}O;j>0qc6;4;295~N4k=1vb5:::182M5d<2we49850;3xL6e33td38:4?:0yK7f251zJ0g1=zf1>26=4>{I1`0>{i0=k1<7?tH2a7?xh?3k3:1=vFm;;|l;0c<728qC?n:4}o:64?6=9rB8o95rn972>5<6sA9h86sa84094?7|@:i?7p`75283>4}O;j>0qc6:4;295~N4k=1vb5;::182M5d<2we48850;3xL6e33td39:4?:0yK7f247>51zJ0g1=zf1?26=4>{I1`0>{i02k3:1=vFm;;|l;1c<728qC?n:4}o:54?6=9rB8o95rn942>5<6sA9h86sa87094?7|@:i?7p`76283>4}O;j>0qc694;295~N4k=1vb58::182M5d<2we4;850;3xL6e33td3::4?:0yK7f251zJ0g1=zf1<26=4>{I1`0>{i0?k1<7?tH2a7?xh?>k0;61k3:1=vFm;;|l;2c<728qC?n:4}o:44?6=9rB8o95rn952>5<6sA9h86sa86094?7|@:i?7p`77283>4}O;j>0qc684;295~N4k=1vb59::182M5d<2we4:850;3xL6e33td3;:4?:0yK7f251zJ0g1=zf1=26=4>{I1`0>{i0>k1<7?tH2a7?xh??k0;60k3:1=vFm;;|l;3c<728qC?n:4}o:;4?6=9rB8o95rn9:2>5<6sA9h86sa89094?7|@:i?7p`78283>4}O;j>0qc674;295~N4k=1vb56::182M5d<2we45850;3xL6e33td34:4?:0yK7f251zJ0g1=zf1226=4>{I1`0>{i01k1<7?tH2a7?xh?0k0;6?k3:1=vFc290:wE=l4:m<=c=83;pD>m;;|l;5<6sA9h86sa88094?7|@:i?7p`79283>4}O;j>0qc664;295~N4k=1vb57::182M5d<2we44850;3xL6e33td35:4?:0yK7f251zJ0g1=zf1326=4>{I1`0>{i00k1<7?tH2a7?xh?1k0;6>k3:1=vFm;;|l;=c<728qC?n:4}o:b4?6=9rB8o95rn9c2>5<6sA9h86sa8`094?7|@:i?7p`7a283>4}O;j>0qc6n4;295~N4k=1vb5o::182M5d<2we4l850;3xL6e33td3m:4?:0yK7f251zJ0g1=zf1k26=4>{I1`0>{i0hk1<7?tH2a7?xh?ik0;6fk3:1=vFm;;|l;ec<728qC?n:4}o:a4?6=9rB8o95rn9`2>5<6sA9h86sa8c094?7|@:i?7p`7b283>4}O;j>0qc6m4;295~N4k=1vb5l::182M5d<2we4o850;3xL6e33td3n:4?:0yK7f251zJ0g1=zf1h26=4>{I1`0>{i0kk1<7?tH2a7?xh?jk0;6ek3:1=vFm;;|~yEFDsh<>69>i25f;exFGJr:vLM^t}AB \ No newline at end of file diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v index 6f849b24c..b3d994ae8 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v @@ -23,7 +23,7 @@ * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * -* (c) Copyright 1995-2007 Xilinx, Inc. * +* (c) Copyright 1995-2009 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The synthesis directives "translate_off/translate_on" specified below are @@ -38,30 +38,30 @@ `timescale 1ns/1ps module fifo_xlnx_512x36_2clk_36to18( - din, - rd_clk, - rd_en, rst, wr_clk, + rd_clk, + din, wr_en, + rd_en, dout, - empty, - full); + full, + empty); -input [35 : 0] din; -input rd_clk; -input rd_en; input rst; input wr_clk; +input rd_clk; +input [35 : 0] din; input wr_en; +input rd_en; output [17 : 0] dout; -output empty; output full; +output empty; // synthesis translate_off - FIFO_GENERATOR_V4_3 #( + FIFO_GENERATOR_V6_1 #( .C_COMMON_CLOCK(0), .C_COUNT_TYPE(0), .C_DATA_COUNT_WIDTH(9), @@ -70,6 +70,8 @@ output full; .C_DOUT_RST_VAL("0"), .C_DOUT_WIDTH(18), .C_ENABLE_RLOCS(0), + .C_ENABLE_RST_SYNC(1), + .C_ERROR_INJECTION_TYPE(0), .C_FAMILY("spartan3"), .C_FULL_FLAGS_RST_VAL(0), .C_HAS_ALMOST_EMPTY(0), @@ -122,39 +124,41 @@ output full; .C_WR_PNTR_WIDTH(9), .C_WR_RESPONSE_LATENCY(1)) inst ( - .DIN(din), - .RD_CLK(rd_clk), - .RD_EN(rd_en), .RST(rst), .WR_CLK(wr_clk), + .RD_CLK(rd_clk), + .DIN(din), .WR_EN(wr_en), + .RD_EN(rd_en), .DOUT(dout), - .EMPTY(empty), .FULL(full), - .CLK(), - .INT_CLK(), + .EMPTY(empty), .BACKUP(), .BACKUP_MARKER(), + .CLK(), + .SRST(), + .WR_RST(), + .RD_RST(), .PROG_EMPTY_THRESH(), .PROG_EMPTY_THRESH_ASSERT(), .PROG_EMPTY_THRESH_NEGATE(), .PROG_FULL_THRESH(), .PROG_FULL_THRESH_ASSERT(), .PROG_FULL_THRESH_NEGATE(), - .RD_RST(), - .SRST(), - .WR_RST(), - .ALMOST_EMPTY(), + .INT_CLK(), + .INJECTDBITERR(), + .INJECTSBITERR(), .ALMOST_FULL(), - .DATA_COUNT(), + .WR_ACK(), .OVERFLOW(), - .PROG_EMPTY(), - .PROG_FULL(), + .ALMOST_EMPTY(), .VALID(), - .RD_DATA_COUNT(), .UNDERFLOW(), - .WR_ACK(), + .DATA_COUNT(), + .RD_DATA_COUNT(), .WR_DATA_COUNT(), + .PROG_FULL(), + .PROG_EMPTY(), .SBITERR(), .DBITERR()); diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco index cee995891..d3115e7d5 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco @@ -32,7 +32,7 @@ SET verilogsim = true SET vhdlsim = false # END Project Options # BEGIN Select -SELECT Fifo_Generator family Xilinx,_Inc. 4.3 +SELECT Fifo_Generator family Xilinx,_Inc. 6.1 # END Select # BEGIN Parameters CSET almost_empty_flag=false @@ -46,10 +46,13 @@ CSET empty_threshold_assert_value=4 CSET empty_threshold_negate_value=5 CSET enable_ecc=false CSET enable_int_clk=false +CSET enable_reset_synchronization=true CSET fifo_implementation=Independent_Clocks_Block_RAM CSET full_flags_reset_value=0 CSET full_threshold_assert_value=509 CSET full_threshold_negate_value=508 +CSET inject_dbit_error=false +CSET inject_sbit_error=false CSET input_data_width=36 CSET input_depth=512 CSET output_data_width=18 @@ -78,5 +81,4 @@ CSET write_data_count=false CSET write_data_count_width=9 # END Parameters GENERATE -# CRC: b2f58113 - +# CRC: a4e70980 -- cgit v1.2.3 From 4139894fe6d0031897422c46b59746fe6bf0074f Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Fri, 8 Oct 2010 14:01:33 -0700 Subject: checkpoint in flow control packet generation --- usrp2/vrt/gen_context_pkt.v | 37 +++++++++++++++++------- usrp2/vrt/trigger_context_pkt.v | 52 ++++++++++++++++++++++++++++++++++ usrp2/vrt/vita_tx_chain.v | 28 +++++++++++++------ usrp2/vrt/vita_tx_control.v | 10 +++++-- usrp2/vrt/vita_tx_deframer.v | 62 +++++++++++++++++++++++++++-------------- 5 files changed, 147 insertions(+), 42 deletions(-) create mode 100644 usrp2/vrt/trigger_context_pkt.v diff --git a/usrp2/vrt/gen_context_pkt.v b/usrp2/vrt/gen_context_pkt.v index 780a027ba..f840ec6e1 100644 --- a/usrp2/vrt/gen_context_pkt.v +++ b/usrp2/vrt/gen_context_pkt.v @@ -3,10 +3,12 @@ module gen_context_pkt #(parameter PROT_ENG_FLAGS=1) (input clk, input reset, input clear, - input trigger, output sent, + input trigger, input error, output sent, input [31:0] streamid, input [63:0] vita_time, input [31:0] message, + input [15:0] seqnum0, + input [15:0] seqnum1, output [35:0] data_o, output src_rdy_o, input dst_rdy_i); localparam CTXT_IDLE = 0; @@ -17,17 +19,30 @@ module gen_context_pkt localparam CTXT_TICS = 5; localparam CTXT_TICS2 = 6; localparam CTXT_MESSAGE = 7; - localparam CTXT_DONE = 8; + localparam CTXT_FLOWCTRL = 8; + localparam CTXT_DONE = 9; reg [33:0] data_int; wire src_rdy_int, dst_rdy_int; - wire [3:0] seqno = 0; + reg [3:0] seqno; reg [3:0] ctxt_state; reg [63:0] err_time; + + always @(posedge clk) + if(reset | clear) + stored_message <= 0; + else + if(error) + stored_message <= message; + else if(state == CTXT_FLOWCTRL) + stored_message <= 0; always @(posedge clk) if(reset | clear) - ctxt_state <= CTXT_IDLE; + begin + ctxt_state <= CTXT_IDLE; + seqno <= 0; + end else case(ctxt_state) CTXT_IDLE : @@ -41,9 +56,10 @@ module gen_context_pkt end CTXT_DONE : - if(~trigger) - ctxt_state <= CTXT_IDLE; - + begin + ctxt_state <= CTXT_IDLE; + seqno <= seqno + 4'd1; + end default : if(dst_rdy_int) ctxt_state <= ctxt_state + 1; @@ -53,13 +69,14 @@ module gen_context_pkt always @* case(ctxt_state) - CTXT_PROT_ENG : data_int <= { 2'b01, 16'd1, 16'd24 }; - CTXT_HEADER : data_int <= { 1'b0, (PROT_ENG_FLAGS ? 1'b0 : 1'b1), 12'b010100001101, seqno, 16'd6 }; + CTXT_PROT_ENG : data_int <= { 2'b01, 16'd1, 16'd28 }; + CTXT_HEADER : data_int <= { 1'b0, (PROT_ENG_FLAGS ? 1'b0 : 1'b1), 12'b010100001101, seqno, 16'd7 }; CTXT_STREAMID : data_int <= { 2'b00, streamid }; CTXT_SECS : data_int <= { 2'b00, err_time[63:32] }; CTXT_TICS : data_int <= { 2'b00, 32'd0 }; CTXT_TICS2 : data_int <= { 2'b00, err_time[31:0] }; - CTXT_MESSAGE : data_int <= { 2'b10, message }; + CTXT_MESSAGE : data_int <= { 2'b00, message }; + CTXT_FLOWCTRL : data_int <= { 2'b10, {seqnum1,seqnum0} }; default : data_int <= {2'b00, 32'b00}; endcase // case (ctxt_state) diff --git a/usrp2/vrt/trigger_context_pkt.v b/usrp2/vrt/trigger_context_pkt.v new file mode 100644 index 000000000..51790dfae --- /dev/null +++ b/usrp2/vrt/trigger_context_pkt.v @@ -0,0 +1,52 @@ + + +module trigger_context_pkt + #(parameter BASE=0) + (input clk, input reset, input clear, + input set_stb, input [7:0] set_addr, input [31:0] set_data, + input packet_consumed, output reg trigger); + + wire [23:0] cycles; + wire [15:0] packets; + wire [6:0] dummy1; + wire [14:0] dummy2; + wire enable_timed, enable_consumed; + reg [30:0] cycle_count, packet_count; + + + setting_reg #(.my_addr(BASE_CTRL+X), .at_reset(0)) sr_settings + (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out({enable_cycle,dummy1,cycles}),.changed()); + + setting_reg #(.my_addr(BASE_CTRL+X), .at_reset(0)) sr_settings + (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out({enable_consumed,dummy2,packets}),.changed()); + + always @(posedge clk) + if(reset | clear) + cycle_count <= 0; + else + if(trigger) + cycle_count <= 0; + else if(enable_cycle) + cycle_count <= cycle_count + 1; + + always @(posedge clk) + if(reset | clear) + packet_count <= 0; + else + if(trigger) + packet_count <= 0; + else if(packet_consumed & enable_consumed) + packet_count <= packet_count + 1; + + always @(posedge clk) + if(reset | clear) + trigger <= 0; + else + if((cycle_count > cycles)|(packet_count > packets)) + trigger <= 1; + else + trigger <= 0; + +endmodule // trigger_context_pkt diff --git a/usrp2/vrt/vita_tx_chain.v b/usrp2/vrt/vita_tx_chain.v index 662cdca62..12e94b1a8 100644 --- a/usrp2/vrt/vita_tx_chain.v +++ b/usrp2/vrt/vita_tx_chain.v @@ -24,9 +24,10 @@ module vita_tx_chain wire trigger, sent; wire [31:0] debug_vtc, debug_vtd, debug_tx_dsp; - wire error; + wire error, packet_consumed; wire [31:0] error_code; wire clear_seqnum; + wire [15:0] current_seqnum; assign underrun = error; assign message = error_code; @@ -40,6 +41,7 @@ module vita_tx_chain .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .data_i(tx_data_i), .src_rdy_i(tx_src_rdy_i), .dst_rdy_o(tx_dst_rdy_o), .sample_fifo_o(tx1_data), .sample_fifo_src_rdy_o(tx1_src_rdy), .sample_fifo_dst_rdy_i(tx1_dst_rdy), + .current_seqnum(current_seqnum), .debug(debug_vtd) ); vita_tx_control #(.BASE(BASE_CTRL), .WIDTH(32*MAXCHAN)) vita_tx_control @@ -47,7 +49,7 @@ module vita_tx_chain .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .vita_time(vita_time),.error(error),.error_code(error_code), .sample_fifo_i(tx1_data), .sample_fifo_src_rdy_i(tx1_src_rdy), .sample_fifo_dst_rdy_o(tx1_dst_rdy), - .sample(sample_tx), .run(run), .strobe(strobe_tx), + .sample(sample_tx), .run(run), .strobe(strobe_tx), .packet_consumed(packet_consumed), .debug(debug_vtc) ); dsp_core_tx #(.BASE(BASE_DSP)) dsp_core_tx @@ -59,13 +61,21 @@ module vita_tx_chain generate if(REPORT_ERROR==1) - gen_context_pkt #(.PROT_ENG_FLAGS(PROT_ENG_FLAGS)) gen_tx_err_pkt - (.clk(clk), .reset(reset), .clear(clear_vita), - .trigger(error), .sent(), - .streamid(streamid), .vita_time(vita_time), .message(message), - .data_o(err_data_o), .src_rdy_o(err_src_rdy_o), .dst_rdy_i(err_dst_rdy_i)); + begin + gen_context_pkt #(.PROT_ENG_FLAGS(PROT_ENG_FLAGS)) gen_tx_err_pkt + (.clk(clk), .reset(reset), .clear(clear_vita), + .trigger(trigger),.error(error), .sent(), + .streamid(streamid), .vita_time(vita_time), .message(message), + .seqnum0(current_seqnum), .seqnum1(16'd0), + .data_o(err_data_o), .src_rdy_o(err_src_rdy_o), .dst_rdy_i(err_dst_rdy_i)); + trigger_context_pkt #(.BASE(BASE_CTRL)) trigger_context_pkt + (.clk(clk), .reset(reset), .clear(clear_vita), + .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), + .packet_consumed(packet_consumed), .trigger(trigger)); + end endgenerate - - assign debug = debug_vtc | debug_vtd; + + //assign debug = debug_vtc | debug_vtd; + assign debug = { debug_vtd[15:0], current_seqnum }; endmodule // vita_tx_chain diff --git a/usrp2/vrt/vita_tx_control.v b/usrp2/vrt/vita_tx_control.v index d0516bec8..61cd9edb5 100644 --- a/usrp2/vrt/vita_tx_control.v +++ b/usrp2/vrt/vita_tx_control.v @@ -8,7 +8,8 @@ module vita_tx_control input [63:0] vita_time, output error, output reg [31:0] error_code, - + output reg packet_consumed, + // From vita_tx_deframer input [5+64+16+WIDTH-1:0] sample_fifo_i, input sample_fifo_src_rdy_i, @@ -154,9 +155,14 @@ module vita_tx_control assign sample_fifo_dst_rdy_o = (ibs_state == IBS_ERROR) | (strobe & (ibs_state == IBS_RUN)); // FIXME also cleanout assign run = (ibs_state == IBS_RUN) | (ibs_state == IBS_CONT_BURST); - //assign error = (ibs_state == IBS_ERROR_DONE); assign error = send_error; + always @(posedge clk) + if(reset) + packet_consumed <= 0; + else + packet_consumed <= eop & sample_fifo_src_rdy_i & sample_fifo_dst_rdy_o; + assign debug = { { now,early,late,too_early,eop,eob,sob,send_at }, { sample_fifo_src_rdy_i, sample_fifo_dst_rdy_o, strobe, run, error, ibs_state[2:0] }, { 8'b0 }, diff --git a/usrp2/vrt/vita_tx_deframer.v b/usrp2/vrt/vita_tx_deframer.v index f9cd7d00d..f7902e645 100644 --- a/usrp2/vrt/vita_tx_deframer.v +++ b/usrp2/vrt/vita_tx_deframer.v @@ -13,6 +13,8 @@ module vita_tx_deframer output [5+64+16+(32*MAXCHAN)-1:0] sample_fifo_o, output sample_fifo_src_rdy_o, input sample_fifo_dst_rdy_i, + + output [15:0] current_seqnum, // FIFO Levels output [15:0] fifo_occupied, @@ -45,23 +47,29 @@ module vita_tx_deframer reg [1:0] vector_phase; wire line_done; - reg seqnum_err; - reg [3:0] seqnum_reg; - wire [3:0] seqnum = data_i[19:16]; - wire [3:0] next_seqnum = seqnum_reg + 4'd1; + wire [15:0] seqnum = data_i[15:0]; + reg [15:0] seqnum_reg; + wire [15:0] next_seqnum = seqnum_reg + 16'd1; + wire [3:0] vita_seqnum = data_i[19:16]; + reg [3:0] vita_seqnum_reg; + wire [3:0] next_vita_seqnum = vita_seqnum_reg[3:0] + 4'd1; + reg seqnum_err; + + assign curren_seqnum = seqnum_reg; // Output FIFO for packetized data - localparam VITA_HEADER = 0; - localparam VITA_STREAMID = 1; - localparam VITA_CLASSID = 2; - localparam VITA_CLASSID2 = 3; - localparam VITA_SECS = 4; - localparam VITA_TICS = 5; - localparam VITA_TICS2 = 6; - localparam VITA_PAYLOAD = 7; - localparam VITA_STORE = 8; - localparam VITA_TRAILER = 9; - + localparam VITA_TRANS_HEADER = 0; + localparam VITA_HEADER = 1; + localparam VITA_STREAMID = 2; + localparam VITA_CLASSID = 3; + localparam VITA_CLASSID2 = 4; + localparam VITA_SECS = 5; + localparam VITA_TICS = 6; + localparam VITA_TICS2 = 7; + localparam VITA_PAYLOAD = 8; + localparam VITA_STORE = 9; + localparam VITA_TRAILER = 10; + wire [15:0] hdr_len = 2 + has_streamid_reg + has_classid_reg + has_classid_reg + has_secs_reg + has_tics_reg + has_tics_reg + has_trailer_reg; @@ -70,15 +78,22 @@ module vita_tx_deframer always @(posedge clk) if(reset | clear_seqnum) - seqnum_reg <= 4'hF; + begin + seqnum_reg <= 16'hFFFF; + vita_seqnum_reg <= 4'hF; + end else - if((vita_state==VITA_HEADER) & src_rdy_i) - seqnum_reg <= seqnum; + begin + if((vita_state==VITA_TRANS_HEADER) & src_rdy_i) + seqnum_reg <= seqnum; + if((vita_state==VITA_HEADER) & src_rdy_i) + vita_seqnum_reg <= vita_seqnum; + end // else: !if(reset | clear_seqnum) always @(posedge clk) if(reset | clear) begin - vita_state <= VITA_HEADER; + vita_state <= VITA_TRANS_HEADER; {has_streamid_reg, has_classid_reg, has_secs_reg, has_tics_reg, has_trailer_reg, is_sob_reg, is_eob_reg} <= 0; seqnum_err <= 0; @@ -97,6 +112,11 @@ module vita_tx_deframer end else if(src_rdy_i) case(vita_state) + VITA_TRANS_HEADER : + begin + seqnum_err <= ~(seqnum == next_seqnum); + vita_state <= VITA_HEADER; + end VITA_HEADER : begin {has_streamid_reg, has_classid_reg, has_secs_reg, has_tics_reg, has_trailer_reg, is_sob_reg, is_eob_reg} @@ -113,7 +133,7 @@ module vita_tx_deframer vita_state <= VITA_TICS; else vita_state <= VITA_PAYLOAD; - seqnum_err <= ~(seqnum == next_seqnum); + seqnum_err <= seqnum_err | ~(vita_seqnum == next_vita_seqnum); end // case: VITA_HEADER VITA_STREAMID : if(has_classid_reg) @@ -191,7 +211,7 @@ module vita_tx_deframer // sob, eob, has_secs (send_at) ignored on all lines except first assign fifo_i = {sample_d,sample_c,sample_b,sample_a,seqnum_err,has_secs_reg,is_sob_reg,is_eob_reg,eop, - 12'd0,seqnum_reg,send_time}; + 12'd0,seqnum_reg[3:0],send_time}; assign dst_rdy_o = ~(vita_state == VITA_PAYLOAD) & ~((vita_state==VITA_STORE)& ~fifo_space) ; -- cgit v1.2.3 From f622553254eab637f3ec7ac2a9c4d6e3345d9a9c Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Fri, 8 Oct 2010 14:07:26 -0700 Subject: declarations --- usrp2/vrt/gen_context_pkt.v | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/usrp2/vrt/gen_context_pkt.v b/usrp2/vrt/gen_context_pkt.v index f840ec6e1..0ea2797ec 100644 --- a/usrp2/vrt/gen_context_pkt.v +++ b/usrp2/vrt/gen_context_pkt.v @@ -27,14 +27,15 @@ module gen_context_pkt reg [3:0] seqno; reg [3:0] ctxt_state; reg [63:0] err_time; - + reg [31:0] stored_message; + always @(posedge clk) if(reset | clear) stored_message <= 0; else if(error) stored_message <= message; - else if(state == CTXT_FLOWCTRL) + else if(ctxt_state == CTXT_FLOWCTRL) stored_message <= 0; always @(posedge clk) -- cgit v1.2.3 From d50a17c0df782231caa18ac66c9f0240f0936560 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Fri, 8 Oct 2010 14:33:06 -0700 Subject: assign setting reg addresses --- usrp2/vrt/trigger_context_pkt.v | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usrp2/vrt/trigger_context_pkt.v b/usrp2/vrt/trigger_context_pkt.v index 51790dfae..226ec45f2 100644 --- a/usrp2/vrt/trigger_context_pkt.v +++ b/usrp2/vrt/trigger_context_pkt.v @@ -14,11 +14,11 @@ module trigger_context_pkt reg [30:0] cycle_count, packet_count; - setting_reg #(.my_addr(BASE_CTRL+X), .at_reset(0)) sr_settings + setting_reg #(.my_addr(BASE+4), .at_reset(0)) sr_cycles (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out({enable_cycle,dummy1,cycles}),.changed()); - setting_reg #(.my_addr(BASE_CTRL+X), .at_reset(0)) sr_settings + setting_reg #(.my_addr(BASE+5), .at_reset(0)) sr_packets (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out({enable_consumed,dummy2,packets}),.changed()); -- cgit v1.2.3 From c868b37abecb9676a7efcc5072e4c0938e442905 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Fri, 8 Oct 2010 15:17:49 -0700 Subject: add trigger to makefile --- usrp2/vrt/Makefile.srcs | 1 + 1 file changed, 1 insertion(+) diff --git a/usrp2/vrt/Makefile.srcs b/usrp2/vrt/Makefile.srcs index dc4bd8c96..aa1356d82 100644 --- a/usrp2/vrt/Makefile.srcs +++ b/usrp2/vrt/Makefile.srcs @@ -12,4 +12,5 @@ vita_tx_control.v \ vita_tx_deframer.v \ vita_tx_chain.v \ gen_context_pkt.v \ +trigger_context_pkt.v \ )) -- cgit v1.2.3 From 336afd8b8bb6a655b6297f86cffc05d8e46d1a4a Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Fri, 8 Oct 2010 16:01:42 -0700 Subject: add a fifo to the end of the mux to help in timing. --- usrp2/fifo/fifo36_mux.v | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/usrp2/fifo/fifo36_mux.v b/usrp2/fifo/fifo36_mux.v index 92bf13ff9..c6fd40f27 100644 --- a/usrp2/fifo/fifo36_mux.v +++ b/usrp2/fifo/fifo36_mux.v @@ -20,6 +20,9 @@ module fifo36_mux wire eof0 = data0_i[33]; wire eof1 = data1_i[33]; + wire [35:0] data_int; + wire src_rdy_int, dst_rdy_int; + always @(posedge clk) if(reset | clear) state <= MUX_IDLE0; @@ -32,7 +35,7 @@ module fifo36_mux state <= MUX_DATA1; MUX_DATA0 : - if(src0_rdy_i & dst_rdy_i & eof0) + if(src0_rdy_i & dst_rdy_int & eof0) state <= prio ? MUX_IDLE0 : MUX_IDLE1; MUX_IDLE1 : @@ -42,16 +45,20 @@ module fifo36_mux state <= MUX_DATA0; MUX_DATA1 : - if(src1_rdy_i & dst_rdy_i & eof1) + if(src1_rdy_i & dst_rdy_int & eof1) state <= MUX_IDLE0; default : state <= MUX_IDLE0; endcase // case (state) - assign dst0_rdy_o = (state==MUX_DATA0) ? dst_rdy_i : 0; - assign dst1_rdy_o = (state==MUX_DATA1) ? dst_rdy_i : 0; - assign src_rdy_o = (state==MUX_DATA0) ? src0_rdy_i : (state==MUX_DATA1) ? src1_rdy_i : 0; - assign data_o = (state==MUX_DATA0) ? data0_i : data1_i; + assign dst0_rdy_o = (state==MUX_DATA0) ? dst_rdy_int : 0; + assign dst1_rdy_o = (state==MUX_DATA1) ? dst_rdy_int : 0; + assign src_rdy_int = (state==MUX_DATA0) ? src0_rdy_i : (state==MUX_DATA1) ? src1_rdy_i : 0; + assign data_int = (state==MUX_DATA0) ? data0_i : data1_i; + fifo_short #(.WIDTH(36)) mux_fifo + (.clk(clk), .reset(reset), .clear(clear), + .datain(data_int), .src_rdy_i(src_rdy_int), .dst_rdy_o(dst_rdy_int), + .dataout(data_o), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i)); endmodule // fifo36_demux -- cgit v1.2.3 From c7accc5a2e04c6bb2f620896ef4ba52b8ec56e72 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Fri, 8 Oct 2010 18:01:10 -0700 Subject: go to the correct state --- usrp2/vrt/vita_tx_deframer.v | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/usrp2/vrt/vita_tx_deframer.v b/usrp2/vrt/vita_tx_deframer.v index f7902e645..e12747cd5 100644 --- a/usrp2/vrt/vita_tx_deframer.v +++ b/usrp2/vrt/vita_tx_deframer.v @@ -104,7 +104,7 @@ module vita_tx_deframer if(has_trailer_reg) vita_state <= VITA_TRAILER; else - vita_state <= VITA_HEADER; + vita_state <= VITA_TRANS_HEADER; else begin vita_state <= VITA_PAYLOAD; @@ -171,11 +171,11 @@ module vita_tx_deframer else vector_phase <= vector_phase + 1; VITA_TRAILER : - vita_state <= VITA_HEADER; + vita_state <= VITA_TRANS_HEADER; VITA_STORE : ; default : - vita_state <= VITA_HEADER; + vita_state <= VITA_TRANS_HEADER; endcase // case (vita_state) assign line_done = (vector_phase == numchan); -- cgit v1.2.3 From cdcc710b11376bad327cebe89de6004056a18e1a Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Sun, 10 Oct 2010 23:38:56 -0700 Subject: separated flow control and error reporting on tx path. should work with and without flow control --- usrp2/top/u2_rev3/u2_core_udp.v | 3 ++- usrp2/vrt/gen_context_pkt.v | 4 ++-- usrp2/vrt/vita_tx_chain.v | 50 +++++++++++++++++++++++++++-------------- usrp2/vrt/vita_tx_deframer.v | 11 ++++----- 4 files changed, 43 insertions(+), 25 deletions(-) diff --git a/usrp2/top/u2_rev3/u2_core_udp.v b/usrp2/top/u2_rev3/u2_core_udp.v index 067a75759..a2a5d045e 100644 --- a/usrp2/top/u2_rev3/u2_core_udp.v +++ b/usrp2/top/u2_rev3/u2_core_udp.v @@ -677,7 +677,8 @@ module u2_core ); vita_tx_chain #(.BASE_CTRL(SR_TX_CTRL), .BASE_DSP(SR_TX_DSP), - .REPORT_ERROR(1), .PROT_ENG_FLAGS(1)) + .REPORT_ERROR(1), .DO_FLOW_CONTROL(1), + .PROT_ENG_FLAGS(1), .USE_TRANS_HEADER(1)) vita_tx_chain (.clk(dsp_clk), .reset(dsp_rst), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), diff --git a/usrp2/vrt/gen_context_pkt.v b/usrp2/vrt/gen_context_pkt.v index 0ea2797ec..31c2a53e1 100644 --- a/usrp2/vrt/gen_context_pkt.v +++ b/usrp2/vrt/gen_context_pkt.v @@ -3,7 +3,7 @@ module gen_context_pkt #(parameter PROT_ENG_FLAGS=1) (input clk, input reset, input clear, - input trigger, input error, output sent, + input trigger, output sent, input [31:0] streamid, input [63:0] vita_time, input [31:0] message, @@ -33,7 +33,7 @@ module gen_context_pkt if(reset | clear) stored_message <= 0; else - if(error) + if(trigger) stored_message <= message; else if(ctxt_state == CTXT_FLOWCTRL) stored_message <= 0; diff --git a/usrp2/vrt/vita_tx_chain.v b/usrp2/vrt/vita_tx_chain.v index 12e94b1a8..09da377f8 100644 --- a/usrp2/vrt/vita_tx_chain.v +++ b/usrp2/vrt/vita_tx_chain.v @@ -3,7 +3,9 @@ module vita_tx_chain #(parameter BASE_CTRL=0, parameter BASE_DSP=0, parameter REPORT_ERROR=0, - parameter PROT_ENG_FLAGS=0) + parameter DO_FLOW_CONTROL=0, + parameter PROT_ENG_FLAGS=0, + parameter USE_TRANS_HEADER=0) (input clk, input reset, input set_stb, input [7:0] set_addr, input [31:0] set_data, input [63:0] vita_time, @@ -36,7 +38,10 @@ module vita_tx_chain (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(streamid),.changed(clear_seqnum)); - vita_tx_deframer #(.BASE(BASE_CTRL), .MAXCHAN(MAXCHAN)) vita_tx_deframer + vita_tx_deframer #(.BASE(BASE_CTRL), + .MAXCHAN(MAXCHAN), + .USE_TRANS_HEADER(USE_TRANS_HEADER)) + vita_tx_deframer (.clk(clk), .reset(reset), .clear(clear_vita), .clear_seqnum(clear_seqnum), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .data_i(tx_data_i), .src_rdy_i(tx_src_rdy_i), .dst_rdy_o(tx_dst_rdy_o), @@ -59,23 +64,34 @@ module vita_tx_chain .dac_a(dac_a),.dac_b(dac_b), .debug(debug_tx_dsp) ); - generate - if(REPORT_ERROR==1) - begin - gen_context_pkt #(.PROT_ENG_FLAGS(PROT_ENG_FLAGS)) gen_tx_err_pkt - (.clk(clk), .reset(reset), .clear(clear_vita), - .trigger(trigger),.error(error), .sent(), - .streamid(streamid), .vita_time(vita_time), .message(message), - .seqnum0(current_seqnum), .seqnum1(16'd0), - .data_o(err_data_o), .src_rdy_o(err_src_rdy_o), .dst_rdy_i(err_dst_rdy_i)); - trigger_context_pkt #(.BASE(BASE_CTRL)) trigger_context_pkt - (.clk(clk), .reset(reset), .clear(clear_vita), - .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), - .packet_consumed(packet_consumed), .trigger(trigger)); - end - endgenerate + wire [35:0] flow_data, err_data_int; + wire flow_src_rdy, flow_dst_rdy, err_src_rdy_int, err_dst_rdy_int; + + gen_context_pkt #(.PROT_ENG_FLAGS(PROT_ENG_FLAGS)) gen_flow_pkt + (.clk(clk), .reset(reset), .clear(clear_vita), + .trigger(trigger & (DO_FLOW_CONTROL==1)), .sent(), + .streamid(streamid), .vita_time(vita_time), .message(32'd0), + .seqnum0(current_seqnum), .seqnum1(16'd0), + .data_o(flow_data), .src_rdy_o(flow_src_rdy), .dst_rdy_i(flow_dst_rdy)); + trigger_context_pkt #(.BASE(BASE_CTRL)) trigger_context_pkt + (.clk(clk), .reset(reset), .clear(clear_vita), + .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), + .packet_consumed(packet_consumed), .trigger(trigger)); + + gen_context_pkt #(.PROT_ENG_FLAGS(PROT_ENG_FLAGS)) gen_tx_err_pkt + (.clk(clk), .reset(reset), .clear(clear_vita), + .trigger(error & (REPORT_ERROR==1)), .sent(), + .streamid(streamid), .vita_time(vita_time), .message(message), + .seqnum0(current_seqnum), .seqnum1(16'd0), + .data_o(err_data_int), .src_rdy_o(err_src_rdy_int), .dst_rdy_i(err_dst_rdy_int)); //assign debug = debug_vtc | debug_vtd; assign debug = { debug_vtd[15:0], current_seqnum }; + fifo36_mux #(.prio(1)) mux_err_and_flow // Priority to err messages + (.clk(clk), .reset(reset), .clear(clear_vita), + .data0_i(err_data_int), .src0_rdy_i(err_src_rdy_int), .dst0_rdy_o(err_dst_rdy_int), + .data1_i(flow_data), .src1_rdy_i(flow_src_rdy), .dst1_rdy_o(flow_dst_rdy), + .data_o(err_data_o), .src_rdy_o(err_src_rdy_o), .dst_rdy_i(err_dst_rdy_i)); + endmodule // vita_tx_chain diff --git a/usrp2/vrt/vita_tx_deframer.v b/usrp2/vrt/vita_tx_deframer.v index e12747cd5..c55f43373 100644 --- a/usrp2/vrt/vita_tx_deframer.v +++ b/usrp2/vrt/vita_tx_deframer.v @@ -1,7 +1,8 @@ module vita_tx_deframer #(parameter BASE=0, - parameter MAXCHAN=1) + parameter MAXCHAN=1, + parameter USE_TRANS_HEADER=0) (input clk, input reset, input clear, input clear_seqnum, input set_stb, input [7:0] set_addr, input [31:0] set_data, @@ -93,7 +94,7 @@ module vita_tx_deframer always @(posedge clk) if(reset | clear) begin - vita_state <= VITA_TRANS_HEADER; + vita_state <= (USE_TRANS_HEADER==1) ? VITA_TRANS_HEADER : VITA_HEADER; {has_streamid_reg, has_classid_reg, has_secs_reg, has_tics_reg, has_trailer_reg, is_sob_reg, is_eob_reg} <= 0; seqnum_err <= 0; @@ -104,7 +105,7 @@ module vita_tx_deframer if(has_trailer_reg) vita_state <= VITA_TRAILER; else - vita_state <= VITA_TRANS_HEADER; + vita_state <= (USE_TRANS_HEADER==1) ? VITA_TRANS_HEADER : VITA_HEADER; else begin vita_state <= VITA_PAYLOAD; @@ -171,11 +172,11 @@ module vita_tx_deframer else vector_phase <= vector_phase + 1; VITA_TRAILER : - vita_state <= VITA_TRANS_HEADER; + vita_state <= (USE_TRANS_HEADER==1) ? VITA_TRANS_HEADER : VITA_HEADER; VITA_STORE : ; default : - vita_state <= VITA_TRANS_HEADER; + vita_state <= (USE_TRANS_HEADER==1) ? VITA_TRANS_HEADER : VITA_HEADER; endcase // case (vita_state) assign line_done = (vector_phase == numchan); -- cgit v1.2.3 From 709174b5eebcee5130302426be921a4e457165a4 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 11 Oct 2010 13:57:17 -0700 Subject: typo which isn't caught by xilinx --- usrp2/vrt/vita_tx_deframer.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usrp2/vrt/vita_tx_deframer.v b/usrp2/vrt/vita_tx_deframer.v index c55f43373..d8575b745 100644 --- a/usrp2/vrt/vita_tx_deframer.v +++ b/usrp2/vrt/vita_tx_deframer.v @@ -56,7 +56,7 @@ module vita_tx_deframer wire [3:0] next_vita_seqnum = vita_seqnum_reg[3:0] + 4'd1; reg seqnum_err; - assign curren_seqnum = seqnum_reg; + assign current_seqnum = seqnum_reg; // Output FIFO for packetized data localparam VITA_TRANS_HEADER = 0; -- cgit v1.2.3 From f39dc8ef3113edaf96000c61f1d481f53bb23bda Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 11 Oct 2010 15:53:24 -0700 Subject: send message on eob to ack the end of transmission --- usrp2/vrt/vita_tx_control.v | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/usrp2/vrt/vita_tx_control.v b/usrp2/vrt/vita_tx_control.v index 61cd9edb5..ed470418b 100644 --- a/usrp2/vrt/vita_tx_control.v +++ b/usrp2/vrt/vita_tx_control.v @@ -49,6 +49,7 @@ module vita_tx_control localparam IBS_ERROR_DONE = 4; localparam IBS_ERROR_WAIT = 5; + wire [31:0] CODE_EOB_ACK = {seqnum,16'd1}; wire [31:0] CODE_UNDERRUN = {seqnum,16'd2}; wire [31:0] CODE_SEQ_ERROR = {seqnum,16'd4}; wire [31:0] CODE_TIME_ERROR = {seqnum,16'd8}; @@ -107,7 +108,11 @@ module vita_tx_control end else if(eop) if(eob) - ibs_state <= IBS_IDLE; + begin + ibs_state <= IBS_ERROR; // Not really an error + error_code <= CODE_EOB_ACK; + send_error <= 1; + end else ibs_state <= IBS_CONT_BURST; -- cgit v1.2.3 From 5c3073e9a8fcf17e2fc0897c1a0380c96216e346 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 11 Oct 2010 16:39:31 -0700 Subject: switch to 32 bit sequence numbers. Will wrap in ~15 hours at max rate --- usrp2/vrt/gen_context_pkt.v | 18 ++++++++++-------- usrp2/vrt/vita_tx_chain.v | 2 +- usrp2/vrt/vita_tx_deframer.v | 10 +++++----- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/usrp2/vrt/gen_context_pkt.v b/usrp2/vrt/gen_context_pkt.v index 31c2a53e1..0eb035f3e 100644 --- a/usrp2/vrt/gen_context_pkt.v +++ b/usrp2/vrt/gen_context_pkt.v @@ -7,8 +7,8 @@ module gen_context_pkt input [31:0] streamid, input [63:0] vita_time, input [31:0] message, - input [15:0] seqnum0, - input [15:0] seqnum1, + input [31:0] seqnum0, + input [31:0] seqnum1, output [35:0] data_o, output src_rdy_o, input dst_rdy_i); localparam CTXT_IDLE = 0; @@ -19,8 +19,9 @@ module gen_context_pkt localparam CTXT_TICS = 5; localparam CTXT_TICS2 = 6; localparam CTXT_MESSAGE = 7; - localparam CTXT_FLOWCTRL = 8; - localparam CTXT_DONE = 9; + localparam CTXT_FLOWCTRL0 = 8; + localparam CTXT_FLOWCTRL1 = 9; + localparam CTXT_DONE = 10; reg [33:0] data_int; wire src_rdy_int, dst_rdy_int; @@ -35,7 +36,7 @@ module gen_context_pkt else if(trigger) stored_message <= message; - else if(ctxt_state == CTXT_FLOWCTRL) + else if(ctxt_state == CTXT_FLOWCTRL1) stored_message <= 0; always @(posedge clk) @@ -70,14 +71,15 @@ module gen_context_pkt always @* case(ctxt_state) - CTXT_PROT_ENG : data_int <= { 2'b01, 16'd1, 16'd28 }; - CTXT_HEADER : data_int <= { 1'b0, (PROT_ENG_FLAGS ? 1'b0 : 1'b1), 12'b010100001101, seqno, 16'd7 }; + CTXT_PROT_ENG : data_int <= { 2'b01, 16'd1, 16'd32 }; + CTXT_HEADER : data_int <= { 1'b0, (PROT_ENG_FLAGS ? 1'b0 : 1'b1), 12'b010100001101, seqno, 16'd8 }; CTXT_STREAMID : data_int <= { 2'b00, streamid }; CTXT_SECS : data_int <= { 2'b00, err_time[63:32] }; CTXT_TICS : data_int <= { 2'b00, 32'd0 }; CTXT_TICS2 : data_int <= { 2'b00, err_time[31:0] }; CTXT_MESSAGE : data_int <= { 2'b00, message }; - CTXT_FLOWCTRL : data_int <= { 2'b10, {seqnum1,seqnum0} }; + CTXT_FLOWCTRL0 : data_int <= { 2'b00, seqnum0 }; + CTXT_FLOWCTRL1 : data_int <= { 2'b10, seqnum1 }; default : data_int <= {2'b00, 32'b00}; endcase // case (ctxt_state) diff --git a/usrp2/vrt/vita_tx_chain.v b/usrp2/vrt/vita_tx_chain.v index 09da377f8..eee19bebf 100644 --- a/usrp2/vrt/vita_tx_chain.v +++ b/usrp2/vrt/vita_tx_chain.v @@ -29,7 +29,7 @@ module vita_tx_chain wire error, packet_consumed; wire [31:0] error_code; wire clear_seqnum; - wire [15:0] current_seqnum; + wire [31:0] current_seqnum; assign underrun = error; assign message = error_code; diff --git a/usrp2/vrt/vita_tx_deframer.v b/usrp2/vrt/vita_tx_deframer.v index d8575b745..40867cc55 100644 --- a/usrp2/vrt/vita_tx_deframer.v +++ b/usrp2/vrt/vita_tx_deframer.v @@ -15,7 +15,7 @@ module vita_tx_deframer output sample_fifo_src_rdy_o, input sample_fifo_dst_rdy_i, - output [15:0] current_seqnum, + output [31:0] current_seqnum, // FIFO Levels output [15:0] fifo_occupied, @@ -48,9 +48,9 @@ module vita_tx_deframer reg [1:0] vector_phase; wire line_done; - wire [15:0] seqnum = data_i[15:0]; - reg [15:0] seqnum_reg; - wire [15:0] next_seqnum = seqnum_reg + 16'd1; + wire [31:0] seqnum = data_i; + reg [31:0] seqnum_reg; + wire [31:0] next_seqnum = seqnum_reg + 32'd1; wire [3:0] vita_seqnum = data_i[19:16]; reg [3:0] vita_seqnum_reg; wire [3:0] next_vita_seqnum = vita_seqnum_reg[3:0] + 4'd1; @@ -80,7 +80,7 @@ module vita_tx_deframer always @(posedge clk) if(reset | clear_seqnum) begin - seqnum_reg <= 16'hFFFF; + seqnum_reg <= 32'hFFFF_FFFF; vita_seqnum_reg <= 4'hF; end else -- cgit v1.2.3 From 7e973c0b3a3c37df81064ae34641882313f89a6f Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 11 Oct 2010 16:40:25 -0700 Subject: increase compatibility number for flow control --- usrp2/top/u2_rev3/u2_core_udp.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usrp2/top/u2_rev3/u2_core_udp.v b/usrp2/top/u2_rev3/u2_core_udp.v index a2a5d045e..1e4030f0c 100644 --- a/usrp2/top/u2_rev3/u2_core_udp.v +++ b/usrp2/top/u2_rev3/u2_core_udp.v @@ -427,7 +427,7 @@ module u2_core cycle_count <= cycle_count + 1; //compatibility number -> increment when the fpga has been sufficiently altered - localparam compat_num = 32'd2; + localparam compat_num = 32'd3; wb_readback_mux buff_pool_status (.wb_clk_i(wb_clk), .wb_rst_i(wb_rst), .wb_stb_i(s5_stb), -- cgit v1.2.3 From 9e54a36664edb9c5641959c65f51c81e43e098c2 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Mon, 11 Oct 2010 16:41:41 -0700 Subject: cleanup for 32 bit seqnum --- usrp2/vrt/vita_tx_chain.v | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/usrp2/vrt/vita_tx_chain.v b/usrp2/vrt/vita_tx_chain.v index eee19bebf..6cfbdf763 100644 --- a/usrp2/vrt/vita_tx_chain.v +++ b/usrp2/vrt/vita_tx_chain.v @@ -71,7 +71,7 @@ module vita_tx_chain (.clk(clk), .reset(reset), .clear(clear_vita), .trigger(trigger & (DO_FLOW_CONTROL==1)), .sent(), .streamid(streamid), .vita_time(vita_time), .message(32'd0), - .seqnum0(current_seqnum), .seqnum1(16'd0), + .seqnum0(current_seqnum), .seqnum1(32'd0), .data_o(flow_data), .src_rdy_o(flow_src_rdy), .dst_rdy_i(flow_dst_rdy)); trigger_context_pkt #(.BASE(BASE_CTRL)) trigger_context_pkt (.clk(clk), .reset(reset), .clear(clear_vita), @@ -82,11 +82,10 @@ module vita_tx_chain (.clk(clk), .reset(reset), .clear(clear_vita), .trigger(error & (REPORT_ERROR==1)), .sent(), .streamid(streamid), .vita_time(vita_time), .message(message), - .seqnum0(current_seqnum), .seqnum1(16'd0), + .seqnum0(current_seqnum), .seqnum1(32'd0), .data_o(err_data_int), .src_rdy_o(err_src_rdy_int), .dst_rdy_i(err_dst_rdy_int)); - //assign debug = debug_vtc | debug_vtd; - assign debug = { debug_vtd[15:0], current_seqnum }; + assign debug = debug_vtc | debug_vtd; fifo36_mux #(.prio(1)) mux_err_and_flow // Priority to err messages (.clk(clk), .reset(reset), .clear(clear_vita), -- cgit v1.2.3 From 1304ca07e855843f98e6efda71fde402a3c43d49 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Tue, 12 Oct 2010 13:16:35 -0700 Subject: proper triggering for interrupts generated on the dsp_clk --- usrp2/top/u2_rev3/u2_core_udp.v | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/usrp2/top/u2_rev3/u2_core_udp.v b/usrp2/top/u2_rev3/u2_core_udp.v index 1e4030f0c..ea4dd314f 100644 --- a/usrp2/top/u2_rev3/u2_core_udp.v +++ b/usrp2/top/u2_rev3/u2_core_udp.v @@ -541,10 +541,17 @@ module u2_core // ///////////////////////////////////////////////////////////////////////// // Interrupt Controller, Slave #8 + // Pass interrupts on dsp_clk to wb_clk. These need edge triggering in the pic + wire underrun_wb, overrun_wb, pps_wb; + + oneshot_2clk underrun_1s (.clk_in(dsp_clk), .in(underrun), .clk_out(wb_clk), .out(underrun_wb)); + oneshot_2clk overrun_1s (.clk_in(dsp_clk), .in(overrun), .clk_out(wb_clk), .out(overrun_wb)); + oneshot_2clk pps_1s (.clk_in(dsp_clk), .in(pps_int), .clk_out(wb_clk), .out(pps_wb)); + assign irq= {{8'b0}, {8'b0}, {3'b0, periodic_int, clk_status, serdes_link_up, uart_tx_int, uart_rx_int}, - {pps_int,overrun,underrun,PHY_INTn,i2c_int,spi_int,onetime_int,buffer_int}}; + {pps_wb,overrun_wb,underrun_wb,PHY_INTn,i2c_int,spi_int,onetime_int,buffer_int}}; pic pic(.clk_i(wb_clk),.rst_i(wb_rst),.cyc_i(s8_cyc),.stb_i(s8_stb),.adr_i(s8_adr[4:2]), .we_i(s8_we),.dat_i(s8_dat_o),.dat_o(s8_dat_i),.ack_o(s8_ack),.int_o(proc_int), -- cgit v1.2.3 From 4bac44e009329f6019bb2aec0e181293e049b781 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Tue, 12 Oct 2010 23:02:30 -0700 Subject: don't flag an error on eob ack --- usrp2/vrt/vita_tx_chain.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usrp2/vrt/vita_tx_chain.v b/usrp2/vrt/vita_tx_chain.v index 6cfbdf763..00da4c6e1 100644 --- a/usrp2/vrt/vita_tx_chain.v +++ b/usrp2/vrt/vita_tx_chain.v @@ -31,7 +31,7 @@ module vita_tx_chain wire clear_seqnum; wire [31:0] current_seqnum; - assign underrun = error; + assign underrun = error & ~(error_code == 1); assign message = error_code; setting_reg #(.my_addr(BASE_CTRL+2), .at_reset(0)) sr_streamid -- cgit v1.2.3 From 10427284e0e270a5b5bdc735da09d8fde9040537 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Tue, 12 Oct 2010 23:05:47 -0700 Subject: don't clear out following packets on an eob ack --- usrp2/vrt/vita_tx_control.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usrp2/vrt/vita_tx_control.v b/usrp2/vrt/vita_tx_control.v index ed470418b..936762212 100644 --- a/usrp2/vrt/vita_tx_control.v +++ b/usrp2/vrt/vita_tx_control.v @@ -109,7 +109,7 @@ module vita_tx_control else if(eop) if(eob) begin - ibs_state <= IBS_ERROR; // Not really an error + ibs_state <= IBS_ERROR_DONE; // Not really an error error_code <= CODE_EOB_ACK; send_error <= 1; end -- cgit v1.2.3 From 7fd21927c3c5d8d95eed7ff66ed1a060c9affad2 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Tue, 12 Oct 2010 23:21:39 -0700 Subject: now handles frames larger than the vita packet (i.e. with padding) --- usrp2/vrt/vita_tx_deframer.v | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/usrp2/vrt/vita_tx_deframer.v b/usrp2/vrt/vita_tx_deframer.v index 40867cc55..7fb8e3893 100644 --- a/usrp2/vrt/vita_tx_deframer.v +++ b/usrp2/vrt/vita_tx_deframer.v @@ -70,11 +70,13 @@ module vita_tx_deframer localparam VITA_PAYLOAD = 8; localparam VITA_STORE = 9; localparam VITA_TRAILER = 10; + localparam VITA_DUMP = 11; wire [15:0] hdr_len = 2 + has_streamid_reg + has_classid_reg + has_classid_reg + has_secs_reg + has_tics_reg + has_tics_reg + has_trailer_reg; - wire eop = eof | (pkt_len==hdr_len); // FIXME would ignoring eof allow larger VITA packets? + wire vita_eof = (pkt_len==hdr_len); + wire eop = eof | vita_eof; // FIXME would ignoring eof allow larger VITA packets? wire fifo_space; always @(posedge clk) @@ -101,12 +103,14 @@ module vita_tx_deframer end else if((vita_state == VITA_STORE) & fifo_space) - if(eop) - if(has_trailer_reg) + if(vita_eof) + if(eof) + vita_state <= (USE_TRANS_HEADER==1) ? VITA_TRANS_HEADER : VITA_HEADER; + else if(has_trailer_reg) vita_state <= VITA_TRAILER; else - vita_state <= (USE_TRANS_HEADER==1) ? VITA_TRANS_HEADER : VITA_HEADER; - else + vita_state <= VITA_DUMP; + else begin vita_state <= VITA_PAYLOAD; pkt_len <= pkt_len - 1; @@ -172,7 +176,13 @@ module vita_tx_deframer else vector_phase <= vector_phase + 1; VITA_TRAILER : - vita_state <= (USE_TRANS_HEADER==1) ? VITA_TRANS_HEADER : VITA_HEADER; + if(eof) + vita_state <= (USE_TRANS_HEADER==1) ? VITA_TRANS_HEADER : VITA_HEADER; + else + vita_state <= VITA_DUMP; + VITA_DUMP : + if(eof) + vita_state <= (USE_TRANS_HEADER==1) ? VITA_TRANS_HEADER : VITA_HEADER; VITA_STORE : ; default : -- cgit v1.2.3 From 12c8995014a625aab9a7614d9b146876fbf81268 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Thu, 11 Nov 2010 18:44:43 -0800 Subject: fifo randomizer for emi --- usrp2/extramfifo/Makefile.srcs | 1 + usrp2/extramfifo/ext_fifo.v | 11 ++++-- usrp2/extramfifo/ext_fifo_tb.sav | 30 ++++++++++++++++ usrp2/extramfifo/ext_fifo_tb.v | 4 +-- usrp2/extramfifo/refill_randomizer.v | 66 ++++++++++++++++++++++++++++++++++++ 5 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 usrp2/extramfifo/ext_fifo_tb.sav create mode 100644 usrp2/extramfifo/refill_randomizer.v diff --git a/usrp2/extramfifo/Makefile.srcs b/usrp2/extramfifo/Makefile.srcs index 7cd49f4f6..b255ef916 100644 --- a/usrp2/extramfifo/Makefile.srcs +++ b/usrp2/extramfifo/Makefile.srcs @@ -13,4 +13,5 @@ icon.v \ icon.xco \ ila.v \ ila.xco \ +refill_randomizer.v \ )) diff --git a/usrp2/extramfifo/ext_fifo.v b/usrp2/extramfifo/ext_fifo.v index daf7140bc..80f82fc63 100644 --- a/usrp2/extramfifo/ext_fifo.v +++ b/usrp2/extramfifo/ext_fifo.v @@ -45,7 +45,7 @@ module ext_fifo wire [EXT_WIDTH-1:0] write_data; wire [EXT_WIDTH-1:0] read_data; wire full1, empty1; - wire almost_full2, full2, empty2; + wire almost_full2, almost_full2_spread, full2, empty2; wire [FIFO_DEPTH-1:0] capacity; wire space_avail; wire data_avail; @@ -83,7 +83,7 @@ module ext_fifo .write_strobe(~empty1 ), .space_avail(space_avail), .read_data(read_data), - .read_strobe(~almost_full2), + .read_strobe(~almost_full2_spread), .data_avail(data_avail), .capacity(capacity) ); @@ -148,6 +148,13 @@ module ext_fifo endgenerate + refill_randomizer #(.BITS(7)) + refill_randomizer_i1 ( + .clk(ext_clk), + .rst(rst), + .full_in(almost_full2), + .full_out(almost_full2_spread) + ); // always @ (posedge int_clk) // debug[31:28] <= {empty2,full1,dst_rdy_i,src_rdy_i }; diff --git a/usrp2/extramfifo/ext_fifo_tb.sav b/usrp2/extramfifo/ext_fifo_tb.sav new file mode 100644 index 000000000..a54b40fc5 --- /dev/null +++ b/usrp2/extramfifo/ext_fifo_tb.sav @@ -0,0 +1,30 @@ +[timestart] 0 +[size] 1523 832 +[pos] -1 -1 +*-15.000000 66300 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +[treeopen] ext_fifo_tb. +[treeopen] ext_fifo_tb.ext_fifo_i1. +[treeopen] ext_fifo_tb.ext_fifo_i1.nobl_fifo_i1. +@28 +ext_fifo_tb.ext_fifo_i1.src_rdy_i +ext_fifo_tb.ext_fifo_i1.dst_rdy_o +@22 +ext_fifo_tb.ext_fifo_i1.datain[35:0] +@28 +ext_fifo_tb.ext_fifo_i1.src_rdy_o +ext_fifo_tb.ext_fifo_i1.dst_rdy_i +@22 +ext_fifo_tb.ext_fifo_i1.dataout[35:0] +ext_fifo_tb.ext_fifo_i1.RAM_A[17:0] +@28 +ext_fifo_tb.ext_fifo_i1.RAM_WEn +ext_fifo_tb.ext_fifo_i1.RAM_CE1n +@22 +ext_fifo_tb.ext_fifo_i1.RAM_D_pi[35:0] +ext_fifo_tb.ext_fifo_i1.RAM_D_po[35:0] +ext_fifo_tb.ext_fifo_i1.write_data[35:0] +@28 +ext_fifo_tb.ext_fifo_i1.full1 +ext_fifo_tb.ext_fifo_i1.empty1 +@29 +ext_fifo_tb.ext_fifo_i1.space_avail diff --git a/usrp2/extramfifo/ext_fifo_tb.v b/usrp2/extramfifo/ext_fifo_tb.v index 5f4e28719..395ad2884 100644 --- a/usrp2/extramfifo/ext_fifo_tb.v +++ b/usrp2/extramfifo/ext_fifo_tb.v @@ -1,6 +1,6 @@ `timescale 1ns / 1ps -//`define USRP2 -`define USRP2PLUS +`define USRP2 +//`define USRP2PLUS `ifdef USRP2 `define INT_WIDTH 36 diff --git a/usrp2/extramfifo/refill_randomizer.v b/usrp2/extramfifo/refill_randomizer.v new file mode 100644 index 000000000..0b30f4049 --- /dev/null +++ b/usrp2/extramfifo/refill_randomizer.v @@ -0,0 +1,66 @@ +// +// EMI mitigation. +// Process FULL flag from FIFO so that de-assertion +// (FIFO now not FULL) is delayed by a pseudo random +// value, but assertion is passed straight through. +// + + +module refill_randomizer + #(parameter BITS=7) + ( + input clk, + input rst, + input full_in, + output full_out + ); + + wire feedback; + reg full_last; + wire full_deasserts; + reg [6:0] shift_reg; + reg [6:0] count; + reg delayed_fall; + + + always @(posedge clk) + full_last <= full_in; + + assign full_deasserts = full_last & ~full_in; + + // 7 bit LFSR + always @(posedge clk) + if (rst) + shift_reg <= 7'b1; + else + if (full_deasserts) + shift_reg <= {shift_reg[5:0],feedback}; + + assign feedback = ^(shift_reg & 7'h41); + + always @(posedge clk) + if (rst) + begin + count <= 1; + delayed_fall <= 1; + end + else if (full_deasserts) + begin + count <= shift_reg; + delayed_fall <= 1; + end + else if (count == 1) + begin + count <= 1; + delayed_fall <= 0; + end + else + begin + count <= count - 1; + delayed_fall <= 1; + end + + // Full_out goes instantly high if full_in does. However its fall is delayed. + assign full_out = (full_in == 1) || (full_last == 1) || delayed_fall; + +endmodule \ No newline at end of file -- cgit v1.2.3 From 78abd7d98a5dc42aeafa89ed29a3ab8a1f9475f4 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Thu, 11 Nov 2010 18:50:49 -0800 Subject: gray code address for emi --- usrp2/extramfifo/nobl_if.v | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/usrp2/extramfifo/nobl_if.v b/usrp2/extramfifo/nobl_if.v index 7ff7eaa03..b5ebe9c6b 100644 --- a/usrp2/extramfifo/nobl_if.v +++ b/usrp2/extramfifo/nobl_if.v @@ -39,6 +39,12 @@ module nobl_if assign RAM_LDn = 0; // ZBT/NoBL RAM actually manages its own output enables very well. assign RAM_OEn = 0; + + // gray code the address to reduce EMI + wire [DEPTH-1:0] address_gray; + + bin2gray #(.WIDTH(DEPTH)) bin2gray (.bin(address),.gray(address_gray)); + // // Pipeline stage 1 @@ -62,7 +68,7 @@ module nobl_if if (enable) begin - address_pipe1 <= address; + address_pipe1 <= address_gray; write_pipe1 <= write; // RAM_WEn <= ~write; // Creates IOB flop -- cgit v1.2.3 From 823f04cf0046fb61109bd10b8fd41942a7359a06 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Sat, 6 Nov 2010 12:18:21 -0700 Subject: added ability to truly clear out the entire rx chain. also removed old style fifo in rx. --- usrp2/top/u2_rev3/u2_core_udp.v | 12 +++++++++--- usrp2/vrt/vita_rx_control.v | 31 +++++++++++++++---------------- usrp2/vrt/vita_rx_framer.v | 13 +++---------- 3 files changed, 27 insertions(+), 29 deletions(-) diff --git a/usrp2/top/u2_rev3/u2_core_udp.v b/usrp2/top/u2_rev3/u2_core_udp.v index ea4dd314f..ec973df8d 100644 --- a/usrp2/top/u2_rev3/u2_core_udp.v +++ b/usrp2/top/u2_rev3/u2_core_udp.v @@ -624,9 +624,15 @@ module u2_core .debug(debug_rx_dsp) ); wire [31:0] vrc_debug; + wire clear_rx; + setting_reg #(.my_addr(SR_RX_CTRL+3)) sr_clear + (.clk(dsp_clk),.rst(dsp_rst), + .strobe(set_stb_dsp),.addr(set_addr_dsp),.in(set_data_dsp), + .out(),.changed(clear_rx)); + vita_rx_control #(.BASE(SR_RX_CTRL), .WIDTH(32)) vita_rx_control - (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + (.clk(dsp_clk), .reset(dsp_rst), .clear(clear_rx), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .vita_time(vita_time), .overrun(overrun), .sample(sample_rx), .run(run_rx), .strobe(strobe_rx), @@ -636,7 +642,7 @@ module u2_core wire [3:0] vita_state; vita_rx_framer #(.BASE(SR_RX_CTRL), .MAXCHAN(1)) vita_rx_framer - (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + (.clk(dsp_clk), .reset(dsp_rst), .clear(clear_rx), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .sample_fifo_i(rx_data), .sample_fifo_dst_rdy_o(rx_dst_rdy), .sample_fifo_src_rdy_i(rx_src_rdy), .data_o(rx1_data), .dst_rdy_i(rx1_dst_rdy), .src_rdy_o(rx1_src_rdy), @@ -644,7 +650,7 @@ module u2_core .debug_rx(vita_state) ); fifo_cascade #(.WIDTH(36), .SIZE(DSP_RX_FIFOSIZE)) rx_fifo_cascade - (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + (.clk(dsp_clk), .reset(dsp_rst), .clear(clear_rx), .datain(rx1_data), .src_rdy_i(rx1_src_rdy), .dst_rdy_o(rx1_dst_rdy), .dataout({wr1_flags,wr1_dat}), .src_rdy_o(wr1_ready_i), .dst_rdy_i(wr1_ready_o)); diff --git a/usrp2/vrt/vita_rx_control.v b/usrp2/vrt/vita_rx_control.v index 93673d292..ba63181f1 100644 --- a/usrp2/vrt/vita_rx_control.v +++ b/usrp2/vrt/vita_rx_control.v @@ -25,16 +25,14 @@ module vita_rx_control wire [63:0] new_time; wire [31:0] new_command; - wire sc_pre1, clear_int, clear_reg; + wire sc_pre1; - assign clear_int = clear | clear_reg; - wire [63:0] rcvtime_pre; reg [63:0] rcvtime; wire [28:0] numlines_pre; wire send_imm_pre, chain_pre, reload_pre; reg send_imm, chain, reload; - wire full_ctrl, read_ctrl, empty_ctrl, write_ctrl; + wire read_ctrl, empty_ctrl, write_ctrl; reg sc_pre2; wire [33:0] fifo_line; reg [28:0] lines_left, lines_total; @@ -54,21 +52,22 @@ module vita_rx_control (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(new_time[31:0]),.changed(sc_pre1)); - setting_reg #(.my_addr(BASE+3)) sr_clear - (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), - .in(set_data),.out(),.changed(clear_reg)); - // FIFO to store commands sent from the settings bus always @(posedge clk) - sc_pre2 <= sc_pre1; + if(reset | clear) + sc_pre2 <= 0; + else + sc_pre2 <= sc_pre1; + assign write_ctrl = sc_pre1 & ~sc_pre2; wire [4:0] command_queue_len; - shortfifo #(.WIDTH(96)) commandfifo - (.clk(clk),.rst(reset),.clear(clear_int), - .datain({new_command,new_time}), .write(write_ctrl&~full_ctrl), .full(full_ctrl), + + fifo_short #(.WIDTH(96)) commandfifo + (.clk(clk),.reset(reset),.clear(clear), + .datain({new_command,new_time}), .src_rdy_i(write_ctrl), .dst_rdy_o(), .dataout({send_imm_pre,chain_pre,reload_pre,numlines_pre,rcvtime_pre}), - .read(read_ctrl), .empty(empty_ctrl), + .src_rdy_o(empty_ctrl), .dst_rdy_i(read_ctrl), .occupied(command_queue_len), .space() ); reg [33:0] pkt_fifo_line; @@ -92,7 +91,7 @@ module vita_rx_control (ibs_state==IBS_BROKENCHAIN) | (ibs_state==IBS_LATECMD)); fifo_short #(.WIDTH(4+64+WIDTH)) rx_sample_fifo - (.clk(clk),.reset(reset),.clear(clear_int), + (.clk(clk),.reset(reset),.clear(clear), .datain({flags,vita_time,sample}), .src_rdy_i(attempt_sample_write), .dst_rdy_o(sample_fifo_in_rdy), .dataout(sample_fifo_o), .src_rdy_o(sample_fifo_src_rdy_o), .dst_rdy_i(sample_fifo_dst_rdy_i), @@ -107,7 +106,7 @@ module vita_rx_control wire full = ~sample_fifo_in_rdy; always @(posedge clk) - if(reset | clear_int) + if(reset | clear) begin ibs_state <= IBS_IDLE; lines_left <= 0; @@ -185,7 +184,7 @@ module vita_rx_control assign debug_rx = { { ibs_state[2:0], command_queue_len }, { 8'd0 }, - { go_now, too_late, run, strobe, read_ctrl, write_ctrl, full_ctrl, empty_ctrl }, + { go_now, too_late, run, strobe, read_ctrl, write_ctrl, 1'b0, empty_ctrl }, { 2'b0, overrun, chain_pre, sample_fifo_in_rdy, attempt_sample_write, sample_fifo_src_rdy_o,sample_fifo_dst_rdy_i} }; endmodule // rx_control diff --git a/usrp2/vrt/vita_rx_framer.v b/usrp2/vrt/vita_rx_framer.v index 235817941..1065ce637 100644 --- a/usrp2/vrt/vita_rx_framer.v +++ b/usrp2/vrt/vita_rx_framer.v @@ -57,13 +57,6 @@ module vita_rx_framer wire [15:0] vita_pkt_len = samples_per_packet + 6; //wire [3:0] flags = {signal_overrun,signal_brokenchain,signal_latecmd,signal_cmd_done}; - wire clear_reg; - wire clear_int = clear | clear_reg; - - setting_reg #(.my_addr(BASE+3)) sr_clear - (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), - .in(set_data),.out(),.changed(clear_reg)); - setting_reg #(.my_addr(BASE+4)) sr_header (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(vita_header),.changed()); @@ -102,7 +95,7 @@ module vita_rx_framer localparam VITA_ERR_TRAILER = 15; // Extension context packets have no trailer always @(posedge clk) - if(reset | clear_pkt_count) + if(reset | clear | clear_pkt_count) pkt_count <= 0; else if((vita_state == VITA_TRAILER) & pkt_fifo_rdy) pkt_count <= pkt_count + 1; @@ -135,7 +128,7 @@ module vita_rx_framer endcase // case (vita_state) always @(posedge clk) - if(reset) + if(reset | clear) begin vita_state <= VITA_IDLE; sample_ctr <= 0; @@ -203,7 +196,7 @@ module vita_rx_framer // Short FIFO to buffer between us and the FIFOs outside fifo_short #(.WIDTH(34)) rx_pkt_fifo - (.clk(clk), .reset(reset), .clear(clear_int), + (.clk(clk), .reset(reset), .clear(clear), .datain(pkt_fifo_line), .src_rdy_i(req_write_pkt_fifo), .dst_rdy_o(pkt_fifo_rdy), .dataout(data_o[33:0]), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i), .space(),.occupied(fifo_occupied[4:0]) ); -- cgit v1.2.3 From 587dfe7db4b4749ffedb5e7e3a0a36a83dd90c6a Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Sun, 7 Nov 2010 11:51:28 -0800 Subject: clear out the vita tx chain and the tx fifo. need to check the fifo reset to make sure it is in the correct clock domain. --- usrp2/top/u2_rev3/u2_core_udp.v | 23 ++++++++++++----------- usrp2/vrt/gen_context_pkt.v | 7 ++++--- usrp2/vrt/vita_tx_chain.v | 8 ++++++-- usrp2/vrt/vita_tx_control.v | 9 ++------- usrp2/vrt/vita_tx_deframer.v | 2 +- 5 files changed, 25 insertions(+), 24 deletions(-) diff --git a/usrp2/top/u2_rev3/u2_core_udp.v b/usrp2/top/u2_rev3/u2_core_udp.v index ec973df8d..3c31d33a9 100644 --- a/usrp2/top/u2_rev3/u2_core_udp.v +++ b/usrp2/top/u2_rev3/u2_core_udp.v @@ -162,6 +162,7 @@ module u2_core wire ram_loader_done; wire ram_loader_rst, wb_rst, dsp_rst; + assign dsp_rst = wb_rst; wire [31:0] status, status_b0, status_b1, status_b2, status_b3, status_b4, status_b5, status_b6, status_b7; wire bus_error, spi_int, i2c_int, pps_int, onetime_int, periodic_int, buffer_int; @@ -660,14 +661,17 @@ module u2_core wire [35:0] tx_data; wire tx_src_rdy, tx_dst_rdy; wire [31:0] debug_vt; + wire clear_tx; + setting_reg #(.my_addr(SR_TX_CTRL+1)) sr_clear_tx + (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(),.changed(clear_tx)); + ext_fifo #(.EXT_WIDTH(18),.INT_WIDTH(36),.RAM_DEPTH(19),.FIFO_DEPTH(19)) ext_fifo_i1 - ( - .int_clk(dsp_clk), + (.int_clk(dsp_clk), .ext_clk(clk_to_mac), -// .ext_clk(wb_clk), - .rst(dsp_rst), + .rst(dsp_rst | clear_tx), .RAM_D_pi(RAM_D_pi), .RAM_D_po(RAM_D_po), .RAM_D_poe(RAM_D_poe), @@ -679,15 +683,14 @@ module u2_core .RAM_CE1n(RAM_CE1n), // .datain({rd1_flags,rd1_dat}), .datain({rd1_flags[3:2],rd1_dat[31:16],rd1_flags[1:0],rd1_dat[15:0]}), - .src_rdy_i(rd1_ready_o), // WRITE - .dst_rdy_o(rd1_ready_i), // not FULL + .src_rdy_i(rd1_ready_o), + .dst_rdy_o(rd1_ready_i), // .dataout(tx_data), .dataout({tx_data[35:34],tx_data[31:16],tx_data[33:32],tx_data[15:0]}), - .src_rdy_o(tx_src_rdy), // not EMPTY + .src_rdy_o(tx_src_rdy), .dst_rdy_i(tx_dst_rdy), .debug(debug_extfifo), - .debug2(debug_extfifo2) - ); + .debug2(debug_extfifo2) ); vita_tx_chain #(.BASE_CTRL(SR_TX_CTRL), .BASE_DSP(SR_TX_DSP), .REPORT_ERROR(1), .DO_FLOW_CONTROL(1), @@ -702,8 +705,6 @@ module u2_core .underrun(underrun), .run(run_tx), .debug(debug_vt)); - assign dsp_rst = wb_rst; - // /////////////////////////////////////////////////////////////////////////////////// // SERDES diff --git a/usrp2/vrt/gen_context_pkt.v b/usrp2/vrt/gen_context_pkt.v index 0eb035f3e..efc170743 100644 --- a/usrp2/vrt/gen_context_pkt.v +++ b/usrp2/vrt/gen_context_pkt.v @@ -38,9 +38,10 @@ module gen_context_pkt stored_message <= message; else if(ctxt_state == CTXT_FLOWCTRL1) stored_message <= 0; - + + // Don't want to clear most of this to avoid getting stuck with a half packet in the pipe always @(posedge clk) - if(reset | clear) + if(reset) begin ctxt_state <= CTXT_IDLE; seqno <= 0; @@ -84,7 +85,7 @@ module gen_context_pkt endcase // case (ctxt_state) fifo_short #(.WIDTH(34)) ctxt_fifo - (.clk(clk), .reset(reset), .clear(clear), + (.clk(clk), .reset(reset), .clear(0), .datain(data_int), .src_rdy_i(src_rdy_int), .dst_rdy_o(dst_rdy_int), .dataout(data_o[33:0]), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i)); assign data_o[35:34] = 2'b00; diff --git a/usrp2/vrt/vita_tx_chain.v b/usrp2/vrt/vita_tx_chain.v index 00da4c6e1..21e826f1c 100644 --- a/usrp2/vrt/vita_tx_chain.v +++ b/usrp2/vrt/vita_tx_chain.v @@ -33,7 +33,11 @@ module vita_tx_chain assign underrun = error & ~(error_code == 1); assign message = error_code; - + + setting_reg #(.my_addr(BASE_CTRL+1)) sr + (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(),.changed(clear_vita)); + setting_reg #(.my_addr(BASE_CTRL+2), .at_reset(0)) sr_streamid (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(streamid),.changed(clear_seqnum)); @@ -88,7 +92,7 @@ module vita_tx_chain assign debug = debug_vtc | debug_vtd; fifo36_mux #(.prio(1)) mux_err_and_flow // Priority to err messages - (.clk(clk), .reset(reset), .clear(clear_vita), + (.clk(clk), .reset(reset), .clear(0), // Don't clear this or it could get clogged .data0_i(err_data_int), .src0_rdy_i(err_src_rdy_int), .dst0_rdy_o(err_dst_rdy_int), .data1_i(flow_data), .src1_rdy_i(flow_src_rdy), .dst1_rdy_o(flow_dst_rdy), .data_o(err_data_o), .src_rdy_o(err_src_rdy_o), .dst_rdy_i(err_dst_rdy_i)); diff --git a/usrp2/vrt/vita_tx_control.v b/usrp2/vrt/vita_tx_control.v index 936762212..eb41c54c0 100644 --- a/usrp2/vrt/vita_tx_control.v +++ b/usrp2/vrt/vita_tx_control.v @@ -58,11 +58,6 @@ module vita_tx_control reg [2:0] ibs_state; - wire clear_state; - setting_reg #(.my_addr(BASE+1)) sr - (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), - .in(set_data),.out(),.changed(clear_state)); - wire [31:0] error_policy; setting_reg #(.my_addr(BASE+3)) sr_error_policy (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), @@ -74,7 +69,7 @@ module vita_tx_control reg send_error; always @(posedge clk) - if(reset | clear_state) + if(reset | clear) begin ibs_state <= IBS_IDLE; send_error <= 0; @@ -163,7 +158,7 @@ module vita_tx_control assign error = send_error; always @(posedge clk) - if(reset) + if(reset | clear) packet_consumed <= 0; else packet_consumed <= eop & sample_fifo_src_rdy_i & sample_fifo_dst_rdy_o; diff --git a/usrp2/vrt/vita_tx_deframer.v b/usrp2/vrt/vita_tx_deframer.v index 7fb8e3893..7697be367 100644 --- a/usrp2/vrt/vita_tx_deframer.v +++ b/usrp2/vrt/vita_tx_deframer.v @@ -80,7 +80,7 @@ module vita_tx_deframer wire fifo_space; always @(posedge clk) - if(reset | clear_seqnum) + if(reset | clear | clear_seqnum) begin seqnum_reg <= 32'hFFFF_FFFF; vita_seqnum_reg <= 4'hF; -- cgit v1.2.3 From ae0d02442ab892e9800b127d6ba1eed70716bb99 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Sun, 7 Nov 2010 14:08:53 -0800 Subject: handle zero-length packets properly --- usrp2/vrt/vita_rx_control.v | 39 ++++++++++++++++---------- usrp2/vrt/vita_rx_framer.v | 25 +++++++++-------- usrp2/vrt/vita_rx_tb.v | 67 ++++++++++++++++++++++++++------------------- 3 files changed, 76 insertions(+), 55 deletions(-) diff --git a/usrp2/vrt/vita_rx_control.v b/usrp2/vrt/vita_rx_control.v index ba63181f1..0769f3a24 100644 --- a/usrp2/vrt/vita_rx_control.v +++ b/usrp2/vrt/vita_rx_control.v @@ -9,7 +9,7 @@ module vita_rx_control output overrun, // To vita_rx_framer - output [4+64+WIDTH-1:0] sample_fifo_o, + output [5+64+WIDTH-1:0] sample_fifo_o, output sample_fifo_src_rdy_o, input sample_fifo_dst_rdy_i, @@ -32,7 +32,7 @@ module vita_rx_control wire [28:0] numlines_pre; wire send_imm_pre, chain_pre, reload_pre; reg send_imm, chain, reload; - wire read_ctrl, empty_ctrl, write_ctrl; + wire read_ctrl, not_empty_ctrl, write_ctrl; reg sc_pre2; wire [33:0] fifo_line; reg [28:0] lines_left, lines_total; @@ -62,12 +62,12 @@ module vita_rx_control assign write_ctrl = sc_pre1 & ~sc_pre2; wire [4:0] command_queue_len; - + fifo_short #(.WIDTH(96)) commandfifo (.clk(clk),.reset(reset),.clear(clear), .datain({new_command,new_time}), .src_rdy_i(write_ctrl), .dst_rdy_o(), .dataout({send_imm_pre,chain_pre,reload_pre,numlines_pre,rcvtime_pre}), - .src_rdy_o(empty_ctrl), .dst_rdy_i(read_ctrl), + .src_rdy_o(not_empty_ctrl), .dst_rdy_i(read_ctrl), .occupied(command_queue_len), .space() ); reg [33:0] pkt_fifo_line; @@ -78,19 +78,22 @@ module vita_rx_control localparam IBS_OVERRUN = 4; localparam IBS_BROKENCHAIN = 5; localparam IBS_LATECMD = 6; - - wire signal_cmd_done = (lines_left == 1) & (~chain | (~empty_ctrl & (numlines_pre==0))); + localparam IBS_ZEROLEN = 7; + + wire signal_cmd_done = (lines_left == 1) & (~chain | (not_empty_ctrl & (numlines_pre==0))); wire signal_overrun = (ibs_state == IBS_OVERRUN); wire signal_brokenchain = (ibs_state == IBS_BROKENCHAIN); wire signal_latecmd = (ibs_state == IBS_LATECMD); + wire signal_zerolen = (ibs_state == IBS_ZEROLEN); // Buffer of samples for while we're writing the packet headers - wire [3:0] flags = {signal_overrun,signal_brokenchain,signal_latecmd,signal_cmd_done}; + wire [4:0] flags = {signal_zerolen,signal_overrun,signal_brokenchain,signal_latecmd,signal_cmd_done}; wire attempt_sample_write = ((run & strobe) | (ibs_state==IBS_OVERRUN) | - (ibs_state==IBS_BROKENCHAIN) | (ibs_state==IBS_LATECMD)); + (ibs_state==IBS_BROKENCHAIN) | (ibs_state==IBS_LATECMD) | + (ibs_state==IBS_ZEROLEN)); - fifo_short #(.WIDTH(4+64+WIDTH)) rx_sample_fifo + fifo_short #(.WIDTH(5+64+WIDTH)) rx_sample_fifo (.clk(clk),.reset(reset),.clear(clear), .datain({flags,vita_time,sample}), .src_rdy_i(attempt_sample_write), .dst_rdy_o(sample_fifo_in_rdy), .dataout(sample_fifo_o), @@ -119,12 +122,15 @@ module vita_rx_control else case(ibs_state) IBS_IDLE : - if(~empty_ctrl) + if(not_empty_ctrl) begin lines_left <= numlines_pre; lines_total <= numlines_pre; rcvtime <= rcvtime_pre; - ibs_state <= IBS_WAITING; + if(numlines_pre == 0) + ibs_state <= IBS_ZEROLEN; + else + ibs_state <= IBS_WAITING; send_imm <= send_imm_pre; chain <= chain_pre; reload <= reload_pre; @@ -144,12 +150,12 @@ module vita_rx_control if(lines_left == 1) if(~chain) ibs_state <= IBS_IDLE; - else if(empty_ctrl & reload) + else if(~not_empty_ctrl & reload) begin ibs_state <= IBS_RUNNING; lines_left <= lines_total; end - else if(empty_ctrl) + else if(~not_empty_ctrl) ibs_state <= IBS_BROKENCHAIN; else begin @@ -174,17 +180,20 @@ module vita_rx_control IBS_BROKENCHAIN : if(sample_fifo_in_rdy) ibs_state <= IBS_IDLE; + IBS_ZEROLEN : + if(sample_fifo_in_rdy) + ibs_state <= IBS_IDLE; endcase // case(ibs_state) assign overrun = (ibs_state == IBS_OVERRUN); assign run = (ibs_state == IBS_RUNNING); assign read_ctrl = ( (ibs_state == IBS_IDLE) | ((ibs_state == IBS_RUNNING) & strobe & ~full & (lines_left==1) & chain) ) - & ~empty_ctrl; + & not_empty_ctrl; assign debug_rx = { { ibs_state[2:0], command_queue_len }, { 8'd0 }, - { go_now, too_late, run, strobe, read_ctrl, write_ctrl, 1'b0, empty_ctrl }, + { go_now, too_late, run, strobe, read_ctrl, write_ctrl, 1'b0, ~not_empty_ctrl }, { 2'b0, overrun, chain_pre, sample_fifo_in_rdy, attempt_sample_write, sample_fifo_src_rdy_o,sample_fifo_dst_rdy_i} }; endmodule // rx_control diff --git a/usrp2/vrt/vita_rx_framer.v b/usrp2/vrt/vita_rx_framer.v index 1065ce637..bce8fe334 100644 --- a/usrp2/vrt/vita_rx_framer.v +++ b/usrp2/vrt/vita_rx_framer.v @@ -11,7 +11,7 @@ module vita_rx_framer output src_rdy_o, // From vita_rx_control - input [4+64+(32*MAXCHAN)-1:0] sample_fifo_i, + input [5+64+(32*MAXCHAN)-1:0] sample_fifo_i, input sample_fifo_src_rdy_i, output sample_fifo_dst_rdy_o, @@ -23,11 +23,11 @@ module vita_rx_framer output [31:0] debug_rx ); - localparam SAMP_WIDTH = 4+64+(32*MAXCHAN); + localparam SAMP_WIDTH = 5+64+(32*MAXCHAN); reg [3:0] sample_phase; wire [3:0] numchan; - wire [3:0] flags_fifo_o = sample_fifo_i[SAMP_WIDTH-1:SAMP_WIDTH-4]; - wire [63:0] vita_time_fifo_o = sample_fifo_i[SAMP_WIDTH-5:SAMP_WIDTH-68]; + wire [4:0] flags_fifo_o = sample_fifo_i[SAMP_WIDTH-1:SAMP_WIDTH-5]; + wire [63:0] vita_time_fifo_o = sample_fifo_i[SAMP_WIDTH-6:SAMP_WIDTH-69]; reg [31:0] data_fifo_o; @@ -55,7 +55,7 @@ module vita_rx_framer reg [3:0] pkt_count; wire [15:0] vita_pkt_len = samples_per_packet + 6; - //wire [3:0] flags = {signal_overrun,signal_brokenchain,signal_latecmd,signal_cmd_done}; + //wire [4:0] flags = {signal_zerolen,signal_overrun,signal_brokenchain,signal_latecmd,signal_cmd_done}; setting_reg #(.my_addr(BASE+4)) sr_header (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), @@ -69,11 +69,11 @@ module vita_rx_framer (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(vita_trailer),.changed()); - setting_reg #(.my_addr(BASE+7)) sr_samples_per_pkt + setting_reg #(.my_addr(BASE+7),.width(16)) sr_samples_per_pkt (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(samples_per_packet),.changed()); - setting_reg #(.my_addr(BASE+8), .at_reset(1)) sr_numchan + setting_reg #(.my_addr(BASE+8),.width(4), .at_reset(1)) sr_numchan (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(numchan),.changed()); @@ -107,7 +107,8 @@ module vita_rx_framer always @* case(vita_state) // Data packets are IF Data packets with or w/o streamid, no classid, with trailer - VITA_HEADER : pkt_fifo_line <= {2'b01,3'b000,vita_header[28],2'b01,vita_header[25:20],pkt_count,vita_pkt_len}; + VITA_HEADER : pkt_fifo_line <= {2'b01,3'b000,vita_header[28],2'b01,vita_header[25:24], + vita_header[23:20],pkt_count[3:0],vita_pkt_len[15:0]}; VITA_STREAMID : pkt_fifo_line <= {2'b00,vita_streamid}; VITA_SECS : pkt_fifo_line <= {2'b00,vita_time_fifo_o[63:32]}; VITA_TICS : pkt_fifo_line <= {2'b00,32'd0}; @@ -121,7 +122,7 @@ module vita_rx_framer VITA_ERR_SECS : pkt_fifo_line <= {2'b00,vita_time_fifo_o[63:32]}; VITA_ERR_TICS : pkt_fifo_line <= {2'b00,32'd0}; VITA_ERR_TICS2 : pkt_fifo_line <= {2'b00,vita_time_fifo_o[31:0]}; - VITA_ERR_PAYLOAD : pkt_fifo_line <= {2'b10,28'd0,flags_fifo_o}; + VITA_ERR_PAYLOAD : pkt_fifo_line <= {2'b10,27'd0,flags_fifo_o}; //VITA_ERR_TRAILER : pkt_fifo_line <= {2'b11,vita_trailer}; default : pkt_fifo_line <= 34'h0_FFFF_FFFF; @@ -140,7 +141,7 @@ module vita_rx_framer sample_ctr <= 1; sample_phase <= 0; if(sample_fifo_src_rdy_i) - if(|flags_fifo_o[3:1]) + if(|flags_fifo_o[4:1]) vita_state <= VITA_ERR_HEADER; else vita_state <= VITA_HEADER; @@ -185,7 +186,7 @@ module vita_rx_framer req_write_pkt_fifo <= 1; VITA_PAYLOAD : // Write if sample ready and no error flags - req_write_pkt_fifo <= (sample_fifo_src_rdy_i & ~|flags_fifo_o[3:1]); + req_write_pkt_fifo <= (sample_fifo_src_rdy_i & ~|flags_fifo_o[4:1]); VITA_ERR_HEADER, VITA_ERR_STREAMID, VITA_ERR_SECS, VITA_ERR_TICS, VITA_ERR_TICS2, VITA_ERR_PAYLOAD : req_write_pkt_fifo <= 1; default : @@ -205,7 +206,7 @@ module vita_rx_framer assign sample_fifo_dst_rdy_o = pkt_fifo_rdy & ( ((vita_state==VITA_PAYLOAD) & (sample_phase == (numchan-4'd1)) & - ~|flags_fifo_o[3:1]) | + ~|flags_fifo_o[4:1]) | (vita_state==VITA_ERR_PAYLOAD)); assign debug_rx = vita_state; diff --git a/usrp2/vrt/vita_rx_tb.v b/usrp2/vrt/vita_rx_tb.v index 3e01e2ee2..023934f39 100644 --- a/usrp2/vrt/vita_rx_tb.v +++ b/usrp2/vrt/vita_rx_tb.v @@ -37,7 +37,7 @@ module vita_rx_tb; wire sample_dst_rdy, sample_src_rdy; //wire [99:0] sample_data_o; - wire [64+4+(MAXCHAN*32)-1:0] sample_data_o; + wire [64+5+(MAXCHAN*32)-1:0] sample_data_o; vita_rx_control #(.BASE(0), .WIDTH(32*MAXCHAN)) vita_rx_control (.clk(clk), .reset(reset), .clear(0), @@ -92,58 +92,68 @@ module vita_rx_tb; begin @(negedge reset); @(posedge clk); - write_setting(4,32'hDEADBEEF); // VITA header + write_setting(4,32'h15F00000); // VITA header write_setting(5,32'hF00D1234); // VITA streamid - write_setting(6,32'hF0000000); // VITA trailer + write_setting(6,32'hE0000000); // VITA trailer write_setting(7,8); // Samples per VITA packet - write_setting(8,NUMCHAN); // Samples per VITA packet - queue_rx_cmd(1,0,8,32'h0,32'h0); // send imm, single packet - queue_rx_cmd(1,0,16,32'h0,32'h0); // send imm, 2 packets worth - queue_rx_cmd(1,0,7,32'h0,32'h0); // send imm, 1 short packet worth - queue_rx_cmd(1,0,9,32'h0,32'h0); // send imm, just longer than 1 packet + write_setting(8,NUMCHAN); // Vector length + + queue_rx_cmd(1,1,0,10,32'h0,32'h0); // send imm, single packet + #10000; + + queue_rx_cmd(1,0,0,0,32'h0,32'h0); // send imm, single packet + //queue_rx_cmd(1,1,0,0,32'h0,32'h0); // send imm, single packet + + //queue_rx_cmd(1,0,0,0,32'h0,32'h0); // send imm, single packet + + /* + queue_rx_cmd(1,0,0,8,32'h0,32'h0); // send imm, single packet + queue_rx_cmd(1,0,0,16,32'h0,32'h0); // send imm, 2 packets worth + queue_rx_cmd(1,0,0,7,32'h0,32'h0); // send imm, 1 short packet worth + queue_rx_cmd(1,0,0,9,32'h0,32'h0); // send imm, just longer than 1 packet - queue_rx_cmd(1,1,16,32'h0,32'h0); // chained - queue_rx_cmd(0,0,8,32'h0,32'h0); // 2nd in chain + queue_rx_cmd(1,1,0,16,32'h0,32'h0); // chained + queue_rx_cmd(0,0,0,8,32'h0,32'h0); // 2nd in chain - queue_rx_cmd(1,1,17,32'h0,32'h0); // chained, odd length - queue_rx_cmd(0,0,9,32'h0,32'h0); // 2nd in chain, also odd length + queue_rx_cmd(1,1,0,17,32'h0,32'h0); // chained, odd length + queue_rx_cmd(0,0,0,9,32'h0,32'h0); // 2nd in chain, also odd length - queue_rx_cmd(0,0,8,32'h0,32'h340); // send at, on time - queue_rx_cmd(0,0,8,32'h0,32'h100); // send at, but late + queue_rx_cmd(0,0,0,8,32'h0,32'h340); // send at, on time + queue_rx_cmd(0,0,0,8,32'h0,32'h100); // send at, but late #100000; $display("\nChained, break chain\n"); - queue_rx_cmd(1,1,8,32'h0,32'h0); // chained, but break chain + queue_rx_cmd(1,1,0,8,32'h0,32'h0); // chained, but break chain #100000; $display("\nSingle packet\n"); - queue_rx_cmd(1,0,8,32'h0,32'h0); // send imm, single packet + queue_rx_cmd(1,0,0,8,32'h0,32'h0); // send imm, single packet #100000; $display("\nEnd chain with zero samples, shouldn't error\n"); - queue_rx_cmd(1,1,8,32'h0,32'h0); // chained - queue_rx_cmd(0,0,0,32'h0,32'h0); // end chain with zero samples, should keep us out of error + queue_rx_cmd(1,1,0,8,32'h0,32'h0); // chained + queue_rx_cmd(0,0,0,0,32'h0,32'h0); // end chain with zero samples, should keep us out of error #100000; $display("\nEnd chain with zero samples on odd-length, shouldn't error\n"); - queue_rx_cmd(1,1,14,32'h0,32'h0); // chained - queue_rx_cmd(0,0,0,32'h0,32'h0); // end chain with zero samples, should keep us out of error + queue_rx_cmd(1,1,0,14,32'h0,32'h0); // chained + queue_rx_cmd(0,0,0,0,32'h0,32'h0); // end chain with zero samples, should keep us out of error #100000; $display("Should have gotten 14 samples and EOF by now\n"); - queue_rx_cmd(1,1,9,32'h0,32'h0); // chained, but break chain, odd length + queue_rx_cmd(1,1,0,9,32'h0,32'h0); // chained, but break chain, odd length #100000; dst_rdy <= 0; // stop pulling out of fifo so we can get an overrun - queue_rx_cmd(1,0,100,32'h0,32'h0); // long enough to fill the fifos - queue_rx_cmd(1,0,5,32'h0,32'h0); // this command waits until the previous error packet is sent + queue_rx_cmd(1,0,0,100,32'h0,32'h0); // long enough to fill the fifos + queue_rx_cmd(1,0,0,5,32'h0,32'h0); // this command waits until the previous error packet is sent #100000; dst_rdy <= 1; // restart the reads so we can see what we got #100000; dst_rdy <= 0; // stop pulling out of fifo so we can get an overrun - queue_rx_cmd(1,1,100,32'h0,32'h0); // long enough to fill the fifos - //queue_rx_cmd(1,0,5,32'h0,32'h0); // this command waits until the previous error packet is sent + queue_rx_cmd(1,1,0,100,32'h0,32'h0); // long enough to fill the fifos + //queue_rx_cmd(1,0,0,5,32'h0,32'h0); // this command waits until the previous error packet is sent #100000; @(posedge clk); dst_rdy <= 1; - + */ #100000 $finish; end @@ -164,11 +174,12 @@ module vita_rx_tb; task queue_rx_cmd; input send_imm; input chain; - input [29:0] lines; + input reload; + input [28:0] lines; input [31:0] secs; input [31:0] tics; begin - write_setting(0,{send_imm,chain,lines}); + write_setting(0,{send_imm,chain,reload,lines}); write_setting(1,secs); write_setting(2,tics); end -- cgit v1.2.3 From a78ace9e161a0fc30a6cc6de38b9eea45230a4b6 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Sun, 7 Nov 2010 14:32:01 -0800 Subject: compiles with new file locations --- usrp2/vrt/vita_tx.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usrp2/vrt/vita_tx.build b/usrp2/vrt/vita_tx.build index 902929c08..e7106aa10 100755 --- a/usrp2/vrt/vita_tx.build +++ b/usrp2/vrt/vita_tx.build @@ -1 +1 @@ -iverilog -Wimplict -Wportbind -y ../sdr_lib -y ../models -y . -y ../control_lib/ -y ../control_lib/newfifo -y ../coregen -y /opt/Xilinx/10.1/ISE/verilog/src/XilinxCoreLib -y /opt/Xilinx/10.1/ISE/verilog/src/unisims/ -y ../timing -o vita_tx_tb vita_tx_tb.v +iverilog -Wimplict -Wportbind -y ../sdr_lib -y ../models -y . -y ../control_lib/ -y ../fifo -y ../coregen -y /opt/Xilinx/10.1/ISE/verilog/src/XilinxCoreLib -y /opt/Xilinx/10.1/ISE/verilog/src/unisims/ -y ../timing -o vita_tx_tb vita_tx_tb.v -- cgit v1.2.3 From 048dd370496dd128f7d12ac5c40426490c5d6233 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Sun, 7 Nov 2010 14:32:35 -0800 Subject: reset properly --- usrp2/vrt/vita_tx_control.v | 1 + 1 file changed, 1 insertion(+) diff --git a/usrp2/vrt/vita_tx_control.v b/usrp2/vrt/vita_tx_control.v index eb41c54c0..967847d36 100644 --- a/usrp2/vrt/vita_tx_control.v +++ b/usrp2/vrt/vita_tx_control.v @@ -73,6 +73,7 @@ module vita_tx_control begin ibs_state <= IBS_IDLE; send_error <= 0; + error_code <= 0; end else case(ibs_state) -- cgit v1.2.3 From ee48c9abebf25d42301d19767e876405a3b533bb Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Thu, 11 Nov 2010 19:21:36 -0800 Subject: Add flow control and other small vrt fixes to u2p, minor cleanups --- usrp2/top/u2_rev3/u2_core_udp.v | 5 +-- usrp2/top/u2plus/u2plus_core.v | 67 +++++++++++++++++++++++------------------ 2 files changed, 38 insertions(+), 34 deletions(-) diff --git a/usrp2/top/u2_rev3/u2_core_udp.v b/usrp2/top/u2_rev3/u2_core_udp.v index 3c31d33a9..9e62ee1cc 100644 --- a/usrp2/top/u2_rev3/u2_core_udp.v +++ b/usrp2/top/u2_rev3/u2_core_udp.v @@ -125,7 +125,6 @@ module u2_core output [18:0] RAM_A, output RAM_CE1n, output RAM_CENn, - // output RAM_CLK, output RAM_WEn, output RAM_OEn, output RAM_LDn, @@ -662,7 +661,7 @@ module u2_core wire tx_src_rdy, tx_dst_rdy; wire [31:0] debug_vt; wire clear_tx; - + setting_reg #(.my_addr(SR_TX_CTRL+1)) sr_clear_tx (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(),.changed(clear_tx)); @@ -681,11 +680,9 @@ module u2_core .RAM_LDn(RAM_LDn), .RAM_OEn(RAM_OEn), .RAM_CE1n(RAM_CE1n), -// .datain({rd1_flags,rd1_dat}), .datain({rd1_flags[3:2],rd1_dat[31:16],rd1_flags[1:0],rd1_dat[15:0]}), .src_rdy_i(rd1_ready_o), .dst_rdy_o(rd1_ready_i), -// .dataout(tx_data), .dataout({tx_data[35:34],tx_data[31:16],tx_data[33:32],tx_data[15:0]}), .src_rdy_o(tx_src_rdy), .dst_rdy_i(tx_dst_rdy), diff --git a/usrp2/top/u2plus/u2plus_core.v b/usrp2/top/u2plus/u2plus_core.v index 081ffe4c6..8426826e2 100644 --- a/usrp2/top/u2plus/u2plus_core.v +++ b/usrp2/top/u2plus/u2plus_core.v @@ -164,9 +164,7 @@ module u2plus_core wire [31:0] atr_lines; wire [31:0] debug_rx, debug_mac, debug_mac0, debug_mac1, debug_tx_dsp, debug_txc, - debug_serdes0, debug_serdes1, debug_serdes2, debug_rx_dsp, debug_udp, - debug_extfifo; - + debug_serdes0, debug_serdes1, debug_serdes2, debug_rx_dsp, debug_udp; wire [15:0] ser_rx_occ, ser_tx_occ, dsp_rx_occ, dsp_tx_occ, eth_rx_occ, eth_tx_occ, eth_rx_occ2; wire ser_rx_full, ser_tx_full, dsp_rx_full, dsp_tx_full, eth_rx_full, eth_tx_full, eth_rx_full2; @@ -367,7 +365,7 @@ module u2plus_core .cyc_i(s4_cyc),.stb_i(s4_stb),.adr_i(s4_adr[3:0]),.we_i(s4_we), .dat_i(s4_dat_o),.dat_o(s4_dat_i),.ack_o(s4_ack), .atr(atr_lines),.debug_0(debug_gpio_0),.debug_1(debug_gpio_1), - .gpio( {io_tx,io_rx} ) ); + .gpio({io_tx,io_rx}) ); // ///////////////////////////////////////////////////////////////////////// // Buffer Pool Status -- Slave #5 @@ -380,7 +378,7 @@ module u2plus_core cycle_count <= cycle_count + 1; //compatibility number -> increment when the fpga has been sufficiently altered - localparam compat_num = 32'd2; + localparam compat_num = 32'd3; wb_readback_mux buff_pool_status (.wb_clk_i(wb_clk), .wb_rst_i(wb_rst), .wb_stb_i(s5_stb), @@ -494,10 +492,17 @@ module u2plus_core // ///////////////////////////////////////////////////////////////////////// // Interrupt Controller, Slave #8 + // Pass interrupts on dsp_clk to wb_clk. These need edge triggering in the pic + wire underrun_wb, overrun_wb, pps_wb; + + oneshot_2clk underrun_1s (.clk_in(dsp_clk), .in(underrun), .clk_out(wb_clk), .out(underrun_wb)); + oneshot_2clk overrun_1s (.clk_in(dsp_clk), .in(overrun), .clk_out(wb_clk), .out(overrun_wb)); + oneshot_2clk pps_1s (.clk_in(dsp_clk), .in(pps_int), .clk_out(wb_clk), .out(pps_wb)); + assign irq= {{8'b0}, {uart_tx_int[3:0], uart_rx_int[3:0]}, {2'b0, button, periodic_int, clk_status, serdes_link_up, 2'b00}, - {pps_int,overrun,underrun,PHY_INTn,i2c_int,spi_int,onetime_int,buffer_int}}; + {pps_wb,overrun_wb,underrun_wb,PHY_INTn,i2c_int,spi_int,onetime_int,buffer_int}}; pic pic(.clk_i(wb_clk),.rst_i(wb_rst),.cyc_i(s8_cyc),.stb_i(s8_stb),.adr_i(s8_adr[4:2]), .we_i(s8_we),.dat_i(s8_dat_o),.dat_o(s8_dat_i),.ack_o(s8_ack),.int_o(proc_int), @@ -578,9 +583,15 @@ module u2plus_core .debug(debug_rx_dsp) ); wire [31:0] vrc_debug; + wire clear_rx; + setting_reg #(.my_addr(SR_RX_CTRL+3)) sr_clear + (.clk(dsp_clk),.rst(dsp_rst), + .strobe(set_stb_dsp),.addr(set_addr_dsp),.in(set_data_dsp), + .out(),.changed(clear_rx)); + vita_rx_control #(.BASE(SR_RX_CTRL), .WIDTH(32)) vita_rx_control - (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + (.clk(dsp_clk), .reset(dsp_rst), .clear(clear_rx), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .vita_time(vita_time), .overrun(overrun), .sample(sample_rx), .run(run_rx), .strobe(strobe_rx), @@ -590,7 +601,7 @@ module u2plus_core wire [3:0] vita_state; vita_rx_framer #(.BASE(SR_RX_CTRL), .MAXCHAN(1)) vita_rx_framer - (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + (.clk(dsp_clk), .reset(dsp_rst), .clear(clear_rx), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .sample_fifo_i(rx_data), .sample_fifo_dst_rdy_o(rx_dst_rdy), .sample_fifo_src_rdy_i(rx_src_rdy), .data_o(rx1_data), .dst_rdy_i(rx1_dst_rdy), .src_rdy_o(rx1_src_rdy), @@ -598,7 +609,7 @@ module u2plus_core .debug_rx(vita_state) ); fifo_cascade #(.WIDTH(36), .SIZE(DSP_RX_FIFOSIZE)) rx_fifo_cascade - (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + (.clk(dsp_clk), .reset(dsp_rst), .clear(clear_rx), .datain(rx1_data), .src_rdy_i(rx1_src_rdy), .dst_rdy_o(rx1_dst_rdy), .dataout({wr1_flags,wr1_dat}), .src_rdy_o(wr1_ready_i), .dst_rdy_i(wr1_ready_o)); @@ -608,23 +619,19 @@ module u2plus_core wire [35:0] tx_data; wire tx_src_rdy, tx_dst_rdy; wire [31:0] debug_vt; - -/* -----\/----- EXCLUDED -----\/----- - fifo_cascade #(.WIDTH(36), .SIZE(DSP_TX_FIFOSIZE)) tx_fifo_cascade - (.clk(dsp_clk), .reset(dsp_rst), .clear(0), - .datain({rd1_flags,rd1_dat}), .src_rdy_i(rd1_ready_o), .dst_rdy_o(rd1_ready_i), - .dataout(tx_data), .src_rdy_o(tx_src_rdy), .dst_rdy_i(tx_dst_rdy) ); - -----/\----- EXCLUDED -----/\----- */ - // External and internal clock run at 100MHz for USRP2+ because ext RAM is 36bits wide - // and provides ample bandwidth. + wire clear_tx; + + setting_reg #(.my_addr(SR_TX_CTRL+1)) sr_clear_tx + (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(),.changed(clear_tx)); + assign RAM_A[20:18] = 3'b0; ext_fifo #(.EXT_WIDTH(36),.INT_WIDTH(36),.RAM_DEPTH(18),.FIFO_DEPTH(18)) ext_fifo_i1 - ( - .int_clk(dsp_clk), + (.int_clk(dsp_clk), .ext_clk(dsp_clk), - .rst(dsp_rst), + .rst(dsp_rst | clear_tx), .RAM_D_pi(RAM_D_pi), .RAM_D_po(RAM_D_po), .RAM_D_poe(RAM_D_poe), @@ -635,17 +642,17 @@ module u2plus_core .RAM_OEn(RAM_OEn), .RAM_CE1n(RAM_CE1n), .datain({rd1_flags[3:2],rd1_dat[31:16],rd1_flags[1:0],rd1_dat[15:0]}), - .src_rdy_i(rd1_ready_o), // WRITE - .dst_rdy_o(rd1_ready_i), // not FULL + .src_rdy_i(rd1_ready_o), + .dst_rdy_o(rd1_ready_i), .dataout({tx_data[35:34],tx_data[31:16],tx_data[33:32],tx_data[15:0]}), - .src_rdy_o(tx_src_rdy), // not EMPTY + .src_rdy_o(tx_src_rdy), .dst_rdy_i(tx_dst_rdy), .debug(debug_extfifo), - .debug2(debug_extfifo2) - ); - + .debug2(debug_extfifo2) ); + vita_tx_chain #(.BASE_CTRL(SR_TX_CTRL), .BASE_DSP(SR_TX_DSP), - .REPORT_ERROR(1), .PROT_ENG_FLAGS(1)) + .REPORT_ERROR(1), .DO_FLOW_CONTROL(1), + .PROT_ENG_FLAGS(1), .USE_TRANS_HEADER(1)) vita_tx_chain (.clk(dsp_clk), .reset(dsp_rst), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), @@ -681,8 +688,8 @@ module u2plus_core // ///////////////////////////////////////////////////////////////////////////////////////// // Debug Pins - assign debug_clk = 2'b00; - assign debug = 32'd0; + assign debug_clk = 2'b00; // {dsp_clk, clk_to_mac}; + assign debug = 32'd0; // debug_extfifo; assign debug_gpio_0 = 32'd0; assign debug_gpio_1 = 32'd0; -- cgit v1.2.3 From 00297596c28df8d5ffd454f95f71b290dcbe07ef Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Sat, 13 Nov 2010 18:18:51 -0800 Subject: we're still on version 12.1 --- usrp2/coregen/fifo_xlnx_32x36_2clk.xise | 2 +- usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xise | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/usrp2/coregen/fifo_xlnx_32x36_2clk.xise b/usrp2/coregen/fifo_xlnx_32x36_2clk.xise index 0c3544a33..b9eb7bd1a 100644 --- a/usrp2/coregen/fifo_xlnx_32x36_2clk.xise +++ b/usrp2/coregen/fifo_xlnx_32x36_2clk.xise @@ -12,7 +12,7 @@ - + diff --git a/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xise b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xise index 8bf460ac7..91dbf5819 100644 --- a/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xise +++ b/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xise @@ -12,7 +12,7 @@ - + -- cgit v1.2.3 From f04a49aabfce58fa57e5dcc727b7a13143fb92a4 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Sat, 13 Nov 2010 18:19:37 -0800 Subject: simplify time comparison to speed up logic and meet fpga timing --- usrp2/timing/time_compare.v | 26 +++++++++++++++++++++++++- usrp2/vrt/vita_tx_control.v | 5 ++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/usrp2/timing/time_compare.v b/usrp2/timing/time_compare.v index a21c9f8e0..cb2b6d860 100644 --- a/usrp2/timing/time_compare.v +++ b/usrp2/timing/time_compare.v @@ -14,10 +14,34 @@ module time_compare wire tick_match = (time_now[31:0] == trigger_time[31:0]); wire tick_late = (time_now[31:0] > trigger_time[31:0]); - +/* assign now = sec_match & tick_match; assign late = sec_late | (sec_match & tick_late); assign early = ~now & ~late; +*/ + + /* + assign now = (time_now == trigger_time); + assign late = (time_now > trigger_time); + assign early = (time_now < trigger_time); + */ + + // Compare fewer bits instead of 64 to speed up logic + // Unused bits are not significant + // Top bit of seconds would put us in year 2038, long after + // the warranty has run out :) + // Top 5 bits of ticks are always zero for clocks less than 134MHz + // "late" can drop bottom few bits of ticks, and just delay signaling + // of late. + // "now" cannot drop those bits, it needs to be exact. + + wire [57:0] short_now = {time_now[62:32],time_now[26:0]}; + wire [57:0] short_trig = {trigger_time[62:32],trigger_time[26:0]}; + + assign now = (short_now == short_trig); + assign late = (short_now[57:5] > short_trig[57:5]); + assign early = (short_now < short_trig); + assign too_early = (trigger_time[63:32] > (time_now[63:32] + 4)); // Don't wait too long endmodule // time_compare diff --git a/usrp2/vrt/vita_tx_control.v b/usrp2/vrt/vita_tx_control.v index 967847d36..ddcb6a2d2 100644 --- a/usrp2/vrt/vita_tx_control.v +++ b/usrp2/vrt/vita_tx_control.v @@ -38,9 +38,8 @@ module vita_tx_control // FIXME ignore too_early for now for timing reasons assign too_early = 0; time_compare - time_compare (.time_now(vita_time), .trigger_time(send_time), .now(now), .early(early), - .late(late), .too_early()); -// .late(late), .too_early(too_early)); + time_compare (.time_now(vita_time), .trigger_time(send_time), + .now(now), .early(early), .late(late), .too_early()); localparam IBS_IDLE = 0; localparam IBS_RUN = 1; // FIXME do we need this? -- cgit v1.2.3 From 7383ff07f482f8dcf37f2c1464f6a29d1b0bdf0b Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Thu, 18 Nov 2010 18:39:24 -0800 Subject: fix problem with consecutive timed packets on tx --- usrp2/vrt/vita_tx_deframer.v | 2 -- 1 file changed, 2 deletions(-) diff --git a/usrp2/vrt/vita_tx_deframer.v b/usrp2/vrt/vita_tx_deframer.v index 7697be367..eb39feaec 100644 --- a/usrp2/vrt/vita_tx_deframer.v +++ b/usrp2/vrt/vita_tx_deframer.v @@ -201,8 +201,6 @@ module vita_tx_deframer send_time[63:32] <= data_i[31:0]; VITA_TICS2 : send_time[31:0] <= data_i[31:0]; - VITA_STORE, VITA_HEADER : - send_time[63:0] <= 64'd0; endcase // case (vita_state) always @(posedge clk) -- cgit v1.2.3 From e7fbdbce6809698e10a9d6e18326ab572a280811 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Thu, 18 Nov 2010 19:13:42 -0800 Subject: get rid of extraneous U messages when we actually had an ACK --- usrp2/vrt/vita_tx_chain.v | 6 +++--- usrp2/vrt/vita_tx_control.v | 11 +++++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/usrp2/vrt/vita_tx_chain.v b/usrp2/vrt/vita_tx_chain.v index 21e826f1c..264b6e98a 100644 --- a/usrp2/vrt/vita_tx_chain.v +++ b/usrp2/vrt/vita_tx_chain.v @@ -31,7 +31,7 @@ module vita_tx_chain wire clear_seqnum; wire [31:0] current_seqnum; - assign underrun = error & ~(error_code == 1); + assign underrun = error; assign message = error_code; setting_reg #(.my_addr(BASE_CTRL+1)) sr @@ -56,7 +56,7 @@ module vita_tx_chain vita_tx_control #(.BASE(BASE_CTRL), .WIDTH(32*MAXCHAN)) vita_tx_control (.clk(clk), .reset(reset), .clear(clear_vita), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), - .vita_time(vita_time),.error(error),.error_code(error_code), + .vita_time(vita_time), .error(error), .ack(ack), .error_code(error_code), .sample_fifo_i(tx1_data), .sample_fifo_src_rdy_i(tx1_src_rdy), .sample_fifo_dst_rdy_o(tx1_dst_rdy), .sample(sample_tx), .run(run), .strobe(strobe_tx), .packet_consumed(packet_consumed), .debug(debug_vtc) ); @@ -84,7 +84,7 @@ module vita_tx_chain gen_context_pkt #(.PROT_ENG_FLAGS(PROT_ENG_FLAGS)) gen_tx_err_pkt (.clk(clk), .reset(reset), .clear(clear_vita), - .trigger(error & (REPORT_ERROR==1)), .sent(), + .trigger((error|ack) & (REPORT_ERROR==1)), .sent(), .streamid(streamid), .vita_time(vita_time), .message(message), .seqnum0(current_seqnum), .seqnum1(32'd0), .data_o(err_data_int), .src_rdy_o(err_src_rdy_int), .dst_rdy_i(err_dst_rdy_int)); diff --git a/usrp2/vrt/vita_tx_control.v b/usrp2/vrt/vita_tx_control.v index ddcb6a2d2..20ad6b995 100644 --- a/usrp2/vrt/vita_tx_control.v +++ b/usrp2/vrt/vita_tx_control.v @@ -6,7 +6,7 @@ module vita_tx_control input set_stb, input [7:0] set_addr, input [31:0] set_data, input [63:0] vita_time, - output error, + output error, output ack, output reg [31:0] error_code, output reg packet_consumed, @@ -65,13 +65,14 @@ module vita_tx_control wire policy_wait = error_policy[0]; wire policy_next_packet = error_policy[1]; wire policy_next_burst = error_policy[2]; - reg send_error; + reg send_error, send_ack; always @(posedge clk) if(reset | clear) begin ibs_state <= IBS_IDLE; send_error <= 0; + send_ack <= 0; error_code <= 0; end else @@ -106,7 +107,7 @@ module vita_tx_control begin ibs_state <= IBS_ERROR_DONE; // Not really an error error_code <= CODE_EOB_ACK; - send_error <= 1; + send_ack <= 1; end else ibs_state <= IBS_CONT_BURST; @@ -146,6 +147,7 @@ module vita_tx_control IBS_ERROR_DONE : begin send_error <= 0; + send_ack <= 0; ibs_state <= IBS_IDLE; end @@ -156,6 +158,7 @@ module vita_tx_control assign sample_fifo_dst_rdy_o = (ibs_state == IBS_ERROR) | (strobe & (ibs_state == IBS_RUN)); // FIXME also cleanout assign run = (ibs_state == IBS_RUN) | (ibs_state == IBS_CONT_BURST); assign error = send_error; + assign ack = send_ack; always @(posedge clk) if(reset | clear) @@ -163,7 +166,7 @@ module vita_tx_control else packet_consumed <= eop & sample_fifo_src_rdy_i & sample_fifo_dst_rdy_o; - assign debug = { { now,early,late,too_early,eop,eob,sob,send_at }, + assign debug = { { now,early,late,ack,eop,eob,sob,send_at }, { sample_fifo_src_rdy_i, sample_fifo_dst_rdy_o, strobe, run, error, ibs_state[2:0] }, { 8'b0 }, { 8'b0 } }; -- cgit v1.2.3 From 18076097477a5d6f26ab69a23c4d27062490aeb0 Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Fri, 19 Nov 2010 11:53:58 -0800 Subject: modernize the testbench --- usrp2/vrt/vita_tx_tb.v | 48 ++++++++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/usrp2/vrt/vita_tx_tb.v b/usrp2/vrt/vita_tx_tb.v index 0223d6850..a118ffd4e 100644 --- a/usrp2/vrt/vita_tx_tb.v +++ b/usrp2/vrt/vita_tx_tb.v @@ -33,7 +33,7 @@ module vita_tx_tb; wire [31:0] set_data_dsp; wire sample_dst_rdy, sample_src_rdy; - wire [64+4+(MAXCHAN*32)-1:0] sample_data_o, sample_data_tx; + wire [5+64+16+(MAXCHAN*32)-1:0] sample_data_o, sample_data_tx; time_64bit #(.TICKS_PER_SEC(100000000), .BASE(0)) time_64bit (.clk(clk), .rst(reset), @@ -49,8 +49,8 @@ module vita_tx_tb; .datain(data_o), .src_rdy_i(src_rdy), .dst_rdy_o(dst_rdy), .dataout(data_tx), .src_rdy_o(src_rdy_tx), .dst_rdy_i(dst_rdy_tx)); - vita_tx_deframer #(.BASE(16), .MAXCHAN(MAXCHAN)) vita_tx_deframer - (.clk(clk), .reset(reset), .clear(0), + vita_tx_deframer #(.BASE(16), .MAXCHAN(MAXCHAN), .USE_TRANS_HEADER(0)) vita_tx_deframer + (.clk(clk), .reset(reset), .clear(0), .clear_seqnum(0), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .data_i(data_tx), .dst_rdy_o(dst_rdy_tx), .src_rdy_i(src_rdy_tx), .sample_fifo_o(sample_data_tx), @@ -60,7 +60,7 @@ module vita_tx_tb; vita_tx_control #(.BASE(16), .WIDTH(MAXCHAN*32)) vita_tx_control (.clk(clk), .reset(reset), .clear(0), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), - .vita_time(vita_time), .underrun(underrun), + .vita_time(vita_time), .error(underrun), .error_code(), .sample_fifo_i(sample_data_tx), .sample_fifo_dst_rdy_o(sample_dst_rdy_tx), .sample_fifo_src_rdy_i(sample_src_rdy_tx), .sample(sample_tx), .run(run_tx), .strobe(strobe_tx)); @@ -92,35 +92,47 @@ module vita_tx_tb; write_setting(7,8); // Samples per VITA packet write_setting(8,NUMCHAN); // Samples per VITA packet #10000; - queue_vita_packets(32'h300, 106, 32'hF00D_1234, 32'h55AA_AA55); - //queue_vita_packets(32'h300, 6, 32'hF00D_1234, 32'h0); - queue_vita_packets(32'h600, 9, 32'h9876_ABCD, 32'h0); - + queue_vita_packets(0, 32'h300, 5, 32'h0000_1000, 32'h0, 4'h0, 1, 0, 1); + queue_vita_packets(0, 32'h0, 5, 32'h0000_2000, 32'h0, 4'h1, 0, 0, 0); + queue_vita_packets(0, 32'h0, 5, 32'h0000_3000, 32'h0, 4'h2, 0, 0, 0); + + queue_vita_packets(0, 32'h400, 3, 32'h0000_4000, 32'h0, 4'h3, 1, 0, 1); + queue_vita_packets(0, 32'h0, 3, 32'h0000_5000, 32'h0, 4'h4, 0, 0, 0); + queue_vita_packets(0, 32'h0, 3, 32'h0000_6000, 32'h0, 4'h5, 0, 1, 0); + #300000 $finish; end task queue_vita_packets; + input [31:0] send_secs; input [31:0] sendtime; input [15:0] samples; input [15:0] word; input [31:0] trailer; + input [3:0] seqnum; + input sob; + input eob; + input sendat; reg [15:0] i; begin + src_rdy <= 0; @(posedge clk); src_rdy <= 1; - data_o <= {4'b0001,4'h1,1'b0,|trailer,2'h3,8'hF0,(16'd5+samples+|trailer)}; // header - @(posedge clk); - data_o <= {4'b0000,32'h0}; // streamid - @(posedge clk); - data_o <= {4'b0000,32'h0}; // SECS - @(posedge clk); - data_o <= {4'b0000,32'h0}; // TICS + data_o <= {4'b0001,4'h0,1'b0,|trailer,sob,eob,{2{sendat}},1'b0,sendat,seqnum,(16'd1+samples+|trailer+sendat+sendat+sendat)}; // header @(posedge clk); - data_o <= {4'b0000,sendtime}; // TICS - @(posedge clk); - + //data_o <= {4'b0000,32'h0}; // streamid + //@(posedge clk); + if(sendat) + begin + data_o <= {4'b0000,send_secs}; // SECS + @(posedge clk); + data_o <= {4'b0000,32'h0}; // TICS + @(posedge clk); + data_o <= {4'b0000,sendtime}; // TICS + @(posedge clk); + end for(i=0;i Date: Sat, 20 Nov 2010 13:03:23 -0800 Subject: shouldn't be executable --- usrp2/top/u2_rev3/u2_core.v | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 usrp2/top/u2_rev3/u2_core.v diff --git a/usrp2/top/u2_rev3/u2_core.v b/usrp2/top/u2_rev3/u2_core.v old mode 100755 new mode 100644 -- cgit v1.2.3 From 503a69dd734be4502078b32d8aca027b0c56368f Mon Sep 17 00:00:00 2001 From: Matt Ettus Date: Sun, 21 Nov 2010 19:04:59 -0800 Subject: no need for second sequence number anymore. Each dsp tx chain generates its own flow control packets now. --- usrp2/vrt/gen_context_pkt.v | 15 ++++++--------- usrp2/vrt/vita_tx_chain.v | 4 ++-- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/usrp2/vrt/gen_context_pkt.v b/usrp2/vrt/gen_context_pkt.v index efc170743..bf83aeae5 100644 --- a/usrp2/vrt/gen_context_pkt.v +++ b/usrp2/vrt/gen_context_pkt.v @@ -7,8 +7,7 @@ module gen_context_pkt input [31:0] streamid, input [63:0] vita_time, input [31:0] message, - input [31:0] seqnum0, - input [31:0] seqnum1, + input [31:0] seqnum, output [35:0] data_o, output src_rdy_o, input dst_rdy_i); localparam CTXT_IDLE = 0; @@ -19,9 +18,8 @@ module gen_context_pkt localparam CTXT_TICS = 5; localparam CTXT_TICS2 = 6; localparam CTXT_MESSAGE = 7; - localparam CTXT_FLOWCTRL0 = 8; - localparam CTXT_FLOWCTRL1 = 9; - localparam CTXT_DONE = 10; + localparam CTXT_FLOWCTRL = 8; + localparam CTXT_DONE = 9; reg [33:0] data_int; wire src_rdy_int, dst_rdy_int; @@ -36,7 +34,7 @@ module gen_context_pkt else if(trigger) stored_message <= message; - else if(ctxt_state == CTXT_FLOWCTRL1) + else if(ctxt_state == CTXT_DONE) stored_message <= 0; // Don't want to clear most of this to avoid getting stuck with a half packet in the pipe @@ -73,14 +71,13 @@ module gen_context_pkt always @* case(ctxt_state) CTXT_PROT_ENG : data_int <= { 2'b01, 16'd1, 16'd32 }; - CTXT_HEADER : data_int <= { 1'b0, (PROT_ENG_FLAGS ? 1'b0 : 1'b1), 12'b010100001101, seqno, 16'd8 }; + CTXT_HEADER : data_int <= { 1'b0, (PROT_ENG_FLAGS ? 1'b0 : 1'b1), 12'b010100001101, seqno, 16'd7 }; CTXT_STREAMID : data_int <= { 2'b00, streamid }; CTXT_SECS : data_int <= { 2'b00, err_time[63:32] }; CTXT_TICS : data_int <= { 2'b00, 32'd0 }; CTXT_TICS2 : data_int <= { 2'b00, err_time[31:0] }; CTXT_MESSAGE : data_int <= { 2'b00, message }; - CTXT_FLOWCTRL0 : data_int <= { 2'b00, seqnum0 }; - CTXT_FLOWCTRL1 : data_int <= { 2'b10, seqnum1 }; + CTXT_FLOWCTRL : data_int <= { 2'b10, seqnum }; default : data_int <= {2'b00, 32'b00}; endcase // case (ctxt_state) diff --git a/usrp2/vrt/vita_tx_chain.v b/usrp2/vrt/vita_tx_chain.v index 264b6e98a..2ec78189b 100644 --- a/usrp2/vrt/vita_tx_chain.v +++ b/usrp2/vrt/vita_tx_chain.v @@ -75,7 +75,7 @@ module vita_tx_chain (.clk(clk), .reset(reset), .clear(clear_vita), .trigger(trigger & (DO_FLOW_CONTROL==1)), .sent(), .streamid(streamid), .vita_time(vita_time), .message(32'd0), - .seqnum0(current_seqnum), .seqnum1(32'd0), + .seqnum(current_seqnum), .data_o(flow_data), .src_rdy_o(flow_src_rdy), .dst_rdy_i(flow_dst_rdy)); trigger_context_pkt #(.BASE(BASE_CTRL)) trigger_context_pkt (.clk(clk), .reset(reset), .clear(clear_vita), @@ -86,7 +86,7 @@ module vita_tx_chain (.clk(clk), .reset(reset), .clear(clear_vita), .trigger((error|ack) & (REPORT_ERROR==1)), .sent(), .streamid(streamid), .vita_time(vita_time), .message(message), - .seqnum0(current_seqnum), .seqnum1(32'd0), + .seqnum(current_seqnum), .data_o(err_data_int), .src_rdy_o(err_src_rdy_int), .dst_rdy_i(err_dst_rdy_int)); assign debug = debug_vtc | debug_vtd; -- cgit v1.2.3 From bb0572a960edf54486a4be746c681adaac0fa398 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Tue, 23 Nov 2010 13:36:42 -0800 Subject: fpga: performed a forceful checkout of fpga to overwrite with current fpga code --- fpga/usrp2/control_lib/Makefile.srcs | 7 + fpga/usrp2/control_lib/atr_controller16.v | 60 + fpga/usrp2/control_lib/bootram.v | 250 ++ fpga/usrp2/control_lib/newfifo/fifo_pacer.v | 24 + fpga/usrp2/control_lib/newfifo/packet32_tb.v | 27 + fpga/usrp2/control_lib/newfifo/packet_generator.v | 59 + .../usrp2/control_lib/newfifo/packet_generator32.v | 21 + fpga/usrp2/control_lib/newfifo/packet_tb.v | 29 + fpga/usrp2/control_lib/newfifo/packet_verifier.v | 61 + fpga/usrp2/control_lib/newfifo/packet_verifier32.v | 30 + fpga/usrp2/control_lib/nsgpio16LE.v | 123 + fpga/usrp2/control_lib/quad_uart.v | 71 + fpga/usrp2/control_lib/ram_2port_mixed_width.v | 120 + fpga/usrp2/control_lib/ram_harvard2.v | 77 + fpga/usrp2/control_lib/s3a_icap_wb.v | 59 + fpga/usrp2/control_lib/settings_bus.v | 17 +- fpga/usrp2/control_lib/settings_bus_16LE.v | 54 + fpga/usrp2/control_lib/simple_uart.v | 13 +- fpga/usrp2/control_lib/v5icap_wb.v | 54 + fpga/usrp2/coregen/Makefile.srcs | 4 + fpga/usrp2/coregen/coregen.cgp | 6 +- fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.gise | 30 + fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.ncf | 0 fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.ngc | 3 + fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.v | 3839 ++++++++++++++++++++ fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.veo | 47 + fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.xco | 84 + fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.xise | 72 + fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_flist.txt | 12 + fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_readme.txt | 46 + fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_xmdf.tcl | 68 + .../coregen/fifo_xlnx_512x36_2clk_prog_full.gise | 30 + .../coregen/fifo_xlnx_512x36_2clk_prog_full.ngc | 3 + .../coregen/fifo_xlnx_512x36_2clk_prog_full.v | 173 + .../coregen/fifo_xlnx_512x36_2clk_prog_full.veo | 53 + .../coregen/fifo_xlnx_512x36_2clk_prog_full.xco | 84 + .../coregen/fifo_xlnx_512x36_2clk_prog_full.xise | 72 + .../fifo_xlnx_512x36_2clk_prog_full_flist.txt | 12 + .../fifo_xlnx_512x36_2clk_prog_full_readme.txt | 47 + .../fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl | 68 + fpga/usrp2/extramfifo/ext_fifo.v | 37 +- fpga/usrp2/extramfifo/ext_fifo_tb.sh | 0 fpga/usrp2/extramfifo/nobl_fifo.v | 41 +- fpga/usrp2/extramfifo/nobl_if.v | 9 +- fpga/usrp2/fifo/.gitignore | 2 + fpga/usrp2/fifo/fifo19_to_fifo36.v | 41 +- fpga/usrp2/fifo/fifo36_to_fifo18.v | 40 - fpga/usrp2/fifo/fifo36_to_fifo19.v | 44 +- fpga/usrp2/fifo/fifo36_to_ll8.v | 1 - fpga/usrp2/gpmc/.gitignore | 2 + fpga/usrp2/gpmc/Makefile.srcs | 20 + fpga/usrp2/gpmc/burst_data_write.txt | 16 + fpga/usrp2/gpmc/dbsm.v | 80 + fpga/usrp2/gpmc/edge_sync.v | 22 + fpga/usrp2/gpmc/fifo_to_gpmc_async.v | 37 + fpga/usrp2/gpmc/fifo_to_gpmc_sync.v | 26 + fpga/usrp2/gpmc/fifo_watcher.v | 56 + fpga/usrp2/gpmc/gpmc_async.v | 130 + fpga/usrp2/gpmc/gpmc_sync.v | 108 + fpga/usrp2/gpmc/gpmc_to_fifo_async.v | 68 + fpga/usrp2/gpmc/gpmc_to_fifo_sync.v | 57 + fpga/usrp2/gpmc/gpmc_wb.v | 57 + fpga/usrp2/gpmc/make_timing_diag | 6 + fpga/usrp2/gpmc/ram_to_fifo.v | 46 + fpga/usrp2/gpmc/single_data_read.txt | 12 + fpga/usrp2/gpmc/single_data_write.txt | 10 + fpga/usrp2/models/gpmc_model_async.v | 130 + fpga/usrp2/models/gpmc_model_sync.v | 97 + fpga/usrp2/opencores/Makefile.srcs | 2 +- .../opencores/aemb/rtl/verilog/aeMB_core_BE.v | 4 +- fpga/usrp2/opencores/spi/rtl/verilog/spi_clgen.v | 27 +- fpga/usrp2/opencores/spi/rtl/verilog/spi_defines.v | 10 +- fpga/usrp2/opencores/spi/rtl/verilog/spi_shift.v | 99 +- fpga/usrp2/opencores/spi/rtl/verilog/spi_top.v | 88 +- fpga/usrp2/opencores/spi/rtl/verilog/spi_top16.v | 182 + fpga/usrp2/opencores/spi/rtl/verilog/timescale.v | 2 - fpga/usrp2/timing/time_compare.v | 26 +- fpga/usrp2/top/.gitignore | 1 + fpga/usrp2/top/Makefile.common | 7 +- fpga/usrp2/top/python/check_inout.py | 62 + fpga/usrp2/top/safe_u2plus/.gitignore | 2 + fpga/usrp2/top/safe_u2plus/Makefile | 246 ++ fpga/usrp2/top/safe_u2plus/safe_u2plus.v | 23 + fpga/usrp2/top/safe_u2plus/u2plus.ucf | 401 ++ fpga/usrp2/top/u1e/.gitignore | 6 + fpga/usrp2/top/u1e/Makefile | 101 + fpga/usrp2/top/u1e/README | 4 + fpga/usrp2/top/u1e/cmdfile | 20 + fpga/usrp2/top/u1e/make.sim | 7 + fpga/usrp2/top/u1e/tb_u1e.v | 41 + fpga/usrp2/top/u1e/timing.ucf | 13 + fpga/usrp2/top/u1e/u1e.ucf | 259 ++ fpga/usrp2/top/u1e/u1e.v | 141 + fpga/usrp2/top/u1e/u1e_core.v | 459 +++ fpga/usrp2/top/u1e_ethdebug/.gitignore | 6 + fpga/usrp2/top/u1e_ethdebug/Makefile | 83 + fpga/usrp2/top/u1e_ethdebug/u1e.ucf | 88 + fpga/usrp2/top/u1e_ethdebug/u1e.v | 28 + fpga/usrp2/top/u1e_passthru/.gitignore | 1 + fpga/usrp2/top/u1e_passthru/Makefile | 99 + fpga/usrp2/top/u1e_passthru/passthru.ucf | 6 + fpga/usrp2/top/u1e_passthru/passthru.v | 18 + fpga/usrp2/top/u2_rev3/u2_core.v | 0 fpga/usrp2/top/u2_rev3/u2_core_udp.v | 248 +- fpga/usrp2/top/u2_rev3/u2_rev3.ucf | 86 +- fpga/usrp2/top/u2plus/.gitignore | 1 + fpga/usrp2/top/u2plus/Makefile | 99 + fpga/usrp2/top/u2plus/bootloader.rmi | 245 ++ fpga/usrp2/top/u2plus/capture_ddrlvds.v | 39 + fpga/usrp2/top/u2plus/u2plus.ucf | 590 +-- fpga/usrp2/top/u2plus/u2plus.v | 391 +- fpga/usrp2/top/u2plus/u2plus_core.v | 696 ++++ fpga/usrp2/vrt/gen_context_pkt.v | 22 +- fpga/usrp2/vrt/vita_rx_control.v | 62 +- fpga/usrp2/vrt/vita_rx_framer.v | 38 +- fpga/usrp2/vrt/vita_rx_tb.v | 67 +- fpga/usrp2/vrt/vita_tx.build | 2 +- fpga/usrp2/vrt/vita_tx_chain.v | 18 +- fpga/usrp2/vrt/vita_tx_control.v | 26 +- fpga/usrp2/vrt/vita_tx_deframer.v | 4 +- fpga/usrp2/vrt/vita_tx_tb.v | 48 +- 121 files changed, 11263 insertions(+), 1085 deletions(-) create mode 100644 fpga/usrp2/control_lib/atr_controller16.v create mode 100644 fpga/usrp2/control_lib/bootram.v create mode 100644 fpga/usrp2/control_lib/newfifo/fifo_pacer.v create mode 100644 fpga/usrp2/control_lib/newfifo/packet32_tb.v create mode 100644 fpga/usrp2/control_lib/newfifo/packet_generator.v create mode 100644 fpga/usrp2/control_lib/newfifo/packet_generator32.v create mode 100644 fpga/usrp2/control_lib/newfifo/packet_tb.v create mode 100644 fpga/usrp2/control_lib/newfifo/packet_verifier.v create mode 100644 fpga/usrp2/control_lib/newfifo/packet_verifier32.v create mode 100644 fpga/usrp2/control_lib/nsgpio16LE.v create mode 100644 fpga/usrp2/control_lib/quad_uart.v create mode 100644 fpga/usrp2/control_lib/ram_2port_mixed_width.v create mode 100644 fpga/usrp2/control_lib/ram_harvard2.v create mode 100644 fpga/usrp2/control_lib/s3a_icap_wb.v create mode 100644 fpga/usrp2/control_lib/settings_bus_16LE.v create mode 100644 fpga/usrp2/control_lib/v5icap_wb.v create mode 100644 fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.gise create mode 100644 fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.ncf create mode 100644 fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.ngc create mode 100644 fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.v create mode 100644 fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.veo create mode 100644 fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.xco create mode 100644 fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.xise create mode 100644 fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_flist.txt create mode 100644 fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_readme.txt create mode 100644 fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_xmdf.tcl create mode 100644 fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.gise create mode 100644 fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.ngc create mode 100644 fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.v create mode 100644 fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.veo create mode 100644 fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xco create mode 100644 fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xise create mode 100644 fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_flist.txt create mode 100644 fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_readme.txt create mode 100644 fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl mode change 100644 => 100755 fpga/usrp2/extramfifo/ext_fifo_tb.sh delete mode 100644 fpga/usrp2/fifo/fifo36_to_fifo18.v create mode 100644 fpga/usrp2/gpmc/.gitignore create mode 100644 fpga/usrp2/gpmc/Makefile.srcs create mode 100644 fpga/usrp2/gpmc/burst_data_write.txt create mode 100644 fpga/usrp2/gpmc/dbsm.v create mode 100644 fpga/usrp2/gpmc/edge_sync.v create mode 100644 fpga/usrp2/gpmc/fifo_to_gpmc_async.v create mode 100644 fpga/usrp2/gpmc/fifo_to_gpmc_sync.v create mode 100644 fpga/usrp2/gpmc/fifo_watcher.v create mode 100644 fpga/usrp2/gpmc/gpmc_async.v create mode 100644 fpga/usrp2/gpmc/gpmc_sync.v create mode 100644 fpga/usrp2/gpmc/gpmc_to_fifo_async.v create mode 100644 fpga/usrp2/gpmc/gpmc_to_fifo_sync.v create mode 100644 fpga/usrp2/gpmc/gpmc_wb.v create mode 100755 fpga/usrp2/gpmc/make_timing_diag create mode 100644 fpga/usrp2/gpmc/ram_to_fifo.v create mode 100644 fpga/usrp2/gpmc/single_data_read.txt create mode 100644 fpga/usrp2/gpmc/single_data_write.txt create mode 100644 fpga/usrp2/models/gpmc_model_async.v create mode 100644 fpga/usrp2/models/gpmc_model_sync.v create mode 100644 fpga/usrp2/opencores/spi/rtl/verilog/spi_top16.v delete mode 100644 fpga/usrp2/opencores/spi/rtl/verilog/timescale.v create mode 100755 fpga/usrp2/top/python/check_inout.py create mode 100644 fpga/usrp2/top/safe_u2plus/.gitignore create mode 100644 fpga/usrp2/top/safe_u2plus/Makefile create mode 100644 fpga/usrp2/top/safe_u2plus/safe_u2plus.v create mode 100755 fpga/usrp2/top/safe_u2plus/u2plus.ucf create mode 100644 fpga/usrp2/top/u1e/.gitignore create mode 100644 fpga/usrp2/top/u1e/Makefile create mode 100644 fpga/usrp2/top/u1e/README create mode 100644 fpga/usrp2/top/u1e/cmdfile create mode 100644 fpga/usrp2/top/u1e/make.sim create mode 100644 fpga/usrp2/top/u1e/tb_u1e.v create mode 100644 fpga/usrp2/top/u1e/timing.ucf create mode 100644 fpga/usrp2/top/u1e/u1e.ucf create mode 100644 fpga/usrp2/top/u1e/u1e.v create mode 100644 fpga/usrp2/top/u1e/u1e_core.v create mode 100644 fpga/usrp2/top/u1e_ethdebug/.gitignore create mode 100644 fpga/usrp2/top/u1e_ethdebug/Makefile create mode 100644 fpga/usrp2/top/u1e_ethdebug/u1e.ucf create mode 100644 fpga/usrp2/top/u1e_ethdebug/u1e.v create mode 100644 fpga/usrp2/top/u1e_passthru/.gitignore create mode 100644 fpga/usrp2/top/u1e_passthru/Makefile create mode 100644 fpga/usrp2/top/u1e_passthru/passthru.ucf create mode 100644 fpga/usrp2/top/u1e_passthru/passthru.v mode change 100755 => 100644 fpga/usrp2/top/u2_rev3/u2_core.v create mode 100644 fpga/usrp2/top/u2plus/.gitignore create mode 100644 fpga/usrp2/top/u2plus/Makefile create mode 100644 fpga/usrp2/top/u2plus/bootloader.rmi create mode 100644 fpga/usrp2/top/u2plus/capture_ddrlvds.v create mode 100644 fpga/usrp2/top/u2plus/u2plus_core.v diff --git a/fpga/usrp2/control_lib/Makefile.srcs b/fpga/usrp2/control_lib/Makefile.srcs index bc8e4d5bc..d3bb7e2c8 100644 --- a/fpga/usrp2/control_lib/Makefile.srcs +++ b/fpga/usrp2/control_lib/Makefile.srcs @@ -21,6 +21,7 @@ nsgpio.v \ ram_2port.v \ ram_harv_cache.v \ ram_harvard.v \ +ram_harvard2.v \ ram_loader.v \ setting_reg.v \ settings_bus.v \ @@ -29,6 +30,7 @@ srl.v \ system_control.v \ wb_1master.v \ wb_readback_mux.v \ +quad_uart.v \ simple_uart.v \ simple_uart_tx.v \ simple_uart_rx.v \ @@ -42,4 +44,9 @@ pic.v \ longfifo.v \ shortfifo.v \ medfifo.v \ +s3a_icap_wb.v \ +bootram.v \ +nsgpio16LE.v \ +settings_bus_16LE.v \ +atr_controller16.v \ )) diff --git a/fpga/usrp2/control_lib/atr_controller16.v b/fpga/usrp2/control_lib/atr_controller16.v new file mode 100644 index 000000000..3d8b5b1e9 --- /dev/null +++ b/fpga/usrp2/control_lib/atr_controller16.v @@ -0,0 +1,60 @@ + +// Automatic transmit/receive switching of control pins to daughterboards +// Store everything in registers for now, but could use a RAM for more +// complex state machines in the future + +module atr_controller16 + (input clk_i, input rst_i, + input [5:0] adr_i, input [1:0] sel_i, input [15:0] dat_i, output reg [15:0] dat_o, + input we_i, input stb_i, input cyc_i, output reg ack_o, + input run_rx, input run_tx, input [31:0] master_time, + output [31:0] ctrl_lines); + + reg [3:0] state; + reg [31:0] atr_ram [0:15]; // DP distributed RAM + + wire [3:0] sel_int = { (sel_i[1] & adr_i[1]), (sel_i[0] & adr_i[1]), + (sel_i[1] & ~adr_i[1]), (sel_i[0] & ~adr_i[1]) }; + + // WB Interface + always @(posedge clk_i) + if(we_i & stb_i & cyc_i) + begin + if(sel_int[3]) + atr_ram[adr_i[5:2]][31:24] <= dat_i[15:8]; + if(sel_int[2]) + atr_ram[adr_i[5:2]][23:16] <= dat_i[7:0]; + if(sel_int[1]) + atr_ram[adr_i[5:2]][15:8] <= dat_i[15:8]; + if(sel_int[0]) + atr_ram[adr_i[5:2]][7:0] <= dat_i[7:0]; + end // if (we_i & stb_i & cyc_i) + + always @(posedge clk_i) + dat_o <= adr_i[1] ? atr_ram[adr_i[5:2]][31:16] : atr_ram[adr_i[5:2]][15:0]; + + always @(posedge clk_i) + ack_o <= stb_i & cyc_i & ~ack_o; + + // Control side of DP RAM + assign ctrl_lines = atr_ram[state]; + + // Put a more complex state machine with time delays and multiple states here + // if daughterboard requires more complex sequencing + localparam ATR_IDLE = 4'd0; + localparam ATR_TX = 4'd1; + localparam ATR_RX = 4'd2; + localparam ATR_FULL_DUPLEX = 4'd3; + + always @(posedge clk_i) + if(rst_i) + state <= ATR_IDLE; + else + case ({run_rx,run_tx}) + 2'b00 : state <= ATR_IDLE; + 2'b01 : state <= ATR_TX; + 2'b10 : state <= ATR_RX; + 2'b11 : state <= ATR_FULL_DUPLEX; + endcase // case({run_rx,run_tx}) + +endmodule // atr_controller16 diff --git a/fpga/usrp2/control_lib/bootram.v b/fpga/usrp2/control_lib/bootram.v new file mode 100644 index 000000000..668012504 --- /dev/null +++ b/fpga/usrp2/control_lib/bootram.v @@ -0,0 +1,250 @@ + +// Boot RAM for S3A, 8KB, dual port + +// RAMB16BWE_S36_S36: 512 x 32 + 4 Parity bits byte-wide write Dual-Port RAM +// Spartan-3A Xilinx HDL Libraries Guide, version 10.1.1 + +module bootram + (input clk, input reset, + input [12:0] if_adr, + output [31:0] if_data, + + input [12:0] dwb_adr_i, + input [31:0] dwb_dat_i, + output [31:0] dwb_dat_o, + input dwb_we_i, + output reg dwb_ack_o, + input dwb_stb_i, + input [3:0] dwb_sel_i); + + wire [31:0] DOA0, DOA1, DOA2, DOA3; + wire [31:0] DOB0, DOB1, DOB2, DOB3; + wire ENB0, ENB1, ENB2, ENB3; + wire [3:0] WEB; + + reg [1:0] delayed_if_bank; + always @(posedge clk) + delayed_if_bank <= if_adr[12:11]; + + assign if_data = delayed_if_bank[1] ? (delayed_if_bank[0] ? DOA3 : DOA2) : (delayed_if_bank[0] ? DOA1 : DOA0); + assign dwb_dat_o = dwb_adr_i[12] ? (dwb_adr_i[11] ? DOB3 : DOB2) : (dwb_adr_i[11] ? DOB1 : DOB0); + + always @(posedge clk) + if(reset) + dwb_ack_o <= 0; + else + dwb_ack_o <= dwb_stb_i & ~dwb_ack_o; + + assign ENB0 = dwb_stb_i & (dwb_adr_i[12:11] == 2'b00); + assign ENB1 = dwb_stb_i & (dwb_adr_i[12:11] == 2'b01); + assign ENB2 = dwb_stb_i & (dwb_adr_i[12:11] == 2'b10); + assign ENB3 = dwb_stb_i & (dwb_adr_i[12:11] == 2'b11); + + assign WEB = {4{dwb_we_i}} & dwb_sel_i; + + RAMB16BWE_S36_S36 + #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup + .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup + .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" + .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion + .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion + .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE + .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE + RAM0 + (.DOA(DOA0), // Port A 32-bit Data Output + .DOPA(), // Port A 4-bit Parity Output + .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input + .CLKA(clk), // Port A 1-bit Clock + .DIA(32'd0), // Port A 32-bit Data Input + .DIPA(4'd0), // Port A 4-bit parity Input + .ENA(1'b1), // Port A 1-bit RAM Enable Input + .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input + .WEA(1'b0), // Port A 4-bit Write Enable Input + + .DOB(DOB0), // Port B 32-bit Data Output + .DOPB(), // Port B 4-bit Parity Output + .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input + .CLKB(clk), // Port B 1-bit Clock + .DIB(dwb_dat_i), // Port B 32-bit Data Input + .DIPB(4'd0), // Port-B 4-bit parity Input + .ENB(ENB0), // Port B 1-bit RAM Enable Input + .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input + .WEB(WEB) // Port B 4-bit Write Enable Input + ); // End of RAMB16BWE_S36_S36_inst instantiation + + RAMB16BWE_S36_S36 + #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup + .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup + .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" + .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion + .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion + .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE + .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE + RAM1 + (.DOA(DOA1), // Port A 32-bit Data Output + .DOPA(), // Port A 4-bit Parity Output + .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input + .CLKA(clk), // Port A 1-bit Clock + .DIA(32'd0), // Port A 32-bit Data Input + .DIPA(4'd0), // Port A 4-bit parity Input + .ENA(1'b1), // Port A 1-bit RAM Enable Input + .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input + .WEA(1'b0), // Port A 4-bit Write Enable Input + + .DOB(DOB1), // Port B 32-bit Data Output + .DOPB(), // Port B 4-bit Parity Output + .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input + .CLKB(clk), // Port B 1-bit Clock + .DIB(dwb_dat_i), // Port B 32-bit Data Input + .DIPB(4'd0), // Port-B 4-bit parity Input + .ENB(ENB1), // Port B 1-bit RAM Enable Input + .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input + .WEB(WEB) // Port B 4-bit Write Enable Input + ); // End of RAMB16BWE_S36_S36_inst instantiation + + RAMB16BWE_S36_S36 + #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup + .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup + .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" + .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion + .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion + .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE + .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE + RAM2 + (.DOA(DOA2), // Port A 32-bit Data Output + .DOPA(), // Port A 4-bit Parity Output + .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input + .CLKA(clk), // Port A 1-bit Clock + .DIA(32'd0), // Port A 32-bit Data Input + .DIPA(4'd0), // Port A 4-bit parity Input + .ENA(1'b1), // Port A 1-bit RAM Enable Input + .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input + .WEA(1'b0), // Port A 4-bit Write Enable Input + + .DOB(DOB2), // Port B 32-bit Data Output + .DOPB(), // Port B 4-bit Parity Output + .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input + .CLKB(clk), // Port B 1-bit Clock + .DIB(dwb_dat_i), // Port B 32-bit Data Input + .DIPB(4'd0), // Port-B 4-bit parity Input + .ENB(ENB2), // Port B 1-bit RAM Enable Input + .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input + .WEB(WEB) // Port B 4-bit Write Enable Input + ); // End of RAMB16BWE_S36_S36_inst instantiation + + RAMB16BWE_S36_S36 + #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup + .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup + .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" + .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion + .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion + .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE + .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE + RAM3 + (.DOA(DOA3), // Port A 32-bit Data Output + .DOPA(), // Port A 4-bit Parity Output + .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input + .CLKA(clk), // Port A 1-bit Clock + .DIA(32'd0), // Port A 32-bit Data Input + .DIPA(4'd0), // Port A 4-bit parity Input + .ENA(1'b1), // Port A 1-bit RAM Enable Input + .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input + .WEA(1'b0), // Port A 4-bit Write Enable Input + + .DOB(DOB3), // Port B 32-bit Data Output + .DOPB(), // Port B 4-bit Parity Output + .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input + .CLKB(clk), // Port B 1-bit Clock + .DIB(dwb_dat_i), // Port B 32-bit Data Input + .DIPB(4'd0), // Port-B 4-bit parity Input + .ENB(ENB3), // Port B 1-bit RAM Enable Input + .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input + .WEB(WEB) // Port B 4-bit Write Enable Input + ); // End of RAMB16BWE_S36_S36_inst instantiation + +endmodule // bootram + +/* + // The following INIT_xx declarations specify the initial contents of the RAM + // Address 0 to 127 + .INIT_00(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_01(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_02(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_03(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_04(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_05(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_06(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_07(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_08(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_09(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_0A(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_0B(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_0C(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_0D(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_0E(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_0F(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + // Address 128 to 255 + .INIT_10(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_11(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_12(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_13(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_14(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_15(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_16(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_17(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_18(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_19(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_1A(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_1B(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_1C(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_1D(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_1E(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_1F(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + // Address 256 to 383 + .INIT_20(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_21(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_22(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_23(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_24(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_25(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_26(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_27(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_28(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_29(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_2A(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_2B(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_2C(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_2D(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_2E(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_2F(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + // Address 384 to 511 + .INIT_30(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_31(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_32(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_33(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_34(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_35(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_36(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_37(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_38(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_39(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_3A(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_3B(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_3C(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_3D(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_3E(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + .INIT_3F(256’h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000), + // The next set of INITP_xx are for the parity bits + // Address 0 to 127 + .INITP_00(256’h0000000000000000000000000000000000000000000000000000000000000000), + .INITP_01(256’h0000000000000000000000000000000000000000000000000000000000000000), + // Address 128 to 255 + .INITP_02(256’h0000000000000000000000000000000000000000000000000000000000000000), + .INITP_03(256’h0000000000000000000000000000000000000000000000000000000000000000), + // Address 256 to 383 + .INITP_04(256’h0000000000000000000000000000000000000000000000000000000000000000), + .INITP_05(256’h0000000000000000000000000000000000000000000000000000000000000000), + // Address 384 to 511 + .INITP_06(256’h0000000000000000000000000000000000000000000000000000000000000000), + .INITP_07(256’h0000000000000000000000000000000000000000000000000000000000000000) +*/ diff --git a/fpga/usrp2/control_lib/newfifo/fifo_pacer.v b/fpga/usrp2/control_lib/newfifo/fifo_pacer.v new file mode 100644 index 000000000..1bf03ab6e --- /dev/null +++ b/fpga/usrp2/control_lib/newfifo/fifo_pacer.v @@ -0,0 +1,24 @@ + + +module fifo_pacer + (input clk, + input reset, + input [7:0] rate, + input enable, + input src1_rdy_i, output dst1_rdy_o, + output src2_rdy_o, input dst2_rdy_i, + output underrun, overrun); + + wire strobe; + + cic_strober strober (.clock(clk), .reset(reset), .enable(enable), + .rate(rate), .strobe_fast(1), .strobe_slow(strobe)); + + wire all_ready = src1_rdy_i & dst2_rdy_i; + assign dst1_rdy_o = all_ready & strobe; + assign src2_rdy_o = dst1_rdy_o; + + assign underrun = strobe & ~src1_rdy_i; + assign overrun = strobe & ~dst2_rdy_i; + +endmodule // fifo_pacer diff --git a/fpga/usrp2/control_lib/newfifo/packet32_tb.v b/fpga/usrp2/control_lib/newfifo/packet32_tb.v new file mode 100644 index 000000000..82bb09c29 --- /dev/null +++ b/fpga/usrp2/control_lib/newfifo/packet32_tb.v @@ -0,0 +1,27 @@ + + +module packet32_tb(); + + wire [35:0] data; + wire src_rdy, dst_rdy; + + wire clear = 0; + reg clk = 0; + reg reset = 1; + + always #10 clk <= ~clk; + initial #1000 reset <= 0; + + initial $dumpfile("packet32_tb.vcd"); + initial $dumpvars(0,packet32_tb); + + wire [31:0] total, crc_err, seq_err, len_err; + + packet_generator32 pkt_gen (.clk(clk), .reset(reset), .clear(clear), + .data_o(data), .src_rdy_o(src_rdy), .dst_rdy_i(dst_rdy)); + + packet_verifier32 pkt_ver (.clk(clk), .reset(reset), .clear(clear), + .data_i(data), .src_rdy_i(src_rdy), .dst_rdy_o(dst_rdy), + .total(total), .crc_err(crc_err), .seq_err(seq_err), .len_err(len_err)); + +endmodule // packet32_tb diff --git a/fpga/usrp2/control_lib/newfifo/packet_generator.v b/fpga/usrp2/control_lib/newfifo/packet_generator.v new file mode 100644 index 000000000..6e8b45ccd --- /dev/null +++ b/fpga/usrp2/control_lib/newfifo/packet_generator.v @@ -0,0 +1,59 @@ + + +module packet_generator + (input clk, input reset, input clear, + output reg [7:0] data_o, output sof_o, output eof_o, + output src_rdy_o, input dst_rdy_i); + + localparam len = 32'd2000; + + reg [31:0] state; + reg [31:0] seq; + wire [31:0] crc_out; + wire calc_crc = src_rdy_o & dst_rdy_i & ~(state[31:2] == 30'h3FFF_FFFF); + + + always @(posedge clk) + if(reset | clear) + seq <= 0; + else + if(eof_o & src_rdy_o & dst_rdy_i) + seq <= seq + 1; + + always @(posedge clk) + if(reset | clear) + state <= 0; + else + if(src_rdy_o & dst_rdy_i) + if(state == (len - 1)) + state <= 32'hFFFF_FFFC; + else + state <= state + 1; + + always @* + case(state) + 0 : data_o <= len[7:0]; + 1 : data_o <= len[15:8]; + 2 : data_o <= len[23:16]; + 3 : data_o <= len[31:24]; + 4 : data_o <= seq[7:0]; + 5 : data_o <= seq[15:8]; + 6 : data_o <= seq[23:16]; + 7 : data_o <= seq[31:24]; + 32'hFFFF_FFFC : data_o <= crc_out[31:24]; + 32'hFFFF_FFFD : data_o <= crc_out[23:16]; + 32'hFFFF_FFFE : data_o <= crc_out[15:8]; + 32'hFFFF_FFFF : data_o <= crc_out[7:0]; + default : data_o <= state[7:0]; + endcase // case (state) + + assign src_rdy_o = 1; + assign sof_o = (state == 0); + assign eof_o = (state == 32'hFFFF_FFFF); + + wire clear_crc = eof_o & src_rdy_o & dst_rdy_i; + + crc crc(.clk(clk), .reset(reset), .clear(clear_crc), .data(data_o), + .calc(calc_crc), .crc_out(crc_out), .match()); + +endmodule // packet_generator diff --git a/fpga/usrp2/control_lib/newfifo/packet_generator32.v b/fpga/usrp2/control_lib/newfifo/packet_generator32.v new file mode 100644 index 000000000..6f8004964 --- /dev/null +++ b/fpga/usrp2/control_lib/newfifo/packet_generator32.v @@ -0,0 +1,21 @@ + + +module packet_generator32 + (input clk, input reset, input clear, + output [35:0] data_o, output src_rdy_o, input dst_rdy_i); + + wire [7:0] ll_data; + wire ll_sof, ll_eof, ll_src_rdy, ll_dst_rdy_n; + + packet_generator pkt_gen + (.clk(clk), .reset(reset), .clear(clear), + .data_o(ll_data), .sof_o(ll_sof), .eof_o(ll_eof), + .src_rdy_o(ll_src_rdy), .dst_rdy_i(~ll_dst_rdy_n)); + + ll8_to_fifo36 ll8_to_f36 + (.clk(clk), .reset(reset), .clear(clear), + .ll_data(ll_data), .ll_sof_n(~ll_sof), .ll_eof_n(~ll_eof), + .ll_src_rdy_n(~ll_src_rdy), .ll_dst_rdy_n(ll_dst_rdy_n), + .f36_data(data_o), .f36_src_rdy_o(src_rdy_o), .f36_dst_rdy_i(dst_rdy_i)); + +endmodule // packet_generator32 diff --git a/fpga/usrp2/control_lib/newfifo/packet_tb.v b/fpga/usrp2/control_lib/newfifo/packet_tb.v new file mode 100644 index 000000000..3c423d2ba --- /dev/null +++ b/fpga/usrp2/control_lib/newfifo/packet_tb.v @@ -0,0 +1,29 @@ + + +module packet_tb(); + + wire [7:0] data; + wire sof, eof, src_rdy, dst_rdy; + + wire clear = 0; + reg clk = 0; + reg reset = 1; + + always #10 clk <= ~clk; + initial #1000 reset <= 0; + + initial $dumpfile("packet_tb.vcd"); + initial $dumpvars(0,packet_tb); + + wire [31:0] total, crc_err, seq_err, len_err; + + packet_generator pkt_gen (.clk(clk), .reset(reset), .clear(clear), + .data_o(data), .sof_o(sof), .eof_o(eof), + .src_rdy_o(src_rdy), .dst_rdy_i(dst_rdy)); + + packet_verifier pkt_ver (.clk(clk), .reset(reset), .clear(clear), + .data_i(data), .sof_i(sof), .eof_i(eof), + .src_rdy_i(src_rdy), .dst_rdy_o(dst_rdy), + .total(total), .crc_err(crc_err), .seq_err(seq_err), .len_err(len_err)); + +endmodule // packet_tb diff --git a/fpga/usrp2/control_lib/newfifo/packet_verifier.v b/fpga/usrp2/control_lib/newfifo/packet_verifier.v new file mode 100644 index 000000000..b49ad1bbb --- /dev/null +++ b/fpga/usrp2/control_lib/newfifo/packet_verifier.v @@ -0,0 +1,61 @@ + + +// Packet format -- +// Line 1 -- Length, 32 bits +// Line 2 -- Sequence number, 32 bits +// Last line -- CRC, 32 bits + +module packet_verifier + (input clk, input reset, input clear, + input [7:0] data_i, input sof_i, input eof_i, input src_rdy_i, output dst_rdy_o, + + output reg [31:0] total, + output reg [31:0] crc_err, + output reg [31:0] seq_err, + output reg [31:0] len_err); + + reg [31:0] seq_num; + reg [31:0] length; + wire first_byte, last_byte; + reg second_byte, last_byte_d1; + + wire calc_crc = src_rdy_i & dst_rdy_o; + + crc crc(.clk(clk), .reset(reset), .clear(last_byte_d1), .data(data_i), + .calc(calc_crc), .crc_out(), .match(match_crc)); + + assign first_byte = src_rdy_i & dst_rdy_o & sof_i; + assign last_byte = src_rdy_i & dst_rdy_o & eof_i; + assign dst_rdy_o = ~last_byte_d1; + + // stubs for now + wire match_seq = 1; + wire match_len = 1; + + always @(posedge clk) + if(reset | clear) + last_byte_d1 <= 0; + else + last_byte_d1 <= last_byte; + + always @(posedge clk) + if(reset | clear) + begin + total <= 0; + crc_err <= 0; + seq_err <= 0; + len_err <= 0; + end + else + if(last_byte_d1) + begin + total <= total + 1; + if(~match_crc) + crc_err <= crc_err + 1; + else if(~match_seq) + seq_err <= seq_err + 1; + else if(~match_len) + seq_err <= len_err + 1; + end + +endmodule // packet_verifier diff --git a/fpga/usrp2/control_lib/newfifo/packet_verifier32.v b/fpga/usrp2/control_lib/newfifo/packet_verifier32.v new file mode 100644 index 000000000..06a13d242 --- /dev/null +++ b/fpga/usrp2/control_lib/newfifo/packet_verifier32.v @@ -0,0 +1,30 @@ + + +module packet_verifier32 + (input clk, input reset, input clear, + input [35:0] data_i, input src_rdy_i, output dst_rdy_o, + output [31:0] total, output [31:0] crc_err, output [31:0] seq_err, output [31:0] len_err); + + wire [7:0] ll_data; + wire ll_sof_n, ll_eof_n, ll_src_rdy_n, ll_dst_rdy; + wire [35:0] data_int; + wire src_rdy_int, dst_rdy_int; + + fifo_short #(.WIDTH(36)) fifo_short + (.clk(clk), .reset(reset), .clear(clear), + .datain(data_i), .src_rdy_i(src_rdy_i), .dst_rdy_o(dst_rdy_o), + .dataout(data_int), .src_rdy_o(src_rdy_int), .dst_rdy_i(dst_rdy_int)); + + fifo36_to_ll8 f36_to_ll8 + (.clk(clk), .reset(reset), .clear(clear), + .f36_data(data_int), .f36_src_rdy_i(src_rdy_int), .f36_dst_rdy_o(dst_rdy_int), + .ll_data(ll_data), .ll_sof_n(ll_sof_n), .ll_eof_n(ll_eof_n), + .ll_src_rdy_n(ll_src_rdy_n), .ll_dst_rdy_n(~ll_dst_rdy)); + + packet_verifier pkt_ver + (.clk(clk), .reset(reset), .clear(clear), + .data_i(ll_data), .sof_i(~ll_sof_n), .eof_i(~ll_eof_n), + .src_rdy_i(~ll_src_rdy_n), .dst_rdy_o(ll_dst_rdy), + .total(total), .crc_err(crc_err), .seq_err(seq_err), .len_err(len_err)); + +endmodule // packet_verifier32 diff --git a/fpga/usrp2/control_lib/nsgpio16LE.v b/fpga/usrp2/control_lib/nsgpio16LE.v new file mode 100644 index 000000000..8aef0c7ae --- /dev/null +++ b/fpga/usrp2/control_lib/nsgpio16LE.v @@ -0,0 +1,123 @@ +// Modified from code originally by Richard Herveille, his copyright is below + +///////////////////////////////////////////////////////////////////// +//// //// +//// OpenCores Simple General Purpose IO core //// +//// //// +//// Author: Richard Herveille //// +//// richard@asics.ws //// +//// www.asics.ws //// +//// //// +///////////////////////////////////////////////////////////////////// +//// //// +//// Copyright (C) 2002 Richard Herveille //// +//// richard@asics.ws //// +//// //// +//// This source file may be used and distributed without //// +//// restriction provided that this copyright statement is not //// +//// removed from the file and that any derivative work contains //// +//// the original copyright notice and the associated disclaimer.//// +//// //// +//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// +//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// +//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// +//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// +//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// +//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// +//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// +//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// +//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// +//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// +//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// +//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// +//// POSSIBILITY OF SUCH DAMAGE. //// +//// //// +///////////////////////////////////////////////////////////////////// + + +module nsgpio16LE + (input clk_i, input rst_i, + input cyc_i, input stb_i, input [3:0] adr_i, input we_i, input [15:0] dat_i, + output reg [15:0] dat_o, output reg ack_o, + input [31:0] atr, input [31:0] debug_0, input [31:0] debug_1, + inout [31:0] gpio + ); + + reg [31:0] ctrl, line, ddr, dbg, lgpio; + + wire wb_acc = cyc_i & stb_i; // WISHBONE access + wire wb_wr = wb_acc & we_i; // WISHBONE write access + + always @(posedge clk_i or posedge rst_i) + if (rst_i) + begin + ctrl <= 32'h0; + line <= 32'h0; + ddr <= 32'h0; + dbg <= 32'h0; + end + else if (wb_wr) + case( adr_i[3:1] ) + 3'b000 : + line[15:0] <= dat_i; + 3'b001 : + line[31:16] <= dat_i; + 3'b010 : + ddr[15:0] <= dat_i; + 3'b011 : + ddr[31:16] <= dat_i; + 3'b100 : + ctrl[15:0] <= dat_i; + 3'b101 : + ctrl[31:16] <= dat_i; + 3'b110 : + dbg[15:0] <= dat_i; + 3'b111 : + dbg[31:16] <= dat_i; + endcase // case ( adr_i[3:1] ) + + always @(posedge clk_i) + case (adr_i[3:1]) + 3'b000 : + dat_o <= lgpio[15:0]; + 3'b001 : + dat_o <= lgpio[31:16]; + 3'b010 : + dat_o <= ddr[15:0]; + 3'b011 : + dat_o <= ddr[31:16]; + 3'b100 : + dat_o <= ctrl[15:0]; + 3'b101 : + dat_o <= ctrl[31:16]; + 3'b110 : + dat_o <= dbg[15:0]; + 3'b111 : + dat_o <= dbg[31:16]; + endcase // case (adr_i[3:1]) + + + always @(posedge clk_i or posedge rst_i) + if (rst_i) + ack_o <= 1'b0; + else + ack_o <= wb_acc & !ack_o; + + // latch GPIO input pins + always @(posedge clk_i) + lgpio <= gpio; + + // assign GPIO outputs + integer n; + reg [31:0] igpio; // temporary internal signal + + always @(ctrl or line or debug_1 or debug_0 or atr or ddr or dbg) + for(n=0;n<32;n=n+1) + igpio[n] <= ddr[n] ? (dbg[n] ? (ctrl[n] ? debug_1[n] : debug_0[n]) : + (ctrl[n] ? atr[n] : line[n]) ) + : 1'bz; + + assign gpio = igpio; + +endmodule + diff --git a/fpga/usrp2/control_lib/quad_uart.v b/fpga/usrp2/control_lib/quad_uart.v new file mode 100644 index 000000000..afa6fae1d --- /dev/null +++ b/fpga/usrp2/control_lib/quad_uart.v @@ -0,0 +1,71 @@ + +module quad_uart + #(parameter TXDEPTH = 1, + parameter RXDEPTH = 1) + (input clk_i, input rst_i, + input we_i, input stb_i, input cyc_i, output reg ack_o, + input [4:0] adr_i, input [31:0] dat_i, output reg [31:0] dat_o, + output [3:0] rx_int_o, output [3:0] tx_int_o, + output [3:0] tx_o, input [3:0] rx_i, output [3:0] baud_o + ); + + // Register Map + localparam SUART_CLKDIV = 0; + localparam SUART_TXLEVEL = 1; + localparam SUART_RXLEVEL = 2; + localparam SUART_TXCHAR = 3; + localparam SUART_RXCHAR = 4; + + wire wb_acc = cyc_i & stb_i; // WISHBONE access + wire wb_wr = wb_acc & we_i; // WISHBONE write access + + reg [15:0] clkdiv[0:3]; + wire [7:0] rx_char[0:3]; + wire [3:0] tx_fifo_full, rx_fifo_empty; + wire [7:0] tx_fifo_level[0:3], rx_fifo_level[0:3]; + + always @(posedge clk_i) + if (rst_i) + ack_o <= 1'b0; + else + ack_o <= wb_acc & ~ack_o; + + integer i; + always @(posedge clk_i) + if (rst_i) + for(i=0;i<4;i=i+1) + clkdiv[i] <= 0; + else if (wb_wr) + case(adr_i[2:0]) + SUART_CLKDIV : clkdiv[adr_i[4:3]] <= dat_i[15:0]; + endcase // case(adr_i) + + always @(posedge clk_i) + case (adr_i[2:0]) + SUART_TXLEVEL : dat_o <= tx_fifo_level[adr_i[4:3]]; + SUART_RXLEVEL : dat_o <= rx_fifo_level[adr_i[4:3]]; + SUART_RXCHAR : dat_o <= rx_char[adr_i[4:3]]; + endcase // case(adr_i) + + genvar j; + generate + for(j=0;j<4;j=j+1) + begin : gen_uarts + simple_uart_tx #(.DEPTH(TXDEPTH)) simple_uart_tx + (.clk(clk_i),.rst(rst_i), + .fifo_in(dat_i[7:0]),.fifo_write(ack_o && wb_wr && (adr_i[2:0] == SUART_TXCHAR) && (adr_i[4:3]==j)), + .fifo_level(tx_fifo_level[j]),.fifo_full(tx_fifo_full[j]), + .clkdiv(clkdiv[j]),.baudclk(baud_o[j]),.tx(tx_o[j])); + + simple_uart_rx #(.DEPTH(RXDEPTH)) simple_uart_rx + (.clk(clk_i),.rst(rst_i), + .fifo_out(rx_char[j]),.fifo_read(ack_o && ~wb_wr && (adr_i[2:0] == SUART_RXCHAR) && (adr_i[4:3]==j)), + .fifo_level(rx_fifo_level[j]),.fifo_empty(rx_fifo_empty[j]), + .clkdiv(clkdiv[j]),.rx(rx_i[j])); + end // block: gen_uarts + endgenerate + + assign tx_int_o = ~tx_fifo_full; // Interrupt for those that have space + assign rx_int_o = ~rx_fifo_empty; // Interrupt for those that have data + +endmodule // quad_uart diff --git a/fpga/usrp2/control_lib/ram_2port_mixed_width.v b/fpga/usrp2/control_lib/ram_2port_mixed_width.v new file mode 100644 index 000000000..fae7d8de3 --- /dev/null +++ b/fpga/usrp2/control_lib/ram_2port_mixed_width.v @@ -0,0 +1,120 @@ + +module ram_2port_mixed_width + (input clk16, + input en16, + input we16, + input [10:0] addr16, + input [15:0] di16, + output [15:0] do16, + input clk32, + input en32, + input we32, + input [9:0] addr32, + input [31:0] di32, + output [31:0] do32); + + wire en32a = en32 & ~addr32[9]; + wire en32b = en32 & addr32[9]; + wire en16a = en16 & ~addr16[10]; + wire en16b = en16 & addr16[10]; + + wire [31:0] do32a, do32b; + wire [15:0] do16a, do16b; + + assign do32 = addr32[9] ? do32b : do32a; + assign do16 = addr16[10] ? do16b : do16a; + + RAMB16BWE_S36_S18 #(.INIT_A(36'h000000000), + .INIT_B(18'h00000), + .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" + .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion + .SRVAL_B(18'h00000), // Port B output value upon SSR assertion + .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE + .WRITE_MODE_B("WRITE_FIRST") // WRITE_FIRST, READ_FIRST or NO_CHANGE + ) + RAMB16BWE_S36_S18_0 (.DOA(do32a), // Port A 32-bit Data Output + .DOB(do16a), // Port B 16-bit Data Output + .DOPA(), // Port A 4-bit Parity Output + .DOPB(), // Port B 2-bit Parity Output + .ADDRA(addr32[8:0]), // Port A 9-bit Address Input + .ADDRB(addr16[9:0]), // Port B 10-bit Address Input + .CLKA(clk32), // Port A 1-bit Clock + .CLKB(clk16), // Port B 1-bit Clock + .DIA(di32), // Port A 32-bit Data Input + .DIB(di16), // Port B 16-bit Data Input + .DIPA(0), // Port A 4-bit parity Input + .DIPB(0), // Port-B 2-bit parity Input + .ENA(en32a), // Port A 1-bit RAM Enable Input + .ENB(en16a), // Port B 1-bit RAM Enable Input + .SSRA(0), // Port A 1-bit Synchronous Set/Reset Input + .SSRB(0), // Port B 1-bit Synchronous Set/Reset Input + .WEA({4{we32}}), // Port A 4-bit Write Enable Input + .WEB({2{we16}}) // Port B 2-bit Write Enable Input + ); + + RAMB16BWE_S36_S18 #(.INIT_A(36'h000000000), + .INIT_B(18'h00000), + .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" + .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion + .SRVAL_B(18'h00000), // Port B output value upon SSR assertion + .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE + .WRITE_MODE_B("WRITE_FIRST") // WRITE_FIRST, READ_FIRST or NO_CHANGE + ) + RAMB16BWE_S36_S18_1 (.DOA(do32b), // Port A 32-bit Data Output + .DOB(do16b), // Port B 16-bit Data Output + .DOPA(), // Port A 4-bit Parity Output + .DOPB(), // Port B 2-bit Parity Output + .ADDRA(addr32[8:0]), // Port A 9-bit Address Input + .ADDRB(addr16[9:0]), // Port B 10-bit Address Input + .CLKA(clk32), // Port A 1-bit Clock + .CLKB(clk16), // Port B 1-bit Clock + .DIA(di32), // Port A 32-bit Data Input + .DIB(di16), // Port B 16-bit Data Input + .DIPA(0), // Port A 4-bit parity Input + .DIPB(0), // Port-B 2-bit parity Input + .ENA(en32b), // Port A 1-bit RAM Enable Input + .ENB(en16b), // Port B 1-bit RAM Enable Input + .SSRA(0), // Port A 1-bit Synchronous Set/Reset Input + .SSRB(0), // Port B 1-bit Synchronous Set/Reset Input + .WEA({4{we32}}), // Port A 4-bit Write Enable Input + .WEB({2{we16}}) // Port B 2-bit Write Enable Input + ); + +endmodule // ram_2port_mixed_width + + + + +// ISE 10.1.03 chokes on the following + +/* + + reg [31:0] ram [(1< + + + + + + + + + + + + + + + + + + + 11.1 + + + + + + + + + + diff --git a/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.ncf b/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.ncf new file mode 100644 index 000000000..e69de29bb diff --git a/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.ngc b/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.ngc new file mode 100644 index 000000000..d1ed419a7 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.ngc @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$56140<,[o}e~g`n;"2*726&;$9,)<>;.vnt*Ydo&lbjbQwloz\77~4>V8h`f agn3847=7081:?6?!039244=5<288?>?=;249MKVR\3nbb1=::1<20>512F__\XZ5dnww863=87n0?~6D@_UU8svjaXmdzuRzgrdqk81<76;?097GAPTV9twi`Wlg{xtQ{hsgplZgt{lx094?>3781?OIX\^1|ah_dosp|Ys`{oxdR`jg`vf81<768n097GAPTV9twi`Wog`Rzgrdqk81<76;>097GAPTV9twi`Wog`Rzgrdqk[dutm{~787>12596>LHW]]0{~biPftno[qnumzbTbhintd>7>58602?1CXZ_UU8geqgXkfex1:50?3a?011c96>JSSX\^1{Qkauc\gjsi|5>1<3?46595=<053?K?7;ONA394B1=?:=;?75:=159;A=G630805=:491230>?780805;<4A108E44<4A7;8EV_IKVXNK>5MU3:8FPUXAGLD=6M=;BG26>EOMJAT@DMJNRG\P\VB:2IB?6MCR89@KHKN\]OO=95LOSG\C@HBZH^BCCQFNGM4?FTBI]OO=6J=;EK0?AVH=2N[^L>:;ERQE4385KPSC06>C3<2OHM=<4F308BA5O53@:97D?=;H01?L5>3@DBX^ZNTD18MKP53EC97AA9;MMB@@B03EELENOC4:NVP70JR\:UG86BZT548HPR3WE?0A^I@N49NQ]E^k2Gjfb|YesqjkkeH6<2D:<=:4N0220>H68;>0B<><4:L241286@>0768J460<2D:<5:4N02:7>H69=1E=<>;;O3251=I988?7C?>359M54233G;:995A1047?K76?=1E=<6;;O32=6=I9;>0B<<=3:L276=I9=>0B<:>3:L216=I9?90B<9<;O3;7>H61:1E>==4N330?K45;2D9?>5A2518J7343G8=?6@=729M6=5=<;O177>H4=:1E?;=4N250?K5?;2D85>5A4118J1743G>9?6@;329M015>5A9218J<243G3>?6@6629M=25VFZ]k0\D@PBTQJ@]d2YDY_MJ3:QSK1=SQYO8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4567W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;=R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?03]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3455XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^e`[}iu89:;S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?1^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2347YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt7899T^h}zlu315>S7'nxm"h gbz-gim'{nT|cz}_ckm858592_;#j|i.sd,cf~)keas#jPpovq[goi4849=6[?/fpe*w`(ojr%oaew/sf\tkruWkce0?0=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<2<15>S7'nxm"h gbz-gim'{nT|cz}_ckm818582_;#j|i.sd,cf~)keas#jPpovq[goiW98;7X> gsd-vc)`kq$h`fv re]sjqtXj`dT=?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ=219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^114>S7'nxm"h gbz-gim'{nT|cz}_ckm[1413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=>=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45679;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0004?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789;:>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123671<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;?3^QT476<]9%l~k }f.e`|+ekcq%yhR~ats]dg969:91^<"i}f/pe+be&jf`t"|k_qlwvZad4849<6[?/fpe*w`(ojr%oaew/sf\tkruWni7>3328Q5)`zo$yj"ilx/aoo})ulVzexQhc=6=5c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[57a3\:$kh!rg-dg}(ddbr$~iQnup\cfY69o1^<"i}f/pe+be&jf`t"|k_qlwvZadW;;m7X> gsd-vc)`kq$h`fv re]sjqtXojU8=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS9<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8585>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk1?1279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:56;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi33?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4=4996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^211>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV;996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^011>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV9996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^61=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0=0=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6484956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2878512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><2<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:090=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W9837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\57><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh gsd-vc)`kq$h`fv ws]sjqtXj`d7=3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`32?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?7;463\:$kh!rg-dg}(ddbr${Qnup\flh;<78;7X> gsd-vc)`kq$h`fv ws]sjqtXj`dT4U1-dvc(un&mht#mcky-tvZvi|{UiecQ>219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^014>S7'nxm"h gbz-gim'~xT|cz}_ckm[6473\:$kh!rg-dg}(ddbr${Qnup\flhX<;<0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?0104?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt789::>;5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r123571<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?2005?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt78999m6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}0120[VQ7:91^<"i}f/pe+be&jf`t"y}_qlwvZad4949<6[?/fpe*w`(ojr%oaew/vp\tkruWni7=3328Q5)`zo$yj"ilx/aoo})pzVzexQhc=1=65=R8&myj#|i/fa{*fjlp&}yS}`{r^e`8186n2_;#j|i.sd,cf~)keas#z|Ppovq[beX88l0Y=!hrg,qb*adp'iggu!xr^rmpwY`kV;:j6[?/fpe*w`(ojr%oaew/vp\tkruWniT>f:W3+bta&{l$knv!cmi{+rtXxg~ySjmP4348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;878=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<0<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo585>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>0:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm783<:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[5423\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olS<<:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[7423\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olS><:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[14>3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?30?0:?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;7=3<6;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7;:7827X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3?7;4>3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?34?0;?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;TS7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S><7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X<;?0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVrd~=>?0378Q5)`zo$yj"ilx/aoo})pzVzexQhc^zlv5679;?0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVrd~=>?2378Q5)`zo$yj"ilx/aoo})pzVzexQhc^zlv567;::0Y=!hrg,qb*ak8'xo#j|>.sdtbq)Je|rT^LCPRE]FJZ@PN]8:??5Z0.eqb+ta'nf;"j gs3-vcqa|&GfyuQ]AL]Q@ZCIWO]MX??P13d8Q5)`zo$yj"ic0/pg+bt6&{l|jy!Bmtz\VDKXZLMDYYQJN031`>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj<1<1`>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj<0<1g>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_10`?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykP1278Q5)`zo$yj"ic0/pg+bt6&{l|jy!lusp\br`sWz~jxhQbuy2344:76:<0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`Yj}q:;<<2?>016?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykPmtz3457;979=7X> gsd-vc)`d9$yh"i}1/pescr(k|xySkyit^qweqcXe|r;<=?31?31<>S7'nxm"h gm2-va)`z8$yjzh{/dosp|Yao~Tjo<8;T2,cw`)zo%l`= }d.eq5+tao~$i`~{y^dtbqYn:o1^<"i}f/pe+bj7&{n$k?!rguep*cjx}sTjzh{_h]nq}67899;7X> gsd-vc)`d9$yh"i}1/pescr(mdzuRhxfu]j[hs89:;=?74U1-dvc(un&mg<#|k/fpbw+tt|z%ym`Qjmqvz[cdXa::0Y=!hrg,qb*ak8'xo#j|ns/pppv)uidUna}zv_g`\mZiu89:;?>5Z0.eqb+ta'nf;"j gscp*wus{&xjaRkbpu{\bgYnWfx;<=>>1410?P6(o{l%~k!hl1,q`*auiz$yy} r`o\ahvsqVliSdQ`r1234431;:1^<"i}f/pe+bj7&{n$ko|.sqww*tfeVof|ywPfc]j[jt789::95=<;T2,cw`)zo%l`= }d.eqev(u{}y$~lcPelrw}Z`eW`Ud~=>?00:077=R8&myj#|i/fn3*wb(o{kx"}{s.pbiZcjx}sTjoQf_np34565>:80Y=!hrg,qb*ak8'xo#j|ns/pppv)uidUna}zv_g`\mZiu89:;:?==;T2,cw`)zo%l`= }d.eqev(u{}y$~lcPelrw}Z`eW`Ud~=>?07117>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz>259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq45<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex><;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw064<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|30?32[LHQW98h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq84869;i0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?6;76:m1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQwos>0:476:j1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQwos>0:445k2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=6=547f3\:$kh!rg-dh5(ul&x{by| N032b>S7'nxm"h gm2-va)uxg~y#naznu>3:4`<]9%l~k }f.eo4+tc'{zex!lotlw8486n2_;#j|i.sd,ci6)zm%y|cz}/bmvjq:568l0Y=!hrg,qb*ak8'xo#~ats-`kphs4:4:j6[?/fpe*w`(oe:%~i!}povq+firf}6?2e:W3+bta&{l$ka>!re-qtkru'je~byQ=1d9V4*aun'xm#jb?.sf,vuhsz&idyczP30g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_501?P6(o{l%~k!hl1,q`*twf}x$ob{at^f28585:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc95;5>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<2=>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?7;453\:$kh!rg-dh5(ul&x{by| cnwmpZb64=49=6[?/fpe*w`(oe:%~i!}povq+firf}Uo=R>=1:W3+bta&{l$ka>!re-qtkru'je~byQk1^315>S7'nxm"h gm2-va)uxg~y#naznu]g5Z4592_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc9V99=6[?/fpe*w`(oe:%~i!}povq+firf}Uo=R:=4:W3+bta&{l$ka>!re-qtkru'je~byQaou23445a3\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(EhnoSigif^rmpwYwimUjhi>?01]`}969;o1^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[f;979m7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Ydq585?k5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567Wjs7?3=i;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Uhu1:1419V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Sa{{<0<74>S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pltv?6;273\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(EhnoSigif^rmpwYwimUjhi>?01]oqq:46=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5>58=5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567We080;0:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:Ttb|34?63?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,IdbcWmcmjR~ats]seaYflm:;<=Qwos>6:7`<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg8185n2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]sea:26;o0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcW=8n7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$hdhi_qlwvZvflV?8;6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimUjhi>?01>7:61<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[dbc89:;080=a:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/qplcZ`rdeUb??5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"~}of]eqijXaVg~t=>?3218Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-svjaXn|fgSdQbuy234674:2_;#j|i.sd,ci6){%l{l}!gqd-swva'yxdkRhzlm]j[kis89::>;5Z0.eqb+ta'nf;"z| gvcp*rus{&i9#iazt^k1270<]9%l~k }f.eo4+qu'n}j#y|tr-`6*bh}}Ub:?<9;T2,cw`)zo%l`= xr.etev(p{}y$o?!kotv\m2>582_;#j|i.sd,ci6){%l{l}!wrvp+fijx;8h7X> gsd-vc)`d9$|~"ixar,twqu(zhgTmac`su]eqijXa:>0Y=!hrg,qb*ak8'}y#jyns/uppv)uidUj``a|t^dvhiYnWds<=>?369V4*aun'xm#jb?.vp,crgt&~y"|nm^coijusWog`RgPmtz345668>9=7X> gsd-vc)`d9$|~"ixar,twqu(zhgTmac`su]eqijXaVg~t=>?03402>S7'nxm"h gm2-sw)`hy%{~z|/scn[djjgz~Tjxbc_h]nq}6789<?319V4*aun'xm#jb?.vp,crgt&~y"|nm^dvhiYnWds<=>?1171b>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVcTaxv?012137`<]9%l~k }f.eo4+qu'n}j#y|tr-qehYa}efTeRczx1234355n2_;#j|i.sd,ci6){%l{l}!wrvp+wgjWog`RgPmtz3456018n0Y=!hrg,qb*ak8'}y#ob_vp\akYn98l0Y=!hrg,qb*ak8'}y#ob_vp\akYn9V;9?6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at368Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkr6:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by<=4:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp6433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d8><4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\|jt;87;:SD@Y_10`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey0<0>13a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7>3?>2e9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{6822b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{682<<=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZ~hz5>5=f:W3+bta&{l$ka>!ws-ttkru'je~by2=>0d8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{<2<2b>S7'nxm"h gm2-sw)pxg~y#naznu>7:4c<]9%l~k }f.eo4+qu'~zex!lotlw[57b3\:$kh!rg-dh5(pz&}{by| cnwmpZ76m2_;#j|i.sd,ci6){%||cz}/bmvjqY59l1^<"i}f/pe+bj7&~x${}`{r.alqkrX;8o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW=897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:0=0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=3=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:56;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7?3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><5<15>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z6592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V;9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo=R<=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^115>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z25:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5:5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?2>>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?6;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54:49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>1:1209V4*aun'xm#jb?.vp,suhsz&idyczPd3]364=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y6:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U9><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?Q<209V4*aun'xm#jb?.vp,suhsz&idyczPd3]767=R8&myj#|i/fn3*rt(yd~"m`uov\`6:76;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm97=3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj<<3<16>S7'nxm"h gm2-sw)pxg~y#naznu]g7959:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl:6?2??4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=P0338Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1\577<]9%l~k }f.eo4+qu'~zex!lotlw[a5X:;;0Y=!hrg,qb*ak8'}y#z~ats-`kphsWm9T???4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=P4368Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_omw45669>1^<"i}f/pe+hcj'me~xRg30?3;?P6(o{l%~k!bel-gkprXa5;;2<64U1-dvc(un&gna"j`uu]j8479911^<"i}f/pe+hcj'me~xRg313<2<>S7'nxm"h mdo,`jssW`6:?3?7;T2,cw`)zo%fi`!kotv\m9736820Y=!hrg,qb*kbe&ndyyQf<07=5==R8&myj#|i/lgn+air|Vc7=;0>8:W3+bta&{l$ahc dnww[l:6?7;37X> gsd-vc)jmd%ocxzPi=3;:4><]9%l~k }f.ofi*bh}}Ub0<71169V4*aun'xm#`kb/emvpZo;97;37X> gsd-vc)jmd%ocxzPi=03:4><]9%l~k }f.ofi*bh}}Ub0??1199V4*aun'xm#`kb/emvpZo;:;4:46[?/fpe*w`(elg$hb{{_h>17;7?3\:$kh!rg-nah)cg|~Te1<;>0:8Q5)`zo$yj"cjm.flqqYn4;?5=55Z0.eqb+ta'dof#iazt^k?638602_;#j|i.sd,i`k(lfSd2=7?3;?P6(o{l%~k!bel-gkprXa5832<64U1-dvc(un&gna"j`uu]j87?99>1^<"i}f/pe+hcj'me~xRg32?3;?P6(o{l%~k!bel-gkprXa59;2<64U1-dvc(un&gna"j`uu]j8679911^<"i}f/pe+hcj'me~xRg333<2<>S7'nxm"h mdo,`jssW`68?3?7;T2,cw`)zo%fi`!kotv\m9536820Y=!hrg,qb*kbe&ndyyQf<27=52=R8&myj#|i/lgn+air|Vc7?3?8;T2,cw`)zo%fi`!kotv\m9299>1^<"i}f/pe+hcj'me~xRg35?34?P6(o{l%~k!bel-gkprXa5<5=:5Z0.eqb+ta'dof#iazt^k?3;703\:$kh!rg-nah)cg|~Te161169V4*aun'xm#`kb/emvpZo;17;=7X> gsd-vc)jmd%ocxzPi^222>S7'nxm"h mdo,`jssW`U:=:5Z0.eqb+ta'dof#iazt^k\55703\:$kh!rg-nah)cg|~TeR?>169V4*aun'xm#`kb/emvpZoX9;;<7X> gsd-vc)jmd%ocxzPi^3052=R8&myj#|i/lgn+air|VcT=9?8;T2,cw`)zo%fi`!kotv\mZ729>1^<"i}f/pe+hcj'me~xRgP1734?P6(o{l%~k!bel-gkprXaV;<=:5Z0.eqb+ta'dof#iazt^k\5=703\:$kh!rg-nah)cg|~TeR?6179V4*aun'xm#`kb/emvpZoX:8=0Y=!hrg,qb*kbe&ndyyQf_3223>S7'nxm"h mdo,`jssW`U9=<94U1-dvc(un&gna"j`uu]j[746?2_;#j|i.sd,i`k(lfSdQ=3058Q5)`zo$yj"cjm.flqqYnW;>:;6[?/fpe*w`(elg$hb{{_h]1141<]9%l~k }f.ofi*bh}}UbS?8>7:W3+bta&{l$ahc dnww[lY5?8=0Y=!hrg,qb*kbe&ndyyQf_3:23>S7'nxm"h mdo,`jssW`U95<84U1-dvc(un&gna"j`uu]j[6703\:$kh!rg-nah)cg|~TeR=?169V4*aun'xm#`kb/emvpZoX;8;<7X> gsd-vc)jmd%ocxzPi^1152=R8&myj#|i/lgn+air|VcT?>?8;T2,cw`)zo%fi`!kotv\mZ539>1^<"i}f/pe+hcj'me~xRgP3435?P6(o{l%~k!bel-gkprXaV>::6[?/fpe*w`(elg$hb{{_h]653=R8&myj#|i/lgn+air|VcT:<84U1-dvc(un&gna"j`uu]j[2713\:$kh!rg-nah)cg|~TeR6>6:W3+bta&{l$ahc dnww[lY>9j1^<"i}f/pe+hcj'me~xRgPnnv34576m2_;#j|i.sd,i`k(omg%h`!Br`o\VDK69o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ99;m7X> gsd-vc)jmd%lh` km.OqehYUID;:=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF=??i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@?<1g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB153e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL365c=R8&myj#|i/lgn+bbj&mg$Aob_SCN537a3\:$kh!rg-nah)`ld$oa"C}al]QEH709o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ91;m7X> gsd-vc)jmd%lh` km.OqehYUID;2=h5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF>>f:W3+bta&{l$ahc geo-`h)JzhgT^LC=10d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM302b>S7'nxm"h mdo,cak)ld%F~lcPR@O174`<]9%l~k }f.ofi*ace'nf#@|nm^PBI726n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK5=8l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE;<:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG9;f:W3+bta&{l$ahc geo-`h)JzhgT^LC=90g8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM23e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL135c=R8&myj#|i/lgn+bbj&mg$Aob_SCN747a3\:$kh!rg-nah)`ld$oa"C}al]QEH559o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ;:;m7X> gsd-vc)jmd%lh` km.OqehYUID9?=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF?8?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@=91g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB363e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL1;5c=R8&myj#|i/lgn+bbj&mg$Aob_SCN7<7b3\:$kh!rg-nah)`ld$oa"C}al]QEH26n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK388l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE=;:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG?>f:W3+bta&{l$ahc geo-`h)JzhgT^LC;40d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM572b>S7'nxm"h mdo,cak)ld%F~lcPR@O724`<]9%l~k }f.ofi*ace'nf#@|nm^PBI116n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK308l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE=3:i6[?/fpe*w`(elg$kic!dl-NvdkXZHG>=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF9=?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@;>1g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB533e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL705c=R8&myj#|i/lgn+bbj&mg$Aob_SCN117a3\:$kh!rg-nah)`ld$oa"C}al]QEH329o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ=?;m7X> gsd-vc)jmd%lh` km.OqehYUID?<=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF95?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@;61d9V4*aun'xm#`kb/ffn*ak(E{kfS_OB60d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM722b>S7'nxm"h mdo,cak)ld%F~lcPR@O554`<]9%l~k }f.ofi*ace'nf#@|nm^PBI346n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK1;8l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE?>:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG=9f:W3+bta&{l$ahc geo-`h)JzhgT^LC970d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM7:2b>S7'nxm"h mdo,cak)ld%F~lcPR@O5=4c<]9%l~k }f.ofi*ace'nf#@|nm^PBI27a3\:$kh!rg-nah)`ld$oa"C}al]QEH179o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ?8;m7X> gsd-vc)jmd%lh` km.OqehYUID=9=h5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF4 gsd-vc)jmd%lh` km.L2467>3\:$kh!rg-nah)`ld$oa"@>043:?P6(o{l%~k!bel-d`h(ce&D:<:?6;T2,cw`)zo%fi`!hdl,gi*H680;37X> gsd-vc)jmd%lh` km.L254?<]9%l~k }f.ofi*ace'nf#C?>10;8Q5)`zo$yj"cjm.egi+bj'G;:?<74U1-dvc(un&gna"ikm/fn+K76=830Y=!hrg,qb*kbe&moa#jb/O3234?<]9%l~k }f.ofi*ace'nf#C?>90;8Q5)`zo$yj"cjm.egi+bj'G;9=<74U1-dvc(un&gna"ikm/fn+K75;830Y=!hrg,qb*kbe&moa#jb/O3114?<]9%l~k }f.ofi*ace'nf#C?=70;8Q5)`zo$yj"cjm.egi+bj'G;95<64U1-dvc(un&gna"ikm/fn+K74901^<"i}f/pe+hcj'nnf"ic N0125<=R8&myj#|i/lgn+bbj&mg$B<=<189V4*aun'xm#`kb/ffn*ak(F89>=45Z0.eqb+ta'dof#jjb.eo,J450901^<"i}f/pe+hcj'nnf"ic N01:5<=R8&myj#|i/lgn+bbj&mg$B<:>189V4*aun'xm#`kb/ffn*ak(F8>8=45Z0.eqb+ta'dof#jjb.eo,J422901^<"i}f/pe+hcj'nnf"ic N0645==R8&myj#|i/lgn+bbj&mg$B<;>8:W3+bta&{l$ahc geo-`h)I9>;37X> gsd-vc)jmd%lh` km.L2=4><]9%l~k }f.ofi*ace'nf#C<>199V4*aun'xm#`kb/ffn*ak(F;9:46[?/fpe*w`(elg$kic!dl-M607?3\:$kh!rg-nah)`ld$oa"@=70:8Q5)`zo$yj"cjm.egi+bj'G82=55Z0.eqb+ta'dof#jjb.eo,J67602_;#j|i.sd,i`k(omg%h`!A323;?P6(o{l%~k!bel-d`h(ce&D89<64U1-dvc(un&gna"ikm/fn+K50911^<"i}f/pe+hcj'nnf"ic N2;2<>S7'nxm"h mdo,cak)ld%E88:W3+bta&{l$ahc geo-`h)I<0;<7X> gsd-vc)jmd%lh` km.L65==R8&myj#|i/lgn+bbj&mg$B8?>8:W3+bta&{l$ahc geo-`h)I=:;37X> gsd-vc)jmd%lh` km.L614><]9%l~k }f.ofi*ace'nf#C;8199V4*aun'xm#`kb/ffn*ak(F<3:46[?/fpe*w`(elg$kic!dl-M247?3\:$kh!rg-nah)`ld$oa"@930:8Q5)`zo$yj"cjm.egi+bj'G<>=55Z0.eqb+ta'dof#jjb.eo,J31602_;#j|i.sd,i`k(omg%h`!A6834?P6(o{l%~k!bel-d`h(ce&D<=55Z0.eqb+ta'dof#jjb.eo,J27602_;#j|i.sd,i`k(omg%h`!A723;?P6(o{l%~k!bel-d`h(ce&D<9<64U1-dvc(un&gna"ikm/fn+K10911^<"i}f/pe+hcj'nnf"ic N6;2<>S7'nxm"h mdo,cak)ld%E48:W3+bta&{l$ahc geo-`h)I00;<7X> gsd-vc)jmd%lh` km.L:5==R8&myj#|i/lgn+bbj&mg$B4?>8:W3+bta&{l$ahc geo-`h)I1:;37X> gsd-vc)jmd%lh` km.L:14><]9%l~k }f.ofi*ace'nf#C78199V4*aun'xm#`kb/ffn*ak(F03996[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<1<12>S7'nxm"h mdo,cak)ld%Tzl|fneg{456748:5>;5Z0.eqb+ta'dof#jjb.eo,[sguagnnt=>?0=32:70<]9%l~k }f.ofi*ace'nf#Rxnrhlga}67896:>3<9;T2,cw`)zo%fi`!hdl,gi*Yqi{cehhv?012?5685>2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;0<:1279V4*aun'xm#`kb/ffn*ak(Wkyecjjx12349726;<0Y=!hrg,qb*kbe&moa#jb/^tbvlhcmq:;<=2>6?05?P6(o{l%~k!bel-d`h(ce&U}mgaddz3456;9>49:6[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<0:=63=R8&myj#|i/lgn+bbj&mg$S{o}ioff|56785;22?;4U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>2:70<]9%l~k }f.ofi*ace'nf#Rxnrhlga}678969<3<9;T2,cw`)zo%fi`!hdl,gi*Yqi{cehhv?012?6485>2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;0?<1279V4*aun'xm#`kb/ffn*ak(Wkyecjjx12349446;<0Y=!hrg,qb*kbe&moa#jb/^tbvlhcmq:;<=2=4?05?P6(o{l%~k!bel-d`h(ce&U}mgaddz3456;:<49:6[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<34=63=R8&myj#|i/lgn+bbj&mg$S{o}ioff|567858<2?84U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>1<;413\:$kh!rg-nah)`ld$oa"Qyaskm``~789:7>40=5:W3+bta&{l$ahc geo-`h)X~hxbbikw01238785>2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;0>>1279V4*aun'xm#`kb/ffn*ak(Wkyecjjx12349566;<0Y=!hrg,qb*kbe&moa#jb/^tbvlhcmq:;<=2<2?05?P6(o{l%~k!bel-d`h(ce&U}mgaddz3456;;:49:6[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<26=63=R8&myj#|i/lgn+bbj&mg$S{o}ioff|567859>2?;4U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>0:73<]9%l~k }f.ofi*ace'nf#Rxnrhlga}67896?2?;4U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>6:73<]9%l~k }f.ofi*ace'nf#Rxnrhlga}67896=2?;4U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>4:73<]9%l~k }f.ofi*ace'nf#Rxnrhlga}6789632?;4U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>::4c<]9%l~k }f.ofi*ace'nf#iazt^k?4;7a3\:$kh!rg-nah)`ld$oa"j`uu]j84699o1^<"i}f/pe+hcj'nnf"ic dnww[l:697;m7X> gsd-vc)jmd%lh` km.flqqYn4885=k5Z0.eqb+ta'dof#jjb.eo,`jssW`6:?3?i;T2,cw`)zo%fi`!hdl,gi*bh}}Ub0<:11g9V4*aun'xm#`kb/ffn*ak(lfSd2>5?3e?P6(o{l%~k!bel-d`h(ce&ndyyQf<04=5c=R8&myj#|i/lgn+bbj&mg$hb{{_h>23;7a3\:$kh!rg-nah)`ld$oa"j`uu]j84>99o1^<"i}f/pe+hcj'nnf"ic dnww[l:617;n7X> gsd-vc)jmd%lh` km.flqqYn484:j6[?/fpe*w`(elg$kic!dl-gkprXa58;2<0>f:W3+bta&{l$ahc geo-`h)cg|~Te1<=>0d8Q5)`zo$yj"cjm.egi+bj'me~xRg322<2b>S7'nxm"h mdo,cak)ld%ocxzPi=07:4`<]9%l~k }f.ofi*ace'nf#iazt^k?6086n2_;#j|i.sd,i`k(omg%h`!kotv\m94168l0Y=!hrg,qb*kbe&moa#jb/emvpZo;:>4:j6[?/fpe*w`(elg$kic!dl-gkprXa583240>e:W3+bta&{l$ahc geo-`h)cg|~Te1<11g9V4*aun'xm#`kb/ffn*ak(lfSd2<0?3e?P6(o{l%~k!bel-d`h(ce&ndyyQf<23=5c=R8&myj#|i/lgn+bbj&mg$hb{{_h>06;7a3\:$kh!rg-nah)`ld$oa"j`uu]j86599o1^<"i}f/pe+hcj'nnf"ic dnww[l:4<7;m7X> gsd-vc)jmd%lh` km.flqqYn4:?5=h5Z0.eqb+ta'dof#jjb.eo,`jssW`682e:W3+bta&{l$ahc geo-`h)cg|~Te1811d9V4*aun'xm#`kb/ffn*ak(lfSd28>0g8Q5)`zo$yj"cjm.egi+bj'me~xRg38?3f?P6(o{l%~k!bel-d`h(ce&ndyyQf<8<2`>S7'nxm"h mdo,cak)ld%ocxzPi^22`>S7'nxm"h mdo,cak)ld%ocxzPi^32a>S7'nxm"h mdo,cak)ld%ocxzPi^335`=R8&myj#|i/lgn+bbj&mg$hb{{_h]254c<]9%l~k }f.ofi*ace'nf#iazt^k\577b3\:$kh!rg-nah)`ld$oa"j`uu]j[456m2_;#j|i.sd,i`k(omg%h`!kotv\mZ739l1^<"i}f/pe+hcj'nnf"ic dnww[lY6=8o0Y=!hrg,qb*kbe&moa#jb/emvpZoX9?;n7X> gsd-vc)jmd%lh` km.flqqYnW8=:i6[?/fpe*w`(elg$kic!dl-gkprXaV;3=h5Z0.eqb+ta'dof#jjb.eo,`jssW`U:5=?j;T2,cw`)zo%fi`!hdl,gi*bh}}UbS??>e:W3+bta&{l$ahc geo-`h)cg|~TeR<=1d9V4*aun'xm#`kb/ffn*ak(lfSdQ=30g8Q5)`zo$yj"cjm.egi+bj'me~xRgP253f?P6(o{l%~k!bel-d`h(ce&ndyyQf_372a>S7'nxm"h mdo,cak)ld%ocxzPi^055`=R8&myj#|i/lgn+bbj&mg$hb{{_h]134c<]9%l~k }f.ofi*ace'nf#iazt^k\6=7b3\:$kh!rg-nah)`ld$oa"j`uu]j[7?6l2_;#j|i.sd,i`k(omg%h`!kotv\mZ56m2_;#j|i.sd,i`k(omg%h`!kotv\mZ579l1^<"i}f/pe+hcj'nnf"ic dnww[lY498o0Y=!hrg,qb*kbe&moa#jb/emvpZoX;;;n7X> gsd-vc)jmd%lh` km.flqqYnW:9:i6[?/fpe*w`(elg$kic!dl-gkprXaV9?=h5Z0.eqb+ta'dof#jjb.eo,`jssW`U8910312>S7'nxm"h mdo,cak)ld%bb~zPLQO\IP^698;:>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W133260=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_9:;:>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W153260=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_9<;:>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W173260=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_9>;:>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W193260=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_90;:>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W213260=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_:8;:>;5Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W2032573<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP;8:=?;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX312573<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP;>:=?;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX372573<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP;<:=?;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX352573<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP;2:=?;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX3;2573<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP:::=?;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX232570<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP:;:=<<:;T2,cw`)zo%fi`!hdl,gi*oi{}UG\@QBUY1154423\:$kh!rg-nah)`ld$oa"gasu]OTHYJ]Q98=<<:;T2,cw`)zo%fi`!hdl,gi*oi{}UG\@QBUY1754423\:$kh!rg-nah)`ld$oa"gasu]OTHYJ]Q9>=<<;;T2,cw`)zo%fi`!hdl,gi*oi{}UG\@QBUY62572<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP<;:>95Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W60310>S7'nxm"h mdo,cak)ld%bb~zPLQO\IP^0988?7X> gsd-vc)jmd%lh` km.kmwqYKXDUFYU6>1368Q5)`zo$yj"cjm.egi+bj'`dxxRB_M^OV\<769o1^<"i}f/pe+hcj'nnf"ic wskwaZesze8;7X> gsd-vc)jmd%lh` km.uqmqcXk}xg=4U1-dvc(un&xxxobd/sf\vvrXizxnkRj>219V4*aun'xm#}{bmi,vaYu{}Ujkh_e02g>S7'nxm"h rrvahn)ulVxxxRm`mc3g?P6(o{l%~k!}su`oo*tcW{ySnabb03f?P6(o{l%~k!}su`oo*tcW{ySkh<1<2a>S7'nxm"h rrvahn)ulVxxxR|jg=3=5`=R8&myj#|i/sqwfim(zmUyyQ}ef>1:4b<]9%l~k }f.pppgjl'{nT~~zPrde\44b<]9%l~k }f.pppgjl'{nT~~zPrde\54b<]9%l~k }f.pppgjl'{nT~~zPrde\641<]9%l~k }f.pppgjl'{ySi?>7:W3+bta&{l$~~zmlj-qwqYc:8=0Y=!hrg,qb*tt|kf`#}{_e12`>S7'nxm"h rrvahn)pzVxxxRo|rde14>S7'nxm"h rrvahn)pzVxxxRo|rde\`4473\:$kh!rg-qwqdkc&}yS}{_`qqabYc:8i0Y=!hrg,qb*tt|kf`#z|Prrv\gjke9m1^<"i}f/pe+wusjea${Q}su]`khd69l1^<"i}f/pe+wusjea${Q}su]qab:768o0Y=!hrg,qb*tt|kf`#z|Prrv\v`a;97;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W9;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W8k0Y^K]_@NJEVe<]ZOYS[G\ICNF7>PDK01]EHYPTXRF0>QDDB80[H?k;YKOMK^*PMH+<#?/SUWA$5(6(HYHED;4XNP@]3=_[]FBN:5WSU]DJA1^c`VZye`Xjrrklj465lljf8`drfWje~by&?)e9geqgXkfex%?&d:fbpdYdg|d$?'k;ecweZeh}g~#?$j4d`vb[firf}"?%k5kauc\gjsi|5>1<394dckwawt13mce$='9;ekm,4/03mce$<>&7:fjj-76!>1oec&>2(58`lh/9:#<7iga(06*3>bnf!;>%:5kio*22,1.?2nbb%?6)79gmk.5!>1oec&=0(58`lh/:8#<7iga(30*3>bnf!88%:5kio*10,18'8;ekm,70.?2nbb%<8)69gmk.50 =0hd`'28+5?aoi :#<7iga(22*3>bnf!9:%:5kio*06,1'8;ekm,62.?2nbb%=:)79gmk.3!?1oec&:)79gmk.1!?1oec&8)79gmk.?!?1oec&6)79gmk:76>1oec2>0?58`lh;984<7iga<00=3>bnf5;82:5kio>20;169gmk:607=0hd`318<5?aoi484<7iga<32=3>bnf58:2:5kio>16;1>08;ekm8729?2nbb1<:>69gmk:5>7=0hd`326<4?aoi4;25;6jfn=0::3=cag692:5kio>04;169gmk:4<730hd`33483:2=cag689384dhl?7;00(:8`jss 8;"46j`uu*26,>bh}}"::$64dnww,41.02ndyy&>8(:8`jss 83";6j`uu*1-==cg|~#>='7;emvp-46!11ocxz'23+;?air|!88%55kotv+61/?3me~x%<:)99gkpr/:?#37iazt)04-==cg|~#>5'7;emvp-4>!>1ocxz'3(:8`jss ::"46j`uu*05,><&8:flqq.4; 20hb{{(26*<>bh}}"89$94dnww,1/03me~x%;&7:flqq.1!>1ocxz'7(58`jss 1#<7iazt);*3>bh}}6;255kotv?558?3me~x1?>>99gkpr;9;437iazt=30:==cg|~7=907;emvp972611ocxz317<;?air|5;<255kotv?5=8?3me~x1?6>69gkpr;9720hb{{<32=<>bh}}69=364dnww874902ndyy2=3?:8`jss4;>546j`uu>11;>bh}}695394dnww878?3me~x1=?>99gkpr;;8437iazt=11:==cg|~7?>07;emvp9536h1ocxz33483:==cg|~7?808;emvp959?2ndyy2;>69gkpr;=7=0hb{{<7<4?air|5=5;6j`uu>;:2=cg|~75364eeke6kac=2of|yw=f:djbjY`mgoymya}_w4\5)&_aecet-M@RD"Dakcui}ey,<kn;gkekZ~kfqU8>u=9_3aoo)`nnfUlick}aumq[s0X9%qhSeo|_hlw[fjl59&hSeo|_rppp86+kVxoSk|jq<3/gZciikfnS}{_r{mg87+kVbjR|k_ecweZeh}g~64)eX`hyTc{k}fmmt95*dWyxn`bok_mcwake~59&hSiazt^uj`qn:;?&hS`}hoo]uei;6$jUyhRjjpuj>77*dWlxycQfnkg`pliiW}s{i0>#c^jbwZsillxm`by20-a\lduXiegdyQiumn>5)eX`hyT~~z21-a\`drfWje~byQxievk90*dWakxSz|Pabi>4)eX}zoTinm20-a\gjkjggUh`bmd=1.`[rtXijaT`by20-a\vaYwf}xT{dj{h<7/gZstmVl|jyQkauc\gjsi|4:'oRfns^coijusWlg{xt3?,b]q`Zbf|hUhcx`{_vkgpm;2$jUdzh|ilnu\hjq:8%iT{Qnup\slbs`4?'oR~}of]fiur~W}s{i0>#c^uq[agsiVidyczPwhfwl83+kVzyiaand^pfcv;6$jUocxzPrrv\rdj:8%iTdl}Pd`vb[firf}7; nQrne\bpjkW}byi~fPndebp`Yqie79?!mPws]gauro5:8'oR~}of]fiur~W}byi~fPndebp`Yqie7> nQrne\ahvsqV~c~h}g_`qpawrX~hf68!mPh`q\rdjnl4:'oR~}of]eqijX|axneQnsrgqpZpfd48? nabpnlfjqYiido6jdh`_ynm|Z55p:nbd,b]ueiocWee|1="l_qpjiZ`nnfUu}k2500{73*dWyxdkRhzlm]w}uc:9%iTahc`rx]w}uc::%w9i6hffn]{hk~X;;r8:R0|ah_dosp|Ys`{oxd%>&159svjaXmdzuRzgrdqk,4/6<2zycjQjmqvz[qnumzb#>$?;;qplcZcjx}sTxe|jsi*0-42"=;5rne\ahvsqV~c~h}g<583:4dvugnUna}zv_ujqavnXizyn~y&>)0`8twi`Wlg{xtQ{hsgplZgt{lx$?'>b:rqkbYbey~rSyf}erj\evubz}"8%vugnUna}zv_ujqavnXflmjxh&;)0f8twi`Wlg{xtQ{hsgplZhboh~n094?>89svjaXn|fg=>5rne\bpjkW}byi~f'0(30?uthoVl~`aQ{hsgpl-7.9:1{~biPftno[qnumzb#>$?<;qplcZ`rdeUdk|h)1*56=wzfmTjxbc_ujqavn/< ;>7}|`g^dvhiYs`{oxd1:50?3b?uthoVl~`aQ{hsgplZgt{lx$='>a:rqkbYa}efTxe|jsi]bwvcu|!;"=l5rne\bpjkW}byi~fParqfvq.5!8k0|ah_gwohZrozlycSl}|esv+7,7f3yxdkRhzlm]wlwct`Vkxh|{(5+2g>vugnUmyabPtipfwmYf{zoyx1:50?3b?uthoVl~`aQ{hsgplZhboh~n$='>a:rqkbYa}efTxe|jsi]mabgsm!;"=l5rne\bpjkW}byi~fPndebp`.5!8k0|ah_gwohZrozlycSckhaug+7,7f3yxdkRhzlm]wlwct`Vdnklzj(5+2g>vugnUmyabPtipfwmYimnki1:50?48vaYddb;;7jPd`vb[firf}";%<>4re]geqgXkfex%?&119q`Zbf|hUhcx`{(3+24>tcWmkmRm`uov+7,773{nThlzn_bmvjq.3!8:0~iQkauc\gjsi|5:5=?5}d^fbpdYdg|d094?>49q`Zci>2xoS}{3:ppp2=tj`~n~:4ssqw0>ru}l30ycjjrgnls0=qieco:6y}_`ah2>quWjf`==5xr^fbpdYdg|d$='>0:uq[agsiVidycz'1(33?rtXlh~jSnaznu*1-46<{UomyoPcnwmp-5.991|~Rjnt`]`kphs =#:>6y}_ecweZeh}g~787>15:uq[`h13~xT~~zr@Arf5==GHq;1J7:51zQ00?5a=3?1=>;o162?0<,:?86>:k;|Q06?5a=3?1=>684>33`4=2<6:=lo7{Zm9;295?7=913p_>:53g791?74:k=2;7?=4gf8 62f2<:0Z>;;:3yv1<<63|?j6=5r$c09f>d4n10;68?53;72M5302P9o7o3;90;66a<5983>>i39<0;66g;4183>>i4nj0;66a>o3;00;66g;3383>>i4k00;6)l;:2g`?kd42910c>m7:18'f1<4mj1en>4>;:m0g2<72-h?6>kl;o`0>7=!d32:oh7cl<:598k6e3290/n946cd3gh86;54o2a2>5<#j=08in5ab284?>i4k90;6)l;:2g`?kd42110c>li:18'f1<4mj1en>46;:m0f`<72-h?6>kl;o`0>d=!d32:oh7cl<:b98k6de290/n946cd3gh86h54o2`:>5<#j=08in5ab28e?>i4j>0;6)l;:2g`?kd428:07b=m6;29 g2=;li0bo=51098k6d2290/n94kl;o`0>42<3f9i>7>5$c697`e5<#j=08in5ab2822>=h;k:1<7*m4;1fg>he;3;<76a!d32:oh7cl<:0:8?j5fm3:1(o:53da8jg5=9010c>mi:18'f1<4mj1en>4>a:9l7fc=83.i87=jc:la7?7e32e8oi4?:%`7>6cd3gh861?hm4nc195a=i4k:0;6)l;:2g`?kd42;:07b=m8;29 g2=;li0bo=52098k6gc290/n94o<;o`0>5=!d32:k87cl<:398m61c290/n946g43gh86954i25a>5<#j=08m>5ab286?>o4?00;6)l;:2c0?kd42?10e>97:18'f1<4i:1en>48;:k032<72-h?6>o<;o`0>==!d32:k87cl<:`98m613290/n944?:%`7>6g43gh86n54i251>5<#j=08m>5ab28g?>o4?80;6)l;:2c0?kd42l10e>9?:18'f1<4i:1en>4i;:k02`<72-h?6>o<;o`0>46<3`9=h7>5$c697d55<#j=08m>5ab2826>=n;?h1<7*m4;1b7>he;3;876g<6`83>!d32:k87cl<:068?l5113:1(o:53`18jg5=9<10e>87:18'f1<4i:1en>4>6:9j731=83.i87=n3:la7?7032c8:;4?:%`7>6g43gh86<64;h151?6=,k>1?l=4nc195<=o40=0;6)l;:2c0?kd428i07d=73;29 g2=;h90bo=51e98m6>5290/n94o<;o`0>76<3`9=j7>5$c697d5<54i247>5<#j=08m>5ab2816>=n;?91<7*m4;1b7>he;38876g;2983>>d4<00;6<4?:1yK71><,kh1?974oc394?=zj=?1<7?50;2xL62?3-hi69;4o5694?=zj;h1<76i:043>4>>sA9?46T=c;3546=n3;:6<;513827?732h026<8516821?702h0::7??:8820?742881=<4i:|&af?5aj2.9j7=i9:&07?5ai2.jh7l?;h63`?6=,k>18=k4nc194>=n<9i1<7*m4;63a>he;3;07d:?b;29 g2=<9o0bo=52:9j05g=83.i87:?e:la7?5<3`>;57>5$c6905c;46`m3;28?l27>3:1(o:541:8jg5=921b8=;50;&a0?2702di?7<4;h630?6=,k>18=64nc197>=n<991<7*m4;63<>he;3>07d:<0;29?j2793:17d:>3;29 g2=<8>0bo=50:9j044=83.i87:>4:la7?7<3`>:=7>5$c6904265f40294?"e<3>:86`m3;18?l27n3:1(o:54068jg5=<21d?8650;9l736=83.i87=91:la7?6<3f9>j7>5$c69737?<7>5;h62e?6=,k>18=n<831<7*m4;62f>he;3;07d:>8;29 g2=<8h0bo=52:9j041=83.i87:>b:la7?5<3`>::7>5$c6904d9=6`m3;28?l26n3:1(o:54338jg5=921b818??4nc197>=n<8i1<7*m4;615>he;3>07d:=6;29 g2=<;=0bo=50:9j073=83.i87:=7:la7?7<3`>987>5$c6907165f43194?"e<3>9;6`m3;18?l25:3:1(o:54358jg5=<21d?8950;9j7c`=831b?8l50;9j017=831d8>=50;9l06>=831b8><50;9l7f?=83.i87=jc:la7?6<3f9h47>5$c697`e3:1(o:53da8jg5=;21d?n;50;&a0?5bk2di?7:4;n1`0?6=,k>1?hm4nc191>=h;j81<7*m4;1fg>he;3<07b=l1;29 g2=;li0bo=57:9l7f6=83.i87=jc:la7?><3f9ij7>5$c697`e1?hm4nc19`>=h;kk1<7*m4;1fg>he;3o07b=m9;29 g2=;li0bo=5f:9l7g1=83.i87=jc:la7?7732e8n;4?:%`7>6cd3gh861?hm4nc1957=i4j;0;6)l;:2g`?kd428?07b=m1;29 g2=;li0bo=51798k6d7290/n94kl;o`0>4?<3f9hj7>5$c697`e5<#j=08in5ab282f>=h;jn1<7*m4;1fg>he;3;h76a!d32:oh7cl<:0f8?j5dj3:1(o:53da8jg5=9l10c>mn:18'f1<4mj1en>4>f:9l7f5=83.i87=jc:la7?4732e8n54?:%`7>6cd3gh86??4;n1b`?6=,k>1?hm4nc1967=1?l=4nc197>=n;>i1<7*m4;1b7>he;3>07d=8b;29 g2=;h90bo=55:9j72?=83.i87=n3:la7?0<3`9<47>5$c697d53:1(o:53`18jg5=121b?:;50;&a0?5f;2di?7o4;h140?6=,k>1?l=4nc19f>=n;>91<7*m4;1b7>he;3i07d=82;29 g2=;h90bo=5d:9j727=83.i87=n3:la7?c<3`9<<7>5$c697d5o4>m0;6)l;:2c0?kd428;07d=9c;29 g2=;h90bo=51398m60e290/n94o<;o`0>43<3`9=47>5$c697d55<#j=08m>5ab2823>=n;?<1<7*m4;1b7>he;3;376g<6483>!d32:k87cl<:0;8?l5?>3:1(o:53`18jg5=9h10e>6::18'f1<4i:1en>4>b:9j7=2=83.i87=n3:la7?7d32c84>4?:%`7>6g43gh861?l=4nc195`=o4>o0;6)l;:2c0?kd42;;07d=94;29 g2=;h90bo=52398m604290/n949o7>5$c6907`9j6`m3;08?j25i3:1(o:543d8jg5=;21d8?750;&a0?25n2di?7:4;n60a?6=,k>18>h4nc194>=h<:n1<7*m4;60b>he;3;07b:8m7>5$c6906`14<@:>m7E=;8:&7f?2>oe=3:17bl9:188yg55n3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xd4;m0;694?:1y'fg<3:2B88k5G35:8L7g<,<=18>;4$5`90>o5l3:17d=::188mg3=831dn;4?::a764=8391<7>t$c`97c=O;=l0D>:7;I0b?!302=9>7):m:39j6a<722c897>5;n`5>5<53;294~"ej39m7E=;f:J00==O:h1/9:4;349'0g<53`8o6=44i2794?=hj?0;66sm32a94?2=83:p(ol5439K71`<@:>37E1523->i695f2e83>>o4=3:17dl::188kg0=831vn>=>:180>5<7s-hi6>h4H26e?M5302B9m6*:7;601>"3j380e?j50;9j70<722ei:7>5;|`07`<72<0;6=u+bc877>N45;h`6>5<5<4290;w)lm:2d8L62a3A9?46F=a:&63?24=2.?n7<4i3f94?=n;<0;66am6;29?xd4;90;684?:1y'fg<3;2B88k5G35:8L7g<,<=18>;4i3f94?=n:l0;66g<5;29?ld22900co850;9~f65e290?6=4?{%`a>14<@:>m7E=;8:J1e>"2?3>896*;b;68m7b=831b?84?::ka1?6=3fh=6=44}c10e?6=<3:1;50;9jf0<722ei:7>5;|`07<<72=0;6=u+bc876>N4o5l3:17d=::188mg3=831dn;4?::a76>=83>1<7>t$c`907=O;=l0D>:7;%6a>1=n:m0;66g<5;29?ld22900co850;9~f621290?6=4?{%`a>14<@:>m7E=;8:&7f?2>oe=3:17bl9:188yg53=3:187>50z&af?253A9?j6F<499'0g<33`8o6=44i2794?=nj<0;66am6;29?xddl3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xddk3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xddj3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xddi3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xdd13:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xd6880;694?:1y'fg<382B88k5G35:8 1d=:2c9h7>5;h12>5<>{e99:1<7:50;2x gd=<91C?9h4H26;?!2e2;1b>i4?::k05?6=3`9>6=44oc494?=zjol1<7:50;2x gd=<91C?9h4H26;?!2e2;1b>i4?::k05?6=3`9>6=44oc494?=zjoo1<7:50;2x gd=<91C?9h4H26;?!2e2;1b>i4?::k05?6=3`9>6=44oc494?=zjon1<7:50;2x gd=<91C?9h4H26;?!2e2;1b>i4?::k05?6=3`9>6=44oc494?=zj88<6=4;:183!de2=:0D>:i;I17<>"3j380e?j50;9j74<722c897>5;n`5>5<54;294~"ej3>;7E=;f:J00==#84?:583>5}#jk0?<6F<4g9K71><,=h1>6g=d;29?l562900e>;50;9lf3<722wi=?:50;694?6|,kh18=5G35d8L62?3->i6?5f2e83>>o493:17d=::188kg0=831vn<<<:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qoh<:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qoh=:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qoh>:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qoh?:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qoki:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qo?>d;290?6=8r.in7:?;I17b>N4<11C>l5+568770=#5}#jk0?<6F<4g9K71><@;k0(8954278 1d=:2c9h7>5;h12>5<>{e98h1<7:50;2x gd=<91C?9h4H26;?M4f3-?<69=:;%6a>7=n:m0;66g<1;29?l522900co850;9~f47f290?6=4?{%`a>16<@:>m7E=;8:J1e>"2?3>896*;b;08m7b=831b?<4?::k01?6=3fh=6=44}c32=?6=<3:15<>ie>3:17plj9;290?6=8r.in7:?;I17b>N4<11C>l5+568770=#54;294~"ej3>;7E=;f:J00==O:h1/9:4;349'0g<53`8o6=44i2394?=n;<0;66am6;29?xdb?3:187>50z&af?273A9?j6F<499K6d=#=>0??85+4c81?l4c2900e>?50;9j70<722ei:7>5;|`f2?6=<3:15<>ie>3:17plj5;290?6=8r.in7:?;I17b>N4<11C>l5+568770=#54;294~"ej3>;7E=;f:J00==#54;294~"ej3>;7E=;f:J00==#54;294~"ej3>;7E=;f:J00==#54;294~"ej3>;7E=;f:J00==#54;294~"ej3>;7E=;f:J00==#4?:583>5}#jk0?<6F<4g9K71><,=h1>6g=d;29?l562900e>;50;9lf3<722wi=<<50;694?6|,kh18=5G35d8L62?3->i6?5f2e83>>o493:17d=::188kg0=831vn:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qo?>0;290?6=8r.in7:?;I17b>N4<11/8o4=;h0g>5<>ie>3:17pl>0g83>1<729q/no4;0:J00c=O;=20(9l52:k1`?6=3`9:6=44i2794?=hj?0;66sm14;94?3=83:p(ol5409K71`<@:>37):m:39j6a<722c9i7>5;h12>5<>{e9<21<7;50;2x gd=<81C?9h4H26;?!2e2;1b>i4?::k1a?6=3`9:6=44i2794?=hj?0;66sm14494?3=83:p(ol5409K71`<@:>37):m:39j6a<722c9i7>5;h12>5<>{e9i4?::k1a?6=3`9>6=44ic794?=hj?0;66sm14594?3=83:p(ol5409K71`<@:>37):m:39j6a<722c9i7>5;h12>5<>{e9?91<7;50;2x gd=<81C?9h4H26;?!2e2;1b>i4?::k1a?6=3`9:6=44i2794?=hj?0;66sm17094?3=83:p(ol5409K71`<@:>37):m:39j6a<722c9i7>5;h12>5<>{e9?;1<7;50;2x gd=<81C?9h4H26;?!2e2;1b>i4?::k1a?6=3`9:6=44i2794?=hj?0;66sm17294?3=83:p(ol5409K71`<@:>37):m:39j6a<722c9i7>5;h12>5<>{e9i4?::k1a?6=3`9:6=44i2794?=hj?0;66sm12594?2=83:p(ol5439K71`<@:>37):m:59j6a<722c897>5;h`6>5<5<3290;w)lm:508L62a3A9?46*;b;68m7b=831b?84?::ka1?6=3fh=6=44}c306?6=<3:1?50;9j70<722ei:7>5;|`274<72=0;6=u+bc874>N4o5l3:17d=>:188m63=831dn;4?::a526=8391<7>t$c`971c<@:>m7E=;8:k04?6=3`>o6=44o`d94?=zj8n7E=;f:J00==n;90;66g;d;29?jga2900qo?99;290?6=8r.in7;7;I17b>N4<11b?=4?::k02?6=3`h36=44o`d94?=zj8<36=4;:183!de2<20D>:i;I17<>o483:17d=9:188mg>=831dmk4?::a531=83>1<7>t$c`91==O;=l0D>:7;h13>5<>ifn3:17pl>6783>1<729q/no4:8:J00c=O;=20e>>50;9j73<722ci47>5;nce>5<54;294~"ej3?37E=;f:J00==n;90;66g<6;29?ld?2900clh50;9~f413290?6=4?{%`a>16<@:>m7E=;8:&7f?4>o4=3:17bl9:188yg70;3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xd6?>0;684?:1y'fg<3;2B88k5G35:8 1d=<2c9h7>5;h0f>5<>ie>3:17pl>a583>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6i:0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>a083>0<729q/no4;3:J00c=O;=20(9l54:k1`?6=3`8n6=44i2794?=nj<0;66am6;29?xd6i90;684?:1y'fg<3;2B88k5G35:8 1d=<2c9h7>5;h0f>5<>ie>3:17pl>a383>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6ij0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>a`83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6ik0;684?:1y'fg<3;2B88k5G35:8 1d=<2c9h7>5;h0f>5<>ie>3:17pl>ae83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6il0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>b783>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6j=0;684?:1y'fg<3;2B88k5G35:8 1d=<2c9h7>5;h0f>5<>ie>3:17pl>b483>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6j>0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>b983>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6k;0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>c083>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6k90;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>bg83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6jl0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=e483>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5m?0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f083>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5nj0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl<0283>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd48=0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl<0483>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd48?0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl<0683>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd4810;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=e683>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5m10;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=e883>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5mh0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=ec83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5mj0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=ee83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5ml0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=eg83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5n90;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f383>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5n:0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f583>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5n<0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f783>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5n>0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f983>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5n00;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f`83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5nk0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=fe83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5nl0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=fg83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd4890;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl<0083>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd48;0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0e83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9=54?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5::0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`101<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2d83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9?44?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`116<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=5583>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th95}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5980;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`14c<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=1183>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9=?4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd59:0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`151<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=1483>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9=44?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd59?0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`152<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=1`83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9=o4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd59j0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`15a<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2183>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9=h4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd59o0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`164<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2383>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9>94?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5:<0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`16=<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2783>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9>:4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5:00;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`16d<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2c83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9>n4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;90;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`16a<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2g83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9?<4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;;0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`176<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=3583>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9?:4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;<0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`173<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=3c83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9?54?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;h0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`17`<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=3b83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9?i4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;o0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`105<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=4083>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th98?4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`106<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=4483>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th98:4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5<10;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`10<<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=4`83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th98i4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`10f<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=4d83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th99=4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5=80;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`117<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=0483>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd58=0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0283>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd58;0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0083>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5890;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>fd83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6nm0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>fb83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6nk0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>f`83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n00;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>f983>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n>0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>f783>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n<0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>f283>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n;0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>f083>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n90;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>eg83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6ml0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>ee83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6mj0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>ec83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6mh0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0c83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd58h0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0883>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5810;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0683>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd58?0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>fg83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n=0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>e883>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6m10;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>8783>1<729q/no4;2:J00c=O;=20(9l54:k1`?6=3`9>6=44ic794?=hj?0;66sm19594?2=83:p(ol5439K71`<@:>37):m:59j6a<722c897>5;h`6>5<5<2290;w)lm:518L62a3A9?46*;b;68m7b=831b>h4?::k01?6=3`h>6=44oc494?=zj:>96=4<:183!de2<;0D>:i;I17<>"3j3i0e9950;9j0=<722ejj7>5;|`071<72:0;6=u+bc865>N4o3?3:17d:7:188kd`=831vn<><:180>5<7s-hi68?4H26e?M5302.?n7?7;h64>5<>{eko0;6>4?:1y'fg<292B88k5G35:8 1d=911b8:4?::k7o3?3:17d:7:188kd`=831vn<:n:180>5<7s-hi68?4H26e?M5302.?n7?7;h64>5<>{ek:0;6>4?:1y'fg<292B88k5G35:8 1d=911b8:4?::k75<4290;w)lm:438L62a3A9?46*;b;3;?l202900e9650;9lec<722wio<4?:283>5}#jk0>=6F<4g9K71><,=h1=55f4683>>o303:17boi:188yge729086=4?{%`a>07<@:>m7E=;8:&7f?7?3`><6=44i5:94?=hio0;66smbg83>6<729q/no4:1:J00c=O;=20(9l5199j02<722c?47>5;nce>5<:i;I17<>"3j3;37d:8:188m1>=831dmk4?::afa<72:0;6=u+bc865>N40;66g;8;29?jga2900qoll:180>5<7s-hi68?4H26e?M5302.?n7?7;h64>5<>{e9>31<7:50;2x gd==:1C?9h4H26;?!2e2:1b8:4?::k726=44o`d94?=zj89=6=4;:183!de2<90D>:i;I17<>"3j39n7d:8:188m1>=831b844?::mbb?6=3th:<84?:583>5}#jk0>?6F<4g9K71><,=h1>95f4683>>o303:17d:6:188kd`=831vni?50;694?6|,kh19>5G35d8L62?3->i6?:4i5594?=n<10;66g;9;29?jga2900qo?66;290?6=8r.in7;<;I17b>N4<11/8o4>a:k73?6=3`>36=44i5;94?=hio0;66sm15`94?2=83:p(ol5529K71`<@:>37):m:0c8m11=831b854?::k7=?6=3fkm6=44}c300?6==3:15;nce>5<55;294~"ej3?>7E=;f:J00==#5;|`g7?6==3:1o3?3:17d:7:188m1?=831b8l4?::mbb?6=3th:?l4?:483>5}#jk0>96F<4g9K71><,=h1=k5f4683>>o303:17d:6:188m1g=831dmk4?::a5=3=8391<7>t$c`914=O;=l0D>:7;%6a>63>ifn3:17pl>2d83>1<729q/no4:3:J00c=O;=20(9l5269j02<722c?47>5;h6:>5<5<2290;w)lm:478L62a3A9?46*;b;3:?l202900e9650;9j0<<722c?m7>5;nce>5<:i;I17<>"3j3;27d:8:188m1>=831b844?::k7e?6=3fkm6=44}c11g?6=<3:1o3?3:17d:7:188m1?=831dmk4?::a77d=83>1<7>t$c`916=O;=l0D>:7;%6a>6e>o313:17boi:188yg55i3:187>50z&af?343A9?j6F<499'0g<4k2c?;7>5;h6;>5<>{e;;31<7:50;2x gd==:1C?9h4H26;?!2e2:i0e9950;9j0=<722c?57>5;nce>5<54;294~"ej3?87E=;f:J00==#5G35d8L62?3->i6>m4i5594?=n<10;66g;9;29?jga2900qo==6;290?6=8r.in7;<;I17b>N4<11/8o436=44i5;94?=hio0;66sm33794?2=83:p(ol5529K71`<@:>37):m:2a8m11=831b854?::k7=?6=3fkm6=44}c110?6=<3:1o3?3:17d:7:188m1?=831dmk4?::a775=83>1<7>t$c`916=O;=l0D>:7;%6a>6e>o313:17boi:188yg55:3:187>50z&af?343A9?j6F<499'0g<4k2c?;7>5;h6;>5<>{e;;;1<7:50;2x gd==:1C?9h4H26;?!2e2:i0e9950;9j0=<722c?57>5;nce>5<54;294~"ej3?87E=;f:J00==#5G35d8L62?3->i6>m4i5594?=n<10;66g;9;29?jga2900qo=>e;290?6=8r.in7;<;I17b>N4<11/8o436=44i5;94?=hio0;66sm30f94?2=83:p(ol5529K71`<@:>37):m:2a8m11=831b854?::k7=?6=3fkm6=44}c12g?6=<3:1o3?3:17d:7:188m1?=831dmk4?::a74d=83>1<7>t$c`916=O;=l0D>:7;%6a>6e>o313:17boi:188yg56i3:187>50z&af?343A9?j6F<499'0g<4k2c?;7>5;h6;>5<>{e;831<7:50;2x gd==:1C?9h4H26;?!2e2:i0e9950;9j0=<722c?57>5;nce>5<54;294~"ej3?87E=;f:J00==#5G35d8L62?3->i6>m4i5594?=n<10;66g;9;29?jga2900qo=>6;290?6=8r.in7;<;I17b>N4<11/8o436=44i5;94?=hio0;66sm30794?2=83:p(ol5529K71`<@:>37):m:2a8m11=831b854?::k7=?6=3fkm6=44}c120?6=<3:1o3?3:17d:7:188m1?=831dmk4?::a745=83>1<7>t$c`916=O;=l0D>:7;%6a>6e>o313:17boi:188yg56:3:187>50z&af?343A9?j6F<499'0g<4k2c?;7>5;h6;>5<>{e;8;1<7:50;2x gd==:1C?9h4H26;?!2e2:i0e9950;9j0=<722c?57>5;nce>5<54;294~"ej3?87E=;f:J00==#5G35d8L62?3->i6>m4i5594?=n<10;66g;9;29?jga2900qo=?e;290?6=8r.in7;<;I17b>N4<11/8o436=44i5;94?=hio0;66sm31f94?2=83:p(ol5529K71`<@:>37):m:2a8m11=831b854?::k7=?6=3fkm6=44}c13g?6=<3:1o3?3:17d:7:188m1?=831dmk4?::a75d=83>1<7>t$c`916=O;=l0D>:7;%6a>6e>o313:17boi:188yg5713:187>50z&af?343A9?j6F<499'0g<4k2c?;7>5;h6;>5<>{e;9k1<7:50;2x gd==:1C?9h4H26;?!2e2:i0e9950;9j0=<722c?57>5;nce>5<54;294~"ej3?87E=;f:J00==#5G35d8L62?3->i6?74i5594?=n<10;66g;9;29?jga2900qo?=c;291?6=8r.in7;:;I17b>N4<11/8o47;h64>5<>o3i3:17boi:188yg7393:197>50z&af?323A9?j6F<499'0g<6l2c?;7>5;h6;>5<>ifn3:17pl>4383>0<729q/no4:5:J00c=O;=20(9l51d9j02<722c?47>5;h6:>5<>{e9:n1<7;50;2x gd==<1C?9h4H26;?!2e2;90e9950;9j0=<722c?57>5;h6b>5<5<2290;w)lm:478L62a3A9?46*;b;1g?l202900e9650;9j0<<722c?m7>5;nce>5<53;294~"ej3?:7E=;f:J00==#=831dmk4?::a5=4=83?1<7>t$c`910=O;=l0D>:7;%6a>75>o313:17d:n:188kd`=831vn<6<:186>5<7s-hi68;4H26e?M5302.?n7<<;h64>5<>o3i3:17boi:188yg7?93:197>50z&af?323A9?j6F<499'0g<6=44i5:94?=n<00;66g;a;29?jga2900qo?8b;291?6=8r.in7;:;I17b>N4<11/8o4>e:k73?6=3`>36=44i5;94?=n26=44i5c94?=hio0;66sm19`94?3=83:p(ol5549K71`<@:>37):m:318m11=831b854?::k7=?6=3`>j6=44o`d94?=zj8226=4::183!de2:i;I17<>"3j3o0e9950;9j0=<722c?57>5;h6b>5<5<4290;w)lm:438L62a3A9?46*;b;03?l202900e9650;9lec<722wi=;l50;194?6|,kh19<5G35d8L62?3->i6?>4i5594?=n<10;66anf;29?xd6>j0;6>4?:1y'fg<292B88k5G35:8 1d=:91b8:4?::k7o3?3:17d:7:188kd`=831vn<=i:186>5<7s-hi68;4H26e?M5302.?n7<=;h64>5<>o3i3:17boi:188yg70l3:197>50z&af?323A9?j6F<499'0g<5:2c?;7>5;h6;>5<>ifn3:17pl>6d83>6<729q/no4:1:J00c=O;=20(9l5219j02<722c?47>5;nce>5<54;294~"ej3?87E=;f:J00==#=831b844?::mbb?6=3th8>h4?:583>5}#jk0>?6F<4g9K71><,=h1?6g;7;29?l2?2900e9750;9lec<722wi=4650;794?6|,kh1985G35d8L62?3->i66=4?{%`a>03<@:>m7E=;8:&7f?7e3`><6=44i5:94?=n<00;66g;a;29?jga2900qo?=d;291?6=8r.in7;:;I17b>N4<11/8o47;h64>5<>o3i3:17boi:188yg7?m3:1?7>50z&af?363A9?j6F<499'0g<03`><6=44i5:94?=hio0;66sm18694?4=83:p(ol54b9K71`<@:>37d:9:188kd`=831vn<:6:181>5<7s-hi69m4H26e?M5302c?:7>5;nce>5<53;294~"ej3?97E=;f:J00==#t$c`917=O;=l0D>:7;%6a>4>>i3m3:17pl>9683>1<729q/no4:4:J00c=O;=20(9l51b9j02<722c?47>5;h6:>5<5<3290;w)lm:468L62a3A9?46*;b;3`?l202900e9650;9j0<<722e?i7>5;|`27`<72<0;6=u+bc862>N40;66g;8;29?l2>2900e9o50;9l0`<722wi=:m50;794?6|,kh19;5G35d8L62?3->i63290>6=4?{%`a>00<@:>m7E=;8:&7f?453`><6=44i5:94?=n<00;66g;a;29?j2b2900qo?7c;291?6=8r.in7;9;I17b>N4<11/8o4=2:k73?6=3`>36=44i5;94?=n26=44o5g94?=z{=9;6=48{_604>;6;?0?463>35873>;6;h0?m63>2d87=>;6:j0?;63>2e873>{t<;o1<7<>{_156>X3;11U8>84^274?[24;2T?<<5Q4258Z1653W9=<6P<5g9]70cX3;h1U8?j4^50`?[25j2T?>l5Q43;896372=>01>=j:27896572:?01>=m:278965f2:?01>=6:278965?2:?01>:9:27896222:?01<8::c:8yv70n3:1>vP<599>52`=j?1v9==:184[24:278>k4<1:?07a650;0xZ6`134;847l9;|q705<724=0:g>11<5:8o6974=20f>11<582n6994}r617b<5:996?j4=212>7b<5:9;6?j4=21b>7b<5:926?j4=21;>7b<58::6?j4=023>7b<5ol1>i52fd81`>;al38o70?=7;0g?875>38o70?=5;0g?875<38o70?=3;0g?876l38o70?>c;0g?876j38o70?>a;0g?876138o70ji:3f89ac=:m16hi4=d:?gg?4c34ni6?j4=07:>7b<58?36?j4=075>7b<58?>6?j4=074>7b<58<86?j4=041>7b<58<:6?j4=043>7b<58?m6?j4=014>7b<58936?j4=011>7b<589:6?j4=3g6>7b<5;o=6?j4=3d2>7b<5;lh6?j4=220>7b<5::?6?j4=226>7b<5::=6?j4=224>7b<5::36?j4=3g4>7b<5;o36?j4=3g:>7b<5;oj6?j4=3ga>7b<5;oh6?j4=3gg>7b<5;on6?j4=3ge>7b<5;l;6?j4=3d1>7b<5;l86?j4=3d7>7b<5;l>6?j4=3d5>7b<5;l<6?j4=3d;>7b<5;l26?j4=3db>7b<5;li6?j4=3dg>7b<5;ln6?j4=3de>7b<5::;6?j4=222>7b<5::96?j4=326>7b<5;:?6?j4=320>7b<5;:96?j4=322>7b<5;:;6?j4=0df>7b<58lo6?j4=0d`>7b<58li6?j4=0db>7b<58l26?j4=0d;>7b<58l<6?j4=0d5>7b<58l>6?j4=0d0>7b<58l96?j4=0d2>7b<58l;6?j4=0ge>7b<58on6?j4=0gg>7b<58oh6?j4=0ga>7b<58oj6?j4=32a>7b<5;:j6?j4=32:>7b<5;:36?j4=324>7b<5;:=6?j4=0de>7b<58l?6?j4=0g:>7b<58o36?j4}r3;3?6=:rT8jn521959f3=z{=926=470z\77<=:;;l1>i5232f96a=:;=:1>i5232a96a=:;:o1>i5232d96a=:;:h1>i5235496a=:;=?1>i52ce81`>;dk38o70mm:3f89fg=:m16o44=d:?e7?4c34l96?j4=g396a=:n909h63jf;0g?8c>2;n01h652e9>a2<5l27n:77b<58;86?j4=031>7b<58;:6?j4=033>7b<58:m6?j4=057>7b<58=86?j4=054>7b<58k?6?j4=0c0>7b<58k:6?j4=0c3>7b<58k96?j4=0c`>7b<58kj6?j4=0ca>7b<58ko6?j4=0cf>7b<58h=6?j4=0`7>7b<58h>6?j4=0`4>7b<58h36?j4=0a1>7b<58i:6?j4=0a3>7b<58hm6?j4=0`f>7b<5;:o6>:m;<02>4<4c9>612=;=h01?62e348;i7=;b:?154<4=h535`897772:>i70<>2;17f>;59:088o52206971d<5;;>6>:m;<02=?53j279=;4<4c9>641=;=h01??n:26a?846j39?n63=1b800g=::8n1?9l4=303>62e348:i7=;b:?15c<4??535`897452:>i70<=4;17f>;5:<088o5223:971d<5;8=6>:m;<013?53j279>44<4c9>67g=;=h01?62e3488=7=;b:?177<4>=535`897532:>i70<<7;17f>;5;<088o52224971d<5;9i6>:m;<0066c=;=h01?=l:26a?844l39?n63=3g800g=::=:1?9l4=362>62e348?>7=;b:?103<49=535`897222:>i70<;7;17f>;5<1088o5225;971d<5;>j6>:m;<07`?53j2798o4<4c9>61e=;=h01?:j:26a?842839?n63=50800g=::<81?9l4=0:5>7b<582<6?j4=05e>7b52z\750=:9>=1n;5rs0g3>5<5sW9h563=048a2>{t9ml1<7dd83>7}Y;j=01?><:c48yv7cl3:1>vP654=j?1vm;;<034?d13ty:h44?:3y]7f4<58ln6o84}r3g;6nj0i:6s|1e494?4|V:hm70?ib;`5?xu6l<0;6?uQ3cg894`f2k<0q~?k4;296~X4jm16=k75b79~w4b42909wS=mc:?2b=2wx=i<50;0xZ6de34;m;7l9;|q2`4<72;qU?oo4=0d5>g052z\0f<=:9o?1n;5rs0af>5<5sW9i;63>f28a2>{t9jn1<7cb83>7}Y;k?01:c48yv7dj3:1>vP5c6=j?1vl=;<3fa?d13ty:o54?:3y]7g7<58oo6o84}r3`3?6=:rT8n=521da9f3=z{8i=6=4={_1bb>;6mk0i:6s|1b794?4|V:kn70?ja;`5?xu6m>0;6?uQ3bd8976e2k<0q~?j6;296~X4kl16>=o5b79~w4c22909wS=ld:?14<2wx=h:50;0xZ6ed348;47l9;|q2a6<72;qU?nl4=324>g07>52z\0gd=::9<1n;5rs0g2>5<5sW9h?63>fg8a2>{t9mk1<7cg83>7}Y;hn01vP5`>=j?1v>o;:180[5?82799<4<5:?117<4=2wx?l<50;1xZ61a348?i7=:;<064?523ty8m<4?:2y]72c<5;>o6>;4=36`>6353z\03a=::=k1?85225`970=z{:3m6=4<{_14g>;5<108963=48801>{t;0o1<7=t^25a?843>39>70<;7;16?xu41j0;6>uQ36;897242:?01?:::278yv5>j3:1?vP<799>617=;<16>9<5349~w6?f2908wS=87:?17c<4=2798=4<5:p799;<00a?523488h7=:;|q0==<72:qU?:;4=31a>63<5;9h6>;4}r1:3?6=;rT8;95222:970=:::k1?85rs2;5>5<4sW9;5;?0896s|38794?5|V:=970<<4;16?844=39>7p}<9583>6}Y;>;01?==:27897542:?0q~=63;297~X4?916>>>5349>667=;<1v>7>:180[51m279>i4<5:?16c<4=2wx?4>50;1xZ60c3489n7=:;<01g?523ty84k4?:2y]73e<5;826>;4=30b>6353z\02g=::;21?852235970=z{:2o6=4<{_15e>;5:<08963=27801>{t;1i1<7=t^24:?845:39>70<=4;16?xu40k0;6>uQ37:897472:?01?<>:278yv5?i3:1?vP<669>64c=;<16>>2908wS=96:?15f<4=279=i4<5:p7=>=839pR>8:;<02e?52348:n7=:;|q0eg<72:qU?584=33:>63<5;;<6>;4}r1be?6=;rT84852207970=::8<1?85rs2c:>5<4sW93863=12801>;59=0896s|3`:94?5|V:2870<>1;16?846:39>7p}6}Y;1801?>i:27897772:?0q~=n6;297~X40816>8:5349>65c=;<1v>o::180[50i2798k4<5:?116<4=2wx?4j50;1xZ60a348?87=:;<00=?523ty85?4?:2y]732<5;886>;4=30f>6353z\026=::9n1?85220:970=z{g7<58<>6>>4}r30g?6=:r7:?o4<5:?205950;33874j3h>70=39:70?:5;`6?872?39:70?93;12?871:39:70?91;12?871839:70?:f;12?874?3h>70?<8;`6?874:39:70?<1;12?xu6;k0;69u212`9f3=:9:>18l5213a90==:9;n1855rs21g>5<5s499j7=:;<10`?d13ty8>k4?:4y>77`=j?16=:75489>5=3=<116=5?5469>5=?=<>1v>=l:185854l39>70=70?76;`6?87??3h>70?8f;`6?xu4;80;6>u2320970=:;:;1n;5232296`=z{:996=4={<106?d1349887:8;|q07c<72:q6?9>5349>76c=:l16?>h5b79~w6272909w0=;0;`5?853:3><7p}<3c83>7}:;:i1?85232`9f3=z{:9;6=4<{<105?523498<7l9;<100?2?3ty8?h4?:2y>76c=j?16?>h5349>714=<11v>=<:187854i3h>70=<9;`6?85403h>70=<4;ce?xu4;?0;6<;t=21:>g0<58::6>?4=023>67<5ol1?<52fd805>;al39:70?=7;12?875>39:70?=5;12?875<39:70?=3;12?876l39:70?>c;12?876j39:70?>a;12?876139:70ji:2389ac=;816hi4<1:?gg?5634ni6>?4}r101?6=<0q6?>65b79>6`3=;816>h85309>6c7=;816>km5309>755=;816?=:5309>753=;816?=85309>751=;816?=65309>6`1=;816>h65309>6`?=;816>ho5309>6`d=;816>hm5309>6`b=;816>hk5309>6``=;816>k>5309>6c4=;816>k=5309>6c2=;816>k;5309>6c0=;816>k95309>6c>=;816>k75309>6cg=;816>kl5309>6cb=;816>kk5309>6c`=;816?=>5309>757=;816?=<5309>653=;816>=:5309>655=;816>=<5309>657=;816>=>5309>5cc=;816=kj5309>5ce=;816=kl5309>5cg=;816=k75309>5c>=;816=k95309>5c0=;816=k;5309>5c5=;816=k<5309>5c7=;816=k>5309>5``=;816=hk5309>5`b=;816=hm5309>5`d=;816=ho5309>65d=;816>=o5309>65?=;816>=65309>651=;816>=85309>5c`=;816=k:5309>5`?=;816=h65309~w6262908w0=;6;`6?853=3h>70=;2;ce?xu4<=0;6<9t=265>g0<58=?6>?4=050>67<58k?6>?4=0c0>67<58k:6o;4=0c3>g3<58k96>?4=0c`>67<58kj6>?4=0ca>g3<58ko6>?4=0cf>67<58h=6>?4=0`7>g3<58h>6>?4=0`4>67<58h36>?4=0a1>67<58i:6>?4=0a3>67<58hm6>?4=0`f>67514y>713=j?16oi4<1:?`g?5634ii6>?4=bc974=:k008=63i3;12?8`52:;01k?5309>b5<4927nj7=>;67<5l21?<52e6805>;b>39:70k::23894742:;01gc<3027o=7:8;1?<5m>1845rsb:94?3|5jn1n;52190902=:9>h18l5219c902=:9?o1855rsbg94?4|5ji1?852cg8bb>{tk>0;68u2cb8a2>;60;0?563>8c873>;6>m0?463>7b87e>{tl90;6?u2cc801>;c93km7p}l6;291~;dj3h=70?73;64?87?j3>270?9c;6;?870k3>27p}k2;296~;di39>70j<:`d8yve2290>w0mn:c4894>42=301<9m:5;894>f2=301<8m:5:8yvb32909w0m6:2789a2=io1vn:50;7x9f?=j?16=;o5499>52b=<116=5:5469>5=e=<11v<<=:185877939>70?=7;`5?877;3>370??5;64?877?3>270??8;6:?xuak3:1?v3>008a2>;6<80?463>3e87<>{t9981<763<58:86lh4}rda>5<4s4;;<7l9;<376?2?34;8h7:n;|q241<72;q6jk4<5:?240bc27:8?4;7:?27`<302wx==850;0x9cc=;<16==95ag9~wc?=839p1kk5b79>517=<>16=>k5469~w46?2909w0hk:278946?2hl0q~h7:1808`c2k<01<=i:55894242==0q~?>8;296~;6:>08963>1e8a2>{t98=1<763<58;h6o84}r315?6==r7:>;4m6:?246<3?27:<84;8:?242<3i27:<44;7:p540=838p1<<::278947e2k<0q~?=0;290~;6:<0i:63>0487=>;68>0?;63>0887<>{t98?1<763<58;j6o84}r32b?6=;r7:>94m6:?242<3027:<54;7:p542=838p1<<<:278947>2k<0q~?>e;296~;6::0i:63>0987<>{tm=0;6?u2f2801>;b13h=7p}j3;296~;a:39>70k7:c48yvcc290>w0h=:c489f`=<>16h<4;8:?g7?2f34n>6994}rg1>5<5s4l:6>;4=d59f3=z{li1<7:t=g39f3=:l80?563k3;64?8b22=20q~k>:1818`72:?01h85b79~w`d=839p1k>5b79>`6<3027o87:8;|qf4?6=:r7nj7=:;g0g0<5m>1855rs02f>5<5s4;:h7=:;<327?d13ty:54e=;<16=<<5b79~w46d2909w0?>b;16?87693h=7p}>0c83>7}:98k1?8521029f3=z{8:j6=4={<32=?5234;;j7l9;|qge?6=:r7n57=:;g063<5mo1n;5rse:94?4|5l=1?852de8a2>{tl>0;6?u2e7801>;ck3h=7p}k6;296~;b=39>70jm:c48yv72m3:1>5u2dg801>;6>:0i:63mc;64?855k3><70==b;64?855i3><70==9;64?85503><70==7;64?855>3><70==5;64?855<3><70==3;64?855:3><70==1;64?85583><70=>f;64?856m3><70=>d;64?856k3><70=>b;64?856i3><70=>9;64?85603><70=>7;64?856>3><70=>5;64?856<3><70=>3;64?856:3><70=>1;64?85683><70=?f;64?857m3><70=?d;64?857k3><70=?b;64?85713><70=?a;64?87393>27p}i4;296~;cm39>70ll:`d8yv`22909w0jk:2789gb=io1vk850;0x9ae=;<16nh4nf:pb2<72;q6ho4<5:?ab?ga3ty:ni4?:4y>545=;<16=n<5b79>g5<3?278>i4;8:?06`<302wx=?650;0x94752:?01n>5ag9~w44>2909w0?>1;16?8e62hl0q~?=a;296~;69908963l2;ce?xu6:k0;6?u211d970=:k:0jj6s|13a94?4as4;>57:7;77751c=io1v<;;:18787213h=70?93;16?873m3><70?0;6?u214:970=:9=n1mk5rs070>5<2s4;>47l9;<356?5234;?i7:7;<30`?2>34;?h7:8;|q200<72;q6=885349>51g=io1v<;>:184872>3h=70?90;16?873i3>370?;b;6:?873l3>270?;c;6;?874m3>j7p}>4583>7}:9j7=:;<37e?2034;?n7:7;<30b?2?34;?h7:7;<37=?2134;?o7:8;|q203<72;q6=895349>51d=io1v<;=:185872?3h=70?91;16?873j3><70?;d;6b?873k3>270?g0<5;:o6>l4=33;>6d<5;886>l4=367>6d<5;8n6>l4=31:>6d<5;>m6>l4=370>6d<5;??6>l4=32f>6d<5;;:6>l4=32e>6d<5;;;6>l4=331>6d<5;;86>l4=337>6d<5;;>6>l4=33:>6d<5;;=6>l4=334>6d<5;;j6>l4=33a>6d<5;;h6>l4=33g>6d<5;8;6>l4=33f>6d<5;;m6>l4=302>6d<5;896>l4=307>6d<5;8>6>l4=30;>6d<5;8=6>l4=304>6d<5;826>l4=30b>6d<5;8i6>l4=30`>6d<5;9;6>l4=30g>6d<5;8m6>l4=312>6d<5;996>l4=310>6d<5;9?6>l4=314>6d<5;9>6>l4=315>6d<5;9i6>l4=31;>6d<5;9j6>l4=31f>6d<5;9h6>l4=31g>6d<5;9m6>l4=363>6d<5;>:6>l4=361>6d<5;>=6>l4=360>6d<5;>>6>l4=364>6d<5;>36>l4=36:>6d<5;>j6>l4=36g>6d<5;>i6>l4=36`>6d<5;>n6>l4=373>6d<5;?:6>l4=371>6d<5kn18:52bb87<>;6<;0?m6s|14a94?2ds4;==7l9;<03`?5f348:47=n;<017?5f348?87=n;<01a?5f348857=n;<07b?5f348>?7=n;<060?5f348;i7=n;<025?5f348;j7=n;<024?5f348:>7=n;<027?5f348:87=n;<021?5f348:57=n;<022?5f348:;7=n;<02e?5f348:n7=n;<02g?5f348:h7=n;<014?5f348:i7=n;<02b?5f3489=7=n;<016?5f348987=n;<011?5f348947=n;<012?5f3489;7=n;<01=?5f3489m7=n;<01f?5f3489o7=n;<004?5f3489h7=n;<01b?5f3488=7=n;<006?5f3488?7=n;<000?5f3488;7=n;<001?5f3488:7=n;<00f?5f348847=n;<00e?5f3488i7=n;<00g?5f3488h7=n;<00b?5f348?<7=n;<075?5f348?>7=n;<072?5f348??7=n;<071?5f348?;7=n;<07<7=n;<065?5f348>>7=n;<`f>11<5kn1855215090<=z{8?i6=4;cz?225279>4<9:?101<41279>h4<9:?17<<412798k4<9:?116<41279994<9:?14`<41279=<4<9:?14c<41279==4<9:?157<41279=>4<9:?151<41279=84<9:?15<<41279=;4<9:?152<41279=l4<9:?15g<41279=n4<9:?15a<41279>=4<9:?15`<41279=k4<9:?164<41279>?4<9:?161<41279>84<9:?16=<41279>;4<9:?162<41279>44<9:?16d<41279>o4<9:?16f<41279?=4<9:?16a<41279>k4<9:?174<41279??4<9:?176<41279?94<9:?172<41279?84<9:?173<41279?o4<9:?17=<41279?l4<9:?17`<41279?n4<9:?17a<41279?k4<9:?105<412798<4<9:?107<412798;4<9:?106<41279884<9:?102<41279854<9:?10<<412798l4<9:?10a<412798o4<9:?10f<412798h4<9:?115<412799<4<9:?117<4127ij7:8;<`f>1><58>:69o4}r36e?6=65b=;116><65399>675=;116>9:5399>67c=;116>>75399>61`=;116>8=5399>602=;116>=k5399>647=;116>=h5399>646=;116><<5399>645=;116><:5399>643=;116><75399>640=;116><95399>64g=;116>64e=;116>676=;116>64`=;116>??5399>674=;116>?:5399>673=;116>?65399>670=;116>?95399>67?=;116>?o5399>67d=;116>?m5399>666=;116>?j5399>67`=;116>>?5399>664=;116>>=5399>662=;116>>95399>663=;116>>85399>66d=;116>>65399>66g=;116>>k5399>66e=;116>>j5399>66`=;116>9>5399>617=;116>9<5399>610=;116>9=5399>613=;116>995399>61>=;116>975399>61g=;116>9j5399>61d=;116>9m5399>61c=;116>8>5399>607=;116>8<5399>fc<3027:8>4;8:p56?=839p1<=8:278945?2:?01<=n:`d8yv74?3:1>v3>368a2>;6;h0?;6s|12194?4|58996>;4=017>d`57z?27727:?;4;9:?271<3127:?l4;9:?26`<3?27:>n4;9:?26a<312wx=>;50;0x94562:?01<=9:`d8yv75n3:1;v3>308a2>;6;?0?;63>3587<>;6;h0?463>2d87<>;6:j0?m63>2e87e>{t9?31<766<58<26lh4}r35a?6=:r7:;=4;d:?22`6g804>;6>008<63>698bb>{t9?n1<7=t=04e>1b<58<26o64=04g>d`52z?22c4<5:p5g4=83?p1<86:24894d02k<01:27894>e2=201<8k:558yv71?3:1>v3>69804>;6>>0jj6s|1c394?3|58<36>84=0`5>g0<58i;6>;4=0:a>1g<5866802>;6j<0i:63>bg801>;60h0?m63>6c873>{t9?h1<7g><58d2==0q~?9a;296~;6>?0i463>6`8bb>{t91n1<7?8{<351?5134;j877522=j?16=:75499~w4162909w0?83;`5?87013><7p}>7`83>6}:9>=1>h5216d96`=:91?1mk5rs05;>5<5s4;<;7=:;<34=?ga3ty:5>4?:3y>5d2=;<16=475ag9~w4?a290?w0?n4;`5?87fm39>70?69;64?87?:3>37p}>9383>7}:9h91?85218:9ec=z{83n6=4:{<3b7?d134;jh7=:;<3:=?2?34;3>7:n;<3:5d7=;<16=4;5ag9~w4?d29070?65;64?87>>3>270?73;6b?87>03>270?67;6;?xu60o0;6?u21`2970=:90>1mk5rs0;a>55d4=;<16=485ag9~w4?c290=w0?n2;`5?87fk39>70?66;64?87?;3>370?68;6b?87>?3>27p}>a683>6}:9hi1n;521c4970=:9>i18:5rs0c6>5<4s4;jm7l9;<3a0?5234;5g3=;<16=:l5469~w4g?2908w0?nd;`5?87e?39>70?8c;6;?xu6i00;6>u21`g9f3=:9k21?85216`90==z{8h86=4;{<3a7=:;<3;e?2?34;=i7:8;|q2ff<72=hp1:c48976c2;201??7:3:897442;201?:;:3:8974b2;201?=6:3:8972a2;201?;<:3:897332;201?>j:3:897762;201?>i:3:897772;201??=:3:897742;201??;:3:897722;201??6:3:897712;201??8:3:8977f2;201??m:3:8977d2;201??k:3:897472;201??j:3:8977a2;201?<>:3:897452;201?<;:3:897422;201?<7:3:897412;201?<8:3:8974>2;201?:3:897552;201?=<:3:897532;201?=8:3:897522;201?=9:3:8975e2;201?=7:3:8975f2;201?=j:3:8975d2;201?=k:3:8975a2;201?:?:3:897262;201?:=:3:897212;201?:<:3:897222;201?:8:3:8972?2;201?:6:3:8972f2;201?:k:3:8972e2;201?:l:3:8972b2;201?;?:3:897362;201?;=:3:89f7=<>16o=4;8:p5gd=83>iw0?l0;`5?847l38<70<>8;04?845;38<70<;4;04?845m38<70<<9;04?843n38<70<:3;04?842<38<702;04?846;38<70<>4;04?846=38<70<>9;04?846>38<70<>7;04?846i38<70<>b;04?846k38<70<>d;04?845838<70<>e;04?846n38<70<=1;04?845:38<70<=4;04?845=38<70<=8;04?845>38<70<=7;04?845138<70<=a;04?845j38<70<=c;04?844838<70<=d;04?845n38<70<<1;04?844:38<70<<3;04?844<38<70<<7;04?844=38<70<<6;04?844j38<70<<8;04?844i38<70<38<70<;3;04?843=38<70<;7;04?843038<70<;9;04?843i38<70<;d;04?843j38<70<;c;04?843m38<70<:0;04?842938<70<:2;04?8e52==01n?5499~w4df290?nv3>bg8a2>;58m09:63=19812>;5::09:63=45812>;5:l09:63=38812>;5;5==09:63=0d812>;59809:63=0g812>;59909:63=13812>;59:09:63=15812>;59<09:63=18812>;59?09:63=16812>;59h09:63=1c812>;59j09:63=1e812>;5:909:63=1d812>;59o09:63=20812>;5:;09:63=25812>;5:<09:63=29812>;5:?09:63=26812>;5:009:63=2`812>;5:k09:63=2b812>;5;909:63=2e812>;5:o09:63=30812>;5;;09:63=32812>;5;=09:63=36812>;5;<09:63=37812>;5;k09:63=39812>;5;h09:63=3d812>;5;j09:63=3e812>;5;o09:63=41812>;5<809:63=43812>;5;5<<09:63=46812>;5<109:63=48812>;5;5;5;5=809:63=53812>;d;3><70m=:5:8yv7e13:18lu21cg9f3=::9n1>85220:960=::;91>852256960=::;o1>85222;960=::=l1>852241960=::<>1>85221g960=::8;1>85221d960=::8:1>852200960=::891>852206960=::8?1>85220;960=::8<1>852205960=::8k1>85220`960=::8i1>85220f960=::;:1>85220g960=::8l1>852233960=::;81>852236960=::;?1>85223:960=::;<1>852235960=::;31>85223c960=::;h1>85223a960=::::1>85223f960=::;l1>852223960=:::81>852221960=:::>1>852225960=:::?1>852224960=:::h1>85222:960=:::k1>85222g960=:::i1>85222f960=:::l1>852252960=::=;1>852250960=::=<1>852251960=::=?1>852255960=::=21>85225;960=::=k1>85225f960=::=h1>85225a960=::=o1>852242960=::<;1>852240960=:k:0?46s|28f94?4|5;o>6>;4=22b>d`52z?1a027:i54<5:p6d>=838p1?k9:278966e2hl0q~e8801>{t:k91<763<5:;=6lh4}r0g3?6=:r79j<4m6:?2b1<4=2wx>oo50;0x97`d2:?01><>:`d8yv4cm3:1>v3=fb8a2>;6no0896s|2c`94?4|5::86>;4=204>d`52z?046279<;4<5:p6ge=838p1>>;:278964?2hl0q~{t:kn1<763<5:826lh4}r0f5?6=:r78<84m6:?14=<4=2wx>ok50;0x96612:?01>v3<078a2>;5800896s|2cd94?4|5::<6>;4=20a>d`52z?042279>7:278964d2hl0q~{t:0o1<763<5::26lh4}r0`6?6=:r79i:4m6:?2ad<4=2wx>4h50;0x97c?2:?01>>l:`d8yv4d;3:1>v3=e98a2>;6mk0896s|2`294?4|5;o26>;4=22g>d`52z?1a<27:in4<5:p6d7=838p1?kn:278966b2hl0q~ee801>{t:h81<763<5::m6lh4}r0`2?6=:r79io4m6:?2a`<4=2wx>l=50;0x97cd2:?01>??:`d8yv4d?3:1>v3=eb8a2>;6mo0896s|2`694?4|5;oo6>;4=232>d`52z?1aa27:j=4<5:p6d3=838p1?kj:27896752hl0q~f0801>{t:h<1<763<5:;86lh4}r0`e?6=:r79ik4m6:?2b7<4=2wx>l950;0x97`72:?01>?;:`d8yv4dj3:1>v3=f18a2>;6n:0896s|2`;94?4|5;l96>;4=236>d`52z?1b727:j84<5:p6dg=838p1?h<:27896702hl0q~f7801>{t:hh1<763<5:;36lh4}r0`b?6=:r79j94m6:?2b2<4=2wx>lm50;0x97`22:?01>?6:`d8yv4c83:1>v3=f48a2>;6n10896s|2`f94?4|5;l=6>;4=23b>d`52z?1b327:j44<5:p6dc=838p1?h8:278967e2hl0q~0i:63>f`801>{t:hl1<763<5:;h6lh4}r0g7?6=:r79j54m6:?2bg<4=2wx>o>50;0x97`>2:?01>?k:`d8yv4c<3:1>v3=f88a2>;6nj0896s|2c394?4|5;lj6>;4=23f>d`52z?1bd27:ji4<5:p6g4=838p1?hm:278967a2hl0q~fd801>{t:k>1<763<5:8;6lh4}r0go;50;0x97`b2:?01><=:`d8yv4c13:1>v3=fd8a2>;5880896s|2c494?4|5;lm6>;4=200>d`52z?1bc279>?:27896432hl0q~{t:k21<763<5:8>6lh4}r0gg?6=:r78<<4m6:?141<4=2wx>o750;0x96652:?01><9:`d8yv4cl3:1>v3<038a2>;58<0896s|33f94?42s48;h7=;c:?166<4>7535a8972a2:>h70<:4;17g>;598088n5221d971e<5;;86>:l;<021?53k279=:4<4b9>64g=;=i01??l:26`?845839?o63=1d800f=::;81?9m4=306>62d3489;7=;c:?16<<4?l535a897572:>h70<=d;17g>;5;;088n52226971e<5;9=6>:l;<00f?53k279?54<4b9>66b=;=i01?=i:26`?843939?o63=47800f=::=91?9m4=36;>62d348?m7=;c:?10f<49k535a897362:>h70==d;ce?xu5080;6?u221f972=:;9k1855rs20f>5<5=r79=54<4b9>612=;=i01?62d348:87=;c:?15<<4<8535a8977e2:>h70<>d;17g>;59o088n52233971e<5;8?6>:l;<01;4<4b9>67g=;=i01?62d348897=;c:?17d<4>k535a8975d2:>h70<;0;17g>;5<;088n52257971e<5;><6>:l;<07=?53k2798i4<4b9>61d=;=i01?;?:26`?842:39?o63<2d8bb>{t:1i1<761<5::j6974}r0:3?6=:r79>>4<7:?04g<302wx>;h50;0x97232:=01>?9:5;8yv42i3:1>v3=2d803>;48k0?56s|27794?4|5;926>94=235>1>52z?10c<4?278><4;8:p627=838p1?;<:25896462=30q~<82;296~;5==08;63<2687<>{t:>91<761<5:8<6974}r042?6=:r79=<4<7:?06<<302wx>::50;0x976a2:=01><7:5:8yv40=3:1>v3=11803>;4:10?56s|26594?4|5;;96>94=20:>1?52z?156<4?278>l4;8:p62?=838p1??;:258964f2=30q~<8a;296~;59<08;63<2c87<>{t:>n1<761<5:8h6974}r04f?6=:r79=;4<7:?06g<312wx>:m50;0x97702:=01>v3=1`803>;4800?46s|26d94?4|5;;i6>94=22:>1?52z?15f<4?278{t:191<761<5::o6964}r0;0?6=:r79=k4<7:?04a<312wx>5850;0x97462:=01>>j:5;8yv4??3:1>v3=23803>;48o0?46s|29:94?4|5;8?6>94=22e>1?52z?160<4?278==4;8:p6=b=838p1?<7:25896762=30q~<7a;296~;5:?08;63<1187=>{t:1h1<761<5:;:6964}r0;a?6=:r79>44<7:?057<302wx>5h50;0x974f2:=01>?=:5;8yv4>83:1>v3=2c803>;49:0?46s|28394?4|5;8h6>94=230>1?52z?175<4?278=84;8:p6<4=838p1?{t:0?1<761<5:;>6974}r0:2?6=:r79??4<7:?052<302wx>4650;0x97542:=01>?8:5;8yv4>13:1>v3=35803>;4910?46s|28a94?4|5;9<6>94=23:>1?52z?170<4?278=54;9:p62=20q~<:7;296~;5;k08;63<1c87<>{t:61<5:;j6964}r062?6=:r79?l4<7:?05d<312wx>8l50;0x975b2:=01>?l:5;8yv4203:1>v3=3b803>;49k0?56s|24;94?4|5;9o6>94=23`>1>o7>52z?17c<4?278=i4;8:p60b=838p1?:?:258967c2=30q~<:e;296~;5<808;63<1d87<>{t:61<5:;n6974}r056?6=:r798;4<7:?065<302wx>;>50;0x97242:=01>?i:5:8yv4193:1>v3=44803>;49o0?56s|27194?4|5;><6>94=203>1?52z?10=<4?278>?4;8:p630=838p1?:6:25896452=30q~<97;296~;5{t:?k1<761<5:8?6974}r05;750;0x972d2:=01><;:5:8yv41j3:1>v3=4d803>;4:<0?46s|27a94?4|5;?;6>94=206>1?52z?114<4?278>;4;8:p63c=838p1?;=:25896412=30q~h5221696`=::991>h5221096`=::9;1>h5221296`=:9oo1>h521gf96`=:9oi1>h521g`96`=:9ok1>h521g;96`=:9o21>h521g596`=:9o<1>h521g796`=:9o91>h521g096`=:9o;1>h521g296`=:9ll1>h521dg96`=:9ln1>h521da96`=:9lh1>h521dc96`=::9h1>h5221c96`=::931>h5221:96`=::9=1>h5221496`=:9ol1>h521g696`=:9l31>h521d:96`=:9;o1mk5rs0:;>5<4s4;3:7=:;<3;3?5234;357oi;|q2<3<72?q6=585b79>5=3=<>16=5j5499>77b=<>16??k5489>5=c=<11v<6?:181870n39>70?71;ce?xu0<3:1>v3>0987e>;6800?i6s|7683>7}:l=0?m63k5;6f?xu61h0;6?u218;90<=:90=18h5rs06e>5<5s4;?i7:6;<37g?2b3ty::94?:3y>57e=io16=>h54`9~w4262909w0?;1;ce?87383>37p}>4383>7}:9=81mk5215190<=z{89o6=4={<30`?ga34;?<7:8;|q27c<72;q6=9>5489>56`=io1v<:<:18187383>j70?;3;6f?xu6k:0;6?u219f9ec=:9131855rs0:1>5<5s4;3>7oi;<3;5?2?3ty:4>4?:3y>5=5=io16=5:5489~w41b2908w0?71;6:?87?13>j70?8d;ce?xu60=0;6?u219390d=:91>18h5rs05a>5<5s4;5=g=io16=5m54`9~w4>e2909w0?7b;ce?87?k3>27p}>8b83>7}:9131845219a90`=z{89n6=4={<30b?2>34;8i7:j;|q23f<72;q6=:j5489>52e=o4;339'711=111v9=6:181[241279n7:<9:&002<>12wx8?650;0xZ14?348i69<7;%173?g53ty8m94?:3y]7=6<5;h1?5>4$264>307>52z\03c=::k08;k5+355934=z{:k:6=4={_14a>;5j39{t;h:1<7i0(>:8:648yv5>m3:1>vP<7c9>6g<4?k1/?995769~w6?d2909wS=89:?1f?5012.88:488:p797;<0a>61?3-9?;796;|q0=d<72;qU?:94=3`9721<,:><6:o4}r1:=?6=:rT8;;522c8033=#;==1;o5rs2;;>5<5sW9<963=b;141>"4<>07}Y;>901?l53618 6202>o0q~=65;296~X4?;16>o4<739'711=?o1v>7;:181[509279n7=81:&0029?;%173?>63ty85<4?:3y]73c<5;h1?;k4$264>=452z\02a=::k08:i5+3559<6=z{:2m6=4={_15g>;5j39=o6*<468;0>{t;1o1<7:8:948yv5?k3:1>vP<689>6g<4>01/?995869~w6>e2909wS=98:?1f?5102.88:478:p7=g=838pR>88;<0a>6003-9?;766;|q0<<<72;qU?;84=3`9730<,:><65o4}r1;5<5sW93:63=b;1;2>"4<>03o6s|3`c94?4|V:2>707}Y;1>01?l53968 62021o0q~=n8;296~X40:16>o4<829'711=0o1v>o8:181[5?:279n7=72:&002<>82wx?l850;0xZ6>6348i6>6>;%173??63ty8m84?:3y]72g<5;h1?:o4$264><452z\02c=::k08:k5+3559=6=z{:396=4={_150>;5j39=86*<468:0>{t;1=1<7:8:848yv2483:1>vP;319>6g<3;91/?995969~w6cc2909wS=l9:?1f?5d12.88:46a:p7`d=838pR>m7;<0a>6e?3-9?;77m;|q0ad<72;qU?n94=3`97f1<,:><64m4}r1f=?6=:rT8o;522c80g3=#;==15i5rs2g;>5<5sW9h963=b;1`1>"4<>02i6s|3d594?4|V:i?707}Y;j801?l53b08 6202h:0q~=j4;296~X4k816>o4k<:181[5d8279n7=l0:&002li;%173?g33ty8i<4?:3y]7gc<5;h1?ok4$264>d352z\0fa=::k08ni5+3559e3=z{:nm6=4={_1ag>;5j39io6*<468b3>{t;mo1<7:8:`;8yv5ck3:1>vP6g<4j01/?995a`9~w6bf2909wS=m7:?1f?5e?2.88:4nb:p7a?=838pR>l9;<0a>6d13-9?;7ol;|q0`=<72;qU?o;4=3`97g3<,:><68m4}r1g3?6=:rT8n9522c80f1=#;==19i5rs2f5>5<5sW9i?63=b;1a7>"4<>0>i6s|3e794?4|V:h9707}Y;k;01?l53c38 6202?:0q~=k3;296~X4j916>o481v>j=:181[5fn279n7=nf:&002<1:2wx?i?50;0xZ6gb348i6>oj;%173?043ty8j94?:3y]7f`<5;h1?nh4$264>3252z\0g`=::k08oh5+355920=z{:l96=4={_1``>;5j39hh6*<46853>{t;o;1<7:8:7;8yv5bn3:1>vP6g<4kh1/?9956`9~w6cb2909wS=l3:?1f?5d;2.88:49b:p7`0=838pR>l7;<0a>6d?3-9?;78l;|q0`g<72;qU?lj4=3`97db<,:><6;j4}r1g4?6=:rT8mn522c80ef=#;==1:h5rs2d`>5<5sW9mo63=b;1eg>"4<>0=j6s|34:94?4|V:?3707}Y;o<01?l53g48 6202>80q~:>5;296~X39<16>o4;149'711=?<1vqcm50;0xL62?3tdh8<4?:3yK71>7>52zJ00==zfj>86=4={I17<>{ik=>1<73:1>vF<499~jf202909wE=;8:mg1>=838pD>:7;|l`0<<72;qC?964}oa7e?6=:rB8855rnb6a>5<5sA9?46sac5a94?4|@:>37p`l4e83>7}O;=20qcm;e;296~N4<11vbn:i:181M5302weo8>50;0xL62?3tdh9<4?:3yK71>>7>52zJ00==zfj?86=4={I17<>{ik<>1<73:1>vF<499~jf302909wE=;8:mg0>=838pD>:7;|l`1<<72;qC?964}oa6e?6=:rB8855rnb7a>5<5sA9?46sac4a94?4|@:>37p`l5e83>7}O;=20qcm:e;296~N4<11vbn;i:181M5302weo;>50;0xL62?3tdh:<4?:3yK71>7>52zJ00==zfj<86=4={I17<>{ik?>1<7<0;6?uG35:8yke1>3:1>vF<499~jf002909wE=;8:mg3>=838pD>:7;|l`2<<72;qC?964}oa5e?6=:rB8855rnb4a>5<5sA9?46sac7a94?4|@:>37p`l6e83>7}O;=20qcm9e;296~N4<11vbn8i:181M5302weo:>50;0xL62?3tdh;<4?:3yK71>7>52zJ00==zfj=86=4={I17<>{ik>>1<73:1>vF<499~jf102909wE=;8:mg2>=838pD>:7;|l`3<<72;qC?964}oa4e?6=:rB8855rnb5a>5<5sA9?46sac6a94?4|@:>37p`l7e83>7}O;=20qcm8e;296~N4<11vbn9i:181M5302weo5>50;0xL62?3tdh4<4?:3yK71>7>52zJ00==zfj286=4={I17<>{ik1>1<73:1>vF<499~jf>02909wE=;8:mg=>=838pD>:7;|l`<<<72;qC?964}oa;e?6=:rB8855rnb:a>5<5sA9?46sac9a94?4|@:>37p`l8e83>7}O;=20qcm7e;296~N4<11vbll9:182M5302wen=950;3xL62?3tdi<54?:0yK71>51zJ00==zfk:j6=4>{I17<>{ij9h1<7?tH26;?xhe8j0;6:7;|la55<728qC?964}o`25?6=9rB8855rnc31>5<6sA9?46sab0194?7|@:>37p`m1583>4}O;=20qcl>5;295~N4<11vbo?9:182M5302wen<950;3xL62?3tdi=54?:0yK71>51zJ00==zfk;j6=4>{I17<>{ij8h1<7?tH26;?xhe9j0;6:7;|la65<728qC?964}o`15?6=9rB8855rnc01>5<6sA9?46sab3194?7|@:>37p`m2583>4}O;=20qcl=5;295~N4<11vbo<9:182M5302wen?950;3xL62?3tdi>54?:0yK71>51zJ00==zfk8j6=4>{I17<>{ij;h1<7?tH26;?xhe:j0;6:7;|la75<728qC?964}o`05?6=9rB8855rnc11>5<6sA9?46sab2194?7|@:>37p`m3583>4}O;=20qcl<5;295~N4<11vbo=9:182M5302wen>950;3xL62?3tdi?54?:0yK71>51zJ00==zfk9j6=4>{I17<>{ij:h1<7?tH26;?xhe;j0;6:7;|la05<728qC?964}o`75?6=9rB8855rnc61>5<6sA9?46sab5194?7|@:>37p`m4583>4}O;=20qcl;5;295~N4<11vbo:9:182M5302wen9950;3xL62?3tdi854?:0yK71>51zJ00==zfk>j6=4>{I17<>{ij=h1<7?tH26;?xhe:7;|la15<728qC?964}o`65?6=9rB8855rnc71>5<6sA9?46sab4194?7|@:>37p`m5583>4}O;=20qcl:5;295~N4<11vbo;9:182M5302wen8950;3xL62?3tdi954?:0yK71>57>51zJ00==zfk?j6=4>{I17<>{ij:7;|la25<728qC?964}o`55?6=9rB8855rnc41>5<6sA9?46sab7194?7|@:>37p`m6583>4}O;=20qcl95;295~N4<11vbo89:182M5302wen;950;3xL62?3tdi:54?:0yK71>51zJ00==zfk{I17<>{ij?h1<7?tH26;?xhe>j0;6:7;|la35<728qC?964}o`45?6=9rB8855rnc51>5<6sA9?46sab6194?7|@:>37p`m7583>4}O;=20qcl85;295~N4<11vbo99:182M5302wen:950;3xL62?3tdi;54?:0yK71>51zJ00==zfk=j6=4>{I17<>{ij>h1<7?tH26;?xhe?j0;6:7;|la<5<728qC?964}o`;5?6=9rB8855rnc:1>5<6sA9?46sab9194?7|@:>37p`m8583>4}O;=20qcl75;295~N4<11vbo69:182M5302wen5950;3xL62?3tdi454?:0yK71>51zJ00==zfk2j6=4>{I17<>{ij1h1<7?tH26;?xhe0j0;6b290:wE=;8:mf=`=83;pD>:7;|la=5<728qC?964}o`:5?6=9rB8855rnc;1>5<6sA9?46sab8194?7|@:>37p`m9583>4}O;=20qcl65;295~N4<11vbo79:182M5302wen4950;3xL62?3tdi554?:0yK71>51zJ00==zfk3j6=4>{I17<>{ij0h1<7?tH26;?xhe1j0;6l3:1=vF<499~jg?b290:wE=;8:mf<`=83;pD>:7;|lae5<728qC?964}o`b5?6=9rB8855rncc1>5<6sA9?46sab`194?7|@:>37p`ma583>4}O;=20qcln5;295~N4<11vboo9:182M5302wenl950;3xL62?3tdim54?:0yK71>51zJ00==zfkkj6=4>{I17<>{ijhh1<7?tH26;?xheij0;6:7;|laf5<728qC?964}o`a5?6=9rB8855rnc`1>5<6sA9?46sabc194?7|@:>37p`mb583>4}O;=20qclm5;295~N4<11vbol9:182M5302weno950;3xL62?3tdin54?:0yK71>51zJ00==zfkhj6=4>{I17<>{ijkh1<7?tH26;?xhejj0;6:7;|lag5<728qC?964}o``5?6=9rB8855rnca1>5<6sA9?46sabb194?7|@:>37p`mc583>4}O;=20qcll5;295~N4<11vbom9:182M5302wenn950;3xL62?3tdio54?:0yK71>51zJ00==zfkij6=4>{I17<>{ijjh1<7?tH26;?xhekj0;6:7;|la`5<728qC?964}o`g5?6=9rB8855rncf1>5<6sA9?46sabe194?7|@:>37p`md583>4}O;=20qclk5;295~N4<11vboj9:182M5302weni950;3xL62?3tdih54?:0yK71>51zJ00==zfknj6=4>{I17<>{ijmh1<7?tH26;?xhelj0;6:7;|laa5<728qC?964}o`f5?6=9rB8855rncg1>5<6sA9?46sabd194?7|@:>37p`me583>4}O;=20qclj5;295~N4<11vbok9:182M5302wenh950;3xL62?3tdii54?:0yK71>51zJ00==zfkoj6=4>{I17<>{ijlh1<7?tH26;?xhemj0;6:7;|lab5<728qC?964}o`e5?6=9rB8855rncd1>5<6sA9?46sabg194?7|@:>37p`mf583>4}O;=20qcli5;295~N4<11vboh9:182M5302wenk950;3xL62?3tdij54?:0yK71>51zJ00==zfklj6=4>{I17<>{ijoh1<7?tH26;?xhenj0;6:7;|l`45<728qC?964}oa35?6=9rB8855rnb21>5<6sA9?46sac1194?7|@:>37p`l0583>4}O;=20qcm?5;295~N4<11vbn>9:182M5302weo=950;3xL62?3tdh<54?:0yK71>51zJ00==zfj:j6=4>{I17<>{ik9h1<7?tH26;?xhd8j0;6:7;|l`55<728qC?964}oa25?6=9rB8855rnb31>5<6sA9?46sac0194?7|@:>37p`l1583>4}O;=20qcm>5;295~N4<11vbn?9:182M5302weo<950;3xL62?3tdh=54?:0yK71>51zJ00==zfj;j6=4>{I17<>{ik8h1<7?tH26;?xhd9j0;6:7;|l`65<728qC?964}oa15?6=9rB8855rnb01>5<6sA9?46sac3194?7|@:>37p`l2583>4}O;=20qcm=5;295~N4<11vbn<9:182M5302weo?950;3xL62?3tdh>54?:0yK71>51zJ00==zfj8j6=4>{I17<>{ik;h1<7?tH26;?xhd:j0;6:7;|l`75<728qC?964}oa05?6=9rB8855rnb11>5<6sA9?46sac2194?7|@:>37p`l3583>4}O;=20qcm<5;295~N4<11vbn=9:182M5302weo>950;3xL62?3tdh?54?:0yK71>51zJ00==zfj9j6=4>{I17<>{ik:h1<7?tH26;?xhd;j0;6111 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]), + .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count [2]), + .LO(\BU2/U0/grf.rf/gl0.rd/rpntr/N11 ) + ); + LUT3_L #( + .INIT ( 8'h7F )) + \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<3>111 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), + .I2(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]), + .LO(\BU2/U0/grf.rf/gl0.wr/wpntr/N11 ) + ); + LUT2_L #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0003_SW0 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [3]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [2]), + .LO(\BU2/N16 ) + ); + LUT2_L #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0003_SW0 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [3]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [2]), + .LO(\BU2/N14 ) + ); + INV \BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count_xor<0>11_INV_0 ( + .I(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), + .O(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count ) + ); + INV \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<0>11_INV_0 ( + .I(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), + .O(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count ) + ); + LUT2 #( + .INIT ( 4'h2 )) + \BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_1 ( + .I0(wr_en), + .I1(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ), + .O(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ) + ); + LUT4 #( + .INIT ( 16'h2333 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_1 ( + .I0(rd_en), + .I1(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_85 ), + .I2(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), + .I3(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), + .O(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ) + ); + LUT4 #( + .INIT ( 16'h6AAA )) + \BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count_xor<3>12 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [3]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), + .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]), + .I3(\BU2/U0/grf.rf/gl0.rd/rpntr/count [2]), + .O(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count3 ) + ); + LUT4 #( + .INIT ( 16'h6AAA )) + \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<3>12 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count [3]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), + .I2(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), + .I3(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]), + .O(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count3 ) + ); + LUT3 #( + .INIT ( 8'h08 )) + \BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1 ( + .I0(wr_en), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [4]), + .I2(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ) + ); + LUT3 #( + .INIT ( 8'h10 )) + \BU2/U0/grf.rf/mem/gdm.dm/write_ctrl ( + .I0(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [4]), + .I2(wr_en), + .O(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ) + ); + LUT2 #( + .INIT ( 4'h9 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut<5> ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [4]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [4]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [5]) + ); + LUT4 #( + .INIT ( 16'h9000 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/c2/dout_i78 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [0]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [0]), + .I2(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/c2/dout_i62_392 ), + .I3(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/c2/dout_i26_387 ), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/comp2 ) + ); + LUT4 #( + .INIT ( 16'h9000 )) + \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000158 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [0]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), + .I2(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000156_391 ), + .I3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_not0001 ), + .O(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000158_380 ) + ); + LUT2 #( + .INIT ( 4'h9 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut<4> ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [3]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [3]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [4]) + ); + LUT2 #( + .INIT ( 4'h9 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut<3> ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [2]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [2]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [3]) + ); + LUT2 #( + .INIT ( 4'h9 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut<2> ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [1]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [1]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [2]) + ); + LUT2 #( + .INIT ( 4'h9 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut<1> ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [0]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [0]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [1]) + ); + LUT4 #( + .INIT ( 16'h5450 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux0000105 ( + .I0(\BU2/U0/grf.rf/rstblk/RST_FULL_GEN_87 ), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_not0001 ), + .I2(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux000079_390 ), + .I3(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/comp2 ), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux0000 ) + ); + LUT4 #( + .INIT ( 16'h9009 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux000063 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [3]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [3]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [2]), + .I3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [2]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux000063_389 ) + ); + LUT4 #( + .INIT ( 16'h9009 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux000027 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [4]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [4]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [1]), + .I3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [1]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux000027_388 ) + ); + LUT4 #( + .INIT ( 16'h8421 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/c2/dout_i26 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [1]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [4]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [1]), + .I3(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [4]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/c2/dout_i26_387 ) + ); + LUT4 #( + .INIT ( 16'h5450 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux0000107 ( + .I0(\BU2/U0/grf.rf/rstblk/RST_FULL_GEN_87 ), + .I1(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000026_383 ), + .I2(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/comp2 ), + .I3(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000069_386 ), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux0000 ) + ); + LUT4 #( + .INIT ( 16'h9009 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000067 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [2]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [1]), + .I3(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000067_384 ) + ); + LUT4 #( + .INIT ( 16'h9009 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000026 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [4]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [4]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [3]), + .I3(\BU2/U0/grf.rf/gl0.wr/wpntr/count [3]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000026_383 ) + ); + LUT2 #( + .INIT ( 4'h2 )) + \BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1 ( + .I0(wr_en), + .I1(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ), + .O(\BU2/U0/grf.rf/gl0.wr/wpntr/count_not0001 ) + ); + LUT4 #( + .INIT ( 16'hECA0 )) + \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000183 ( + .I0(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000115_379 ), + .I1(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000026_377 ), + .I2(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000158_380 ), + .I3(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000063_381 ), + .O(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000 ) + ); + LUT4 #( + .INIT ( 16'h9009 )) + \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000115 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [4]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [4]), + .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count [3]), + .I3(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [3]), + .O(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000115_379 ) + ); + LUT4 #( + .INIT ( 16'h8421 )) + \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000062 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [2]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [3]), + .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .I3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .O(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000062_378 ) + ); + LUT4 #( + .INIT ( 16'h8241 )) + \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000026 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [1]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [4]), + .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .O(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000026_377 ) + ); + LUT4 #( + .INIT ( 16'h2333 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21 ( + .I0(rd_en), + .I1(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_85 ), + .I2(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), + .I3(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), + .O(\BU2/U0/grf.rf/gl0.rd/rpntr/count_not0001 ) + ); + LUT3 #( + .INIT ( 8'hA6 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count_xor<4>11 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [4]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [3]), + .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/N11 ), + .O(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count4 ) + ); + LUT3 #( + .INIT ( 8'hA6 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<4>11 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count [4]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [3]), + .I2(\BU2/U0/grf.rf/gl0.wr/wpntr/N11 ), + .O(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count4 ) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX11 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N5 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N7 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [0]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1011 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N45 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N47 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [10]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1111 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N9 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N11 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [1]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX11111 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N49 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N51 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [11]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1211 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N53 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N55 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [12]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1311 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N57 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N59 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [13]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1411 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N61 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N63 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [14]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1511 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N65 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N67 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [15]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1611 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N69 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N71 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [16]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1711 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N73 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N75 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [17]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1811 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N77 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N79 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [18]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1911 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N81 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N83 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [19]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2011 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N85 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N87 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [20]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2111 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N13 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N15 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [2]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX21111 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N89 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N91 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [21]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2211 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N93 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N95 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [22]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2311 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N97 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N99 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [23]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2411 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N101 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N103 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [24]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2511 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N105 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N107 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [25]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2611 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N109 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N111 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [26]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2711 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N113 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N115 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [27]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2811 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N117 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N119 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [28]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2911 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N121 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N123 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [29]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3011 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N125 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N127 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [30]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3111 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N17 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N19 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [3]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX31111 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N129 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N131 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [31]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3211 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N133 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N135 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [32]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3311 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N137 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N139 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [33]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3411 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N141 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N143 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [34]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3511 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N145 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N147 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [35]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX411 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N21 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N23 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [4]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX511 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N25 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N27 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [5]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX611 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N29 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N31 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [6]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX711 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N33 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N35 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [7]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX811 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N37 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N39 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [8]) + ); + LUT3 #( + .INIT ( 8'hE4 )) + \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX911 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/mem/gdm.dm/N41 ), + .I2(\BU2/U0/grf.rf/mem/gdm.dm/N43 ), + .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [9]) + ); + LUT4 #( + .INIT ( 16'h6996 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0003 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [1]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [0]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]), + .I3(\BU2/N16 ), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0003_110 ) + ); + LUT4 #( + .INIT ( 16'h6996 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0003 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [1]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [0]), + .I2(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]), + .I3(\BU2/N14 ), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0003_120 ) + ); + LUT3 #( + .INIT ( 8'hA2 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_REGOUT_EN11 ( + .I0(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), + .I1(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), + .I2(rd_en), + .O(\BU2/U0/grf.rf/mem/dout_i_not0001 ) + ); + LUT2 #( + .INIT ( 4'hD )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_not00011 ( + .I0(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ), + .I1(\BU2/U0/grf.rf/rstblk/RST_FULL_GEN_87 ), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_not0001 ) + ); + LUT4 #( + .INIT ( 16'h8E8A )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i_mux00001 ( + .I0(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_fb_176 ), + .I1(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), + .I2(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), + .I3(rd_en), + .O(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i_mux0000 ) + ); + LUT4 #( + .INIT ( 16'h6996 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor00021 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [2]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [1]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]), + .I3(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [3]), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0002 ) + ); + LUT4 #( + .INIT ( 16'h6996 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor00021 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [2]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [1]), + .I2(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]), + .I3(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [3]), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0002 ) + ); + LUT4 #( + .INIT ( 16'h40FF )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001<0>1 ( + .I0(rd_en), + .I1(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), + .I2(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), + .I3(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_85 ), + .O(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001 [0]) + ); + LUT3 #( + .INIT ( 8'h6A )) + \BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count_xor<2>11 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [2]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), + .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]), + .O(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count2 ) + ); + LUT3 #( + .INIT ( 8'h6A )) + \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<2>11 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), + .I2(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), + .O(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count2 ) + ); + LUT3 #( + .INIT ( 8'h96 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor00011 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [3]), + .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [2]), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0001 ) + ); + LUT3 #( + .INIT ( 8'h96 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor00011 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [3]), + .I2(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [2]), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0001 ) + ); + LUT3 #( + .INIT ( 8'hF2 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001<1>1 ( + .I0(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), + .I1(rd_en), + .I2(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), + .O(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001 [1]) + ); + LUT3 #( + .INIT ( 8'h08 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_mux00031 ( + .I0(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad [4]), + .I1(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad [5]), + .I2(\BU2/U0/grf.rf/rstblk/RST_FULL_GEN_87 ), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_mux0003 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_rd_pntr_gc_xor0000_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0000 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_rd_pntr_gc_xor0001_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0001 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_rd_pntr_gc_xor0002_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0002 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_rd_pntr_gc_xor0003_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0003 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_wr_pntr_gc_xor0000_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [4]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0000 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_wr_pntr_gc_xor0001_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0001 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_wr_pntr_gc_xor0002_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0002 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/Mxor_wr_pntr_gc_xor0003_Result1 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0003 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count_xor<1>11 ( + .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), + .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]), + .O(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count1 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<1>11 ( + .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), + .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), + .O(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count1 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor00001 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [3]), + .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]), + .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0000 ) + ); + LUT2 #( + .INIT ( 4'h6 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor00001 ( + .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [3]), + .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]), + .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0000 ) + ); + LUT2 #( + .INIT ( 4'h4 )) + \BU2/U0/grf.rf/rstblk/rd_rst_comb1 ( + .I0(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_d2_90 ), + .I1(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_94 ), + .O(\BU2/U0/grf.rf/rstblk/rd_rst_comb ) + ); + LUT2 #( + .INIT ( 4'h4 )) + \BU2/U0/grf.rf/rstblk/wr_rst_comb1 ( + .I0(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_d2_92 ), + .I1(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_95 ), + .O(\BU2/U0/grf.rf/rstblk/wr_rst_comb ) + ); + FDPE #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_not0001 ), + .D(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux0000 ), + .PRE(\BU2/U0/grf.rf/rstblk/rst_d2_88 ), + .Q(almost_full) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i ( + .C(wr_clk), + .D(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux0000 ), + .PRE(\BU2/U0/grf.rf/rstblk/rst_d2_88 ), + .Q(full) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i ( + .C(wr_clk), + .D(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux0000 ), + .PRE(\BU2/U0/grf.rf/rstblk/rst_d2_88 ), + .Q(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_0 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [0]), + .Q(dout_3[0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_1 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [1]), + .Q(dout_3[1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_2 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [2]), + .Q(dout_3[2]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_3 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [3]), + .Q(dout_3[3]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_4 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [4]), + .Q(dout_3[4]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_5 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [5]), + .Q(dout_3[5]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_6 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [6]), + .Q(dout_3[6]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_7 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [7]), + .Q(dout_3[7]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_8 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [8]), + .Q(dout_3[8]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_9 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [9]), + .Q(dout_3[9]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_10 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [10]), + .Q(dout_3[10]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_11 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [11]), + .Q(dout_3[11]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_12 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [12]), + .Q(dout_3[12]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_13 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [13]), + .Q(dout_3[13]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_14 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [14]), + .Q(dout_3[14]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_15 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [15]), + .Q(dout_3[15]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_16 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [16]), + .Q(dout_3[16]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_17 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [17]), + .Q(dout_3[17]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_18 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [18]), + .Q(dout_3[18]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_19 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [19]), + .Q(dout_3[19]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_20 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [20]), + .Q(dout_3[20]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_21 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [21]), + .Q(dout_3[21]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_22 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [22]), + .Q(dout_3[22]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_23 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [23]), + .Q(dout_3[23]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_24 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [24]), + .Q(dout_3[24]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_25 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [25]), + .Q(dout_3[25]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_26 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [26]), + .Q(dout_3[26]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_27 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [27]), + .Q(dout_3[27]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_28 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [28]), + .Q(dout_3[28]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_29 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [29]), + .Q(dout_3[29]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_30 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [30]), + .Q(dout_3[30]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_31 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [31]), + .Q(dout_3[31]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_32 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [32]), + .Q(dout_3[32]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_33 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [33]), + .Q(dout_3[33]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_34 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [34]), + .Q(dout_3[34]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/dout_i_35 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [35]), + .Q(dout_3[35]) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM72 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[35]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM72_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N147 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM71 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[35]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM71_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N145 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM70 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[34]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM70_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N143 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM69 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[34]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM69_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N141 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM67 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[33]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM67_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N137 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM66 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[32]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM66_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N135 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM68 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[33]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM68_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N139 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM65 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[32]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM65_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N133 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM64 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[31]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM64_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N131 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM63 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[31]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM63_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N129 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM62 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[30]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM62_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N127 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM60 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[29]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM60_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N123 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM59 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[29]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM59_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N121 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM61 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[30]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM61_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N125 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM58 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[28]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM58_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N119 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM57 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[28]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM57_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N117 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM56 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[27]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM56_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N115 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM55 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[27]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM55_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N113 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM53 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[26]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM53_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N109 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM52 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[25]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM52_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N107 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM54 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[26]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM54_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N111 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM50 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[24]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM50_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N103 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM49 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[24]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM49_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N101 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM51 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[25]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM51_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N105 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM47 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[23]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM47_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N97 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM46 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[22]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM46_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N95 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM48 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[23]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM48_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N99 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM45 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[22]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM45_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N93 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM44 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[21]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM44_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N91 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM43 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[21]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM43_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N89 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM42 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[20]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM42_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N87 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM40 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[19]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM40_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N83 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM39 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[19]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM39_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N81 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM41 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[20]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM41_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N85 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM38 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[18]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM38_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N79 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM37 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[18]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM37_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N77 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM36 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[17]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM36_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N75 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM35 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[17]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM35_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N73 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM33 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[16]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM33_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N69 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM32 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[15]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM32_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N67 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM34 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[16]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM34_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N71 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM31 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[15]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM31_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N65 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM30 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[14]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM30_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N63 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM29 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[14]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM29_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N61 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM28 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[13]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM28_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N59 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM26 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[12]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM26_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N55 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM25 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[12]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM25_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N53 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM27 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[13]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM27_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N57 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM24 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[11]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM24_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N51 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM23 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[11]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM23_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N49 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM22 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[10]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM22_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N47 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM21 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[10]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM21_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N45 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM19 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[9]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM19_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N41 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM18 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[8]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM18_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N39 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM20 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[9]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM20_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N43 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM17 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[8]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM17_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N37 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM16 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[7]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM16_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N35 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM15 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[7]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM15_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N33 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM14 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[6]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM14_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N31 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM12 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[5]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM12_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N27 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM11 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[5]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM11_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N25 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM13 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[6]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM13_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N29 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM10 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[4]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM10_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N23 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM9 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[4]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM9_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N21 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM8 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[3]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM8_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N19 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM7 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[3]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM7_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N17 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM5 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[2]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM5_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N13 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM4 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[1]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM4_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N11 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM6 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[2]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM6_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N15 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM3 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[1]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM3_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N9 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM2 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[0]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM2_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N7 ) + ); + RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM1 ( + .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), + .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), + .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), + .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), + .D(din_2[0]), + .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), + .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), + .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), + .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), + .WCLK(wr_clk), + .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), + .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM1_SPO_UNCONNECTED ), + .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N5 ) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_35 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [35]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [35]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_34 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [34]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [34]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_33 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [33]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [33]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_32 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [32]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [32]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_31 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [31]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [31]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_30 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [30]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [30]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_29 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [29]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [29]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_28 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [28]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [28]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_27 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [27]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [27]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_26 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [26]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [26]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_25 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [25]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [25]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_24 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [24]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [24]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_23 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [23]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [23]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_22 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [22]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [22]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_21 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [21]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [21]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_20 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [20]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [20]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_19 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [19]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [19]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_18 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [18]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [18]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_17 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [17]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [17]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_16 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [16]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [16]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_15 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [15]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [15]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_14 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [14]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [14]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_13 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [13]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [13]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_12 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [12]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [12]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_11 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [11]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [11]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_10 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [10]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [10]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_9 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [9]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [9]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_8 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [8]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [8]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_7 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [7]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [7]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_6 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [6]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [6]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_5 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [5]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [5]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_4 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [4]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [4]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_3 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [3]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [3]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_2 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [2]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [2]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_1 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [1]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/mem/gdm.dm/dout_i_0 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), + .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [0]), + .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d3_0 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [0]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d3_1 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [1]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d3_2 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [2]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d3_3 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [3]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d3_4 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [4]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [4]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d2_4 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [4]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [4]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d2_3 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [3]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [3]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d2_1 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [1]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [1]) + ); + FDPE #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d2_0 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [0]), + .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d2_2 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [2]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [2]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d1_4 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count [4]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [4]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d1_3 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count [3]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [3]) + ); + FDPE #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d1_1 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), + .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d1_0 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_d1_2 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [2]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_2 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count2 ), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]) + ); + FDPE #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_0 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count ), + .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]) + ); + FDPE #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_1 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count1 ), + .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_3 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count3 ), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count [3]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/wpntr/count_4 ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count4 ), + .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count [4]) + ); + FDPE #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_not0001 ), + .D(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_mux0003 ), + .PRE(\BU2/U0/grf.rf/rstblk/rst_d2_88 ), + .Q(prog_full) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_4 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_add0000 [4]), + .Q(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_5 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_add0000 [5]), + .Q(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad [5]) + ); + MUXCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy<0> ( + .CI(\BU2/N1 ), + .DI(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), + .S(\BU2/rd_data_count [0]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [0]) + ); + MUXCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy<1> ( + .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [0]), + .DI(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [0]), + .S(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [1]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [1]) + ); + MUXCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy<2> ( + .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [1]), + .DI(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [1]), + .S(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [2]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [2]) + ); + MUXCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy<3> ( + .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [2]), + .DI(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [2]), + .S(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [3]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [3]) + ); + MUXCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy<4> ( + .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [3]), + .DI(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [3]), + .S(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [4]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [4]) + ); + XORCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_xor<4> ( + .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [3]), + .LI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [4]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_add0000 [4]) + ); + XORCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_xor<5> ( + .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [4]), + .LI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [5]), + .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_add0000 [5]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_0 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001 [1]), + .Q(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_1 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001 [0]), + .Q(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i ( + .C(rd_clk), + .D(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i_mux0000 ), + .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .Q(empty) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_fb ( + .C(rd_clk), + .D(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i_mux0000 ), + .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .Q(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_fb_176 ) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_d1_0 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_d1_1 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_d1_2 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count [2]), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_d1_3 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count [3]), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_d1_4 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count [4]), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_2 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count2 ), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count [2]) + ); + FDPE #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_0 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count ), + .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_1 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count1 ), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_3 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count3 ), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count [3]) + ); + FDCE #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gl0.rd/rpntr/count_4 ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count4 ), + .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_0 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0003 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_1 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0002 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_2 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0001 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_3 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0000 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_4 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_0 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0003 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_1 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0002 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_2 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0001 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_3 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0000 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_4 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_0 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [0]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_1 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [1]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_2 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [2]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_3 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [3]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_4 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_0 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [0]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_1 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [1]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_2 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [2]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_3 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [3]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_4 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_0 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [0]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_1 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [1]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_2 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [2]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_3 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [3]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_4 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1_0 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [0]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1_1 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [1]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1_2 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [2]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1_3 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [3]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1_4 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_0 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0003_120 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_1 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0002 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_2 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0001 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_3 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0000 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_4 ( + .C(rd_clk), + .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), + .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [4]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_0 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0003_110 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [0]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_1 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0002 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [1]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_2 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0001 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [2]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_3 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0000 ), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [3]) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_4 ( + .C(wr_clk), + .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), + .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]), + .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [4]) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/wr_rst_reg_0 ( + .C(wr_clk), + .D(\BU2/rd_data_count [0]), + .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_comb ), + .Q(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/wr_rst_reg_1 ( + .C(wr_clk), + .D(\BU2/rd_data_count [0]), + .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_comb ), + .Q(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/rd_rst_reg_0 ( + .C(rd_clk), + .D(\BU2/rd_data_count [0]), + .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_comb ), + .Q(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/rd_rst_reg_1 ( + .C(rd_clk), + .D(\BU2/rd_data_count [0]), + .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_comb ), + .Q(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/rd_rst_reg_2 ( + .C(rd_clk), + .D(\BU2/rd_data_count [0]), + .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_comb ), + .Q(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/rst_d1 ( + .C(wr_clk), + .D(\BU2/rd_data_count [0]), + .PRE(rst), + .Q(\BU2/U0/grf.rf/rstblk/rst_d1_93 ) + ); + FDPE \BU2/U0/grf.rf/rstblk/rd_rst_asreg ( + .C(rd_clk), + .CE(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_d1_89 ), + .D(\BU2/rd_data_count [0]), + .PRE(rst), + .Q(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_94 ) + ); + FD #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/rstblk/wr_rst_asreg_d1 ( + .C(wr_clk), + .D(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_95 ), + .Q(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_d1_91 ) + ); + FDPE \BU2/U0/grf.rf/rstblk/wr_rst_asreg ( + .C(wr_clk), + .CE(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_d1_91 ), + .D(\BU2/rd_data_count [0]), + .PRE(rst), + .Q(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_95 ) + ); + FD #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/rstblk/rd_rst_asreg_d1 ( + .C(rd_clk), + .D(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_94 ), + .Q(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_d1_89 ) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/rst_d2 ( + .C(wr_clk), + .D(\BU2/U0/grf.rf/rstblk/rst_d1_93 ), + .PRE(rst), + .Q(\BU2/U0/grf.rf/rstblk/rst_d2_88 ) + ); + FD #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/rstblk/wr_rst_asreg_d2 ( + .C(wr_clk), + .D(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_d1_91 ), + .Q(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_d2_92 ) + ); + FD #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/rstblk/rd_rst_asreg_d2 ( + .C(rd_clk), + .D(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_d1_89 ), + .Q(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_d2_90 ) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/rstblk/rst_d3 ( + .C(wr_clk), + .D(\BU2/U0/grf.rf/rstblk/rst_d2_88 ), + .PRE(rst), + .Q(\BU2/U0/grf.rf/rstblk/rst_d3_86 ) + ); + FDC #( + .INIT ( 1'b0 )) + \BU2/U0/grf.rf/rstblk/RST_FULL_GEN ( + .C(wr_clk), + .CLR(rst), + .D(\BU2/U0/grf.rf/rstblk/rst_d3_86 ), + .Q(\BU2/U0/grf.rf/rstblk/RST_FULL_GEN_87 ) + ); + FDP #( + .INIT ( 1'b1 )) + \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i ( + .C(rd_clk), + .D(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000 ), + .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), + .Q(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_85 ) + ); + VCC \BU2/XST_VCC ( + .P(\BU2/N1 ) + ); + GND \BU2/XST_GND ( + .G(\BU2/rd_data_count [0]) + ); + +// synthesis translate_on + +endmodule + +// synthesis translate_off + +`ifndef GLBL +`define GLBL + +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + tri1 p_up_tmp; + tri (weak1, strong0) PLL_LOCKG = p_up_tmp; + + reg GSR_int; + reg GTS_int; + reg PRLD_int; + +//-------- JTAG Globals -------------- + wire JTAG_TDO_GLBL; + wire JTAG_TCK_GLBL; + wire JTAG_TDI_GLBL; + wire JTAG_TMS_GLBL; + wire JTAG_TRST_GLBL; + + reg JTAG_CAPTURE_GLBL; + reg JTAG_RESET_GLBL; + reg JTAG_SHIFT_GLBL; + reg JTAG_UPDATE_GLBL; + reg JTAG_RUNTEST_GLBL; + + reg JTAG_SEL1_GLBL = 0; + reg JTAG_SEL2_GLBL = 0 ; + reg JTAG_SEL3_GLBL = 0; + reg JTAG_SEL4_GLBL = 0; + + reg JTAG_USER_TDO1_GLBL = 1'bz; + reg JTAG_USER_TDO2_GLBL = 1'bz; + reg JTAG_USER_TDO3_GLBL = 1'bz; + reg JTAG_USER_TDO4_GLBL = 1'bz; + + assign (weak1, weak0) GSR = GSR_int; + assign (weak1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + + initial begin + GSR_int = 1'b1; + PRLD_int = 1'b1; + #(ROC_WIDTH) + GSR_int = 1'b0; + PRLD_int = 1'b0; + end + + initial begin + GTS_int = 1'b1; + #(TOC_WIDTH) + GTS_int = 1'b0; + end + +endmodule + +`endif + +// synthesis translate_on diff --git a/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.veo b/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.veo new file mode 100644 index 000000000..eb98a2b70 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.veo @@ -0,0 +1,47 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2009 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The following must be inserted into your Verilog file for this +// core to be instantiated. Change the instance name and port connections +// (in parentheses) to your own signal names. + +//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG +fifo_xlnx_32x36_2clk YourInstanceName ( + .rst(rst), + .wr_clk(wr_clk), + .rd_clk(rd_clk), + .din(din), // Bus [35 : 0] + .wr_en(wr_en), + .rd_en(rd_en), + .dout(dout), // Bus [35 : 0] + .full(full), + .almost_full(almost_full), + .empty(empty), + .prog_full(prog_full)); + +// INST_TAG_END ------ End INSTANTIATION Template --------- diff --git a/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.xco b/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.xco new file mode 100644 index 000000000..1cf4c8ba5 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.xco @@ -0,0 +1,84 @@ +############################################################## +# +# Xilinx Core Generator version 12.2 +# Date: Fri Oct 15 07:50:15 2010 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = false +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc3s2000 +SET devicefamily = spartan3 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = fg456 +SET removerpms = false +SET simulationfiles = Structural +SET speedgrade = -5 +SET verilogsim = true +SET vhdlsim = false +# END Project Options +# BEGIN Select +SELECT Fifo_Generator family Xilinx,_Inc. 6.1 +# END Select +# BEGIN Parameters +CSET almost_empty_flag=false +CSET almost_full_flag=true +CSET component_name=fifo_xlnx_32x36_2clk +CSET data_count=false +CSET data_count_width=5 +CSET disable_timing_violations=false +CSET dout_reset_value=0 +CSET empty_threshold_assert_value=4 +CSET empty_threshold_negate_value=5 +CSET enable_ecc=false +CSET enable_int_clk=false +CSET enable_reset_synchronization=true +CSET fifo_implementation=Independent_Clocks_Distributed_RAM +CSET full_flags_reset_value=1 +CSET full_threshold_assert_value=24 +CSET full_threshold_negate_value=23 +CSET inject_dbit_error=false +CSET inject_sbit_error=false +CSET input_data_width=36 +CSET input_depth=32 +CSET output_data_width=36 +CSET output_depth=32 +CSET overflow_flag=false +CSET overflow_sense=Active_High +CSET performance_options=First_Word_Fall_Through +CSET programmable_empty_type=No_Programmable_Empty_Threshold +CSET programmable_full_type=Single_Programmable_Full_Threshold_Constant +CSET read_clock_frequency=1 +CSET read_data_count=false +CSET read_data_count_width=5 +CSET reset_pin=true +CSET reset_type=Asynchronous_Reset +CSET underflow_flag=false +CSET underflow_sense=Active_High +CSET use_dout_reset=true +CSET use_embedded_registers=false +CSET use_extra_logic=false +CSET valid_flag=false +CSET valid_sense=Active_High +CSET write_acknowledge_flag=false +CSET write_acknowledge_sense=Active_High +CSET write_clock_frequency=1 +CSET write_data_count=false +CSET write_data_count_width=5 +# END Parameters +GENERATE +# CRC: 8e84ee7f diff --git a/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.xise b/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.xise new file mode 100644 index 000000000..b9eb7bd1a --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.xise @@ -0,0 +1,72 @@ + + + +
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_flist.txt b/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_flist.txt new file mode 100644 index 000000000..b8c69a9f7 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_flist.txt @@ -0,0 +1,12 @@ +# Output products list for +_xmsgs/pn_parser.xmsgs +fifo_generator_ug175.pdf +fifo_xlnx_32x36_2clk.gise +fifo_xlnx_32x36_2clk.ngc +fifo_xlnx_32x36_2clk.v +fifo_xlnx_32x36_2clk.veo +fifo_xlnx_32x36_2clk.xco +fifo_xlnx_32x36_2clk.xise +fifo_xlnx_32x36_2clk_flist.txt +fifo_xlnx_32x36_2clk_readme.txt +fifo_xlnx_32x36_2clk_xmdf.tcl diff --git a/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_readme.txt b/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_readme.txt new file mode 100644 index 000000000..8ab5679fd --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_readme.txt @@ -0,0 +1,46 @@ +The following files were generated for 'fifo_xlnx_32x36_2clk' in directory +/home/ianb/ettus/sram_fifo/fpgapriv/usrp2/coregen/ + +fifo_generator_ug175.pdf: + Please see the core data sheet. + +fifo_xlnx_32x36_2clk.gise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. + +fifo_xlnx_32x36_2clk.ngc: + Binary Xilinx implementation netlist file containing the information + required to implement the module in a Xilinx (R) FPGA. + +fifo_xlnx_32x36_2clk.v: + Unisim Verilog file containing the information required to simulate + the module. + +fifo_xlnx_32x36_2clk.veo: + VEO template file containing code that can be used as a model for + instantiating a CORE Generator module in a Verilog design. + +fifo_xlnx_32x36_2clk.xco: + CORE Generator input file containing the parameters used to + regenerate a core. + +fifo_xlnx_32x36_2clk.xise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. + +fifo_xlnx_32x36_2clk_readme.txt: + Text file indicating the files generated and how they are used. + +fifo_xlnx_32x36_2clk_xmdf.tcl: + ISE Project Navigator interface file. ISE uses this file to determine + how the files output by CORE Generator for the core can be integrated + into your ISE project. + +fifo_xlnx_32x36_2clk_flist.txt: + Text file listing all of the output files produced when a customized + core was generated in the CORE Generator. + + +Please see the Xilinx CORE Generator online help for further details on +generated files and how to use them. + diff --git a/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_xmdf.tcl b/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_xmdf.tcl new file mode 100644 index 000000000..ec9426357 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_xmdf.tcl @@ -0,0 +1,68 @@ +# The package naming convention is _xmdf +package provide fifo_xlnx_32x36_2clk_xmdf 1.0 + +# This includes some utilities that support common XMDF operations +package require utilities_xmdf + +# Define a namespace for this package. The name of the name space +# is _xmdf +namespace eval ::fifo_xlnx_32x36_2clk_xmdf { +# Use this to define any statics +} + +# Function called by client to rebuild the params and port arrays +# Optional when the use context does not require the param or ports +# arrays to be available. +proc ::fifo_xlnx_32x36_2clk_xmdf::xmdfInit { instance } { +# Variable containg name of library into which module is compiled +# Recommendation: +# Required +utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_xlnx_32x36_2clk +} +# ::fifo_xlnx_32x36_2clk_xmdf::xmdfInit + +# Function called by client to fill in all the xmdf* data variables +# based on the current settings of the parameters +proc ::fifo_xlnx_32x36_2clk_xmdf::xmdfApplyParams { instance } { + +set fcount 0 +# Array containing libraries that are assumed to exist +# Examples include unisim and xilinxcorelib +# Optional +# In this example, we assume that the unisim library will +# be magically +# available to the simulation and synthesis tool +utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library +utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_generator_ug175.pdf +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_32x36_2clk.ngc +utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_32x36_2clk.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_32x36_2clk.veo +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_32x36_2clk.xco +utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_32x36_2clk_xmdf.tcl +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_xlnx_32x36_2clk +incr fcount + +} + +# ::gen_comp_name_xmdf::xmdfApplyParams diff --git a/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.gise b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.gise new file mode 100644 index 000000000..9abec8c3e --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.gise @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + 11.1 + + + + + + + + + + diff --git a/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.ngc b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.ngc new file mode 100644 index 000000000..9cb73d5ce --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.ngc @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$4cb40<,[o}e~g`n;"2*726&;$9,)?40893456789:;8=5?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>;;1A3<4=6;2;%<<5=4:0076753:81EC^ZT;FJE956294:>6==:HLSQQ112906?IR\Y__6IAN<2394;743:81CXZ_UU8GKG:493:5=?5<6;KMTPR=l`d7?84?>0687301?69l29x>=>?ff662(363=>08=HI1097>LHW]]0OE]O33;2=54=32@D[YY4KIQ@?7?699;1?6B[[PTV9@JVF4:0;2<<44;MVPUSS2ME[N1=50?68102792<97;7;;7;:24=?<22;<=:48D:B5>?330:;5?56659:23?6:231EC^ZT;CG@WG;03:5=?56:HLSQQ0g8=?OIX\^1|ah_dosp|Ys`{oxd1650?06?<=878>744FNQWW>uthoVof|ywPtipfwmYimnki1650?3g?<057GAPTV9twi`Wog`Rzgrdqk[kc`i}o747>1199:>JSSX\^1hlzn_bmvjq:?294:n675OTVSQQrtXlh~jSnaznu>;>5853H837LJKR@>3:==FLMXJ0<07;@FGVD:5611JHI\N<2<;?DBCZH6?255NDEPB808?3HNO^L29>99B@ATF4>4j7LJKR@>;>58?3HNO^L27>99B@ATE49437LJKRC>2:==FLMXI0?07;@FGVG:4611JHI\M<5<;?DBCZK6>255NDEPA838?3HNO^O28>`9B@ATE410;255NDEPA8=843HFG56O\YOA\V@A63K90NX<7;CWP[LHAG81H>6MJ139@L@ELWECHIC]J_U[SA7=DA=1H@FO;;BNHF6=DD[30OBCBIUVF@426JF6:FJE969?2NBM1??>69GMD:697=0HDO313<4?AOF4895;6JFA=37:2=CAH6:9394DHC?53803MCJ0<917:FJE97?6>1OEL2>9?48@LG;97=0HDO321<4?AOF4;;5;6JFA=01:2=CAH69?394DHC?61803MCJ0?;17:FJE9416>1OEL2=7?58@LG;:14<7IGN<3;=2>BNI585;6JFA=13:<=CAH68=7>17:FJE9566?1OEL2<>79GMD:36?1OEL2:>79GMD:16?1OEL28>79GMD:?6?1OEL26>79GMG:76>1OEO2>0?58@LD;984<7IGM<00=3>BNJ5;82:5KIC>20;169GMG:607=0HDL318<5?AOE484<7IGM<32=3>BNJ58:2:5KIC>16;1>08;EKA8729?2NBN1<:>69GMG:5>7=0HDL326<4?AOE4;25;6JFB=0::3=CAK692:5KIC>04;?69GMG:497<0HDL33?48@LD;<7<0HDL35?48@LD;>7<0HDL37?48@LD;07<0HDL39?58@LVF494<7IG_A=3=3>BNXH69245KIQC?7?69?2NB\L2<>69GMUD;87=0HD^M<0<4?AOWJ58556JFPC>0>5803MC[N1=16:FLE969?2NDM1??>69GKD:697=0HBO313<4?AIF4895;6J@A=37:2=CGH6:9394DNC?53803MEJ0<917:FLE97?6>1OCL2>9?48@JG;97=0HBO321<4?AIF4;;5;6J@A=01:2=CGH69?394DNC?61803MEJ0?;17:FLE9416>1OCL2=7?58@JG;:14<7IAN<3;=2>BHI585;6J@A=13:<=CGH68=7>17:FLE9566?1OCL2<>79GKD:36?1OCL2:>79GKD:16?1OCL28>79GKD:?6?1OCL26>69GKDYUMN<0HBL30?58@JD;994<7IAM<03=3>BHJ5;92:5KOC>27;169GKG:6?7=0HBL319<4?AIE4835:6J@B=3=3>BHJ58;2:5KOC>15;1?08;EMA8759?2NDN1<;>69GKG:5=7=0HBL327<4?AIE4;=5;6J@B=0;:2=CGK695384DN@?6;14=7IAM<9<5?AIE404<7IAM_SGD3>BHXH6;2:5KOQC?5;12:2=CGYH7>374DNRA86<76>1OC]L33?18AKG43LDIn6KA_DA@[WCFLj1NBRKLC^UQMQC53O897K6:;GCOW@40JI^J4:DGV@764IOKWTZ6702CEEY^P00:8MKOSXV:946GAIUR\46>;8:KMMQVX8<20ECG[P^25<>OIA]ZT<:74IOKWWQGSM>1BBDZP0158MKOSW9;<7D@FT^213>OIA]U;?:5FNHV\411J7:KMMQY7N>1BBDZP1158MKOSW8;<7D@FT^313>OIA]U:?:5FNHV\511769JJLRX91=0ECG[_0;4?LHN\V;J;6GAIU]2F2=NF@^T=N94IOKW[4B03@DBXR?J7:KMMQY6N>1BBDZP2158MKOSW;;<7D@FT^013>OIA]U9?:5FNHV\611N94IOKW[7B03@DBXR1BBDZP3158MKOSW:;<7D@FT^113>OIA]U8?:5FNHV\711;8;HLJPZ51?2CEEYQ<769JJLRX;1=0ECG[_2;4?LHN\V9J;6GAIU]0F2=NF@^T?N94IOKW[6B03@DBXR=J7:KMMQY4N?1BBDZPA79JJLRXJ;1GE?5CO79OKDBBL>1GCJGLAM68HPR6<2F^X?:4LTV00>JR\=<0@XZ;_E48HPR3WE?0A^I@N49NQ]E^k2Gjfb|YesqjkkeH7:2D:86@>0768J460<2D:<5:4N02:7>H69=1E=<>;;O3251=I988?7C?>359M54233G;:995A1047?K76?=1E=<6;;O32=6=I9;>0B<2268J443<2D:>8:4N0050>H6:>>0B<<74:L26<595A1217?K74<=1E=>;;;O3021=I9:=?7C?<859M56?43G;?86@>4168J426<2D:8?:4N0600>H6H6?=1E=:9<;O3;7>H61:1E>==4N330?K45;2D9?>5A2518J7343G8=?6@=729M6=5=<;O177>H4=:1E?;=4N250?K5?;2D85>5A4118J1743G>9?6@;329M0150\L\[a:RJJZDR[@NSn6^FN^@VWKGJM:1[^H?4Q09Qa>TFEK;=S^=9_R15e>TBIMUME_][c:PFEAYPAM^CSLm4RDCG[ROC\AUI=6]>3:QJIZEHDECXEB@PCIG@O3=TG\XHI:5\RWCO[D1<[[\J@RL;;RQQE1=T[[H?7YW_E208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;<=Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?013\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4565W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;?R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?05]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3453XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:=S_k|umv277=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwY`kVrd~=>?7^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2345YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt789;T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=>=_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1237ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678=UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=;PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^uq[uhszVmhSua}0125[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYpzVzexQhc^zlv567?VXnxb{1338Q5)`zo$yj"ilx/aoo})ulVzexQmio>3:77<]9%l~k }f.e`|+ekcq%yhR~ats]amk:66;;0Y=!hrg,qb*adp'iggu!}d^rmpwYeag692??4U1-dvc(un&mht#mcky-q`Zvi|{Uiec2<>338Q5)`zo$yj"ilx/aoo})ulVzexQmio>7:77<]9%l~k }f.e`|+ekcq%yhR~ats]amk:26;;0Y=!hrg,qb*adp'iggu!}d^rmpwYeag6=2??4U1-dvc(un&mht#mcky-q`Zvi|{Uiec28>338Q5)`zo$yj"ilx/aoo})ulVzexQmio>;:76<]9%l~k }f.e`|+ekcq%yhR~ats]amkY7:91^<"i}f/pe+be&jf`t"|k_qlwvZdnfV;9<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS? gsd-vc)`kq$h`fv re]sjqtXj`dT;?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ7279V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv5678;=0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?01312>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89::>:5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r12354413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=<=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45659;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0204?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt78999>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123071<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<9?=6:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq4562:>1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?5005?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789<946[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}012554403\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=8=2c9V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567>Vhoh=<9;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34515?2_;#j|i.sd,cf~)keas#jPpovq[goiWqey<=>81328Q5)`zo$yj"ilx/aoo})ulVzexQhc=2=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`848582_;#j|i.sd,cf~)keas#jPpovq[be;:78;7X> gsd-vc)`kq$h`fv re]sjqtXoj682?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo1:1219V4*aun'xm#jmw.bnh|*tcWyd~Ril<4<14>S7'nxm"h gbz-gim'{nT|cz}_fa?2;473\:$kh!rg-dg}(ddbr$~iQnup\cf:06;:0Y=!hrg,qb*adp'iggu!}d^rmpwY`k525=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS=?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ>1g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_33e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]05c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[17a3\:$kh!rg-dg}(ddbr$~iQnup\cfY29o1^<"i}f/pe+be&jf`t"|k_qlwvZadW?;m7X> gsd-vc)`kq$h`fv re]sjqtXojU<=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS5<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8585>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk1?1279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:56;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi33?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4=49:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=7=63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn6=2?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?3;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol050=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ65=2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkR?=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ45=2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkR==5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ25=2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkR;=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ05=2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkR9=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ>512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><1<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0<0=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb64;4956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2868512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><5<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:080=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb64?4956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2828512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><9<1<>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:S=<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X9;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]16==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R==8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W=837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\17><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh gsd-vc)`kq$h`fv ws]sjqtXj`d7=3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`32?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?7;463\:$kh!rg-dg}(ddbr${Qnup\flh;<78:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d793<>;T2,cw`)zo%lou lljz,swYwf}xTnd`36?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?3;463\:$kh!rg-dg}(ddbr${Qnup\flh;078;7X> gsd-vc)`kq$h`fv ws]sjqtXj`dT4U1-dvc(un&mht#mcky-tvZvi|{UiecQ>219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^014>S7'nxm"h gbz-gim'~xT|cz}_ckm[6473\:$kh!rg-dg}(ddbr${Qnup\flhX<;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU>>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR8=0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_603?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\<70<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<=<8;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34566:?1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?1358Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw6788;9:6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012162=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;><<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34555?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=><2348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678=8<7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?016263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;9?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234075>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>9299V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567>8;9;6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012567d<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<;Qmde212>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:<>:5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r12334473\:$kh!rg-dg}(ddbr${Qnup\cf:76;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k5;5>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh0?0=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm33?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>7:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg939:91^<"i}f/pe+be&jf`t"y}_qlwvZad4?49<6[?/fpe*w`(ojr%oaew/vp\tkruWni7;30d8Q5)`zo$yj"ilx/aoo})pzVzexQhc^22b>S7'nxm"h gbz-gim'~xT|cz}_fa\54`<]9%l~k }f.e`|+ekcq%|~R~ats]dgZ46n2_;#j|i.sd,cf~)keas#z|Ppovq[beX;8l0Y=!hrg,qb*adp'iggu!xr^rmpwY`kV>:j6[?/fpe*w`(ojr%oaew/vp\tkruWniT9f:W3+bta&{l$knv!cmi{+rtXxg~ySjmP70d8Q5)`zo$yj"ilx/aoo})pzVzexQhc^:12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo5:5>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>2:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm7>3<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8685>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk1:1279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:26;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi36?05?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4>49:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=:=60=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU;>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]260=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU9>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]060=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU?>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]660=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU=>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]460=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU3>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5969:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=3=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1<1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9595>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5929:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=7=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=181289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95=5>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g59>9:11^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1^21<>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S<<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X:;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]06==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R:=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W<837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\27><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmThS7'nxm"h gbz-gim'~xT|cz}_fa\|jt789;996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01011>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt7899996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01611>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt789?996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01411>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt789=8<6[?/fpe*w`(oe:%~i!hr0,qbr`s'Dg~tR\NM^PG[@HXN^L_><2e9V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}ki1>12e9V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}ki1?12b9V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}kiR>=c:W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nS<=:;T2,cw`)zo%l`= }d.eq5+tao~$ox|}_guepZusi}oTaxv?013?4;513\:$kh!rg-dh5(ul&my=#|iwgv,gptuWo}mxR}{aug\ip~789;7<3?<5:W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nS`{w01228484>2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[hs89::0<0>299V4*aun'xm#jb?.sf,cw7)zo}mx"kbpu{\br`sWoh9;6[?/fpe*w`(oe:%~i!hr0,qbr`s'lg{xtQiwgv\m7`<]9%l~k }f.eo4+tc'nx:"hxfu-fiur~Wo}mxRgPmtz3456482_;#j|i.sd,ci6)zm%l~< }fvdw+`kw|pUm{kzPi^ov|56788827X> gsd-vc)`d9$yh"i}ar,qwqu(k9%hm|vndv?4;4>3\:$kh!rg-dh5(ul&mym~ }suq,g5)di{xrbhz31?0:?P6(o{l%~k!hl1,q`*auiz$yy} c1-`ewt~fl~7>3<6;T2,cw`)zo%l`= }d.eqev(u{}y$o=!laspzj`r;;78m7X> gsd-vc)`d9$yh"i}ar,qwqu(k9%laxv!glY3Y+aj9'g:>k5Z0.eqb+ta'nf;"j gscp*wus{&i;#jczx/en_4[)ody%a~ gsd-vc)`d9$yh"i}ar,qwqu(k9%}=1?1229V4*aun'xm#jb?.sf,cwgt&{y"m?/w3?6;443\:$kh!rg-dh5(ul&mym~ }suq,g5)q9595>>5Z0.eqb+ta'nf;"j gscp*wus{&i;#{?34?0a?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5Z6Xign;<=>>2c9V4*aun'xm#jb?.sf,cwgt&{y"m?/w3\5Zgil9:;<<o5Z0.eqb+ta'nf;"j gscp*wus{&i;#{?P3^cm`567888i7X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=R:Pnnv34566:01^<"i}f/pe+bj7&{n$ko|.sqww*e6'jky~t`jt=2=6<=R8&myj#|i/fn3*wb(o{kx"}{s.a2+fguzpdnx1?1289V4*aun'xm#jb?.sf,cwgt&{y"m>/bcqv|hb|585>45Z0.eqb+ta'nf;"j gscp*wus{&i:#no}rxlfp959:o1^<"i}f/pe+bj7&{n$ko|.sqww*e6'ng~t#ib[1_-ch7)e88m7X> gsd-vc)`d9$yh"i}ar,qwqu(k8%laxv!glY2Y+aj{'gx>k5Z0.eqb+ta'nf;"j gscp*wus{&i:#jczx/en_7[)ody%a~/fov|+ajS=W%k`}!mr00?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5969::1^<"i}f/pe+bj7&{n$ko|.sqww*e6';7=3<<;T2,cw`)zo%l`= }d.eqev(u{}y$o gsd-vc)`d9$yh"i}ar,qwqu(k8%}=1:12c9V4*aun'xm#jb?.sf,cwgt&{y"m>/w3\4Zgil9:;<<o5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?P2^cm`567888i7X> gsd-vc)`d9$yh"i}ar,qwqu(k8%}=R=Paof34566:k1^<"i}f/pe+bj7&{n$ko|.sqww*e6';T8R``t12344473\:$kh!rg-dh5(ul&mym~ }suq,gjkw8;:0Y=!hrg,qb*ak8'xo#j|ns/pppv)dgdz:>45Z0.eqb+ta'nf;"j gscp*wus{&xjaRkbpu{\bgYn;91^<"i}f/pe+bj7&{n$ko|.sqww*tfeVof|ywPfc]j[jt789:8=6[?/fpe*w`(oe:%~i!hr`q-vvrt'{kfShctx]efZoXg{:;<=?=3:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmp72<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~:>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu010>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|:8?7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{4368Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkr2:=1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by8=4:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmp2433\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d4?74U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:76;i0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>3:Zts:01^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=3=6f=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1?1_sv1=>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0?0=c:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4;4T~y<6;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[f;;78h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?7;Yu|;30Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>7:7e<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2;>^pw6<=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1;12b9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5?5Sz=9:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4?49o6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az838Xz}827X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?3;4d3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw37?]qp7g<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|30?0b?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWqey0<0=a:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZ~hz585>l5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]{kw:46;k0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?0;4f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSua}<4<1e>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1812`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{6<2?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;078o7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8=8Xz};m7X> gsd-vc)`d9$yh"|nup,gjsi|5:5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~7=3?i;T2,cw`)zo%l`= }d.psjqt(kfex1<11g9V4*aun'xm#jb?.sf,vuhsz&idycz33?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=6=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?1;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9099o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;?7;m7X> gsd-vc)`d9$yh"|nup,gjsi|525=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T<e:W3+bta&{l$ka>!re-qtkru'je~byQ<1d9V4*aun'xm#jb?.sf,vuhsz&idyczP40g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_43f?P6(o{l%~k!hl1,q`*twf}x$ob{at^42a>S7'nxm"h gm2-va)uxg~y#naznu]45`=R8&myj#|i/fn3*wb(zyd~"m`uov\<74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;87897X> gsd-vc)`d9$yh"|nup,gjsi|Vn:0<0=2:W3+bta&{l$ka>!re-qtkru'je~byQk1=0=67=R8&myj#|i/fn3*wb(zyd~"m`uov\`4:46;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;783<=;T2,cw`)zo%l`= }d.psjqt(kfexRj><4<16>S7'nxm"h gm2-va)uxg~y#naznu]g5909:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl86<2?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?38?02?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[5463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W88:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S?<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_202?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[1463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W<8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S;<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_602?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[=433\:$kh!rg-dh5(ul&x{by| cnwmpZhh|9:;=>h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir0=0!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:Tot2>>2d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>0:6`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8184n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:26:l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Ze~4?48j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xkp6<2>h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir050;0:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:T`xz31?63?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,IdbcWmcmjR~ats]seaYflm:;<=Qcuu>1:16<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp959<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[iss4=4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xd|~793:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Ugyy29>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?_mww8=8382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\hpr;17>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yg{6829>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vrd~1:1419V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Sua}<4<74>S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pxnp?2;273\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(EhnoSigif^rmpwYwimUjhi>?01]{kw:06=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Z~hz5258=5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567Wqey040=f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{mi2<>3d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok<5<1b>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae>6:7`<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg8385n2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]sea:06;l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugc4149j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwim622?k4U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWykoS>!ws-dsdu)oyl%{~i/ekebZvi|{U{miQ:2d9V4*aun'xm#jb?.vp,crgt&nzm"z|f.fjbcYwf}xT|ljP63g8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok_60f?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,`l`aWyd~R~nd^:1a>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae]:72=R8&myj#|i/fn3*rt(o~kx"j~i.vpsb*bnnoU{by|Pp`f\eab789:7?3=8;T2,cw`)zo%l`= xr.etev(`xo$|~}h dhde[uhszVzjhRokd1234929;>1^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&nbjkQnup\tdbXimn;<=>35?14?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,`l`aWyd~R~nd^cg`56785<5?:5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"jffg]sjqtXxhnTmij?012?3;503\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(l`lmS}`{r^rb`Zgcl9:;<161369V4*aun'xm#jb?.vp,crgt&nzm"z|f.fjbcYwf}xT|ljPaef3456;178j7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$|ah_gwohZo4:2_;#j|i.sd,ci6){%l{l}!gqd-swva'yxdkRhzlm]j[hs89:8?95Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"~}of]eqijXaVg~t=>?30000>S7'nxm"h gm2-sw)`hy%k}h!wsre+uthoVl~`aQf_lw{45649:987X> gsd-vc)`d9$|~"ixar,dtc(pzyl$|ah_gwohZoXe|r;<==8339V4*aun'xm#jb?.vp,crgt&nzm"z|f.rqkbYa}efTeR``t12357?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2?>3;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6:2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:56;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>0:7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV>R.fo2*h75n2_;#j|i.sd,ci6){%l{l}!wrvp+f7(ods"jcT1\,div(j{;l0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&mfyu hmZ0^*bkt&dy9j6[?/fpe*w`(oe:%{!hw`q-svrt'j;$k`{w.foX7X(`ez$f?h4U1-dvc(un&mg<#y}/fubw+qt|z%h="ibuy,di^2Z&ngx"`}=3:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0>3:75<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p64849?6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z<2=>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28685;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~86?2?l4U1-dvc(un&mg<#y}/fubw+qt|z%h="x>_1]bja6789;9n6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z_`lg45679;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S?Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U8Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W=Uecy>?0131=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0=0=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs484956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw878512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<2<1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP

"x><1<17>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4:66;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0?0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>0:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64=49n6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y3Wge<=>?1328Q5)`zo$yj"ic0/uq+bqf{'}xx~!lolr265=R8&myj#|i/fn3*rt(o~kx"z}{s.aliu4582_;#j|i.sd,ci6){%l{l}!wrvp+fijx:8o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;878o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;978o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;:78o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;;7987X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!hmtz-ch]7U'mf=#c>329V4*aun'xm#jb?.vp,crgt&~y"inf/a0+bkrp'mfW5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m1^<"i}f/pe+bj7&~x$kzo|.vqww*afn'i8#{?30?04?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q95;5>:5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m gsd-vc)`d9$|~"ixar,twqu(ohl%o>!y1^2\ekb789::>k5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m>2g9V4*aun'xm#jb?.vp,crgt&~y"inf/a0+s7X;Vkeh=>?000e?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q9V>Tbbz?01226f=R8&myj#|i/fn3*rt(o~kx"z}{s.pbiZgkefySk{cl^k00>S7'nxm"h gm2-sw)`hy%{~z|/scn[djjgz~Tjxbc_h]nq}67899>7X> gsd-vc)`d9$|~"ixar,twqu(zhgTmac`su]eqijXaVg~t=>?0016?P6(o{l%~k!hl1,tv*apiz$|y} r`o\eikh{}UmyabPi^llp56798837X> gsd-vc)`d9$|~"ixar,twqu(zhgTjxbc_g`\m73<]9%l~k }f.eo4+qu'n}j#y|tr-qehYa}efTe?j4U1-dvc(un&mg<#y}/fubw+qt|z%ym`Qiumn\mZkrp9:;229V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d=?:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov161=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}9986[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at507?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs=;>0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz9259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq15<2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex5<6;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;878h7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?4;Yu|;30Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPcx>2:7e<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2>>^pw6<=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1<12b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq585Sz=9:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4:49o6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az868Xz}827X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?0;4d3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw34?]qp7?<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2:>3a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6>2R|{289V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5<5>n5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}909W{~956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8285k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<6<\vq4f3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSua}<1<1e>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vrd~1?12`9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{692?o4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\|jt;;78j7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8185i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=7=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc29>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7;39W{~:j6[?/fpe*w`(oe:%{!xpovq+firf}6;2f:W3+bta&{l$ka>!ws-ttkru'je~by2=>0d8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{<2<2b>S7'nxm"h gm2-sw)pxg~y#naznu>7:4`<]9%l~k }f.eo4+qu'~zex!lotlw8086n2_;#j|i.sd,ci6){%||cz}/bmvjq:168l0Y=!hrg,qb*ak8'}y#z~ats-`kphs4>4:j6[?/fpe*w`(oe:%{!xpovq+firf}632e:W3+bta&{l$ka>!ws-ttkru'je~byQ=1d9V4*aun'xm#jb?.vp,suhsz&idyczP30g8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_53f?P6(o{l%~k!hl1,tv*qwf}x$ob{at^72a>S7'nxm"h gm2-sw)pxg~y#naznu]55`=R8&myj#|i/fn3*rt(yd~"m`uov\34c<]9%l~k }f.eo4+qu'~zex!lotlw[=453\:$kh!rg-dh5(pz&}{by| cnwmpZb64949>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=1?1239V4*aun'xm#jb?.vp,suhsz&idyczPd0>1:74<]9%l~k }f.eo4+qu'~zex!lotlw[a7;;7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:090=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=7=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:16;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7;3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><9<15>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z6592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V;9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo=R<=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^115>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z2592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V?9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo=R8=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^515>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z>5:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5:5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?2>>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?6;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54:49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>1:1239V4*aun'xm#jb?.vp,suhsz&idyczPd3>6:74<]9%l~k }f.eo4+qu'~zex!lotlw[a4;>7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn90:0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk2=:=64=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y7:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U:><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?Q=209V4*aun'xm#jb?.vp,suhsz&idyczPd3]064=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y3:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U>><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?Q9209V4*aun'xm#jb?.vp,suhsz&idyczPd3]464=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y?:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl:6;2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=31?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f08785:2_;#j|i.sd,ci6){%||cz}/bmvjqYc;595>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>2;>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1?1;453\:$kh!rg-dh5(pz&}{by| cnwmpZb44?49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo?191239V4*aun'xm#jb?.vp,suhsz&idyczPd2>;:77<]9%l~k }f.eo4+qu'~zex!lotlw[a5X8;;0Y=!hrg,qb*ak8'}y#z~ats-`kphsWm9T=??4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=P2338Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1\777<]9%l~k }f.eo4+qu'~zex!lotlw[a5X<;;0Y=!hrg,qb*ak8'}y#z~ats-`kphsWm9T9??4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=P6338Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1\377<]9%l~k }f.eo4+qu'~zex!lotlw[a5X0;>0Y=!hrg,qb*ak8'}y#z~ats-`kphsWge<=>>169V4*aun'xm#`kb/emvpZo;87;37X> gsd-vc)jmd%ocxzPi=33:4><]9%l~k }f.ofi*bh}}Ub027;7?3\:$kh!rg-nah)cg|~Te1?;>0:8Q5)`zo$yj"cjm.flqqYn48?5=55Z0.eqb+ta'dof#iazt^k?538602_;#j|i.sd,i`k(lfSd2>7?3;?P6(o{l%~k!bel-gkprXa5;32<64U1-dvc(un&gna"j`uu]j84?99>1^<"i}f/pe+hcj'me~xRg31?3;?P6(o{l%~k!bel-gkprXa58;2<64U1-dvc(un&gna"j`uu]j8779911^<"i}f/pe+hcj'me~xRg323<2<>S7'nxm"h mdo,`jssW`69?3?7;T2,cw`)zo%fi`!kotv\m9436820Y=!hrg,qb*kbe&ndyyQf<37=5==R8&myj#|i/lgn+air|Vc7>;0>8:W3+bta&{l$ahc dnww[l:5?7;37X> gsd-vc)jmd%ocxzPi=0;:4><]9%l~k }f.ofi*bh}}Ub0?71169V4*aun'xm#`kb/emvpZo;:7;37X> gsd-vc)jmd%ocxzPi=13:4><]9%l~k }f.ofi*bh}}Ub0>?1199V4*aun'xm#`kb/emvpZo;;;4:46[?/fpe*w`(elg$hb{{_h>07;7?3\:$kh!rg-nah)cg|~Te1=;>0:8Q5)`zo$yj"cjm.flqqYn4:?5=:5Z0.eqb+ta'dof#iazt^k?7;703\:$kh!rg-nah)cg|~Te1:1169V4*aun'xm#`kb/emvpZo;=7;<7X> gsd-vc)jmd%ocxzPi=4=52=R8&myj#|i/lgn+air|Vc7;3?8;T2,cw`)zo%fi`!kotv\m9>99>1^<"i}f/pe+hcj'me~xRg39?35?P6(o{l%~k!bel-gkprXaV:::6[?/fpe*w`(elg$hb{{_h]252=R8&myj#|i/lgn+air|VcT==?8;T2,cw`)zo%fi`!kotv\mZ769>1^<"i}f/pe+hcj'me~xRgP1334?P6(o{l%~k!bel-gkprXaV;8=:5Z0.eqb+ta'dof#iazt^k\51703\:$kh!rg-nah)cg|~TeR?:169V4*aun'xm#`kb/emvpZoX9?;<7X> gsd-vc)jmd%ocxzPi^3452=R8&myj#|i/lgn+air|VcT=5?8;T2,cw`)zo%fi`!kotv\mZ7>9?1^<"i}f/pe+hcj'me~xRgP2058Q5)`zo$yj"cjm.flqqYnW;::;6[?/fpe*w`(elg$hb{{_h]1541<]9%l~k }f.ofi*bh}}UbS?<>7:W3+bta&{l$ahc dnww[lY5;8=0Y=!hrg,qb*kbe&ndyyQf_3623>S7'nxm"h mdo,`jssW`U99<94U1-dvc(un&gna"j`uu]j[706?2_;#j|i.sd,i`k(lfSdQ=7058Q5)`zo$yj"cjm.flqqYnW;2:;6[?/fpe*w`(elg$hb{{_h]1=40<]9%l~k }f.ofi*bh}}UbS>?8;T2,cw`)zo%fi`!kotv\mZ579>1^<"i}f/pe+hcj'me~xRgP3034?P6(o{l%~k!bel-gkprXaV99=:5Z0.eqb+ta'dof#iazt^k\76703\:$kh!rg-nah)cg|~TeR=;169V4*aun'xm#`kb/emvpZoX;<;=7X> gsd-vc)jmd%ocxzPi^622>S7'nxm"h mdo,`jssW`U>=;5Z0.eqb+ta'dof#iazt^k\240<]9%l~k }f.ofi*bh}}UbS:?9;T2,cw`)zo%fi`!kotv\mZ>6>2_;#j|i.sd,i`k(lfSdQ6189V4*aun'xm#`kb/emvpZkbe5:5=l5Z0.eqb+ta'dof#iazt^ofi97768k0Y=!hrg,qb*kbe&ndyyQbel>25;7f3\:$kh!rg-nah)cg|~Tahc313<2e>S7'nxm"h mdo,`jssWdof0<=11`9V4*aun'xm#`kb/emvpZkbe5;?2 gsd-vc)jmd%ocxzPmdo?5386i2_;#j|i.sd,i`k(lfS`kb<05=5d=R8&myj#|i/lgn+air|Vgna1?7>0c8Q5)`zo$yj"cjm.flqqYjmd6:53?6;T2,cw`)zo%fi`!kotv\i`k;97;j7X> gsd-vc)jmd%ocxzPmdo?6586i2_;#j|i.sd,i`k(lfS`kb<33=5d=R8&myj#|i/lgn+air|Vgna1<=>0c8Q5)`zo$yj"cjm.flqqYjmd69?3?n;T2,cw`)zo%fi`!kotv\i`k;:=4:m6[?/fpe*w`(elg$hb{{_lgn87399h1^<"i}f/pe+hcj'me~xRcjm=05:4g<]9%l~k }f.ofi*bh}}Ufi`2=7?3b?P6(o{l%~k!bel-gkprXelg7>50>a:W3+bta&{l$ahc dnww[hcj4;35=45Z0.eqb+ta'dof#iazt^ofi9499h1^<"i}f/pe+hcj'me~xRcjm=13:4g<]9%l~k }f.ofi*bh}}Ufi`2<1?3b?P6(o{l%~k!bel-gkprXelg7??0>a:W3+bta&{l$ahc dnww[hcj4:95=l5Z0.eqb+ta'dof#iazt^ofi95368k0Y=!hrg,qb*kbe&ndyyQbel>01;7>3\:$kh!rg-nah)cg|~Tahc33?3:?P6(o{l%~k!bel-gkprXelg783?6;T2,cw`)zo%fi`!kotv\i`k;=7;27X> gsd-vc)jmd%ocxzPmdo?2;7>3\:$kh!rg-nah)cg|~Tahc37?3:?P6(o{l%~k!bel-gkprXelg743?6;T2,cw`)zo%fi`!kotv\i`k;17=?7X> gsd-vc)jmd%ln` hble-cgk`i'dlinm!ble,fimXelgTkh`jr`vlv*pfd`n%o~z}/scnhjiwS9W%~lc!r.q0[kinf`~%~lc dqpbi+bw;?r8:#|nm0`8Q5)`zo$yj"cjm.vntZtfeVxoSh`>c:W3+bta&{l$ahc tlr\vdkXzmUnbe:W3+bta&{l$~~zmlj-q`Ztt|Vxnk1<11e9V4*aun'xm#}{bmi,vaYu{}UyijQ?1e9V4*aun'xm#}{bmi,vaYu{}UyijQ>1e9V4*aun'xm#}{bmi,vaYu{}UyijQ=169V4*aun'xm#}{bmi,vvrXl8;<7X> gsd-vc)u{}hgg"||t^f152=R8&myj#|i/sqwfim(zz~Th>?k;T2,cw`)zo%yylck.uq[wusWhyyijS7'nxm"h rrvahn)pzVxxxRm`mc32a>S7'nxm"h rrvahn)pzVxxxR|jg=2=5`=R8&myj#|i/sqwfim({UyyQ}ef>2:4b<]9%l~k }f.pppgjl'~xT~~zPrde\44b<]9%l~k }f.pppgjl'~xT~~zPrde\5d=R[LXTMAGNSb9VW@TX^@YBNAK<;WA@=>PNM^U_U]K<;VGB7>QBJj1\^DZJ_LMGAZGd3^XBXHQBOEG\Fa=PZ@^NSZGKTI]B`>QUA]OT[DJ[H^@2`>^ND@DS!UJM 1,2$VRRJ):%=-O\CHK6?]IUKP<0T^ZCIC58\VRXOGN<7U][_WA@f>^XKFXNSD@IO79[`gYNlo1SheQ_rhoUawungg;;7Ujb_LcikwPbzzcdb<>4Xeo\Ilhhz_oydaac:coijusWlg{xtl4amolwqYa}ef=7oolktrg?ggdc|zTal|des18gimc3mkmRm`uov+4,bbf|hUhcx`{(2+g?agsiVidycz'4(f8`drfWje~by&:)e9geqgXkfex%8&d:fbpdYdg|d$:'k;ecweZeh}g~#4$h4d`vb[firf}636=08;e`jp`tu>2nbb%>&6:fjj-7.?2nbb%??)69gmk.69 =0hd`'13+4?aoi 89";6jfn)37-2=cag":9$94dhl+53/03mce$<9&7:fjj-7?!>1oec&>9(48`lh/: =0hd`'21+4?aoi ;;";6jfn)01-2=cag"9?$94dhl+61/03mce$?;&7:fjj-41!>1oec&=7(58`lh/:1#<7iga(3;*2>bnf!9";6jfn)13-2=cag"8=$94dhl+77/03mce$>=&7:fjj-53!>1oec&<5(48`lh/< <0hd`'5(48`lh/> <0hd`'7(48`lh/0 <0hd`'9(48`lh;87=0hd`311<4?aoi48;5;6jfn=31:2=cag6:?394dhl?51803mce0<;17:fjj9716>1oec2>7?58`lh;914<7iga<0;=2>bnf5;5;6jfn=03:2=cag69=394dhl?67803mce0?=17:fjj9436>1oec2=5?58`lh;:?4<7iga<35=3>bnf5832:5kio>1=;0394dhl?75803mce0>?17:fjj9556>1oec2<3?58`lh;;=427iga<2794;1&7:flqq.6!11ocxz'11+;?air|!;:%55kotv+57/?3me~x%?<)99gkpr/9=#37iazt)36-==cg|~#=;'7;emvp-70!11ocxz'19+;?air|!;2%:5kotv+6,>&8:flqq.59 20hb{{(30*<>bh}}"9?$64dnww,72.02ndyy&=5(:8`jss ;<"46j`uu*13,> =0hb{{(6+4?air|!2";6j`uu*:-2=cg|~7<364dnww846902ndyy2>1?:8`jss488546j`uu>27;>bh}}6:;364dnww84>902ndyy2>9?58`jss48437iazt=03:==cg|~7><07;emvp945611ocxz322<;?air|58?255kotv?608?3me~x1<9>99gkpr;:>437iazt=0;:==cg|~7>408;emvp94902ndyy2<0?:8`jss4:;546j`uu>06;>=18:flqq:4<7k0hb{{<2794;>;17:flqq:46>1ocxz34?58`jss4<4<7iazt=4=3>bh}}6<2:5kotv?<;1V;'wnQgar]jjqYddb7; nQgar]pvvr:8%iT~iQirds>5)eXmgki`hQ}su]p}ke:9%iTdl}Pre]geqgXkfex0>#c^fjjZqnl}b6?;"l_icp[rtXlh~jSnaznu?3(fYa}efTjaohs^pppZpfd4;'oRgbpmgnakrf|`eeSywe<0/gZstmVofnhjkee]qab;7$jU|~Rh}ep?2(fYr{lUocxzPrrv>5)eX}gnn~kb`w^nls86+kVbjRayesdokr;7$jU{~hb`ae]oeqcikp7; nQkotv\slbs`49= nQbsfmm[sgk58&hSjPddrwl836:%iTi|`r^kmn`esafdTxt~j=1.`[mgtW|doihcov?3(fYoizUj``a|t^dvhi;6$jUcm~Q}su?2(fYci}kTob{at^uj`qn:1%iTdl}Pws]bgn;7$jU~hQjcb?3(fYdgdgdbRmcobi>4)eX{UjofQcov?3(fYulVzexQxievk9<*dW|ynSkyit^fbpdYdg|d1="l_icp[djjgz~Ti`~{y<2/gZtcWmkmRm`uov\slbs`43'oRayesdokrYkg~7; nQxr^rmpwYpam~c14"l_qplcZcjx}sTxt~j=1.`[rtXlh~jSnaznu]tmaro50&hS}|jlncg[wc`{4;'oRj`uu]qwqYqie7; nQgar]geqgXkfex0>#c^rqkbYa}efTxe|jsi]mabgsmV|j`0:69-a\swYcmy~c18?=,b]svjaXmdzuRzgrdqk[kc`i}oTzlb25-a\twi`Wlg{xtQ{hsgplZgt{lxS{oc=5.`[mgtWkgei3?,b]svjaXn|fgSyf}erj\evubz}U}ma3:01.`khvhfldScobe#c^rqmhYaaoeTxt~j=431|60+kVzycjQiumn\p|vb58&hS`kbos{\p|vb58&v?45iigm\|ihW<;9t>8P2bnh[uthoVl~`aQiigm\c`hbzh~d~Rx9_0]{wqY6<2l~`aj4iohfgqbea}oy~i5fnkg`pvdn|lxy;6gat^aoo==iojh~eaj7;ntfvcjhh1{~biPelrw}42vugnUna}zv_ujqavn/: ;?7}|`g^gntqX|axne&<)068twi`Wlg{xtQ{hsgpl-2.9=1{~biPelrw}Zrozlyc$8'>4:rqkbYbey~rSyf}erj+2,733yxdkRkbpu{\pmtb{a"<%<:4psmd[`kw|pUdk|h):*53=wzfmTi`~{y^vkv`uo410;2vugnUna}zv_ujqavnXizyn~y&:)0`8twi`Wlg{xtQ{hsgplZgt{lx$;'>b:rqkbYbey~rSyf}erj\evubz}"<%vugnUna}zv_ujqavnXflmjxh&;)0`8twi`Wlg{xtQ{hsgplZhboh~n$8'>b:rqkbYbey~rSyf}erj\j`af|l"=%#:n6~}of]fiur~W}byi~fPndebp`.?!8n0|ah_dosp|Ys`{oxdR`jg`vf8=<7601{~biPftno56=wzfmTjxbc_ujqavn/8 ;87}|`g^dvhiYs`{oxd%?&129svjaXn|fgSyf}erj+6,743yxdkRhzlm]wlwct`!9"=>5rne\bpjkW}byi~f'4(30?uthoVl~`aQ{hsgpl-3.9:1{~biPftno[qnumzb#:$?<;qplcZ`rdeUdk|h)5*56=wzfmTjxbc_ujqavn/0 ;>7}|`g^dvhiYs`{oxd1650?3b?uthoVl~`aQ{hsgplZgt{lx$='>a:rqkbYa}efTxe|jsi]bwvcu|!;"=l5rne\bpjkW}byi~fParqfvq.5!8k0|ah_gwohZrozlycSl}|esv+7,7f3yxdkRhzlm]wlwct`Vkxh|{(5+2e>vugnUmyabPtipfwmYf{zoyx%;&1`9svjaXn|fgSyf}erj\evubz}"=%vugnUmyabPtipfwmYimnki%?&1`9svjaXn|fgSyf}erj\j`af|l"9%=87<0~iQllj33?wbXlh~jSnaznu*3-464re]geqgXkfex1>1139q`Zbf|hUhcx`{<983:0=ulVoe:6|k_sqw7>tt|>1xndzjrs68wwus:k1a}!Pcf-emciXpedsS8?=x24\6fjlWyxdkRhzlm,mcj2<|{n56{addpehjq23kgei84ws]bgn0<{Uh`f??;vp\`drfWje~by&?)028swYci}kTob{at)3*55=pzVnjxlQlotlw,7/682}ySio{a^alqkr/; ;;7z|Pd`vb[firf}"?%<>4ws]geqgXkfex%;&119tvZbf|hUhcx`{(7+24>quWmkmRm`uov+3,773~xThlzn_bmvjq.?!880{Qkauc\gjsi|521<3;4ws]fj3=pzVxxxpNOpbd2?EF=021J7:51zQ7b?34k3<1=>mrd?554>;o6:=?0<,=3=697?;|Q7`?34k3<1=>m2Y:8i4:4683>455j>l<6?o=9d9P0a<2<>0;6<==b6d4>7g51o1o9>h50;395~U3n3?8o785120a3c1=:h82i6x[1cf94?7=93;h8v];f;70g?0=9:8i;k952`0:a>"3000:8h5Y48596~s6=>0:7x?:8;28y!7e93l0n8=i:1865?5==8qC8594Z5796~c=l3w/=n<552d8 1?22<9n7d;63;29?j2>j3:17b;98;29?l3f03:17b;;3;29?j34l3:17d;6d;29?l3>=3:17b;>0;29 4d42<987c?m2;28?j37n3:1(3:1(i3nm0;6)?m3;707>h6j;0:=65`4ga94?"6j:0>?>5a1c0957=5:9l0c>=83.:n>4:329m5g4=9?10c9h8:18'5g5==:90b3:1(!7e;3?8?6`>b382=>=h=8<1<7*>b28676=i9k81=l54o436>5<#9k919>=4n0`1>4d<3f?:87>5$0`0>0543g;i>7?l;:m656<72-;i?7;<3:l2f7<6l21d9<<50;&2f6<2;:1e=o<51d98k076290/=o=55218j4d528l07b;?a;29 4d42<987c?m2;03?>i3no0;6)?m3;707>h6j;09=65`4g694?"6j:0>?>5a1c0967=h:7>5$0`0>1cf3g;i>7?4;h6`1?6=,8h869kn;o3a6?4<3`>h87>5$0`0>1cf3g;i>7=4;h6`7?6=,8h869kn;o3a6?2<3`>h>7>5$0`0>1cf3g;i>7;4;h6`4?6=,8h869kn;o3a6?0<3`>ij7>5$0`0>1cf3g;i>794;h6aa?6=,8h869kn;o3a6?><3`>ih7>5$0`0>1cf3g;i>774;h6ag?6=,8h869kn;o3a6?g<3`>in7>5$0`0>1cf3g;i>7l4;h6ae?6=,8h869kn;o3a6?e<3`>i57>5$0`0>1cf3g;i>7j4;h6ai;7>5$0`0>1cf3g;i>7h4;h6a1?6=,8h869kn;o3a6?7732c?n94?:%3a7?2bi2d:n?4>1:9j0g5=83.:n>4;e`9m5g4=9;10e9l=:18'5g5=!7e;3>nm6`>b3821>=nb287ad=i9k81=;54i5cf>5<#9k918ho4n0`1>41<3`>jh7>5$0`0>1cf3g;i>7?7;:k7ef<72-;i?7:ja:l2f7<6121b8nj50;&2f6<3mh1e=o<51`98m1ed290/=o=54dc8j4d528h07d:lb;29 4d42=oj7c?m2;3`?>o3kh0;6)?m3;6fe>h6j;0:h65f4b;94?"6j:0?il5a1c095`=4;e`9m5g4=:;10e9on:18'5g5=5<6290;wE:77:&2g75;|`70?6=j:0:;;4>c5yK0=173=:009:7<8:3:9a?b=:h09n7<6:3`9a?4f2;>1h7<7:35963<5=3886p*>c38607=#<10>8=5+4d8604=#9hi1=lh4i47`>5<#9k9198j4n0`1>5=5<#9k9198j4n0`1>7=54i47;>5<#9k9198j4n0`1>1=5<#9k9198j4n0`1>3=6=4+1c1910b5<#9k9198j4n0`1>==>6=44i4;7>5<5<5<#9k9198=4n0`1>4=5<#9k9198=4n0`1>6=n6=4+1c191055<#9k9198=4n0`1>0=h6=4+1c191055<#9k9198=4n0`1>2=j6=4+1c191055<36=44i445>5<#9k919;94n0`1>5=6=4+1c191315<#9k919;94n0`1>7=54i441>5<#9k919;94n0`1>1=5<#9k919;94n0`1>3=5<#9k919;94n0`1>==5<#9k918l64n0`1>5=5<#9k918l64n0`1>7=54o5c0>5<#9k918l64n0`1>1=5<#9k918l64n0`1>3=5<#9k918l64n0`1>==5<5<#9k919:<4n0`1>4=5<#9k919:<4n0`1>6=5<#9k919:<4n0`1>0=5<#9k919:<4n0`1>2=5<5<5<#9k919:m4n0`1>5=5<#9k919:m4n0`1>7=54i454>5<#9k919:m4n0`1>1=5<#9k919:m4n0`1>3=5<#9k919:m4n0`1>==6=4+1c191=05<#9k919584n0`1>4=5<#9k919584n0`1>6=5<#9k919584n0`1>0=5<#9k919584n0`1>2=5<=6=44i5;f>5<5<5<5<#9k919>=4n0`1>4=5<#9k919>=4n0`1>6=5<#9k919>=4n0`1>0=5<#9k919>=4n0`1>2=5<#9k919>=4n0`1><=6=4+1c191655<#9k919>=4n0`1>g=5<#9k919>=4n0`1>a=5<#9k919>=4n0`1>c=4;n6e`?6=,8h868=<;o3a6?7632e?jn4?:%3a7?34;2d:n?4>2:9l0cd=83.:n>4:329m5g4=9:10c9hn:18'5g5==:90b76a;f983>!7e;3?8?6`>b3822>=hb28676=i9k81=:54o5d5>5<#9k919>=4n0`1>4><3f>m97>5$0`0>0543g;i>7?6;:m653<72-;i?7;<3:l2f7<6i21d9<;50;&2f6<2;:1e=o<51c98k073290/=o=55218j4d528i07b;>3;29 4d42<987c?m2;3g?>i29;0;6)?m3;707>h6j;0:i65`50394?"6j:0>?>5a1c095c=4;n6eb?6=,8h868=<;o3a6?4632e?j94?:%3a7?34;2d:n?4=2:9l0c5=83.:n>4:329m5g4=::10e9m8:18'5g5=10e9lj:18'5g5=290/=o=54dc8j4d52m10e9l7:18'5g5=!7e;3>nm6`>b3826>=nb287ad=i9k81=>54i5`2>5<#9k918ho4n0`1>42<3`>i<7>5$0`0>1cf3g;i>7?:;:k7ec<72-;i?7:ja:l2f7<6>21b8lk50;&2f6<3mh1e=o<51698m1gc290/=o=54dc8j4d528207d:nc;29 4d42=oj7c?m2;3:?>o3km0;6)?m3;6fe>h6j;0:m65f4ba94?"6j:0?il5a1c095g=e:9j0f>=83.:n>4;e`9m5g4=9o10e9m>:18'5g5=3:1(!7e;3>nm6`>b3816>=nb287ad=i9k81>>54i5;`>5<5<#9k9194<4n0`1>4=5<#9k9194<4n0`1>6=5<#9k9194<4n0`1>0=5<#9k9194<4n0`1>2=5<#9k919l94n0`1>5=6=4+1c191d15<#9k919l94n0`1>7=54o4c1>5<#9k919l94n0`1>1=5<#9k919l94n0`1>3=5<#9k919l94n0`1>==26=44i467>5<5<5<6290;w)?l2;da?M2>:2B?4:5`f`83>>{e<0>1<7?50;2x 4e52=237E:62:J7<2=h9k:1<75rb3ag>5<3290;w)?l2;d4?M2>:2B?4:5+11:91>o3>3:17d;?:188m4d32900c50z&2g75<54;294~"6k;0m;6F;939K0=1<@=80(<;::4;:?!7703?0e9850;9j15<722c:n94?::m2f0<722wi8:?50;194?6|,8i96k:4H5;1?M2??2B?>6*>5486=<=#9921=6g;6;29?l372900c50z&2g76876;%33>i6j<0;66sm46`94?2=83:p(3;6F;2:&210<2101/==655:k72?6=3`?;6=44i0`7>5<6=44}c644?6=;3:1c38e0>N31;1C8594H508 4322<327)??8;38m10=831b9=4?::m2f0<722wi8:j50;794?6|,8i96k64H5;1?M2??2B?>6*>5486=<=n0?>3-;;47?4i5494?=n=90;66a>b483>>{eN3:2.:984:989j03<722c?;7>5;h73>5<5<54;294~"6k;0m;6F;939K0=1<@=80(<;::4;:?!7703?0e9850;9j15<722c:n94?::m2f0<722wi8:750;694?6|,8i96k94H5;1?M2??2.:<54:;h65>5<5<3290;w)?l2;d4?M2>:2B?4:5+11:91>o3>3:17d;?:188m4d32900c50z&2g75;n3a1?6=3th?484?:583>5}#9j81j:5G4808L1>03-;;47;4i5494?=n=90;66g>b583>>i6j<0;66sm49694?2=83:p(3;6*>0986?l212900e8>50;9j5g2=831d=o;50;9~f4c3290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb0g2>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f4c7290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb0fg>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f4bd290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<=6=4;:183!7d:3l>7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?:::187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb367>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f724290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<96=4;:183!7d:3l>7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?:>:187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb363>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f75a290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?6j:187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb3:g>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f7>d290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?6n:187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb3::>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f7>?290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?69:187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb30`>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f74e290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?<6:187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb30;>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f740290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?<::187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb307>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f71d290?6=4?{%3`6?`23A>2>6F;869K07=#94=n50z&2g76876;%33>o283:17b?m5;29?xd5?h0;694?:1y'5f4=n<1C84<4H5:4?M253-;>97;69:&24=<63`>=6=44i5a94?=n=90;66a>b483>>{e:>31<7:50;2x 4e52o?0D97=;I6;3>N3:2.:984:989'55>=92c?:7>5;h6`>5<7E:62:J7<2=O<;1/=8;558;8 46?281b8;4?::k7g?6=3`?;6=44o0`6>5<54;294~"6k;0m96F;939K0=1<@=80(<;::4;:?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9;;4?:583>5}#9j81j85G4808L1>03A>97)?:5;7:=>"6810:7d:9:188m1e=831b9=4?::m2f0<722wi>:;50;694?6|,8i96k;4H5;1?M2??2B?>6*>5486=<=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?9;:187>5<7s-;h>7h:;I6:6>N30>1C8?5+14791>o3k3:17d;?:188k4d22900qo<>a;290?6=8r.:o?4i5:J7=7=O<1=0D9<4$076>0?>3-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7E:=;%361?3>12.:<54>;h65>5<>i6j<0;66sm20:94?2=83:p(3;6F;2:&210<2101/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb334>5<3290;w)?l2;d6?M2>:2B?4:5G439'503==030(<>7:09j03<722c?o7>5;h73>5<6=44}c022?6=<3:1c38e1>N31;1C8594H508 4322<327)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`150<72=0;6=u+1b09b0=O<080D968;I61?!72=3?256*>0982?l212900e9m50;9j15<722e:n84?::a642=83>1<7>t$0a1>c3<@=397E:77:J76>"6=<0>545+11:95>o3>3:17d:l:188m06=831d=o;50;9~f774290?6=4?{%3`6?`23A>2>6F;869K07=#94=n50z&2g76876;%33>o283:17b?m5;29?xd5810;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9<:4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`140<72=0;6=u+1b09b0=O<080D968;%33>o283:17b?m5;29?xd58=0;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9<>4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`144<72=0;6=u+1b09b0=O<080D968;%33>o283:17b?m5;29?xd5890;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9:l4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`12=<72=0;6=u+1b09b0=O<080D968;%33>o283:17b?m5;29?xd5>>0;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9:;4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`121<72=0;6=u+1b09b0=O<080D968;%33>o283:17b?m5;29?xd5>:0;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9:?4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n0<729q/=n<5f79K0<4<@=2<7)??8;38m10=831b8:4?::k7g?6=3`?;6=44o0`6>5<55;294~"6k;0m:6F;939K0=1<,8:36<5f4783>>o3?3:17d:l:188m06=831d=o;50;9~f665290>6=4?{%3`6?`13A>2>6F;869'55>=92c?:7>5;h64>5<>i6j<0;66sm31394?3=83:p(3;6*>0982?l212900e9950;9j0f<722c><7>5;n3a1?6=3th8<=4?:483>5}#9j81j;5G4808L1>03-;;47?4i5494?=n<>0;66g;c;29?l372900c50z&2g72B?5?5G4958 46?281b8;4?::k73?6=3`>h6=44i4294?=h9k?1<75rb3dg>5<2290;w)?l2;d5?M2>:2B?4:5+11:95>o3>3:17d:8:188m1e=831b9=4?::m2f0<722wi>km50;794?6|,8i96k64H5;1?M2??2.:<54:;h65>5<>o6j=0;66a>b483>>{e:oo1<7;50;2x 4e52o<0D97=;I6;3>"6810:7d:9:188m11=831b8n4?::k64?6=3f;i97>5;|`1b4<72:0;6=u+1b090<7<@=397E:77:k7=?6=3`;?n7>5;n3ba?6=3th9j=4?:283>5}#9j8184?4H5;1?M2??2c?57>5;h37f?6=3f;ji7>5;|`1a2<72=0;6=u+1b09500<@=397E:77:k7=?6=3`?96=44i0`a>5<c387=4=O<080D968;h6:>5<i6=44o0cf>5<54;294~"6k;0:9;5G4808L1>03`>26=44i4094?=n9kh1<75`1`g94?=zj;on6=4<:183!7d:3>2=6F;939K0=15<3290;w)?l2;362>N31;1C8594i5;94?=n=;0;66g>bc83>>i6il0;66sm2df94?5=83:p(:2B?4:5f4883>>o6ad83>>{e:l;1<7:50;2x 4e528?=7E:62:J7<2=n<00;66g:2;29?l7ej3:17b?ne;29?xd5mj0;6>4?:1y'5f4=<0;0D97=;I6;3>o313:17d?;b;29?j7fm3:17pl=dg83>1<729q/=n<51448L1?53A>3;6g;9;29?l352900e50z&2g7<6=?1C84<4H5:4?l2>2900e8<50;9j5gd=831d=lk50;9~f7cf29086=4?{%3`6?2>92B?5?5G4958m1?=831b=9l50;9l5dc=831vn?jm:187>5<7s-;h>7?:6:J7=7=O<1=0e9750;9j17<722c:no4?::m2e`<722wi>h750;194?6|,8i9697>;I6:6>N30>1b844?::k20g<722e:mh4?::a6a?=83>1<7>t$0a1>4313A>2>6F;869j0<<722c>>7>5;h3af?6=3f;ji7>5;|`053<72<0;6=u+1b09b3=O<080D968;%33>o3k3:17d;?:188k4d22900qo=>5;291?6=8r.:o?4i6:J7=7=O<1=0(<>7:09j03<722c?;7>5;h6`>5<t$0a1>c0<@=397E:77:&24=<63`>=6=44i5594?=n0<729q/=n<5f79K0<4<@=2<7)??8;38m10=831b8:4?::k7g?6=3`?;6=44o0`6>5<55;294~"6k;0m:6F;939K0=1<,8:36<5f4783>>o3?3:17d:l:188m06=831d=o;50;9~f677290>6=4?{%3`6?`13A>2>6F;869'55>=92c?:7>5;h64>5<>i6j<0;66sm31d94?3=83:p(3;6*>0982?l212900e9950;9j0f<722c><7>5;n3a1?6=3th85}#9j81j;5G4808L1>03-;;47?4i5494?=n<>0;66g;c;29?l372900c50z&2g75;n3a1?6=3th9m?4?:583>5}#9j81j:5G4808L1>03-;;47;4i5494?=n=90;66g>b583>>i6j<0;66sm28a94?2=83:p(3;6*>0982?l212900e9m50;9j15<722e:n84?::a61<7>t$0a1>c3<@=397E:77:&24=<63`>=6=44i5a94?=n=90;66a>b483>>{e;::1<7=50;2x 4e52=3:7E:62:J7<2=n<00;66g>4c83>>i6il0;66sm33d94?5=83:p(:2B?4:5f4883>>o6ad83>>{e;;:1<7:50;2x 4e528?=7E:62:J7<2=n<00;66g:2;29?l7ej3:17b?ne;29?xd4:l0;6>4?:1y'5f4=<0;0D97=;I6;3>o313:17d?;b;29?j7fm3:17pl<1g83>1<729q/=n<51448L1?53A>3;6g;9;29?l352900e50z&2g7<6=?1C84<4H5:4?l2>2900e8<50;9j5gd=831d=lk50;9~f64d29086=4?{%3`6?2>92B?5?5G4958m1?=831b=9l50;9l5dc=831vn>?k:187>5<7s-;h>7?:6:J7=7=O<1=0e9750;9j17<722c:no4?::m2e`<722wi??l50;194?6|,8i9697>;I6:6>N30>1b844?::k20g<722e:mh4?::a74e=83>1<7>t$0a1>4313A>2>6F;869j0<<722c>>7>5;h3af?6=3f;ji7>5;|`06d<72:0;6=u+1b090<7<@=397E:77:k7=?6=3`;?n7>5;n3ba?6=3th8=o4?:583>5}#9j81=884H5;1?M2??2c?57>5;h71>5<5<54;294~"6k;0:9;5G4808L1>03`>26=44i4094?=n9kh1<75`1`g94?=zj:;26=4;:183!7d:3;>:6F;939K0=1>o6jk0;66a>ad83>>{e;821<7:50;2x 4e528?=7E:62:J7<2=n<00;66g:2;29?l7ej3:17b?ne;29?xd4;l0;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th8?i4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`07g<72=0;6=u+1b09b0=O<080D968;%33>o283:17b?m5;29?xd4;h0;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th8?44?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`003<72<0;6=u+1b09b==O<080D968;%33>o283:17d?m4;29?j7e=3:17pl=c183>1<729q/=n<51448L1?53A>3;6g;9;29?l352900e579K0<4<@=2<7d:6:188m04=831b=ol50;9l5dc=831vn?lj:187>5<7s-;h>7?:6:J7=7=O<1=0e9750;9j17<722c:no4?::m2e`<722wi>oj50;694?6|,8i96<;9;I6:6>N30>1b844?::k66?6=3`;in7>5;n3ba?6=3th9nn4?:583>5}#9j81=884H5;1?M2??2c?57>5;h71>5<5<54;294~"6k;0:9;5G4808L1>03`>26=44i4094?=n9kh1<75`1`g94?=zj;kh6=4;:183!7d:3;>:6F;939K0=1>o6jk0;66a>ad83>>{e:hh1<7:50;2x 4e528?=7E:62:J7<2=n<00;66g:2;29?l7ej3:17b?ne;29?xd5ih0;694?:1y'5f4=9<<0D97=;I6;3>o313:17d;=:188m4de2900c50z&2g7<6=?1C84<4H5:4?l2>2900e8<50;9j5gd=831d=lk50;9~f6b5290>6=4?{%3`6?`13A>2>6F;869'55>=92c?:7>5;h64>5<>i6j<0;66sm3e294?3=83:p(3;6*>0982?l212900e9950;9j0f<722c><7>5;n3a1?6=3th8h<4?:483>5}#9j81j55G4808L1>03-;;47;4i5494?=n<>0;66g:0;29?l7e<3:17b?m5;29?xd4l:0;684?:1y'5f4=n?1C84<4H5:4?!7703;0e9850;9j02<722c?o7>5;h73>5<6=44}c1g0?6==3:1c38e2>N31;1C8594$02;>4=n50;9l5g3=831vn>j::186>5<7s-;h>7h9;I6:6>N30>1/==651:k72?6=3`><6=44i5a94?=n=90;66a>b483>>{e;m<1<7;50;2x 4e52o<0D97=;I6;3>"6810:7d:9:188m11=831b8n4?::k64?6=3f;i97>5;|`0`2<72<0;6=u+1b09b3=O<080D968;%33>o3k3:17d;?:188k4d22900qo=k8;291?6=8r.:o?4i6:J7=7=O<1=0(<>7:09j03<722c?;7>5;h6`>5<t$0a1>c><@=397E:77:&24=<23`>=6=44i5594?=n=90;66g>b583>>i6j<0;66sm3d194?3=83:p(3;6*>0982?l212900e9950;9j0f<722c><7>5;n3a1?6=3th8i84?:483>5}#9j81j;5G4808L1>03-;;47?4i5494?=n<>0;66g;c;29?l372900c3:197>50z&2g72B?5?5G4958 46?281b8;4?::k73?6=3`>h6=44i4294?=h9k?1<75rb2g4>5<2290;w)?l2;d5?M2>:2B?4:5+11:95>o3>3:17d:8:188m1e=831b9=4?::m2f0<722wi?h650;794?6|,8i96k84H5;1?M2??2.:<54>;h65>5<>o283:17b?m5;29?xd4m00;684?:1y'5f4=n?1C84<4H5:4?!7703;0e9850;9j02<722c?o7>5;h73>5<6=44}c1fe?6==3:1c38e2>N31;1C8594$02;>4=n50;9l5g3=831vn>m9:186>5<7s-;h>7h9;I6:6>N30>1/==651:k72?6=3`><6=44i5a94?=n=90;66a>b483>>{e;j?1<7;50;2x 4e52o<0D97=;I6;3>"6810:7d:9:188m11=831b8n4?::k64?6=3f;i97>5;|`0g6<72<0;6=u+1b09b3=O<080D968;%33>o3k3:17d;?:188k4d22900qo=l2;291?6=8r.:o?4i6:J7=7=O<1=0(<>7:09j03<722c?;7>5;h6`>5<t$0a1>c0<@=397E:77:&24=<63`>=6=44i5594?=n0<729q/=n<5f99K0<4<@=2<7)??8;78m10=831b8:4?::k64?6=3`;i87>5;n3a1?6=3th8o<4?:483>5}#9j81j;5G4808L1>03-;;47?4i5494?=n<>0;66g;c;29?l372900c50z&2g75<6=44}c1a7?6=;3:1c387=4=O<080D968;h6:>5<i6=44o0cf>5<7>53;294~"6k;0?5<5G4808L1>03`>26=44i06a>5<c38213=O<080D968;h6:>5<5<4290;w)?l2;6:5>N31;1C8594i5;94?=n9=h1<75`1`g94?=zj:k<6=4;:183!7d:3;>:6F;939K0=1>o6jk0;66a>ad83>>{e;k:1<7=50;2x 4e52=3:7E:62:J7<2=n<00;66g>4c83>>i6il0;66sm3`794?2=83:p(:2B?4:5f4883>>o2:3:17d?mb;29?j7fm3:17pl6<729q/=n<54838L1?53A>3;6g;9;29?l73j3:17b?ne;29?xd4i:0;694?:1y'5f4=9<<0D97=;I6;3>o313:17d;=:188m4de2900c50z&2g7<3181C84<4H5:4?l2>2900e<:m:188k4gb2900qo=n1;290?6=8r.:o?4>579K0<4<@=2<7d:6:188m04=831b=ol50;9l5dc=831vn>ok:180>5<7s-;h>7:61:J7=7=O<1=0e9750;9j51d=831d=lk50;9~f6?a290?6=4?{%3`6?72>2B?5?5G4958m1?=831b9?4?::k2fg<722e:mh4?::a7de=8391<7>t$0a1>1?63A>2>6F;869j0<<722c:8o4?::m2e`<722wi?4j50;694?6|,8i96<;9;I6:6>N30>1b844?::k66?6=3`;in7>5;n3ba?6=3th8mo4?:283>5}#9j8184?4H5;1?M2??2c?57>5;h37f?6=3f;ji7>5;|`0=g<72=0;6=u+1b09500<@=397E:77:k7=?6=3`?96=44i0`a>5<c38e2>N31;1C8594$02;>4=n50;9l5g3=831vn>hm:186>5<7s-;h>7h9;I6:6>N30>1/==651:k72?6=3`><6=44i5a94?=n=90;66a>b483>>{e;ok1<7;50;2x 4e52o<0D97=;I6;3>"6810:7d:9:188m11=831b8n4?::k64?6=3f;i97>5;|`0b<<72<0;6=u+1b09b3=O<080D968;%33>o3k3:17d;?:188k4d22900qo=i8;291?6=8r.:o?4i6:J7=7=O<1=0(<>7:09j03<722c?;7>5;h6`>5<t$0a1>c0<@=397E:77:&24=<63`>=6=44i5594?=n0<729q/=n<5f79K0<4<@=2<7)??8;38m10=831b8:4?::k7g?6=3`?;6=44o0`6>5<55;294~"6k;0m:6F;939K0=1<,8:36<5f4783>>o3?3:17d:l:188m06=831d=o;50;9~f637290?6=4?{%3`6?72>2B?5?5G4958m1?=831b9?4?::k2fg<722e:mh4?::a707=83>1<7>t$0a1>4313A>2>6F;869j0<<722c>>7>5;h3af?6=3f;ji7>5;|`017<72=0;6=u+1b09500<@=397E:77:k7=?6=3`?96=44i0`a>5<c38213=O<080D968;h6:>5<5<3290;w)?l2;362>N31;1C8594i5;94?=n=;0;66g>bc83>>i6il0;66sm37194?2=83:p(:2B?4:5f4883>>o2:3:17d?mb;29?j7fm3:17pl<6583>1<729q/=n<51448L1?53A>3;6g;9;29?l352900e579K0<4<@=2<7d:6:188m04=831b=ol50;9l5dc=831vn>89:187>5<7s-;h>7?:6:J7=7=O<1=0e9750;9j17<722c:no4?::m2e`<722wi?;950;694?6|,8i96<;9;I6:6>N30>1b844?::k66?6=3`;in7>5;n3ba?6=3th8;44?:583>5}#9j81=884H5;1?M2??2c?57>5;h71>5<5<54;294~"6k;0:9;5G4808L1>03`>26=44i4094?=n9kh1<75`1`g94?=zj:=i6=4;:183!7d:3;>:6F;939K0=1>o6jk0;66a>ad83>>{e;>i1<7:50;2x 4e528?=7E:62:J7<2=n<00;66g:2;29?l7ej3:17b?ne;29?xd4?m0;694?:1y'5f4=9<<0D97=;I6;3>o313:17d;=:188m4de2900c50z&2g75;n3a1?6=3th84i4?:583>5}#9j81j:5G4808L1>03-;;47;4i5494?=n=90;66g>b583>>i6j<0;66sm39:94?3=83:p(3;6*>0986?l212900e9950;9j15<722c:n94?::m2f0<722wi8>h50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<:o1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a06b=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm42a94?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8>l50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<:k1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a06>=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm42594?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8>850;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<:?1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a062=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm42194?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8><50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<:;1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a066=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm43d94?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8?j50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<;i1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a07d=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm43c94?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8?750;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<;21<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a071=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm43494?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8?;50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<;>1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a013=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm45694?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi89=50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<=81<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a017=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm45294?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8>750;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<;o1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a075=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm43094?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi85?50;194?6|,8i96<;?;I6:6>N30>1/==65119jbf<722cmh7>5;n3ba?6=3th?;>4?:283>5}#9j81=8>4H5;1?M2??2.:<54>0:keg?6=3`lo6=44o0cf>5<53;294~"6k;0:9=5G4808L1>03-;;47?8;hd`>5<<6F;939K0=1<,8:36<94iga94?=nnm0;66a>ad83>>{e9m81<7=50;2x 4e528?;7E:62:J7<2=#9921=:5ffb83>>oal3:17b?ne;29?xd6l80;6>4?:1y'5f4=9<:0D97=;I6;3>"6810:;6gic;29?l`c2900c50z&2g7<6=91C84<4H5:4?!7703;<7dhl:188mcb=831d=lk50;9~f4ea29086=4?{%3`6?7282B?5?5G4958 46?28=0ekm50;9jba<722e:mh4?::a5fc=8391<7>t$0a1>4373A>2>6F;869'55>=9>1bjn4?::ke`?6=3f;ji7>5;|`2ga<72:0;6=u+1b09506<@=397E:77:&24=<6?2cmo7>5;hdg>5<c38215=O<080D968;%335<4290;w)?l2;364>N31;1C8594$02;>41>i6il0;66sm1bc94?5=83:p(:2B?4:5+11:952=nnj0;66gid;29?j7fm3:17pl>c883>6<729q/=n<51428L1?53A>3;6*>09823>oak3:17dhk:188k4gb2900qo?l8;297?6=8r.:o?4>519K0<4<@=2<7)??8;34?l`d2900ekj50;9l5dc=831vn5<7s-;h>7?:0:J7=7=O<1=0(<>7:058mce=831bji4?::m2e`<722wi=n850;194?6|,8i96<;?;I6:6>N30>1/==65169jbf<722cmh7>5;n3ba?6=3th:o84?:283>5}#9j81=8>4H5;1?M2??2.:<54>7:keg?6=3`lo6=44o0cf>5<53;294~"6k;0:9=5G4808L1>03-;;47?8;hd`>5<<6F;939K0=1<,8:36<94iga94?=nnm0;66a>ad83>>{e:h:1<7:50;2x 4e528?:7E:62:J7<2=#9921j<5ffb83>>oal3:17dhj:188k4gb2900qo<;a;290?6=8r.:o?4>509K0<4<@=2<7)??8;3e?l`d2900ekj50;9jb`<722e:mh4?::a5`>=83>1<7>t$0a1>4363A>2>6F;869'55>=9o1bjn4?::ke`?6=3`ln6=44o0cf>5<55;294~"6k;0:9?5G4808L1>03-;;47?>;hd`>5<>oan3:17b?ne;29?xd5"6810:56gic;29?l`c2900ekk50;9jbc<722e:mh4?::a5`g=83?1<7>t$0a1>4353A>2>6F;869'55>=901bjn4?::ke`?6=3`ln6=44igd94?=h9ho1<75rb3c7>5<2290;w)?l2;366>N31;1C8594$02;>4e>oam3:17dhi:188k4gb2900qo=7b;297?6=8r.:o?4>519K0<4<@=2<7)??8;60?l`d2900ekj50;9l5dc=831vn?77:187>5<7s-;h>7?:1:J7=7=O<1=0(<>7:3a8mce=831bji4?::kea?6=3f;ji7>5;|`00=<72<0;6=u+1b09504<@=397E:77:&24=<6j2cmo7>5;hdg>5<>i6il0;66sm35;94?5=83:p(:2B?4:5+11:95d=nnj0;66gid;29?j7fm3:17pl=4d83>6<729q/=n<51428L1?53A>3;6*>09823>oak3:17dhk:188k4gb2900qo?jc;297?6=8r.:o?4>519K0<4<@=2<7)??8;34?l`d2900ekj50;9l5dc=831vn?;?:187>5<7s-;h>7?:1:J7=7=O<1=0(<>7:0d8mce=831bji4?::kea?6=3f;ji7>5;|`2a`<72=0;6=u+1b09507<@=397E:77:&24=<6n2cmo7>5;hdg>5<>6F;939K0=1<,8:36<74iga94?=nnm0;66gie;29?l`a2900c50z&2g7<6=;1C84<4H5:4?!7703;27dhl:188mcb=831bjh4?::keb?6=3f;ji7>5;|`72f<72=0;6=u+1b09507<@=397E:77:&24=<292cmo7>5;hdg>5<>6F;939K0=1<,8:3655ffb83>>oal3:17dhj:188mc`=831d=lk50;9~f6>029086=4?{%3`6?7282B?5?5G4958 46?28n0ekm50;9jba<722e:mh4?::a727=8391<7>t$0a1>4373A>2>6F;869'55>=9m1bjn4?::ke`?6=3f;ji7>5;|`01`<72:0;6=u+1b09506<@=397E:77:&24=<6l2cmo7>5;hdg>5<c38215=O<080D968;%335<4290;w)?l2;364>N31;1C8594$02;>4b>i6il0;66sm39494?3=83:p(:2B?4:5+11:95`=nnj0;66gid;29?l`b2900ekh50;9l5dc=831vn>9?:186>5<7s-;h>7?:2:J7=7=O<1=0(<>7:0g8mce=831bji4?::kea?6=3`lm6=44o0cf>5<h7>55;294~"6k;0:9?5G4808L1>03-;;47?j;hd`>5<>oan3:17b?ne;29?xd5k00;684?:1y'5f4=9<80D97=;I6;3>"6810:i6gic;29?l`c2900ekk50;9jbc<722e:mh4?::a6g0=83?1<7>t$0a1>4353A>2>6F;869'55>=9l1bjn4?::ke`?6=3`ln6=44igd94?=h9ho1<75rb2:6>5<2290;w)?l2;366>N31;1C8594$02;>4c>oam3:17dhi:188k4gb2900qo=9f;291?6=8r.:o?4>539K0<4<@=2<7)??8;3f?l`d2900ekj50;9jb`<722cmj7>5;n3ba?6=3th89n4?:483>5}#9j81=8<4H5;1?M2??2.:<54>e:keg?6=3`lo6=44igg94?=nno0;66a>ad83>>{e:j21<7;50;2x 4e528?97E:62:J7<2=#9921=h5ffb83>>oal3:17dhj:188mc`=831d=lk50;9~f7d2290>6=4?{%3`6?72:2B?5?5G4958 46?28o0ekm50;9jba<722cmi7>5;hde>5<c38217=O<080D968;%330<729q/=n<51408L1?53A>3;6*>0982a>oak3:17dhk:188mcc=831bjk4?::m2e`<722wi?8l50;794?6|,8i96<;=;I6:6>N30>1/==651d9jbf<722cmh7>5;hdf>5<>6F;939K0=1<,8:3650z&2g7<6=;1C84<4H5:4?!7703;n7dhl:188mcb=831bjh4?::keb?6=3f;ji7>5;|`1gc<72=0;6=u+1b09507<@=397E:77:&24=5;hdg>5<>6F;939K0=1<,8:36<84iga94?=nnm0;66gie;29?l`a2900c50z&2g7<6=;1C84<4H5:4?!7703;=7dhl:188mcb=831bjh4?::keb?6=3f;ji7>5;|`0<6<72<0;6=u+1b09504<@=397E:77:&24=<6m2cmo7>5;hdg>5<>i6il0;66sm37f94?3=83:p(:2B?4:5+11:95`=nnj0;66gid;29?l`b2900ekh50;9l5dc=831vn>;n:186>5<7s-;h>7?:2:J7=7=O<1=0(<>7:0g8mce=831bji4?::kea?6=3`lm6=44o0cf>5<55;294~"6k;0:9?5G4808L1>03-;;47?j;hd`>5<>oan3:17b?ne;29?xd5j:0;684?:1y'5f4=9<80D97=;I6;3>"6810:i6gic;29?l`c2900ekk50;9jbc<722e:mh4?::a603=8391<7>t$0a1>4373A>2>6F;869'55>=9m1bjn4?::ke`?6=3f;ji7>5;|`2b6<72:0;6=u+1b09506<@=397E:77:&24=<6l2cmo7>5;hdg>5<c38214=O<080D968;%33ad83>>{e9o<1<7:50;2x 4e528?:7E:62:J7<2=#9921=55ffb83>>oal3:17dhj:188k4gb2900qo=60;297?6=8r.:o?4>519K0<4<@=2<7)??8;58mce=831bji4?::m2e`<722wi>h650;094?6|,8i96<:i;I6:6>N30>1/==657:keg?6=3f;ji7>5;|`1a3<72;0;6=u+1b0951`<@=397E:77:&24=<03`lh6=44o0cf>5<52;294~"6k;0:8k5G4808L1>03-;;4794iga94?=h9ho1<75rb3g1>5<5290;w)?l2;37b>N31;1C8594$02;>2=nnj0;66a>ad83>>{e:l:1<7<50;2x 4e528>m7E:62:J7<2=#9921;6gic;29?j7fm3:17pl=dd83>7<729q/=n<515d8L1?53A>3;6*>0984?l`d2900c7>50z&2g7<65<7s-;h>7?;f:J7=7=O<1=0(<>7:69jbf<722e:mh4?::a7dg=8381<7>t$0a1>42a3A>2>6F;869'55>=?2cmo7>5;n3ba?6=3th8m54?:383>5}#9j81=9h4H5;1?M2??2.:<548;hd`>5<c3820c=O<080D968;%33>i6il0;66sm3`094?4=83:p(:2B?4:5+11:93>oak3:17b?ne;29?xd4i90;6?4?:1y'5f4=9=l0D97=;I6;3>"6810<7dhl:188k4gb2900qo=6e;296?6=8r.:o?4>4g9K0<4<@=2<7)??8;58mce=831d=lk50;9~f6?d29096=4?{%3`6?73n2B?5?5G4958 46?2>1bjn4?::m2e`<722wi>k<50;094?6|,8i96<:i;I6:6>N30>1/==657:keg?6=3f;ji7>5;|`0f1<72;0;6=u+1b0951`<@=397E:77:&24=<03`lh6=44o0cf>5<53;294~"6k;0:9=5G4808L1>03-;;47?k;hd`>5<<6F;939K0=1<,8:36ad83>>{e;;91<7=50;2x 4e528?;7E:62:J7<2=#9921=i5ffb83>>oal3:17b?ne;29?xd4:=0;6>4?:1y'5f4=9<:0D97=;I6;3>"6810:h6gic;29?l`c2900c50z&2g7<6=91C84<4H5:4?!7703;o7dhl:188mcb=831d=lk50;9~f64129086=4?{%3`6?7282B?5?5G4958 46?28n0ekm50;9jba<722e:mh4?::a771=8391<7>t$0a1>4373A>2>6F;869'55>=9m1bjn4?::ke`?6=3f;ji7>5;|`06=<72:0;6=u+1b09506<@=397E:77:&24=<6l2cmo7>5;hdg>5<c38215=O<080D968;%335<4290;w)?l2;364>N31;1C8594$02;>2=nnj0;66gid;29?j7fm3:17pl<4`83>0<729q/=n<51468L1?53A>3;6*>0987?l`d2900ekj50;9jb`<722cmj7>5;n37g?6=3th9994?:783>5}#9j81=8=4H5;1?M2??2.:<54=0:keg?6=3`lo6=44igg94?=nno0;66a>4b83>>i6il0;66sm1g094?0=83:p(:2B?4:5+11:965=nnj0;66gid;29?l`b2900ekh50;9l51e=831d=lk50;9~f10f290jm7>50zJ7<2=#9j81=o94Z579e~462;8157o513827?d=k3;?6<;5}%37e?4<,8:;6>5+11397>"68;087)??3;18 4632:1/==;53:&243<43-om6k=4$02:>6=#99k1?6*>0c80?!77k390(<>k:29'55c=;2.:5+10097>"69:087)?>4;18 4722:1/=<853:&252<43-;:47=4$03:>6=#98k1?6*>1c80?!76k390(5+13097>"6::087)?=4;18 4422:1/=?853:&262<43-;947=4$00:>6=#9;k1?6*>2c80?!75k390(<k4<;%304?5<,89:6>5+12097>"6;:087)?<4;18 4522:1/=>853:&272<43-;847=4$01:>6=#9:k1?6*>3c80?!74k390(<=k:29'56c=;2.:?k4<;%374?5<,8>:6>5+15097>"6<:087)?;4;18 4222:1/=9853:&202<43-;?47=4$06:>7=#9ki18<5+11597>"6jl097):7c;3a<>"30m0:n55ac183?kc5291e=o75259m5gg=:=1e85k5259m0=`=:=1/j=4i3:&2fc<53`>j6=44i5`94?=n<1k1<75fed83>>o>i3:1(:188m60=83.:n>4<5:l2f7<732c887>5$0`0>63b381?>o4:3:1(?50;&2f6<4=2d:n?4;;:k04?6=,8h86>;4n0`1>0=b2801>h6j;0=76g=e;29 4d42:?0b4<5:l2f75$0`0>6`b382?>o4l3:1(m50;&2f6<4n2d:n?4<;:k0f?6=,8h86>h4n0`1>1=b280b>h6j;0>76g<9;29 4d42:l0b=83.:n>45$0`0>6`b383?>o1i3:1(6=b285f>h6j;0?76g95;29 4d42?h0b49b:l2f7<132c=?7>5$0`0>3db38;?>o193:1(50;&2f6<1j2d:n?4n;:k6b?6=,8h86;l4n0`1>g=b285f>h6j;0h76g:c;29 4d42?h0b49b:l2f7m7>5$0`0>3db3824>=n=10;6)?m3;4a?k7e:3;:76g:7;29 4d42?h0b4:9j11<72-;i?78m;o3a6?7232c5$0`0>3d5<#9k91:o5a1c0952=;1<7*>b285f>h6j;0:465f7183>!7e;3o1n3:1(k1e=o<51c98m3b=83.:n>49b:l2f7<6k21b:44?:%3a7?0e3g;i>7?k;:k6a?6=,8h86;l4n0`1>4c<3`?86=4+1c192g=i9k81=k54i8;94?"6j:0246`>b383?>o>?3:1(02d:n?4=;:k:1?6=,8h86464n0`1>6=b28g=>h6j;0;76ak8;29 4d42m30b4k9:l2f7<532eo97>5$0`0>a?54oe694?"6j:0o56`>b387?>ic;3:1(2=b28g=>h6j;0376alf;29 4d42m30b4k9:l2f75$0`0>a?b38`?>idi3:1(c=b28g=>h6j;0:<65`c783>!7e;3n27c?m2;32?>id=3:1(4k9:l2f7<6<21do?4?:%3a7?b>3g;i>7?:;:mf5?6=,8h86i74n0`1>40<3fo;6=4+1c19`<=i9k81=:54oed94?"6j:0o56`>b382<>=hll0;6)?m3;f:?k7e:3;276akd;29 4d42m30bc:9l`2<72-;i?7j6;o3a6?7c32eho7>5$0`0>a?5<#9k91h45a1c095c=b28ff>h6j;0;76aja;29 4d42lh0b4jb:l2f7<532en47>5$0`0>`d54idf94?=n9j:1<75f49`94?=n0m0;6)?m3;:`?k7e:3:07d6m:18'5g5=0j1e=o<51:9j<<<72-;i?76l;o3a6?4<3`236=4+1c19!7e;32h7c?m2;68?l>1290/=o=58b9m5g4==21b484?:%3a7?>d3g;i>784;h:7>5<#9k914n5a1c093>=n0:0;6)?m3;:`?k7e:3207d6=:18'5g5=0j1e=o<59:9j<4<72-;i?76l;o3a6?g<3`2;6=4+1c19!7e;32h7c?m2;a8?l1c290/=o=58b9m5g4=l21b;n4?:%3a7?>d3g;i>7k4;h5a>5<#9k914n5a1c09b>=n?h0;6)?m3;:`?k7e:3;;76g89;29 4d421i0b3:9j33<72-;i?76l;o3a6?7332c<97>5$0`0>=e5<#9k914n5a1c0953=b28;g>h6j;0:;65f9383>!7e;32h7c?m2;3;?>o>93:1(47c:l2f7<6j21b4h4?:%3a7?>d3g;i>7?l;:k;e?6=,8h865m4n0`1>4b<3`=m6=4+1c19b382b>=n1l0;6)?m3;;g?k7e:3:07d7l:18'5g5=1m1e=o<51:9j=g<72-;i?77k;o3a6?4<3fh36=4+1c19f2=i9k81<65`b783>!7e;3h<7c?m2;38?jd3290/=o=5b69m5g4=:21dn>4?:%3a7?d03g;i>7=4;n`1>5<#9k91n:5a1c090>=hj80;6)?m3;`4?k7e:3?07bl?:18'5g5=j>1e=o<56:9lec<72-;i?7l8;o3a6?1<3fkn6=4+1c19f2=i9k81465`ae83>!7e;3h<7c?m2;;8?jgd290/=o=5b69m5g4=i21dmo4?:%3a7?d03g;i>7l4;nc:>5<#9k91n:5a1c09g>=hi10;6)?m3;`4?k7e:3n07bo8:18'5g5=j>1e=o<5e:9le3<72-;i?7l8;o3a6?`<3fk>6=4+1c19f2=i9k81==54o`694?"6j:0i;6`>b3825>=hi:0;6)?m3;`4?k7e:3;976an2;29 4d42k=0b50;&2f65:9lfc<72-;i?7l8;o3a6?7132eii7>5$0`0>g15<#9k91n:5a1c095==b28a3>h6j;0:565`bc83>!7e;3h<7c?m2;3b?>iei3:1(1e=o<51b98kg3=83.:n>4m7:l2f7<6l21dml4?:%3a7?d03g;i>7?j;:m:b?6=,8h86o94n0`1>4`<3fo<6=4+1c19a3=i9k81<65`e483>!7e;3o=7c?m2;38?jc3290/=o=5e79m5g4=:21di>4?:%3a7?c13g;i>7=4;|q6=6<72?qU94=4=3c3>cb<5;3n6km4=3c7>c`<5;336kk4=3;4>ce57by]0d?X2<01U8l94^5c5?[2f=2T?m95Q4`18Z1g53W>j=6P;a19]0<`X2i91U94h4^4;f?[3>82T>4k5Q59g8Z0>c3W?3o6P:8c9]1=g4:2:?1a4<2:279hk4:2:?1`a<2:279ho4:2:?1`<<2:278=54>bc9>6f6==;16>oh5539>6gc==;16>oj5539>6ge==;16>lj5539>6de==;16>ll5539>6dg==;16>l75539>7d?==;16?l95539>7d3==;16?l=5539>7d7==;16?4h5539>7706==;16?8?5539>704==;16?8=5539>702==;16?;=5539>732==;16?;;5539>730==;16?;95539>72?==;16?:o5539>72d==;16?:m5539>72b==;168;o59`9>03g=9j:0198n:5:a?821i32o70:9a;:a?821i32270:9a;:;?821i32<70:9a;:5?821i32>70:9a;:7?821i32870:9a;:1?821i32:70:9a;:3?821i3=n70:9a;5g?821i3=h70:9a;5a?821i3=j70:9a;5:?821i3=370:9a;54?821i3==70:9a;56?821i33?70:9a;;0?821i33970:9a;;2?821i33;70:9a;:e?821i32n70:9a;:b?821i3=m70:9a;57?821i33n70:9a;;`?821i33i7p}<8983>7}Y<0h01>67:0`6?xu21<0;6:uQ5878910b2=i0199l:0`7?820j3;i863;7e82f1=:4d33ty9m?4?:3y]16b<5;k96ce<5:3:6km4}r7;3?6=>>qU9594=3ag>10<5==:6984=553>10<5=10<5==36984=554>10<5;>=6984=366>10<5;>?6984=360>10<5;>96984=362>10<5;>;6984=31e>10<5;9n6984=3:f>10<5;2o6984=3:`>10<5;2i6984=3:b>10<5;226984=3:;>10<5;2<6984=3:5>10<5;=h6984=35a>10<5;=j6984=35:>10<5;=36984=354>10<5;==6984=356>10<5;=?6984=32;>10<5;:<6984=325>10<5;:>6984=327>10<5;:86984=321>10<5;::6984=323>10<5::?6984=220>10<5::96984=222>10<5::;6984=3de>10<5;lo6984=3d`>10<5;ln6984=235>10<5:;>6984=237>10<5:;86984=231>10<5:;:6984=233>10<5::m6984=22f>10<5;k:6984=3c1>10<5;3h6984=3;a>10<5=9m6984=51f>10<5=9o6984=51`>10<5=9i6984=51b>10<5=936984=514>10<5=9=6984=516>10<5=9?6984=510>10<5=996984=512>10<5=9;6984=50e>10<5=8o6984=50`>10<5=8i6984=50b>10<5=826984=50;>10<5=8<6984=505>10<5=8>6984=507>10<5=>>6984=567>10<5=>86984=561>10<5=>:6984=563>10<5=926984=50f>10<5=886984=501>10<5=8>5239f95g355dy]110<5==m6984=55a>10<5==o6984=55f>10<5==j6984=5:6>10<5=2?6984=0g7>10<58o86984=0g1>10<58o:6984=0g3>10<58nm6984=0ff>10<58no6984=0f`>10<5;8h6984=30a>10<5;8j6984=30:>10<5;836984=304>10<5;8=6984=306>10<5;8?6984=33b>10<5;;26984=33;>10<5;;<6984=335>10<5;;>6984=337>10<5;;86984=331>10<5;10<5;<36984=344>10<5;<=6984=346>10<5;10<5;<96984=21f>10<5:9o6984=21`>10<5:9i6984=21b>10<5:926984=21;>10<5:>=6984=2f1>10<5:n;6984=2f2>10<5:n86984=2f7>10<5:n>6984=2f5>10<5:n<6984=2f;>10<5:o?6984=2g1>10<5:o86984=2g6>10<5:o=6984=2g4>10<5:o36984=2g:>10<5:oj6984=2a5>10<5:i>6984=2a0>10<5:i96984=2a7>10<5:i;6984=2`e>10<5:i:6984=2`f>10<5:lh6984=2da>10<5:lj6984=2d:>10<5:l36984=2d4>10<5:l=6984=2d6>10<5:l?6984=2:`>10<5:2o6984=2:;>10<5=:55235495g3:m7>52z\655=:<:l1=o;4}r62=?6=:rT>:47>52z\64`=:<:n1=o;4}r623?6=:rT>::7>52z\64f=:<:h1=o;4}r621?6=:rT>:?7>52z\64<=:<:21=o;4}r626?6=:rT><55242595g3:=7>52z\642=:<:<1=o;4}r624?6=:rT><;5242795g3;j7>52z\640=:<:>1=o;4}r63a?6=:rT><95242195g3;h7>52z\646=:<:81=o;4}r63g?6=:rT>;n7>52z\644=:<::1=o;4}r63e?6=:rT><=5243d95g3;47>52z\7b`=:<;n1=o;4}r633?6=:rT?ji5243a95g3;:7>52z\7bf=:<;h1=o;4}r631?6=:rT?jo5243c95g3;87>52z\7bd=:<;31=o;4}r637?6=:rT?j45243:95g3;>7>52z\7b==:<;=1=o;4}r635?6=:rT?j:5243495g3;<7>52z\7b3=:<;?1=o;4}r1eb?6=:rT?j85243695g39=7>52z\653=:<=?1=o;4}r614?6=:rT>=85245695g3:j7>52z\651=:<=91=o;4}r62a?6=:rT>=>5245095g3:h7>52z\657=:<=;1=o;4}r62g?6=:rT>=<5245295g3:n7>52z\64d=:<:31=o;4}r620?6=:rT?jk5243g95g3;57>52z\7b1=:<;91=o;4}r1ea?6=:rT?j>5243095g3nn7>52z\7g2=:5<5sW>h:63;6`85g>{t7}Y0198n:7:8yv2b>3:1>vP;c29>03g=>>1v9k::181[2d:27?:l496:p0`5=838pR9m?;<65e?023ty?i?4?:3y]0g`<5=;3>h02;6s|4ed94?4|V=hh70:9a;41?xu3ll0;6?uQ4c`8910f2?;0q~:kd;296~X3jh168;o5619~w1bd2909wS:m9:?72d<2n2wx8il50;0xZ1d?34>=m7;k;|q7`d<72;qU8o94=54b>0eo47>52z\7f0=:5<5sW>i863;6`86e>{t7}YvP;b09>03g==11v9j<:181[2e827?:l4:7:p0a4=838pR9oi;<65e?313ty?h<4?:3y]0dc<5=;3>h034>=m78i;|q7aa<72;qU8n64=54b>3cno7>52z\7g4=:5<5sW>i:63;6`85=>{t7}Y;3?00:n85231690f=:;9918n5231090f=:;9;18n5231290f=::ol18n522gf90f=::oi1=o:4=3df>1e<5:;=69m4=236>1e<5:;?69m4=230>1e<5:;969m4=232>1e<5:;;69m4=22e>1e<5::n69m4=3c2>4d3348j>7?m4:?1=f<3k2795o4;c:p6fb=83>p1?mk:0`6?84>m3lm70:9c;d`?84>?3lo7p};7b83>7}:=i7>55z?72`<6j<16?5l5fb9>7=`=nj16?5o5fb9>71g=nl1v99m:185820k3?;70:8b;3a1>;450;1x91162<:0199?:0`6?821n3><7p};7083>7}:<>;1=o;4=550>ce53z?73c<2827?;i4;7:?73`<6j<1v99i:181820n3;i963;808eg>{t<>k1<706<5==j65519>03`=9k?0199<:gf8yv20l3:1?v3;7e82f0=:<>o19=524939ba=z{==96=4;{<64=?7e<27?;54>b59>021=9k>0199<:0cf?xu3?<0;6?;t=55;>4d2348?:7:l;<071?2d348?87:l;<077?2d348?>7:l;<075?2d348?<7:l;<00b?2d3488i7:l;<0;a?2d3483h7:l;<0;g?2d3483n7:l;<0;e?2d348357:l;<0;70:;3;l0:n;5242f95g0<5=9h627??l4>b79>06>=9k<019=8:0`5?824>3;i:63;3482f3=:<:>1=o84=510>4d134>8>7?m6:?774<6j?168>>51c48914a28h=70:=d;3a2>;3:j0:n;5243`95g0<5=8j627?>54>b79>071=9k<019<9:0`5?825=3;i:63;2582f3=:<=?1=o84=567>4d134>??7?m6:?707<6j?1689?51c48912728h=70:<9;3a2>;3:l0:n;5243195g0<5=896=m7?l1:p0=6=839p196::0`7?82?<3;i863;8082e`=z{=286=4=cz?7<0<6j<16?>k54b9>76b=m54b9>76d=o54b9>76?=654b9>7a4=54b9>7a7=9k>01>j<:5a896b32=i01>j::5a896b12=i01>j8:5a896b?2=i01>k;:5a896c528h?70=j3;6`?85b=3>h70=j6;6`?85b?3>h70=j8;6`?85b13>h70=ja;6`?85d>3>h70=l5;6`?85d;3>h70=l2;6`?85d<3>h70=l0;6`?85en3;i863;4jl0:n9523ga90f=:;oh18n523gc90f=:;o318n523g:90f=:;o=18n523g490f=:;o?18n523g690f=z{=296=4=5z?7<1<6j<16=h:54b9>5`5=5`7=54b9>5a`=5ab=67e=?l54b9>67g=?754b9>67>=?954b9>670=?;54b9>672=64?=<654b9>641=<854b9>643=<:54b9>645=<<54b9>63g=;754b9>63>=;954b9>630=;;54b9>632=;=54b9>634=;6m?0mh63>e98eg>;6mh0mj6s|1e`94?3|58o?65`0=9ho0q~?ka;291~;6m:0:n8523949bf=:;>:1jn5234f9bf=:;;21ji5rs0g4>5<5s4;n>7;?;<3f70=76;df?85083ln70=:d;df?855?3lo7p}>e883>3}:9l;19=521dc95dc<58oh6kj4=0gf>ce<58l;6kk4=0d1>c`55z?2a4<6j<16?5;5fb9>73`=nj16?8m5fb9>770=nm1v{t9m=1<7;t=0g3>4d2349397hj;<15b?`b349>o7hj;<111?`c3ty:ii4?:3y>5a`==916=hk51`g8yv7c>3:19v3>dg82f0=:;1>1jn5237g9bf=:;b49>7=5=nj16?;j5fb9>70g=nj16??<5fe9~w4`22909w0?kc;73?87a>3;ji6s|1e194?3|58nh6985519>6=c=9k?01?:7:gf8972f2oi01?:l:gd8yv44l3:1?v3=4782f0=::jk1jn522c59bf=z{;><6=4={<071?37348?47?ne:p66e=839p1?:::0`6?84d13lo70b49>6f?=no16>o85fg9~w72e290=w0<;3;73?843k3;ji63=4d8e`>;5=90mo63=538ea>;5==0mj6s|22c94?5|5;>869<5519>61c=9ho0q~<<9;297~;5<;0:n8522b:9bc=::k?1jk5rs36e>5<5s48?=7;?;<064?7fm2wx>>650;1x972628h>707}::=:19=5224095dc53z?105<6j<16>n95fg9>6g2=no1v?;<:181844n3?;70<:5;3ba>{t::<1<7=t=31e>4d2348h:7hk;<0a7?`c3ty99:4?:3y>66c==916>8651`g8yv44=3:1?v3=3d82f0=::j<1jk522c19bc=z{;=86=4={<0;a?373487p}=8583>1}::1n1=o;4=36;>ce<5;>j6kj4=36`>cc52z?1b49~w7>42908w0<7c;3a1>;5{t:>:1<706<5;=265l51c78972d2oi0q~<9f;296~;50h0><63=7982f0=z{;2:6=4:{<0;e?7e=2798h4ic:?115;k50;0x97>>2<:01?98:0`6?xu5090;69u229;95g3<5;?;6kk4=371>ce<5;??6kj4}r05`?6=:r79454:0:?133<6j<1v?9i:18084?03;i963=538e`>;5==0mo6s|27a94?4|5;2<68>4=356>4d23ty9;h4?:2y>6=1=9k?01?;::ga8973?2on0q~<9b;296~;50?0><63=7582f0=z{;=o6=4={<0;2?7e=279954ic:p647=838p1?7p}=1183>7}::;h19=5220;95g37>54z?16g<6j<16=h85fb9>5`>=nm16=ho5fd9~w76a2909w0<=a;73?84603;i96s|23394?5|5;8j6?75519>641=9k?0q~<=0;296~;5:00:n8521dc9bf=z{;:o6=4={<01:4>b49>5`c=nl16=k>5fb9>5c4=nm1v?>m:181845>3?;70<>4;3a1>{t:8n1<7=t=305>4d234;m<7hk;<3e6?`d3ty9673==916><=51c78yv46k3:1?v3=2482f0=:9o91jn521g49ba=z{;:26=4={<010?37348:>7?m5:p64d=838p1?<;:0`6?87a>3lh7p}=6083>7}::>i19=5227c95g352z?13g<28279:44>b49~w73a2909w0<8a;73?84103;i96s|24g94?4|5;=268>4=344>4d23ty99i4?:3y>62>==916>;851c78yv42k3:1>v3=76864>;5><0:n85rs37a>5<5s48<:7;?;<050?7e=2wx>8o50;0x97122<:01?8<:0`6?xu5=00;6?u2266915=::?81=o;4}r3eb?6=:r79=l4:0:?14=<6j<1v{t9on1<706<5;:=6<95519>653=9k?0q~?ib;296~;59?0><63=0582f0=z{8lj6=4={<021?37348;?7?m5:p5c?=838p1??;:428976528h>7p}>f983>7}::8919=5221395g352z?157<28279<=4>b49~w66c290>w03;i963>c28eg>;5j>0mh63;6`874>{t:;n1<706<58i86=85519>5f2=9ho0q~<=f;296~;58<0><63>c482e`=z{;9;6=4={<030?3734;h:7?ne:p667=838p1?><:42894e028kn7p}=3383>7}::9819=521b:95dc52z?144<2827:o44>ad9~w7532909w04=2d`>4d234;hn7hl;<65e?513ty94k4?:3y>63?==916=nl51`g8yv4>83:1>v3=69864>;6kj0:mh5rs3;2>5<5s48=;7;?;<3``?7fm2wx>4<50;0x97012<:01{t:0<1<706<58n96>;:55896642==01>>=:55896662==01>>?:55897`a2==01?hk:55897`d2==01?hj:55896712==01>?::55896732==01>?<:55896752==01>?>:55896772==01>>i:558966b2==0198l:gg897?028kn70b49>740==916>no5fe9>6c4=nj1v?j8:181857;3?;70{t:ok1<7:t=220>4d2349:97;?;<0`=?`d348n47hl;|q1`3<72;q6?=<5519>6``=9ho0q~6=4={<135?37348ni7?ne:p6c>=83>p1>>>:0`6?856;3?;707}:;9:19=522df95dc54z?045<6j<16?<<5519>6f>=nl16>h<5fb9~w7b42909w06cb==916>ho51`g8yv4a<3:18v3=fe82f0=:;9l19=522b49bf=::mi1jn5rs3f3>5<5s48mo7;?;<0f=?7fm2wx>k=50;6x97`d28h>70=?e;73?84d>3ln70b49>746==916>n95fd9>6ac=nj1v?k8:18184a93>270{t:o81<742e348m>7?ne:p6`3=839p1?h?:5;897c02=301?k::0cf?xu5m10;6>u22g2951d<5;o<6h=50;1x97ca2=301?k::5;897c428kn7p}=e783>6}::ll1=9l4=3g6>4de348n:7?ne:p6`7=839p1?kj:5;897c42=301?k>:0cf?xu5m=0;6>u22dg951d<5;o86ih50;1x97cc2=301?k>:5;897ba28kn7p}=e383>6}::ln1=9l4=3g2>4de348n>7?ne:p6ab=839p1?kl:5;897ba2=301?jk:0cf?xu5m90;6>u22da951d<5;nm6il50;1x97ce2=301?jk:5;897be28kn7p}=dd83>6}::lh1=9l4=3fg>4de348oi7?ne:p6a?=839p1?kn:5;897be2=301?j6:0cf?xu5lj0;6>u22dc951d<5;ni6io50;1x97c>28>i70;5lh0:mh5rs22`>5<2s49:97?m5:?2g14id:?1f3?;:0`6?87d=3lh70?l4;dg?84e>3ln70:9a;1g?xu48h0;68u230195g3<58i=6km4=0a6>cb<5;h>6km4=54b>6e55z?057<6j<16=n95fb9>5f0=nm16>o;5fd9>03g=;k1v>>7:18685693;i963>c98eg>;6k>0mh63=b58eg>;3>h08m6s|31594?3|5:;;6=m7=6;|q043<725<4s48j=7;?;<0b6?37348j87?ne:p6d7=838p1?o>:0`6?84f<3lh7p}=9e83>7}::0i19=5228g95dc56z?1=f<6j<16>l>5fd9>6l:5fd9>6<>=nj16>495fg9~w7?a2909w0<6b;73?84f83;ji6s|28;94?0|5;3i6=4?:3y>766=<016??>51`g8yv5513:1>v3<31820g=:;;31=lk4}r171?6=:r78?=4>ad9>76c==91v>?i:180855n3>270==0;6:?856n3;ji6s|33:94?5|5:8m6<:m;<114?7ej278>54>ad9~w6232909w0==f;3ba>;4;m0><6s|3d294?3|5:8;68<4=2g:>4d2349mn7;?;<16`?`c349947hl;|q05`<72:q6??k5489>74`=<016?4gb3ty88>4?:3y>77c=9ho01>=l:428yv5cn3:19v3<1g866>;4m10:n8523gc915=:;349:i7:6;<12`?7fm2wx??850;1x964c28>i70=>e;3af>;4:?0:mh5rs261>5<5s499h7?ne:?07g<282wx?ik50;7x967b2<801>k8:0`6?85a13?;70=:c;dg?855>3lh7p}<1b83>6}:;;i1845230f90<=:;8i1=lk4}r111?6=;r78>n4>4c9>74b=9kh01><::0cf?xu4<80;6?u233a95dc<5:9j68>4}r1g`?6==r78=i4:2:?0a3<6j<16?k65519>70e=no16??;5fb9~w67e2908w0==b;6:?856k3>270=>b;3ba>{t;;>1<7=t=20a>42e349:o7?mb:?061<6il1v>:?:181855j3;ji63<38864>{t;mi1<7;t=23`>04<5:o>6n7hk;<110?`d3ty8=l4?:2y>77g=<016?74g=9ho0q~==3;297~;4:h0:8o5230`95gd<5:886>635<5s49:m7:6;<12=?7fm2wx?io50;7x967f2<801>k<:0`6?85a=3?;70=:a;dg?855:3lh7p}<2383>7}:;8k1=ol4=201>4gb3ty8=54?:3y>74?=<016?<651`g8yv5c13:19v3<18866>;4m;0:n8523g6915=:;<4>ad9~w6?72909:v3<19866>;4l;0?;63;4l80?;63;4l=0?;63;4l?0?;63;4l10?;63;4m;0?;63;4m<0?;63;4m>0?;63;4m00?;63;4k?0?;63;4k:0?;63;4k=0?;63;4jo0?;63;4jl0?;63;4nk0?;63;4n00?;63;4n>0?;63;4n<0?;63;4180:mh5rs214>5<5s498i7?m5:?00d850;0x965c28h>70=;8;de?xu4;<0;6?u232a95g3<5:>36kk4}r100?6=:r78?o4>b49>71>=nj1v>=<:181854i3;i963<498e`>{t;:81<74d2349?m7hl;|q074<72;q6?>651c78962f2ol0q~=;b;297~;4;40k0:mh5rs264>5<5s49?:7;?;<17=?7fm2wx>ol50;0x97e72=301?li:0cf?xu5k<0;6?u22b295gd<5;ij6n>51`g897ea2oi0q~ad9~w7d>2909w0o650;0x97dc2=301?ll:0cf?xu5k;0;6?u22cf95gd<5;i<6om51c`897e128kn7p}=a983>7}::hn184522`a95dc7>52z?1ea<6jk16>o951`g8yv4dj3:1>v3=ae82e`=::jl1jh5rs3c4>5<5s48jo7:6;<0bf?7fm2wx>o?50;0x97gd28hi70{t:h<1<71?<5;kj6ll51c`897d228kn7p}=a483>7}::hk184522`;95dc52z?1ed<6jk16>o:51`g8yv4fm3:1>v3=a882fg=::k91=lk4}r1a3?6=7d6=nj1v>m6:18085c:3;i963;4>l0mj6s|3c794?2|5:n;68>4=2`f>4d23493?7hi;<1:g?`d3ty8o:4?:2y>7a6=9k?01>k=:428960c2ol0q~=m6;290~;4l80><634:0:?02am>:0`6?85?<3lo70=n2;d`?xu4kh0;6>u23e195g3<5:o>68>4=24f>cb54z?0`1<28278o?4>b49>7=3=no16?l:5fb9~w6ee2908w0=k4;3a1>;4m?0><63<6g8eb>{t;kk1<7:t=2f6>06<5:i868i:gf8yv5ej3:18v3;4k=0:n8523949bc=:;h21jn5rs2ag>5<4s49o:7?m5:?0a=<28278;=4if:p7ge=83>p1>j8:42896e228h>70=76;dg?85fi3lh7p}6}:;m=1=o;4=2g:>06<5:=;6kj4}r1a`?6=7g2=nj1v>mi:18085c03;i963;4?80mo6s|3d394?2|5:oj6i7hl;<11=?`d3ty85l4?:3y>7f0==916?o=51`g8yv5>13:1>v3;4j;0:mh5rs2;4>5<5s49h?7;?;<1a4?7fm2wx?4850;0x96e52<:01>oi:0cf?xu4110;6?u23b6915=:;k;1=lk4}r1:0?6=:r78o=4:0:?0ea<6il1v>7<:18185en3?;70=nc;3ba>{t;0?1<706<5:kn67dd=9ho0q~=n9;296~;4j:0?563ad9~w6g02908w0=m2;6:?85f13>270=n7;3ba>{t;hk1<7=t=2`1>42e349j57?mb:?0ed<6il1v>o::18085e93>270=n7;6:?85f=3;ji6s|3`:94?5|5:h:6<:m;<1b3?7ej278m54>ad9~w6g42908w0=m0;6:?85f=3>270=n3;3ba>{t;h<1<7=t=2`3>42e349j97?mb:?0e3<6il1v>o>:18085fn3>270=n3;6:?85f93;ji6s|3`694?5|5:km6<:m;<1b7?7ej278m94>ad9~w6?a2908w0=ne;6:?85f93>270=6f;3ba>{t;h81<7=t=2cf>42e349j=7?mb:?0e7<6il1v>7k:18085fl3>270=6f;6:?85>l3;ji6s|3`294?5|5:ko6<:m;<1:b?7ej278m=4>ad9~w6?e2908w0=nc;6:?85>l3>270=6b;3ba>{t;0o1<7=t=2c`>42e3492h7?mb:?0=`<6il1v>7l:18085fj3;?n63<9c82fg=:;0i1=lk4}r1e6?6=b49>5fe=nj16=nl5fe9>03g=;=1v>h>:18785ai3;i963>ce8eg>;6kj0mh63;6`807>{t;o:1<7:t=2d:>4d234;hi7hl;<3``?`c34>=m7==;|q0ac<72=q6?k651c7894ea2oi010:n8521e29bf=:9jl1ji5247c975=z{:oo6=4;{<1e2?7e=27:h<4ic:?2`5p1>h::0`6?87c:3lh70?k1;dg?821i38n7p}6}:;o>1=o;4=0f1>cb<5=bc9>70g=9ho0q~=;c;296~;4=90:mh5234390<=z{:?=6=4={<165?7ej2789o4>ad9~w62c2909w0=:1;3ba>;4=;0?56s|34594?4|5:?967>52z?011<6il16?5h5fg9~w60?2909w0=93;3af>;4>m0:mh5rs27e>5<5s49=?7?ne:?021<312wx?;750;0x960328hi70=9e;3ba>{t;?:1<74gb349=97:6;|q02d<72;q6?;;51c`8960a28kn7p}<6083>7}:;??1=lk4=245>1?52z?023<6jk16?:>51`g8yv51:3:1>v3<6782e`=:;?=1845rs24`>5<5s49=;7?mb:?034<6il1v>9<:180851?3;ji63<8g8e`>;40h0mj6s|36g94?4|5:=2628kn70=8a;6:?xu4?o0;6?u236c95gd<5:2?652z?03g<6il16?:m5489~w6>62909w0=8c;3af>;40?0:mh5rs25;>5<5s49{t;>>1<74gb3493m7hk;|q0<`<72:q6?5m5519>7=b==916?5h51`g8yv5?k3:18v3<8b82f0=:;1h1ji523829ba=:;0;1ji5rs2::>5<5s49347;?;<1;e?7fm2wx8;j50;06824n3><70:<70:<70:<70:<7;64?824>3><70:<5;64?824<3><70:<3;64?824:3><70:<1;64?82483><70:=f;64?825l3><70:=c;64?825j3><70:=a;64?82513><70:=8;64?825?3><70:=6;64?825=3><70:=4;64?823=3><70:;4;64?823;3><70:;2;64?82393><70:;0;64?82413><70:=e;64?825;3><70:=2;64?84>03;ji6s|47094?4|5=9m68>4=54b>`e==7>52z?77`<2827?:l4ka:p036=838p19=k:428910f2m20q~::f;296~;3;j0><63;6`8g2>{t<06<5=v3;36864>;3>h0o>6s|44;94?4|5=9=68>4=54b>a7>47>52z?770<2827?:l4ja:p001=838p19=;:428910f2m:0q~::6;296~;3;:0><63;6`8`b>{t<06<5=v3;2g864>;3>h0hm6s|44294?4|5=8o68>4=54b>f??j7>52z?76f<2827?:l4l8:p01c=838p19<63;6`8`3>{t<=i1<706<5=54:0:?72dv3;27864>;3>h0h?6s|45:94?4|5=8>68>4=54b>f4?;7>52z?761<2827?:l4j1:p03?=838p19:::428910f2l:0q~:98;296~;3<=0><63;6`8f<>{t06<5=v3;41864>;3>h0oo6s|47194?4|5=9268>4=54b>ad>o7>52z?76`<2827?:l4k7:p007=838p19<<:428910f2ji0q~:;6;296~;3:;0><63;6`8`5>{t;=21<74gb349?57hk;|q00d<72;q6?975fb9>71g=9=i0q~:9b;296~;3>j0:mh5247c9a`=z{:lo6=4:{<1;b?`b3493m7hj;<1:4?7fm27?:l4;8`9>03g=mm1v<;6:181842=3lo70<:4;37g>{t9cb<58l96<:l;|q113<72;q6>865fd9>602=9ho0q~?i4;296~;6n?0mi63>f382e`=zuz?297>52z\6=0=:<=0>585+49495d?52z\6=a=:<=0>5i5+49495dg52z\6<2=:<=0>4:5+49495ddnn7>52z\7g2=:<=0?o:5+494950`n57>52z\7g3=:<=0?o;5+494953gn47>52z\7g0=:<=0?o85+4949523n;7>52z\7g1=:<=0?o95+49495=6n:7>52z\7g6=:<=0?o>5+49495=0n97>52z\7g7=:<=0?o?5+49495=1n?7>52z\7g5=:<=0?o=5+49495=>n>7>52z\7fc=:<=0?nk5+49495=gn=7>52z\7f`=:<=0?nh5+49495=dn<7>52z\7fa=:<=0?ni5+49495=eoj7>52z\7ff=:<=0?nn5+49495=boi7>52z\7fg=:<=0?no5+49495=coh7>52z\7fd=:<=0?nl5+49495=`oo7>52z\7f<=:<=0?n45+49495<6on7>52z\7f==:<=0?n55+49495<7om7>52z\7f2=:<=0?n:5+49495<4o47>52z\7f0=:<=0?n85+49495<5o;7>52z\7f1=:<=0?n95+49495<2o:7>52z\7f6=:<=0?n>5+49495<3o97>52z\7f7=:<=0?n?5+49495<0o87>52z\7f4=:<=0?n<5+49495<1o?7>52z\7f5=:<=0?n=5+49495<>o>7>52z\7ec=:<=0?mk5+49495o=7>52z\7e`=:<=0?mh5+49495o<7>52z\7ea=:<=0?mi5+49495hj7>52z\7ef=:<=0?mn5+49495m>7>52z\7ga=:<=0?oi5+49495m=7>52z\7gf=:<=0?on5+49495m<7>52z\7gg=:<=0?oo5+49495<`nj7>52z\7gd=:<=0?ol5+49495d6ni7>52z\7g<=:<=0?o45+49495d7nh7>52z\7g==:<=0?o55+49495d4no7>52z\7g4=:<=0?o<5+49495d5n87>52z\7f3=:<=0?n;5+49495d2o57>52z\7eg=:<=0?mo5+49495d3hi7>52z\7ed=:<=0?ml5+49495d052z\6e==:<=0>m55+49495d152z\6=6=:<=0>5>5+49495d>52z\655=:<=0>==5+494950d7>52z\64c=:<=0>52z\64`=:<=0>52z\64a=:<=0>52z\64f=:<=0>52z\64g=:<=0>52z\64<=:<=0><45+494953452z\64==:<=0><55+494953552z\642=:<=0><:5+494953252z\643=:<=0><;5+494953352z\640=:<=0><85+494953052z\641=:<=0><95+494953152z\646=:<=0><>5+494953>52z\647=:<=0>52z\644=:<=0><<5+494953d52z\645=:<=0><=5+494953e52z\7b`=:<=0?jh5+494953b52z\7ba=:<=0?ji5+494953c52z\7bf=:<=0?jn5+494953`52z\7bg=:<=0?jo5+494952652z\7bd=:<=0?jl5+494952752z\7b<=:<=0?j45+494952452z\7b==:<=0?j55+494952552z\7b2=:<=0?j:5+494952252z\7b3=:<=0?j;5+494952052z\7b0=:<=0?j85+494952152z\653=:<=0>=;5+494952>52z\650=:<=0>=85+494952?52z\651=:<=0>=95+494952g52z\656=:<=0>=>5+494952d52z\657=:<=0>=?5+494952e52z\654=:<=0>=<5+494952b52z\64d=:<=0>52z\7bc=:<=0?jk5+494952`7>52z\7b1=:<=0?j95+49495=752z\7b6=:<=0?j>5+49495=452z\606=:<=0>8>5+49495=52n7>52z\7=g=:<=0?5o5+49495=252z\67a=:<=0>?i5+49495=352z\62==:<=0>:55+49495=?52zJ7<2=zfhnn6=4={I6;3>{iiml1<7vF;869~jdc52909wE:77:me`5=838pD968;|lba1<72;qC8594}ocf1?6=:rB?4:5rn`g5>5<5sA>3;6saad594?4|@=2<7p`ne983>7}O<1=0qcoj9;296~N30>1vblkn:181M2??2wemhl50;0xL1>03tdjin4?:3yK0=152zJ7<2=zfhon6=4={I6;3>{iill1<7vF;869~jd`52909wE:77:mec5=838pD968;|lbb1<72;qC8594}oce1?6=:rB?4:5rn`d5>5<5sA>3;6saag594?4|@=2<7p`nf983>7}O<1=0qcoi9;296~N30>1vblhn:181M2??2wemkl50;0xL1>03tdjjn4?:3yK0=152zJ7<2=zfhln6=4={I6;3>{iiol1<7vF;869~jg652909wE:77:mf55=838pD968;|la41<72;qC8594}o`31?6=:rB?4:5rnc25>5<5sA>3;6sab1594?4|@=2<7p`m0983>7}O<1=0qcl?9;296~N30>1vbo>n:181M2??2wen=l50;0xL1>03tdi52zJ7<2=zfk:n6=4={I6;3>{ij9l1<7vF;869~jg752909wE:77:mf45=838pD968;|la51<72;qC8594}o`21?6=:rB?4:5rnc35>5<5sA>3;6sab0594?4|@=2<7p`m1983>7}O<1=0qcl>9;296~N30>1vbo?n:181M2??2wen03tdi=n4?:3yK0=152zJ7<2=zfk;n6=4={I6;3>{ij8l1<7vF;869~jg452909wE:77:mf75=838pD968;|la61<72;qC8594}o`11?6=:rB?4:5rnc05>5<5sA>3;6sab3594?4|@=2<7p`m2983>7}O<1=0qcl=9;296~N30>1vbo03tdi>n4?:3yK0=151zJ7<2=zf0{I6;3>{i1?h1<7?tH5:4?xh>>j0;65<6sA>3;6sa96194?7|@=2<7p`67583>4}O<1=0qc785;295~N30>1vb499:182M2??2we5:950;3xL1>03td2;54?:0yK0=151zJ7<2=zf0=j6=4>{I6;3>{i1>h1<7?tH5:4?xh>?j0;65<6sA>3;6sa99194?7|@=2<7p`68583>4}O<1=0qc775;295~N30>1vb469:182M2??2we55950;3xL1>03td2454?:0yK0=151zJ7<2=zf02j6=4>{I6;3>{i11h1<7?tH5:4?xh>0j0;6b290:wE:77:m==`=83;pD968;|l:=5<728qC8594}o;:5?6=9rB?4:5rn8;1>5<6sA>3;6sa98194?7|@=2<7p`69583>4}O<1=0qc765;295~N30>1vb479:182M2??2we54950;3xL1>03td2554?:0yK0=151zJ7<2=zf03j6=4>{I6;3>{i10h1<7?tH5:4?xh>1j0;6l3:1=vF;869~j5<6sA>3;6sa9`194?7|@=2<7p`6a583>4}O<1=0qc7n5;295~N30>1vb4o9:182M2??2we5l950;3xL1>03td2m54?:0yK0=151zJ7<2=zf0kj6=4>{I6;3>{i1hh1<7?tH5:4?xh>ij0;65<6sA>3;6sa9c194?7|@=2<7p`6b583>4}O<1=0qc7m5;295~N30>1vb4l9:182M2??2we5o950;3xL1>03td2n54?:0yK0=151zJ7<2=zf0hj6=4>{I6;3>{i1kh1<7?tH5:4?xh>jj0;65<6sA>3;6sa9b194?7|@=2<7p`6c583>4}O<1=0qc7l5;295~N30>1vb4m9:182M2??2we5n950;3xL1>03td2o54?:0yK0=151zJ7<2=zf0ij6=4>{I6;3>{i1jh1<7?tH5:4?xh>kj0;65<6sA>3;6sa9e194?7|@=2<7p`6d583>4}O<1=0qc7k5;295~N30>1vb4j9:182M2??2we5i950;3xL1>03td2h54?:0yK0=151zJ7<2=zf0nj6=4>{I6;3>{i1mh1<7?tH5:4?xh>lj0;65<6sA>3;6sa9d194?7|@=2<7p`6e583>4}O<1=0qc7j5;295~N30>1vb4k9:182M2??2we5h950;3xL1>03td2i54?:0yK0=151zJ7<2=zf0oj6=4>{I6;3>{i1lh1<7?tH5:4?xh>mj0;65<6sA>3;6sa9g194?7|@=2<7p`6f583>4}O<1=0qc7i5;295~N30>1vb4h9:182M2??2we5k950;3xL1>03td2j54?:0yK0=151zJ7<2=zf0lj6=4>{I6;3>{i1oh1<7?tH5:4?xh>nj0;65<6sA>3;6saa1194?7|@=2<7p`n0583>4}O<1=0qco?5;295~N30>1vbl>9:182M2??2wem=950;3xL1>03tdj<54?:0yK0=151zJ7<2=zfh:j6=4>{I6;3>{ii9h1<7?tH5:4?xhf8j0;65<6sA>3;6saa0194?7|@=2<7p`n1583>4}O<1=0qco>5;295~N30>1vbl?9:182M2??2wem<950;3xL1>03tdj=54?:0yK0=151zJ7<2=zfh;j6=4>{I6;3>{ii8h1<7?tH5:4?xhf9j0;65<6sA>3;6saa3194?7|@=2<7p`n2583>4}O<1=0qco=5;295~N30>1vbl<9:182M2??2wem?950;3xL1>03tdj>54?:0yK0=151zJ7<2=zfh8j6=4>{I6;3>{ii;h1<7?tH5:4?xhf:j0;65<6sA>3;6saa2194?7|@=2<7p`n3583>4}O<1=0qco<5;295~N30>1vbl=9:182M2??2wem>950;3xL1>03tdj?54?:0yK0=151zJ7<2=zfh9j6=4>{I6;3>{ii:h1<7?tH5:4?xhf;j0;65<6sA>3;6saa5194?7|@=2<7p`n4583>4}O<1=0qco;5;295~N30>1vbl:9:182M2??2wem9950;3xL1>03tdj854?:0yK0=151zJ7<2=zfh>j6=4>{I6;3>{ii=h1<7?tH5:4?xhf5<6sA>3;6saa4194?7|@=2<7p`n5583>4}O<1=0qco:5;295~N30>1vbl;9:182M2??2wem8950;3xL1>03tdj954?:0yK0=157>51zJ7<2=zfh?j6=4>{I6;3>{ii5<6sA>3;6saa7194?7|@=2<7p`n6583>4}O<1=0qco95;295~N30>1vbl89:182M2??2wem;950;3xL1>03tdj:54?:0yK0=151zJ7<2=zfh{I6;3>{ii?h1<7?tH5:4?xhf>j0;65<6sA>3;6saa6194?7|@=2<7p`n7583>4}O<1=0qco85;295~N30>1vbl99:182M2??2wem:950;3xL1>03tdj;54?:0yK0=151zJ7<2=zfh=j6=4>{I6;3>{ii>h1<7?tH5:4?xhf?j0;65<6sA>3;6saa9194?7|@=2<7p`n8583>4}O<1=0qco75;295~N30>1vbl69:182M2??2wem5950;3xL1>03tdj454?:0yK0=151zJ7<2=zfh2j6=4>{I6;3>{ii1h1<7?tH5:4?xhf0j0;6b290:wE:77:me=`=83;pD968;|lb=5<728qC8594}oc:5?6=9rB?4:5rn`;1>5<6sA>3;6saa8194?7|@=2<7p`n9583>4}O<1=0qco65;295~N30>1vbl79:182M2??2wem4950;3xL1>03tdj554?:0yK0=151zJ7<2=zfh3j6=4>{I6;3>{ii0h1<7?tH5:4?xhf1j0;6l3:1=vF;869~jd?b290:wE:77:me<`=83;pD968;|lbe5<728qC8594}ocb5?6=9rB?4:5rn`c1>5<6sA>3;6saa`194?7|@=2<7p`na583>4}O<1=0qcon5;295~N30>1vblo9:182M2??2weml950;3xL1>03tdjm54?:0yK0=151zJ7<2=zfhkj6=4>{I6;3>{iihh1<7?tH5:4?xhfij0;65<6sA>3;6saac194?7|@=2<7p`nb583>4}O<1=0qcom5;295~N30>1vbll9:182M2??2wemo950;3xL1>03tdjn54?:0yK0=151zJ7<2=zfhhj6=4>{I6;3>{iikh1<7?tH5:4?xhfjj0;65<6sA>3;6saab194?7|@=2<7p`nc583>4}O<1=0qcol5;295~N30>1vblm9:182M2??2wemn950;3xL1>03tdjo54?:0yK0=151zJ7<2=zfhij6=4>{I6;3>{iijh1<7?tH5:4?xhfkj0;65<6sA>3;6saae194?7|@=2<7p`nd583>4}O<1=0qcok5;295~N30>1vblj9:182M2??2wemi950;3xL1>03tdjh54?:0yK0=151zJ7<2=zfhnj6=4>{I6;3>{iimh1<7?tH5:4?x{zuIJHwnh>:85;ac640tJKNv>r@ARxyEF \ No newline at end of file diff --git a/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.v b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.v new file mode 100644 index 000000000..6ec1e3f88 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.v @@ -0,0 +1,173 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2009 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The synthesis directives "translate_off/translate_on" specified below are +// supported by Xilinx, Mentor Graphics and Synplicity synthesis +// tools. Ensure they are correct for your synthesis tool(s). + +// You must compile the wrapper file fifo_xlnx_512x36_2clk_prog_full.v when simulating +// the core, fifo_xlnx_512x36_2clk_prog_full. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + +`timescale 1ns/1ps + +module fifo_xlnx_512x36_2clk_prog_full( + rst, + wr_clk, + rd_clk, + din, + wr_en, + rd_en, + dout, + full, + almost_full, + empty, + prog_full); + + +input rst; +input wr_clk; +input rd_clk; +input [35 : 0] din; +input wr_en; +input rd_en; +output [35 : 0] dout; +output full; +output almost_full; +output empty; +output prog_full; + +// synthesis translate_off + + FIFO_GENERATOR_V6_1 #( + .C_COMMON_CLOCK(0), + .C_COUNT_TYPE(0), + .C_DATA_COUNT_WIDTH(9), + .C_DEFAULT_VALUE("BlankString"), + .C_DIN_WIDTH(36), + .C_DOUT_RST_VAL("0"), + .C_DOUT_WIDTH(36), + .C_ENABLE_RLOCS(0), + .C_ENABLE_RST_SYNC(1), + .C_ERROR_INJECTION_TYPE(0), + .C_FAMILY("spartan3"), + .C_FULL_FLAGS_RST_VAL(1), + .C_HAS_ALMOST_EMPTY(0), + .C_HAS_ALMOST_FULL(1), + .C_HAS_BACKUP(0), + .C_HAS_DATA_COUNT(0), + .C_HAS_INT_CLK(0), + .C_HAS_MEMINIT_FILE(0), + .C_HAS_OVERFLOW(0), + .C_HAS_RD_DATA_COUNT(0), + .C_HAS_RD_RST(0), + .C_HAS_RST(1), + .C_HAS_SRST(0), + .C_HAS_UNDERFLOW(0), + .C_HAS_VALID(0), + .C_HAS_WR_ACK(0), + .C_HAS_WR_DATA_COUNT(0), + .C_HAS_WR_RST(0), + .C_IMPLEMENTATION_TYPE(2), + .C_INIT_WR_PNTR_VAL(0), + .C_MEMORY_TYPE(1), + .C_MIF_FILE_NAME("BlankString"), + .C_MSGON_VAL(1), + .C_OPTIMIZATION_MODE(0), + .C_OVERFLOW_LOW(0), + .C_PRELOAD_LATENCY(0), + .C_PRELOAD_REGS(1), + .C_PRIM_FIFO_TYPE("512x36"), + .C_PROG_EMPTY_THRESH_ASSERT_VAL(4), + .C_PROG_EMPTY_THRESH_NEGATE_VAL(5), + .C_PROG_EMPTY_TYPE(0), + .C_PROG_FULL_THRESH_ASSERT_VAL(500), + .C_PROG_FULL_THRESH_NEGATE_VAL(499), + .C_PROG_FULL_TYPE(1), + .C_RD_DATA_COUNT_WIDTH(9), + .C_RD_DEPTH(512), + .C_RD_FREQ(1), + .C_RD_PNTR_WIDTH(9), + .C_UNDERFLOW_LOW(0), + .C_USE_DOUT_RST(1), + .C_USE_ECC(0), + .C_USE_EMBEDDED_REG(0), + .C_USE_FIFO16_FLAGS(0), + .C_USE_FWFT_DATA_COUNT(0), + .C_VALID_LOW(0), + .C_WR_ACK_LOW(0), + .C_WR_DATA_COUNT_WIDTH(9), + .C_WR_DEPTH(512), + .C_WR_FREQ(1), + .C_WR_PNTR_WIDTH(9), + .C_WR_RESPONSE_LATENCY(1)) + inst ( + .RST(rst), + .WR_CLK(wr_clk), + .RD_CLK(rd_clk), + .DIN(din), + .WR_EN(wr_en), + .RD_EN(rd_en), + .DOUT(dout), + .FULL(full), + .ALMOST_FULL(almost_full), + .EMPTY(empty), + .PROG_FULL(prog_full), + .BACKUP(), + .BACKUP_MARKER(), + .CLK(), + .SRST(), + .WR_RST(), + .RD_RST(), + .PROG_EMPTY_THRESH(), + .PROG_EMPTY_THRESH_ASSERT(), + .PROG_EMPTY_THRESH_NEGATE(), + .PROG_FULL_THRESH(), + .PROG_FULL_THRESH_ASSERT(), + .PROG_FULL_THRESH_NEGATE(), + .INT_CLK(), + .INJECTDBITERR(), + .INJECTSBITERR(), + .WR_ACK(), + .OVERFLOW(), + .ALMOST_EMPTY(), + .VALID(), + .UNDERFLOW(), + .DATA_COUNT(), + .RD_DATA_COUNT(), + .WR_DATA_COUNT(), + .PROG_EMPTY(), + .SBITERR(), + .DBITERR()); + + +// synthesis translate_on + +endmodule + diff --git a/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.veo b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.veo new file mode 100644 index 000000000..64e6769d6 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.veo @@ -0,0 +1,53 @@ +/******************************************************************************* +* This file is owned and controlled by Xilinx and must be used * +* solely for design, simulation, implementation and creation of * +* design files limited to Xilinx devices or technologies. Use * +* with non-Xilinx devices or technologies is expressly prohibited * +* and immediately terminates your license. * +* * +* XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * +* SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * +* XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * +* AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * +* OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * +* IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * +* AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * +* FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * +* WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * +* IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * +* REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * +* INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE. * +* * +* Xilinx products are not intended for use in life support * +* appliances, devices, or systems. Use in such applications are * +* expressly prohibited. * +* * +* (c) Copyright 1995-2009 Xilinx, Inc. * +* All rights reserved. * +*******************************************************************************/ +// The following must be inserted into your Verilog file for this +// core to be instantiated. Change the instance name and port connections +// (in parentheses) to your own signal names. + +//----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG +fifo_xlnx_512x36_2clk_prog_full YourInstanceName ( + .rst(rst), + .wr_clk(wr_clk), + .rd_clk(rd_clk), + .din(din), // Bus [35 : 0] + .wr_en(wr_en), + .rd_en(rd_en), + .dout(dout), // Bus [35 : 0] + .full(full), + .almost_full(almost_full), + .empty(empty), + .prog_full(prog_full)); + +// INST_TAG_END ------ End INSTANTIATION Template --------- + +// You must compile the wrapper file fifo_xlnx_512x36_2clk_prog_full.v when simulating +// the core, fifo_xlnx_512x36_2clk_prog_full. When compiling the wrapper file, be sure to +// reference the XilinxCoreLib Verilog simulation library. For detailed +// instructions, please refer to the "CORE Generator Help". + diff --git a/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xco b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xco new file mode 100644 index 000000000..f99c3c6fb --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xco @@ -0,0 +1,84 @@ +############################################################## +# +# Xilinx Core Generator version 12.2 +# Date: Thu Nov 11 17:27:10 2010 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = false +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc3s2000 +SET devicefamily = spartan3 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = fg456 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -5 +SET verilogsim = true +SET vhdlsim = false +# END Project Options +# BEGIN Select +SELECT Fifo_Generator family Xilinx,_Inc. 6.1 +# END Select +# BEGIN Parameters +CSET almost_empty_flag=false +CSET almost_full_flag=true +CSET component_name=fifo_xlnx_512x36_2clk_prog_full +CSET data_count=false +CSET data_count_width=9 +CSET disable_timing_violations=false +CSET dout_reset_value=0 +CSET empty_threshold_assert_value=4 +CSET empty_threshold_negate_value=5 +CSET enable_ecc=false +CSET enable_int_clk=false +CSET enable_reset_synchronization=true +CSET fifo_implementation=Independent_Clocks_Block_RAM +CSET full_flags_reset_value=1 +CSET full_threshold_assert_value=500 +CSET full_threshold_negate_value=499 +CSET inject_dbit_error=false +CSET inject_sbit_error=false +CSET input_data_width=36 +CSET input_depth=512 +CSET output_data_width=36 +CSET output_depth=512 +CSET overflow_flag=false +CSET overflow_sense=Active_High +CSET performance_options=First_Word_Fall_Through +CSET programmable_empty_type=No_Programmable_Empty_Threshold +CSET programmable_full_type=Single_Programmable_Full_Threshold_Constant +CSET read_clock_frequency=1 +CSET read_data_count=false +CSET read_data_count_width=9 +CSET reset_pin=true +CSET reset_type=Asynchronous_Reset +CSET underflow_flag=false +CSET underflow_sense=Active_High +CSET use_dout_reset=true +CSET use_embedded_registers=false +CSET use_extra_logic=false +CSET valid_flag=false +CSET valid_sense=Active_High +CSET write_acknowledge_flag=false +CSET write_acknowledge_sense=Active_High +CSET write_clock_frequency=1 +CSET write_data_count=false +CSET write_data_count_width=9 +# END Parameters +GENERATE +# CRC: 6b9f6232 diff --git a/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xise b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xise new file mode 100644 index 000000000..91dbf5819 --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xise @@ -0,0 +1,72 @@ + + + +

+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_flist.txt b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_flist.txt new file mode 100644 index 000000000..2eb837a3f --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_flist.txt @@ -0,0 +1,12 @@ +# Output products list for +_xmsgs/pn_parser.xmsgs +fifo_generator_ug175.pdf +fifo_xlnx_512x36_2clk_prog_full.gise +fifo_xlnx_512x36_2clk_prog_full.ngc +fifo_xlnx_512x36_2clk_prog_full.v +fifo_xlnx_512x36_2clk_prog_full.veo +fifo_xlnx_512x36_2clk_prog_full.xco +fifo_xlnx_512x36_2clk_prog_full.xise +fifo_xlnx_512x36_2clk_prog_full_flist.txt +fifo_xlnx_512x36_2clk_prog_full_readme.txt +fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl diff --git a/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_readme.txt b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_readme.txt new file mode 100644 index 000000000..33d50a91d --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_readme.txt @@ -0,0 +1,47 @@ +The following files were generated for 'fifo_xlnx_512x36_2clk_prog_full' in directory +/home/ianb/ettus/sram_fifo/fpgapriv/usrp2/coregen/ + +fifo_generator_ug175.pdf: + Please see the core data sheet. + +fifo_xlnx_512x36_2clk_prog_full.gise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. + +fifo_xlnx_512x36_2clk_prog_full.ngc: + Binary Xilinx implementation netlist file containing the information + required to implement the module in a Xilinx (R) FPGA. + +fifo_xlnx_512x36_2clk_prog_full.v: + Verilog wrapper file provided to support functional simulation. + This file contains simulation model customization data that is + passed to a parameterized simulation model for the core. + +fifo_xlnx_512x36_2clk_prog_full.veo: + VEO template file containing code that can be used as a model for + instantiating a CORE Generator module in a Verilog design. + +fifo_xlnx_512x36_2clk_prog_full.xco: + CORE Generator input file containing the parameters used to + regenerate a core. + +fifo_xlnx_512x36_2clk_prog_full.xise: + ISE Project Navigator support file. This is a generated file and should + not be edited directly. + +fifo_xlnx_512x36_2clk_prog_full_readme.txt: + Text file indicating the files generated and how they are used. + +fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl: + ISE Project Navigator interface file. ISE uses this file to determine + how the files output by CORE Generator for the core can be integrated + into your ISE project. + +fifo_xlnx_512x36_2clk_prog_full_flist.txt: + Text file listing all of the output files produced when a customized + core was generated in the CORE Generator. + + +Please see the Xilinx CORE Generator online help for further details on +generated files and how to use them. + diff --git a/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl new file mode 100644 index 000000000..e1aecccff --- /dev/null +++ b/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl @@ -0,0 +1,68 @@ +# The package naming convention is _xmdf +package provide fifo_xlnx_512x36_2clk_prog_full_xmdf 1.0 + +# This includes some utilities that support common XMDF operations +package require utilities_xmdf + +# Define a namespace for this package. The name of the name space +# is _xmdf +namespace eval ::fifo_xlnx_512x36_2clk_prog_full_xmdf { +# Use this to define any statics +} + +# Function called by client to rebuild the params and port arrays +# Optional when the use context does not require the param or ports +# arrays to be available. +proc ::fifo_xlnx_512x36_2clk_prog_full_xmdf::xmdfInit { instance } { +# Variable containg name of library into which module is compiled +# Recommendation: +# Required +utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_xlnx_512x36_2clk_prog_full +} +# ::fifo_xlnx_512x36_2clk_prog_full_xmdf::xmdfInit + +# Function called by client to fill in all the xmdf* data variables +# based on the current settings of the parameters +proc ::fifo_xlnx_512x36_2clk_prog_full_xmdf::xmdfApplyParams { instance } { + +set fcount 0 +# Array containing libraries that are assumed to exist +# Examples include unisim and xilinxcorelib +# Optional +# In this example, we assume that the unisim library will +# be magically +# available to the simulation and synthesis tool +utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library +utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_generator_ug175.pdf +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_prog_full.ngc +utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_prog_full.v +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_prog_full.veo +utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_prog_full.xco +utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl +utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView +incr fcount + +utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_xlnx_512x36_2clk_prog_full +incr fcount + +} + +# ::gen_comp_name_xmdf::xmdfApplyParams diff --git a/fpga/usrp2/extramfifo/ext_fifo.v b/fpga/usrp2/extramfifo/ext_fifo.v index 6888617a7..80f82fc63 100644 --- a/fpga/usrp2/extramfifo/ext_fifo.v +++ b/fpga/usrp2/extramfifo/ext_fifo.v @@ -45,9 +45,7 @@ module ext_fifo wire [EXT_WIDTH-1:0] write_data; wire [EXT_WIDTH-1:0] read_data; wire full1, empty1; - wire almost_full2, full2, empty2; - wire [INT_WIDTH-1:0] data_to_fifo; - wire [INT_WIDTH-1:0] data_from_fifo; + wire almost_full2, almost_full2_spread, full2, empty2; wire [FIFO_DEPTH-1:0] capacity; wire space_avail; wire data_avail; @@ -134,17 +132,17 @@ module ext_fifo .empty(empty1)); // FIFO buffers data read from external FIFO into DSP clk domain and to TX DSP. - fifo_xlnx_32x36_2clk fifo_xlnx_32x36_2clk_i2 ( - .rst(rst), - .wr_clk(ext_clk), - .rd_clk(int_clk), - .din(read_data), // Bus [35 : 0] - .wr_en(write_output_fifo), - .rd_en(dst_rdy_i), - .dout(dataout), // Bus [35 : 0] - .full(full2), - .empty(empty2), - .prog_full(almost_full2)); + fifo_xlnx_512x36_2clk_prog_full fifo_xlnx_32x36_2clk_prog_full_i1 ( + .rst(rst), + .wr_clk(ext_clk), + .rd_clk(int_clk), + .din(read_data), // Bus [35 : 0] + .wr_en(write_output_fifo), + .rd_en(dst_rdy_i), + .dout(dataout), // Bus [35 : 0] + .full(full2), + .empty(empty2), + .prog_full(almost_full2)); end endgenerate @@ -158,13 +156,14 @@ module ext_fifo .full_out(almost_full2_spread) ); - - always @ (posedge int_clk) - debug[31:28] <= {empty2,full1,dst_rdy_i,src_rdy_i }; +// always @ (posedge int_clk) +// debug[31:28] <= {empty2,full1,dst_rdy_i,src_rdy_i }; always @ (posedge ext_clk) - debug[27:0] <= {RAM_WEn,RAM_CE1n,RAM_A[3:0],read_data[17:0],empty1,space_avail,data_avail,almost_full2 }; - + // debug[27:0] <= {RAM_WEn,RAM_CE1n,RAM_A[3:0],read_data[17:0],empty1,space_avail,data_avail,almost_full2 }; + debug[31:0] <= {7'h0,src_rdy_i,read_input_fifo,write_output_fifo,dst_rdy_i,full2,almost_full2,empty2,full1,empty1,write_data[7:0],read_data[7:0]}; + + always@ (posedge ext_clk) // debug2[31:0] <= {write_data[15:0],read_data[15:0]}; debug2[31:0] <= 0; diff --git a/fpga/usrp2/extramfifo/ext_fifo_tb.sh b/fpga/usrp2/extramfifo/ext_fifo_tb.sh old mode 100644 new mode 100755 diff --git a/fpga/usrp2/extramfifo/nobl_fifo.v b/fpga/usrp2/extramfifo/nobl_fifo.v index 4c009d980..0b63768fc 100644 --- a/fpga/usrp2/extramfifo/nobl_fifo.v +++ b/fpga/usrp2/extramfifo/nobl_fifo.v @@ -70,26 +70,27 @@ module nobl_fifo // Simple NoBL SRAM interface, 4 cycle read latency. // Read/Write arbitration via temprary application of empty/full flags. // - nobl_if nobl_if_i1 - ( - .clk(clk), - .rst(rst), - .RAM_D_pi(RAM_D_pi), - .RAM_D_po(RAM_D_po), - .RAM_D_poe(RAM_D_poe), - .RAM_A(RAM_A), - .RAM_WEn(RAM_WEn), - .RAM_CENn(RAM_CENn), - .RAM_LDn(RAM_LDn), - .RAM_OEn(RAM_OEn), - .RAM_CE1n(RAM_CE1n), - .address(address), - .data_out(write_data), - .data_in(read_data), - .data_in_valid(data_avail), - .write(write), - .enable(enable) - ); + nobl_if #(.WIDTH(WIDTH),.DEPTH(RAM_DEPTH)) + nobl_if_i1 + ( + .clk(clk), + .rst(rst), + .RAM_D_pi(RAM_D_pi), + .RAM_D_po(RAM_D_po), + .RAM_D_poe(RAM_D_poe), + .RAM_A(RAM_A), + .RAM_WEn(RAM_WEn), + .RAM_CENn(RAM_CENn), + .RAM_LDn(RAM_LDn), + .RAM_OEn(RAM_OEn), + .RAM_CE1n(RAM_CE1n), + .address(address), + .data_out(write_data), + .data_in(read_data), + .data_in_valid(data_avail), + .write(write), + .enable(enable) + ); diff --git a/fpga/usrp2/extramfifo/nobl_if.v b/fpga/usrp2/extramfifo/nobl_if.v index adf9f165b..b5ebe9c6b 100644 --- a/fpga/usrp2/extramfifo/nobl_if.v +++ b/fpga/usrp2/extramfifo/nobl_if.v @@ -56,18 +56,21 @@ module nobl_if address_pipe1 <= 0; write_pipe1 <= 0; data_out_pipe1 <= 0; + RAM_WEn <= 1; + RAM_CE1n <= 1; + end else begin enable_pipe1 <= enable; - RAM_CE1n <= ~enable; // Creates IOB flob - + RAM_CE1n <= ~enable; // Creates IOB flop + RAM_WEn <= ~write; // Creates IOB flop if (enable) begin address_pipe1 <= address_gray; write_pipe1 <= write; - RAM_WEn <= ~write; // Creates IOB flob +// RAM_WEn <= ~write; // Creates IOB flop if (write) diff --git a/fpga/usrp2/fifo/.gitignore b/fpga/usrp2/fifo/.gitignore index cba7efc8e..866f1faad 100644 --- a/fpga/usrp2/fifo/.gitignore +++ b/fpga/usrp2/fifo/.gitignore @@ -1 +1,3 @@ +*.vcd +*.lxt a.out diff --git a/fpga/usrp2/fifo/fifo19_to_fifo36.v b/fpga/usrp2/fifo/fifo19_to_fifo36.v index 5f9aeff9b..2f530109f 100644 --- a/fpga/usrp2/fifo/fifo19_to_fifo36.v +++ b/fpga/usrp2/fifo/fifo19_to_fifo36.v @@ -1,26 +1,32 @@ +// Parameter LE tells us if we are little-endian. +// Little-endian means send lower 16 bits first. +// Default is big endian (network order), send upper bits first. + module fifo19_to_fifo36 - (input clk, input reset, input clear, - input [18:0] f19_datain, - input f19_src_rdy_i, - output f19_dst_rdy_o, + #(parameter LE=0) + (input clk, input reset, input clear, + input [18:0] f19_datain, + input f19_src_rdy_i, + output f19_dst_rdy_o, - output [35:0] f36_dataout, - output f36_src_rdy_o, - input f36_dst_rdy_i, - output [31:0] debug - ); + output [35:0] f36_dataout, + output f36_src_rdy_o, + input f36_dst_rdy_i, + output [31:0] debug + ); - reg f36_sof, f36_eof, f36_occ; + reg f36_sof, f36_eof; + reg [1:0] f36_occ; - reg [1:0] state; - reg [15:0] dat0, dat1; + reg [1:0] state; + reg [15:0] dat0, dat1; - wire f19_sof = f19_datain[16]; - wire f19_eof = f19_datain[17]; - wire f19_occ = f19_datain[18]; + wire f19_sof = f19_datain[16]; + wire f19_eof = f19_datain[17]; + wire f19_occ = f19_datain[18]; - wire xfer_out = f36_src_rdy_o & f36_dst_rdy_i; + wire xfer_out = f36_src_rdy_o & f36_dst_rdy_i; always @(posedge clk) if(f19_src_rdy_i & ((state==0)|xfer_out)) @@ -68,7 +74,8 @@ module fifo19_to_fifo36 dat0 <= f19_datain; assign f19_dst_rdy_o = xfer_out | (state != 2); - assign f36_dataout = {f36_occ,f36_eof,f36_sof,dat0,dat1}; + assign f36_dataout = LE ? {f36_occ,f36_eof,f36_sof,dat1,dat0} : + {f36_occ,f36_eof,f36_sof,dat0,dat1}; assign f36_src_rdy_o = (state == 2); assign debug = state; diff --git a/fpga/usrp2/fifo/fifo36_to_fifo18.v b/fpga/usrp2/fifo/fifo36_to_fifo18.v deleted file mode 100644 index b636ab9ca..000000000 --- a/fpga/usrp2/fifo/fifo36_to_fifo18.v +++ /dev/null @@ -1,40 +0,0 @@ - -module fifo36_to_fifo18 - (input clk, input reset, input clear, - input [35:0] f36_datain, - input f36_src_rdy_i, - output f36_dst_rdy_o, - - output [17:0] f18_dataout, - output f18_src_rdy_o, - input f18_dst_rdy_i ); - - wire f36_sof = f36_datain[32]; - wire f36_eof = f36_datain[33]; - wire f36_occ = f36_datain[35:34]; - - reg phase; - - wire half_line = f36_eof & ((f36_occ==1)|(f36_occ==2)); - - assign f18_dataout[15:0] = phase ? f36_datain[15:0] : f36_datain[31:16]; - assign f18_dataout[16] = phase ? 0 : f36_sof; - assign f18_dataout[17] = phase ? f36_eof : half_line; - - assign f18_src_rdy_o = f36_src_rdy_i; - assign f36_dst_rdy_o = (phase | half_line) & f18_dst_rdy_i; - - wire f18_xfer = f18_src_rdy_o & f18_dst_rdy_i; - wire f36_xfer = f36_src_rdy_i & f36_dst_rdy_o; - - always @(posedge clk) - if(reset) - phase <= 0; - else if(f36_xfer) - phase <= 0; - else if(f18_xfer) - phase <= 1; - - -endmodule // fifo36_to_fifo18 - diff --git a/fpga/usrp2/fifo/fifo36_to_fifo19.v b/fpga/usrp2/fifo/fifo36_to_fifo19.v index de249aaeb..517a2a476 100644 --- a/fpga/usrp2/fifo/fifo36_to_fifo19.v +++ b/fpga/usrp2/fifo/fifo36_to_fifo19.v @@ -1,33 +1,38 @@ -module fifo36_to_fifo19 - (input clk, input reset, input clear, - input [35:0] f36_datain, - input f36_src_rdy_i, - output f36_dst_rdy_o, - - output [18:0] f19_dataout, - output f19_src_rdy_o, - input f19_dst_rdy_i ); +// Parameter LE tells us if we are little-endian. +// Little-endian means send lower 16 bits first. +// Default is big endian (network order), send upper bits first. +module fifo36_to_fifo19 + #(parameter LE=0) + (input clk, input reset, input clear, + input [35:0] f36_datain, + input f36_src_rdy_i, + output f36_dst_rdy_o, + + output [18:0] f19_dataout, + output f19_src_rdy_o, + input f19_dst_rdy_i ); + wire f36_sof = f36_datain[32]; wire f36_eof = f36_datain[33]; wire f36_occ = f36_datain[35:34]; - - reg phase; - - wire half_line = f36_eof & ((f36_occ==1)|(f36_occ==2)); - assign f19_dataout[15:0] = phase ? f36_datain[15:0] : f36_datain[31:16]; + reg phase; + + wire half_line = f36_eof & ((f36_occ==1)|(f36_occ==2)); + + assign f19_dataout[15:0] = (LE ^ phase) ? f36_datain[15:0] : f36_datain[31:16]; assign f19_dataout[16] = phase ? 0 : f36_sof; assign f19_dataout[17] = phase ? f36_eof : half_line; assign f19_dataout[18] = f19_dataout[17] & ((f36_occ==1)|(f36_occ==3)); assign f19_src_rdy_o = f36_src_rdy_i; assign f36_dst_rdy_o = (phase | half_line) & f19_dst_rdy_i; - - wire f19_xfer = f19_src_rdy_o & f19_dst_rdy_i; - wire f36_xfer = f36_src_rdy_i & f36_dst_rdy_o; - + + wire f19_xfer = f19_src_rdy_o & f19_dst_rdy_i; + wire f36_xfer = f36_src_rdy_i & f36_dst_rdy_o; + always @(posedge clk) if(reset) phase <= 0; @@ -36,6 +41,5 @@ module fifo36_to_fifo19 else if(f19_xfer) phase <= 1; - + endmodule // fifo36_to_fifo19 - diff --git a/fpga/usrp2/fifo/fifo36_to_ll8.v b/fpga/usrp2/fifo/fifo36_to_ll8.v index 0dee1dfc6..9604d0e38 100644 --- a/fpga/usrp2/fifo/fifo36_to_ll8.v +++ b/fpga/usrp2/fifo/fifo36_to_ll8.v @@ -55,6 +55,5 @@ module fifo36_to_ll8 assign advance = ll_src_rdy & ll_dst_rdy; assign f36_dst_rdy_o = advance & ((state==3)|ll_eof); - assign debug = state; endmodule // ll8_to_fifo36 diff --git a/fpga/usrp2/gpmc/.gitignore b/fpga/usrp2/gpmc/.gitignore new file mode 100644 index 000000000..3e14fa4f7 --- /dev/null +++ b/fpga/usrp2/gpmc/.gitignore @@ -0,0 +1,2 @@ +*.gif + diff --git a/fpga/usrp2/gpmc/Makefile.srcs b/fpga/usrp2/gpmc/Makefile.srcs new file mode 100644 index 000000000..bff6ae3e0 --- /dev/null +++ b/fpga/usrp2/gpmc/Makefile.srcs @@ -0,0 +1,20 @@ +# +# Copyright 2010 Ettus Research LLC +# + +################################################## +# SERDES Sources +################################################## +GPMC_SRCS = $(abspath $(addprefix $(BASE_DIR)/../gpmc/, \ +dbsm.v \ +edge_sync.v \ +fifo_to_gpmc_async.v \ +fifo_to_gpmc_sync.v \ +fifo_watcher.v \ +gpmc_async.v \ +gpmc_sync.v \ +gpmc_to_fifo_async.v \ +gpmc_to_fifo_sync.v \ +gpmc_wb.v \ +ram_to_fifo.v \ +)) diff --git a/fpga/usrp2/gpmc/burst_data_write.txt b/fpga/usrp2/gpmc/burst_data_write.txt new file mode 100644 index 000000000..3b5dfc785 --- /dev/null +++ b/fpga/usrp2/gpmc/burst_data_write.txt @@ -0,0 +1,16 @@ +# OMAP burst writes to FPGA + +CLK=0,nWE=1,nCS=1,nOE=1,DATA=Z. +CLK=1. +CLK=0,nWE=0,nCS=0,DATA=WR_DATA1. +CLK=1. +CLK=0,nWE=0,nCS=0,DATA=WR_DATA2. +CLK=1. +CLK=0,nWE=0,nCS=0,DATA=WR_DATA3. +CLK=1. +CLK=0,nWE=0,nCS=0,DATA=WR_DATA4. +CLK=1. +CLK=0,nWE=1,nCS=1,DATA=Z. +CLK=1. + + diff --git a/fpga/usrp2/gpmc/dbsm.v b/fpga/usrp2/gpmc/dbsm.v new file mode 100644 index 000000000..530af7205 --- /dev/null +++ b/fpga/usrp2/gpmc/dbsm.v @@ -0,0 +1,80 @@ + +module bsm + (input clk, input reset, input clear, + input write_done, + input read_done, + output readable, + output writeable); + + reg state; + localparam ST_WRITEABLE = 0; + localparam ST_READABLE = 1; + + always @(posedge clk) + if(reset | clear) + state <= ST_WRITEABLE; + else + case(state) + ST_WRITEABLE : + if(write_done) + state <= ST_READABLE; + ST_READABLE : + if(read_done) + state <= ST_WRITEABLE; + endcase // case (state) + + assign readable = (state == ST_READABLE); + assign writeable = (state == ST_WRITEABLE); + +endmodule // bsm + +module dbsm + (input clk, input reset, input clear, + output reg read_sel, output read_ready, input read_done, + output reg write_sel, output write_ready, input write_done); + + localparam NUM_BUFS = 2; + + wire [NUM_BUFS-1:0] readable, writeable, read_done_buf, write_done_buf; + + // Two of these buffer state machines + genvar i; + generate + for(i=0;i1) ; + + always @(posedge clk) + if(reset | clear) + in_packet <= 0; + else if(src_rdy2 & dst_rdy2) + if(eof2) + in_packet <= 0; + else + in_packet <= 1; + +endmodule // fifo_watcher diff --git a/fpga/usrp2/gpmc/gpmc_async.v b/fpga/usrp2/gpmc/gpmc_async.v new file mode 100644 index 000000000..23bad56ae --- /dev/null +++ b/fpga/usrp2/gpmc/gpmc_async.v @@ -0,0 +1,130 @@ +////////////////////////////////////////////////////////////////////////////////// + +module gpmc_async + #(parameter TXFIFOSIZE = 11, parameter RXFIFOSIZE = 11) + (// GPMC signals + input arst, + input EM_CLK, inout [15:0] EM_D, input [10:1] EM_A, input [1:0] EM_NBE, + input EM_WAIT0, input EM_NCS4, input EM_NCS6, input EM_NWE, input EM_NOE, + + // GPIOs for FIFO signalling + output rx_have_data, output tx_have_space, output reg bus_error, input bus_reset, + + // Wishbone signals + input wb_clk, input wb_rst, + output [10:0] wb_adr_o, output [15:0] wb_dat_mosi, input [15:0] wb_dat_miso, + output [1:0] wb_sel_o, output wb_cyc_o, output wb_stb_o, output wb_we_o, input wb_ack_i, + + // FIFO interface + input fifo_clk, input fifo_rst, input clear_tx, input clear_rx, + output [35:0] tx_data_o, output tx_src_rdy_o, input tx_dst_rdy_i, + input [35:0] rx_data_i, input rx_src_rdy_i, output rx_dst_rdy_o, + + input [15:0] tx_frame_len, output [15:0] rx_frame_len, + + output [31:0] debug + ); + + wire EM_output_enable = (~EM_NOE & (~EM_NCS4 | ~EM_NCS6)); + wire [15:0] EM_D_fifo; + wire [15:0] EM_D_wb; + + assign EM_D = ~EM_output_enable ? 16'bz : ~EM_NCS4 ? EM_D_fifo : EM_D_wb; + + wire bus_error_tx, bus_error_rx; + + always @(posedge fifo_clk) + if(fifo_rst | clear_tx | clear_rx) + bus_error <= 0; + else + bus_error <= bus_error_tx | bus_error_rx; + + // CS4 is RAM_2PORT for DATA PATH (high-speed data) + // Writes go into one RAM, reads come from the other + // CS6 is for CONTROL PATH (wishbone) + + // //////////////////////////////////////////// + // TX Data Path + + wire [17:0] tx18_data, tx18b_data; + wire tx18_src_rdy, tx18_dst_rdy, tx18b_src_rdy, tx18b_dst_rdy; + wire [15:0] tx_fifo_space; + wire [35:0] tx36_data; + wire tx36_src_rdy, tx36_dst_rdy; + + gpmc_to_fifo_async gpmc_to_fifo_async + (.EM_D(EM_D), .EM_NBE(EM_NBE), .EM_NCS(EM_NCS4), .EM_NWE(EM_NWE), + .fifo_clk(fifo_clk), .fifo_rst(fifo_rst), .clear(clear_tx), + .data_o(tx18_data), .src_rdy_o(tx18_src_rdy), .dst_rdy_i(tx18_dst_rdy), + .frame_len(tx_frame_len), .fifo_space(tx_fifo_space), .fifo_ready(tx_have_space), + .bus_error(bus_error_tx) ); + + fifo_cascade #(.WIDTH(18), .SIZE(10)) tx_fifo + (.clk(fifo_clk), .reset(fifo_rst), .clear(clear_tx), + .datain(tx18_data), .src_rdy_i(tx18_src_rdy), .dst_rdy_o(tx18_dst_rdy), .space(tx_fifo_space), + .dataout(tx18b_data), .src_rdy_o(tx18b_src_rdy), .dst_rdy_i(tx18b_dst_rdy), .occupied()); + + fifo19_to_fifo36 #(.LE(1)) f19_to_f36 // Little endian because ARM is LE + (.clk(fifo_clk), .reset(fifo_rst), .clear(clear_tx), + .f19_datain({1'b0,tx18b_data}), .f19_src_rdy_i(tx18b_src_rdy), .f19_dst_rdy_o(tx18b_dst_rdy), + .f36_dataout(tx36_data), .f36_src_rdy_o(tx36_src_rdy), .f36_dst_rdy_i(tx36_dst_rdy)); + + fifo_cascade #(.WIDTH(36), .SIZE(TXFIFOSIZE)) tx_fifo36 + (.clk(wb_clk), .reset(wb_rst), .clear(clear_tx), + .datain(tx36_data), .src_rdy_i(tx36_src_rdy), .dst_rdy_o(tx36_dst_rdy), + .dataout(tx_data_o), .src_rdy_o(tx_src_rdy_o), .dst_rdy_i(tx_dst_rdy_i)); + + // //////////////////////////////////////////// + // RX Data Path + + wire [17:0] rx18_data, rx18b_data; + wire rx18_src_rdy, rx18_dst_rdy, rx18b_src_rdy, rx18b_dst_rdy; + wire [15:0] rx_fifo_space; + wire [35:0] rx36_data; + wire rx36_src_rdy, rx36_dst_rdy; + wire dummy; + + fifo_cascade #(.WIDTH(36), .SIZE(RXFIFOSIZE)) rx_fifo36 + (.clk(wb_clk), .reset(wb_rst), .clear(clear_rx), + .datain(rx_data_i), .src_rdy_i(rx_src_rdy_i), .dst_rdy_o(rx_dst_rdy_o), + .dataout(rx36_data), .src_rdy_o(rx36_src_rdy), .dst_rdy_i(rx36_dst_rdy)); + + fifo36_to_fifo19 #(.LE(1)) f36_to_f19 // Little endian because ARM is LE + (.clk(fifo_clk), .reset(fifo_rst), .clear(clear_rx), + .f36_datain(rx36_data), .f36_src_rdy_i(rx36_src_rdy), .f36_dst_rdy_o(rx36_dst_rdy), + .f19_dataout({dummy,rx18_data}), .f19_src_rdy_o(rx18_src_rdy), .f19_dst_rdy_i(rx18_dst_rdy) ); + + fifo_cascade #(.WIDTH(18), .SIZE(12)) rx_fifo + (.clk(fifo_clk), .reset(fifo_rst), .clear(clear_rx), + .datain(rx18_data), .src_rdy_i(rx18_src_rdy), .dst_rdy_o(rx18_dst_rdy), .space(rx_fifo_space), + .dataout(rx18b_data), .src_rdy_o(rx18b_src_rdy), .dst_rdy_i(rx18b_dst_rdy), .occupied()); + + fifo_to_gpmc_async fifo_to_gpmc_async + (.clk(fifo_clk), .reset(fifo_rst), .clear(clear_rx), + .data_i(rx18b_data), .src_rdy_i(rx18b_src_rdy), .dst_rdy_o(rx18b_dst_rdy), + .EM_D(EM_D_fifo), .EM_NCS(EM_NCS4), .EM_NOE(EM_NOE), + .frame_len(rx_frame_len) ); + + wire [31:0] pkt_count; + + fifo_watcher fifo_watcher + (.clk(fifo_clk), .reset(fifo_rst), .clear(clear_rx), + .src_rdy1(rx18_src_rdy), .dst_rdy1(rx18_dst_rdy), .sof1(rx18_data[16]), .eof1(rx18_data[17]), + .src_rdy2(rx18b_src_rdy), .dst_rdy2(rx18b_dst_rdy), .sof2(rx18b_data[16]), .eof2(rx18b_data[17]), + .have_packet(rx_have_data), .length(rx_frame_len), .bus_error(bus_error_rx), + .debug(pkt_count)); + + // //////////////////////////////////////////// + // Control path on CS6 + + gpmc_wb gpmc_wb + (.EM_CLK(EM_CLK), .EM_D_in(EM_D), .EM_D_out(EM_D_wb), .EM_A(EM_A), .EM_NBE(EM_NBE), + .EM_NCS(EM_NCS6), .EM_NWE(EM_NWE), .EM_NOE(EM_NOE), + .wb_clk(wb_clk), .wb_rst(wb_rst), + .wb_adr_o(wb_adr_o), .wb_dat_mosi(wb_dat_mosi), .wb_dat_miso(wb_dat_miso), + .wb_sel_o(wb_sel_o), .wb_cyc_o(wb_cyc_o), .wb_stb_o(wb_stb_o), .wb_we_o(wb_we_o), + .wb_ack_i(wb_ack_i) ); + + assign debug = pkt_count; + +endmodule // gpmc_async diff --git a/fpga/usrp2/gpmc/gpmc_sync.v b/fpga/usrp2/gpmc/gpmc_sync.v new file mode 100644 index 000000000..61c54a793 --- /dev/null +++ b/fpga/usrp2/gpmc/gpmc_sync.v @@ -0,0 +1,108 @@ +////////////////////////////////////////////////////////////////////////////////// + +module gpmc_sync + (// GPMC signals + input arst, + input EM_CLK, inout [15:0] EM_D, input [10:1] EM_A, input [1:0] EM_NBE, + input EM_WAIT0, input EM_NCS4, input EM_NCS6, input EM_NWE, input EM_NOE, + + // GPIOs for FIFO signalling + output rx_have_data, output tx_have_space, output bus_error, input bus_reset, + + // Wishbone signals + input wb_clk, input wb_rst, + output [10:0] wb_adr_o, output [15:0] wb_dat_mosi, input [15:0] wb_dat_miso, + output [1:0] wb_sel_o, output wb_cyc_o, output wb_stb_o, output wb_we_o, input wb_ack_i, + + // FIFO interface + input fifo_clk, input fifo_rst, + output [35:0] tx_data_o, output tx_src_rdy_o, input tx_dst_rdy_i, + input [35:0] rx_data_i, input rx_src_rdy_i, output rx_dst_rdy_o, + + output [31:0] debug + ); + + wire EM_output_enable = (~EM_NOE & (~EM_NCS4 | ~EM_NCS6)); + wire [15:0] EM_D_fifo; + wire [15:0] EM_D_wb; + + assign EM_D = ~EM_output_enable ? 16'bz : ~EM_NCS4 ? EM_D_fifo : EM_D_wb; + + wire bus_error_tx, bus_error_rx; + assign bus_error = bus_error_tx | bus_error_rx; + + // CS4 is RAM_2PORT for DATA PATH (high-speed data) + // Writes go into one RAM, reads come from the other + // CS6 is for CONTROL PATH (wishbone) + + // //////////////////////////////////////////// + // TX Data Path + + wire [17:0] tx18_data, tx18b_data; + wire tx18_src_rdy, tx18_dst_rdy, tx18b_src_rdy, tx18b_dst_rdy; + wire [15:0] tx_fifo_space, tx_frame_len; + + assign tx_frame_len = 10; + + gpmc_to_fifo_sync gpmc_to_fifo_sync + (.arst(arst), + .EM_CLK(EM_CLK), .EM_D(EM_D), .EM_NBE(EM_NBE), .EM_NCS(EM_NCS4), .EM_NWE(EM_NWE), + .data_o(tx18_data), .src_rdy_o(tx18_src_rdy), .dst_rdy_i(tx18_dst_rdy), + .frame_len(tx_frame_len), .fifo_space(tx_fifo_space), .fifo_ready(tx_have_space), + .bus_error(bus_error_tx) ); + + fifo_2clock_cascade #(.WIDTH(18), .SIZE(4)) tx_fifo + (.wclk(EM_CLK), .datain(tx18_data), + .src_rdy_i(tx18_src_rdy), .dst_rdy_o(tx18_dst_rdy), .space(tx_fifo_space), + .rclk(fifo_clk), .dataout(tx18b_data), + .src_rdy_o(tx18b_src_rdy), .dst_rdy_i(tx18b_dst_rdy), .occupied(), .arst(arst)); + + fifo19_to_fifo36 #(.LE(1)) f19_to_f36 // Little endian because ARM is LE + (.clk(fifo_clk), .reset(fifo_rst), .clear(0), + .f19_datain({1'b0,tx18b_data}), .f19_src_rdy_i(tx18b_src_rdy), .f19_dst_rdy_o(tx18b_dst_rdy), + .f36_dataout(tx_data_o), .f36_src_rdy_o(tx_src_rdy_o), .f36_dst_rdy_i(tx_dst_rdy_i)); + + // //////////////////////////////////////////// + // RX Data Path + + wire [17:0] rx18_data, rx18b_data; + wire rx18_src_rdy, rx18_dst_rdy, rx18b_src_rdy, rx18b_dst_rdy; + wire [15:0] rx_fifo_space, rx_frame_len; + wire dummy; + + fifo36_to_fifo19 #(.LE(1)) f36_to_f19 // Little endian because ARM is LE + (.clk(fifo_clk), .reset(fifo_rst), .clear(0), + .f36_datain(rx_data_i), .f36_src_rdy_i(rx_src_rdy_i), .f36_dst_rdy_o(rx_dst_rdy_o), + .f19_dataout({dummy,rx18_data}), .f19_src_rdy_o(rx18_src_rdy), .f19_dst_rdy_i(rx18_dst_rdy) ); + + fifo_2clock_cascade #(.WIDTH(18), .SIZE(10)) rx_fifo + (.wclk(fifo_clk), .datain(rx18_data), + .src_rdy_i(rx18_src_rdy), .dst_rdy_o(rx18_dst_rdy), .space(rx_fifo_space), + .rclk(EM_CLK), .dataout(rx18b_data), + .src_rdy_o(rx18b_src_rdy), .dst_rdy_i(rx18b_dst_rdy), .occupied(), .arst(arst)); + + fifo_to_gpmc_sync fifo_to_gpmc_sync + (.arst(arst), + .data_i(rx18b_data), .src_rdy_i(rx18b_src_rdy), .dst_rdy_o(rx18b_dst_rdy), + .EM_CLK(EM_CLK), .EM_D(EM_D_fifo), .EM_NCS(EM_NCS4), .EM_NOE(EM_NOE), + .fifo_ready(rx_have_data) ); + + fifo_watcher fifo_watcher + (.clk(fifo_clk), .reset(fifo_rst), .clear(0), + .src_rdy(rx18_src_rdy), .dst_rdy(rx18_dst_rdy), .sof(rx18_data[16]), .eof(rx18_data[17]), + .have_packet(), .length(), .next() ); + + // //////////////////////////////////////////// + // Control path on CS6 + + gpmc_wb gpmc_wb + (.EM_CLK(EM_CLK), .EM_D_in(EM_D), .EM_D_out(EM_D_wb), .EM_A(EM_A), .EM_NBE(EM_NBE), + .EM_NCS(EM_NCS6), .EM_NWE(EM_NWE), .EM_NOE(EM_NOE), + .wb_clk(wb_clk), .wb_rst(wb_rst), + .wb_adr_o(wb_adr_o), .wb_dat_mosi(wb_dat_mosi), .wb_dat_miso(wb_dat_miso), + .wb_sel_o(wb_sel_o), .wb_cyc_o(wb_cyc_o), .wb_stb_o(wb_stb_o), .wb_we_o(wb_we_o), + .wb_ack_i(wb_ack_i) ); + + assign debug = 0; + +endmodule // gpmc_sync diff --git a/fpga/usrp2/gpmc/gpmc_to_fifo_async.v b/fpga/usrp2/gpmc/gpmc_to_fifo_async.v new file mode 100644 index 000000000..55c0cef50 --- /dev/null +++ b/fpga/usrp2/gpmc/gpmc_to_fifo_async.v @@ -0,0 +1,68 @@ + +module gpmc_to_fifo_async + (input [15:0] EM_D, input [1:0] EM_NBE, input EM_NCS, input EM_NWE, + + input fifo_clk, input fifo_rst, input clear, + output reg [17:0] data_o, output reg src_rdy_o, input dst_rdy_i, + + input [15:0] frame_len, input [15:0] fifo_space, output reg fifo_ready, + output reg bus_error ); + + reg [15:0] counter; + // Synchronize the async control signals + reg [1:0] cs_del, we_del; + always @(posedge fifo_clk) + if(fifo_rst) + begin + cs_del <= 2'b11; + we_del <= 2'b11; + end + else + begin + cs_del <= { cs_del[0], EM_NCS }; + we_del <= { we_del[0], EM_NWE }; + end + + wire do_write = (~cs_del[0] & (we_del == 2'b10)); + wire first_write = (counter == 0); + wire last_write = ((counter+1) == frame_len); + + always @(posedge fifo_clk) + if(do_write) + begin + data_o[15:0] <= EM_D; + data_o[16] <= first_write; + data_o[17] <= last_write; + // no byte writes data_o[18] <= |EM_NBE; // mark half full if either is not enabled FIXME + end + + always @(posedge fifo_clk) + if(fifo_rst | clear) + src_rdy_o <= 0; + else if(do_write) + src_rdy_o <= 1; + else + src_rdy_o <= 0; // Assume it was taken + + always @(posedge fifo_clk) + if(fifo_rst | clear) + counter <= 0; + else if(do_write) + if(last_write) + counter <= 0; + else + counter <= counter + 1; + + always @(posedge fifo_clk) + if(fifo_rst | clear) + fifo_ready <= 0; + else + fifo_ready <= /* first_write & */ (fifo_space > 16'd1023); + + always @(posedge fifo_clk) + if(fifo_rst | clear) + bus_error <= 0; + else if(src_rdy_o & ~dst_rdy_i) + bus_error <= 1; + +endmodule // gpmc_to_fifo_async diff --git a/fpga/usrp2/gpmc/gpmc_to_fifo_sync.v b/fpga/usrp2/gpmc/gpmc_to_fifo_sync.v new file mode 100644 index 000000000..688de0e17 --- /dev/null +++ b/fpga/usrp2/gpmc/gpmc_to_fifo_sync.v @@ -0,0 +1,57 @@ + +// Assumes a GPMC cycle with GPMC clock, as in the timing diagrams +// If a packet bigger or smaller than we are told is sent, behavior is undefined. +// If dst_rdy_i is low when we get data, behavior is undefined and we signal bus error. +// If there is a bus error, we should be reset + +module gpmc_to_fifo_sync + (input arst, + input EM_CLK, input [15:0] EM_D, input [1:0] EM_NBE, + input EM_NCS, input EM_NWE, + output reg [17:0] data_o, output reg src_rdy_o, input dst_rdy_i, + input [15:0] frame_len, input [15:0] fifo_space, output fifo_ready, + output reg bus_error); + + reg [10:0] counter; + wire first_write = (counter == 0); + wire last_write = ((counter+1) == frame_len); + wire do_write = ~EM_NCS & ~EM_NWE; + + always @(posedge EM_CLK or posedge arst) + if(arst) + data_o <= 0; + else if(do_write) + begin + data_o[15:0] <= EM_D; + data_o[16] <= first_write; + data_o[17] <= last_write; + // no byte writes data_o[18] <= |EM_NBE; // mark half full if either is not enabled FIXME + end + + always @(posedge EM_CLK or posedge arst) + if(arst) + src_rdy_o <= 0; + else if(do_write & ~bus_error) // Don't put junk in if there is a bus error + src_rdy_o <= 1; + else + src_rdy_o <= 0; // Assume it was taken, ignore dst_rdy_i + + always @(posedge EM_CLK or posedge arst) + if(arst) + counter <= 0; + else if(do_write) + if(last_write) + counter <= 0; + else + counter <= counter + 1; + + assign fifo_ready = first_write & (fifo_space > frame_len); + + always @(posedge EM_CLK or posedge arst) + if(arst) + bus_error <= 0; + else if(src_rdy_o & ~dst_rdy_i) + bus_error <= 1; + // must be reset to make the error go away + +endmodule // gpmc_to_fifo_sync diff --git a/fpga/usrp2/gpmc/gpmc_wb.v b/fpga/usrp2/gpmc/gpmc_wb.v new file mode 100644 index 000000000..db6fbc6e9 --- /dev/null +++ b/fpga/usrp2/gpmc/gpmc_wb.v @@ -0,0 +1,57 @@ + + +module gpmc_wb + (input EM_CLK, input [15:0] EM_D_in, output [15:0] EM_D_out, input [10:1] EM_A, input [1:0] EM_NBE, + input EM_NCS, input EM_NWE, input EM_NOE, + + input wb_clk, input wb_rst, + output reg [10:0] wb_adr_o, output reg [15:0] wb_dat_mosi, input [15:0] wb_dat_miso, + output reg [1:0] wb_sel_o, output wb_cyc_o, output reg wb_stb_o, output reg wb_we_o, input wb_ack_i); + + // //////////////////////////////////////////// + // Control Path, Wishbone bus bridge (wb master) + reg [1:0] cs_del, we_del, oe_del; + + // Synchronize the async control signals + always @(posedge wb_clk) + begin + cs_del <= { cs_del[0], EM_NCS }; + we_del <= { we_del[0], EM_NWE }; + oe_del <= { oe_del[0], EM_NOE }; + end + + always @(posedge wb_clk) + if(cs_del == 2'b10) // Falling Edge + wb_adr_o <= { EM_A, 1'b0 }; + + always @(posedge wb_clk) + if(we_del == 2'b10) // Falling Edge + begin + wb_dat_mosi <= EM_D_in; + wb_sel_o <= ~EM_NBE; + end + + reg [15:0] EM_D_hold; + + always @(posedge wb_clk) + if(wb_ack_i) + EM_D_hold <= wb_dat_miso; + + assign EM_D_out = wb_ack_i ? wb_dat_miso : EM_D_hold; + + assign wb_cyc_o = wb_stb_o; + + always @(posedge wb_clk) + if(~cs_del[0] & (we_del == 2'b10) ) + wb_we_o <= 1; + else if(wb_ack_i) // Turn off we when done. Could also use we_del[0], others... + wb_we_o <= 0; + + // FIXME should this look at cs_del[1]? + always @(posedge wb_clk) + if(~cs_del[0] & ((we_del == 2'b10) | (oe_del == 2'b10))) + wb_stb_o <= 1; + else if(wb_ack_i) + wb_stb_o <= 0; + +endmodule // gpmc_wb diff --git a/fpga/usrp2/gpmc/make_timing_diag b/fpga/usrp2/gpmc/make_timing_diag new file mode 100755 index 000000000..03166ad35 --- /dev/null +++ b/fpga/usrp2/gpmc/make_timing_diag @@ -0,0 +1,6 @@ +#!/bin/sh +drawtiming -o single_data_write.gif single_data_write.txt +drawtiming -o single_data_read.gif single_data_read.txt +drawtiming -o burst_data_write.gif burst_data_write.txt +#drawtiming -o burst_data_read.gif burst_data_read.txt + diff --git a/fpga/usrp2/gpmc/ram_to_fifo.v b/fpga/usrp2/gpmc/ram_to_fifo.v new file mode 100644 index 000000000..8549dcc35 --- /dev/null +++ b/fpga/usrp2/gpmc/ram_to_fifo.v @@ -0,0 +1,46 @@ + + +module ram_to_fifo + (input clk, input reset, + input [10:0] read_length, // From the dbsm (?) + output read_en, output reg [8:0] read_addr, input [31:0] read_data, input read_ready, output read_done, + output [35:0] data_o, output src_rdy_o, input dst_rdy_i); + + // read_length/2 = number of 32 bit lines, numbered 0 through read_length/2-1 + wire [8:0] last_line = (read_length[10:1]-1); + + reg read_phase, sop; + + assign read_en = (read_phase == 0) | dst_rdy_i; + assign src_rdy_o = (read_phase == 1); + + always @(posedge clk) + if(reset) + begin + read_addr <= 0; + read_phase <= 0; + sop <= 1; + end + else + if(read_phase == 0) + begin + read_addr <= read_ready; + read_phase <= read_ready; + end + else if(dst_rdy_i) + begin + sop <= 0; + if(read_addr == last_line) + begin + read_addr <= 0; + read_phase <= 0; + end + else + read_addr <= read_addr + 1; + end + + assign read_done = (read_phase == 1) & (read_addr == last_line) & dst_rdy_i; + wire eop = (read_addr == last_line); + assign data_o = { 2'b00, eop, sop, read_data }; + +endmodule // ram_to_fifo diff --git a/fpga/usrp2/gpmc/single_data_read.txt b/fpga/usrp2/gpmc/single_data_read.txt new file mode 100644 index 000000000..1dc0e3a78 --- /dev/null +++ b/fpga/usrp2/gpmc/single_data_read.txt @@ -0,0 +1,12 @@ +# OMAP writes to FPGA +# initialize the signals +CLK=0,nWE=1,nCS=1,nOE=1,DATA=Z. +CLK=1. +CLK=0,nOE=0,nCS=0,DATA=RD_DATA. +CLK=1. +CLK=0. +CLK=1. +CLK=0,nOE=1,nCS=1,DATA=Z. +CLK=1. + + diff --git a/fpga/usrp2/gpmc/single_data_write.txt b/fpga/usrp2/gpmc/single_data_write.txt new file mode 100644 index 000000000..287e3e2c1 --- /dev/null +++ b/fpga/usrp2/gpmc/single_data_write.txt @@ -0,0 +1,10 @@ +# OMAP writes to FPGA +# initialize the signals +CLK=0,nWE=1,nCS=1,nOE=1,DATA=Z. +CLK=1. +CLK=0,nWE=0,nCS=0,DATA=WR_DATA. +CLK=1. +CLK=0,nWE=1,nCS=1,DATA=Z. +CLK=1. + + diff --git a/fpga/usrp2/models/gpmc_model_async.v b/fpga/usrp2/models/gpmc_model_async.v new file mode 100644 index 000000000..beeaee028 --- /dev/null +++ b/fpga/usrp2/models/gpmc_model_async.v @@ -0,0 +1,130 @@ +`timescale 1ps/1ps + +module gpmc_model_async + (output EM_CLK, inout [15:0] EM_D, output reg [10:1] EM_A, output reg [1:0] EM_NBE, + output reg EM_WAIT0, output reg EM_NCS4, output reg EM_NCS6, + output reg EM_NWE, output reg EM_NOE ); + + assign EM_CLK = 0; + reg [15:0] EM_D_int; + assign EM_D = EM_D_int; + + initial + begin + EM_A <= 10'bz; + EM_NBE <= 2'b11; + EM_NWE <= 1; + EM_NOE <= 1; + EM_NCS4 <= 1; + EM_NCS6 <= 1; + EM_D_int <= 16'bz; + EM_WAIT0 <= 0; // FIXME this is actually an input + end + + task GPMC_Write; + input ctrl; + input [10:0] addr; + input [15:0] data; + begin + #23000; + EM_A <= addr[10:1]; + EM_D_int <= data; + #20100; + if(ctrl) + EM_NCS6 <= 0; + else + EM_NCS4 <= 0; + #14000; + EM_NWE <= 0; + #77500; + EM_NCS4 <= 1; + EM_NCS6 <= 1; + //#1.5; + EM_NWE <= 1; + #60000; + EM_A <= 10'bz; + EM_D_int <= 16'bz; + end + endtask // GPMC_Write + + task GPMC_Read; + input ctrl; + input [10:0] addr; + begin + #13000; + EM_A <= addr[10:1]; + #3000; + if(ctrl) + EM_NCS6 <= 0; + else + EM_NCS4 <= 0; + #14000; + EM_NOE <= 0; + #77500; + EM_NCS4 <= 1; + EM_NCS6 <= 1; + //#1.5; + $display("Data Read from GPMC: %X",EM_D); + EM_NOE <= 1; + #254000; + EM_A <= 10'bz; + end + endtask // GPMC_Read + + initial + begin + #1000000; + GPMC_Write(1,36,16'hF00D); + #1000000; + GPMC_Read(1,36); + #1000000; + GPMC_Write(0,0,16'h1234); + GPMC_Write(0,0,16'h5678); + GPMC_Write(0,0,16'h9abc); + GPMC_Write(0,0,16'hF00D); + GPMC_Write(0,0,16'hDEAD); + GPMC_Write(0,0,16'hDEAD); + GPMC_Write(0,0,16'hDEAD); + GPMC_Write(0,0,16'hDEAD); + GPMC_Write(0,0,16'hDEAD); + GPMC_Write(0,0,16'hDEAD); + #1000000; + GPMC_Write(0,0,16'h1234); + GPMC_Write(0,0,16'h5678); + GPMC_Write(0,0,16'h9abc); + GPMC_Write(0,0,16'hF00D); + GPMC_Write(0,0,16'hDEAD); + GPMC_Write(0,0,16'hDEAD); + GPMC_Write(0,0,16'hDEAD); + GPMC_Write(0,0,16'hDEAD); + GPMC_Write(0,0,16'hDEAD); + GPMC_Write(0,0,16'h9876); + #1000000; + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + #1000000; + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + GPMC_Read(0,0); + #1000000; + GPMC_Read(0,0); + #100000000; + $finish; + end + +endmodule // gpmc_model_async diff --git a/fpga/usrp2/models/gpmc_model_sync.v b/fpga/usrp2/models/gpmc_model_sync.v new file mode 100644 index 000000000..641720c15 --- /dev/null +++ b/fpga/usrp2/models/gpmc_model_sync.v @@ -0,0 +1,97 @@ + + +module gpmc_model_sync + (output reg EM_CLK, inout [15:0] EM_D, output reg [10:1] EM_A, output reg [1:0] EM_NBE, + output reg EM_WAIT0, output reg EM_NCS4, output reg EM_NCS6, + output reg EM_NWE, output reg EM_NOE ); + + reg [15:0] EM_D_int; + assign EM_D = EM_D_int; + + initial + begin + EM_CLK <= 0; + EM_A <= 10'bz; + EM_NBE <= 2'b11; + EM_NWE <= 1; + EM_NOE <= 1; + EM_NCS4 <= 1; + EM_NCS6 <= 1; + EM_D_int <= 16'bz; + EM_WAIT0 <= 0; // FIXME this is actually an input + end + + task GPMC_Write; + input ctrl; + input [10:0] addr; + input [15:0] data; + begin + EM_CLK <= 1; + #10; + EM_CLK <= 0; + EM_NWE <= 0; + if(ctrl) + EM_NCS6 <= 0; + else + EM_NCS4 <= 0; + EM_A <= addr[10:1]; + EM_D_int <= data; + #10; + EM_CLK <= 1; + #10; + EM_CLK <= 0; + EM_NWE <= 1; + EM_NCS4 <= 1; + EM_NCS6 <= 1; + EM_A <= 10'bz; + EM_D_int <= 16'bz; + #100; + end + endtask // GPMC_Write + + task GPMC_Read; + input ctrl; + input [10:0] addr; + begin + #1.3; + EM_A <= addr[10:1]; + #3; + if(ctrl) + EM_NCS6 <= 0; + else + EM_NCS4 <= 0; + #14; + EM_NOE <= 0; + #77.5; + EM_NCS4 <= 1; + EM_NCS6 <= 1; + //#1.5; + $display("Data Read from GPMC: %X",EM_D); + EM_NOE <= 1; + #254; + EM_A <= 10'bz; + end + endtask // GPMC_Read + + initial + begin + #1000; + GPMC_Write(1,36,16'hF00D); + #1000; + GPMC_Read(1,36); + #1000; + GPMC_Write(0,36,16'h1234); + GPMC_Write(0,38,16'h5678); + GPMC_Write(0,40,16'h9abc); + GPMC_Write(0,11'h2F4,16'hF00D); + GPMC_Write(0,11'h7FE,16'hDEAD); + GPMC_Write(0,11'h7FE,16'hDEAD); + GPMC_Write(0,11'h7FE,16'hDEAD); + GPMC_Write(0,11'h7FE,16'hDEAD); + GPMC_Write(0,11'h7FE,16'hDEAD); + GPMC_Write(0,11'h7FE,16'hDEAD); + #100000; + $finish; + end + +endmodule // gpmc_model diff --git a/fpga/usrp2/opencores/Makefile.srcs b/fpga/usrp2/opencores/Makefile.srcs index 30360a17d..284578b39 100644 --- a/fpga/usrp2/opencores/Makefile.srcs +++ b/fpga/usrp2/opencores/Makefile.srcs @@ -24,5 +24,5 @@ spi/rtl/verilog/spi_clgen.v \ spi/rtl/verilog/spi_defines.v \ spi/rtl/verilog/spi_shift.v \ spi/rtl/verilog/spi_top.v \ -spi/rtl/verilog/timescale.v \ +spi/rtl/verilog/spi_top16.v \ )) diff --git a/fpga/usrp2/opencores/aemb/rtl/verilog/aeMB_core_BE.v b/fpga/usrp2/opencores/aemb/rtl/verilog/aeMB_core_BE.v index 38ca3a023..6c066d5d9 100644 --- a/fpga/usrp2/opencores/aemb/rtl/verilog/aeMB_core_BE.v +++ b/fpga/usrp2/opencores/aemb/rtl/verilog/aeMB_core_BE.v @@ -11,7 +11,7 @@ module aeMB_core_BE (input sys_clk_i, input sys_rst_i, // Instruction port - output [14:0] if_adr, + output [ISIZ-1:0] if_adr, input [31:0] if_dat, // Data port output dwb_we_o, @@ -34,7 +34,7 @@ module aeMB_core_BE assign dwb_cyc_o = dwb_stb_o; assign iwb_ack_i = 1'b1; - assign if_adr = iwb_adr_o[14:0]; + assign if_adr = iwb_adr_o[ISIZ-1:0]; assign iwb_dat_i = if_dat; // Note some "wishbone" instruction fetch signals pruned on external interface diff --git a/fpga/usrp2/opencores/spi/rtl/verilog/spi_clgen.v b/fpga/usrp2/opencores/spi/rtl/verilog/spi_clgen.v index 7bc4f6e5e..2d9c34f40 100644 --- a/fpga/usrp2/opencores/spi/rtl/verilog/spi_clgen.v +++ b/fpga/usrp2/opencores/spi/rtl/verilog/spi_clgen.v @@ -39,12 +39,9 @@ ////////////////////////////////////////////////////////////////////// `include "spi_defines.v" -`include "timescale.v" module spi_clgen (clk_in, rst, go, enable, last_clk, divider, clk_out, pos_edge, neg_edge); - parameter Tp = 1; - input clk_in; // input clock (system clock) input rst; // reset input enable; // clock enable @@ -68,40 +65,40 @@ module spi_clgen (clk_in, rst, go, enable, last_clk, divider, clk_out, pos_edge, assign cnt_one = cnt == {{`SPI_DIVIDER_LEN-1{1'b0}}, 1'b1}; // Counter counts half period - always @(posedge clk_in or posedge rst) + always @(posedge clk_in) begin if(rst) - cnt <= #Tp {`SPI_DIVIDER_LEN{1'b1}}; + cnt <= {`SPI_DIVIDER_LEN{1'b1}}; else begin if(!enable || cnt_zero) - cnt <= #Tp divider; + cnt <= divider; else - cnt <= #Tp cnt - {{`SPI_DIVIDER_LEN-1{1'b0}}, 1'b1}; + cnt <= cnt - {{`SPI_DIVIDER_LEN-1{1'b0}}, 1'b1}; end end // clk_out is asserted every other half period - always @(posedge clk_in or posedge rst) + always @(posedge clk_in) begin if(rst) - clk_out <= #Tp 1'b0; + clk_out <= 1'b0; else - clk_out <= #Tp (enable && cnt_zero && (!last_clk || clk_out)) ? ~clk_out : clk_out; + clk_out <= (enable && cnt_zero && (!last_clk || clk_out)) ? ~clk_out : clk_out; end // Pos and neg edge signals - always @(posedge clk_in or posedge rst) + always @(posedge clk_in) begin if(rst) begin - pos_edge <= #Tp 1'b0; - neg_edge <= #Tp 1'b0; + pos_edge <= 1'b0; + neg_edge <= 1'b0; end else begin - pos_edge <= #Tp (enable && !clk_out && cnt_one) || (!(|divider) && clk_out) || (!(|divider) && go && !enable); - neg_edge <= #Tp (enable && clk_out && cnt_one) || (!(|divider) && !clk_out && enable); + pos_edge <= (enable && !clk_out && cnt_one) || (!(|divider) && clk_out) || (!(|divider) && go && !enable); + neg_edge <= (enable && clk_out && cnt_one) || (!(|divider) && !clk_out && enable); end end endmodule diff --git a/fpga/usrp2/opencores/spi/rtl/verilog/spi_defines.v b/fpga/usrp2/opencores/spi/rtl/verilog/spi_defines.v index a6925918e..3e4dd0e3c 100644 --- a/fpga/usrp2/opencores/spi/rtl/verilog/spi_defines.v +++ b/fpga/usrp2/opencores/spi/rtl/verilog/spi_defines.v @@ -43,8 +43,8 @@ // low frequency of system clock this can be reduced. // Use SPI_DIVIDER_LEN for fine tuning theexact number. // -//`define SPI_DIVIDER_LEN_8 -`define SPI_DIVIDER_LEN_16 +`define SPI_DIVIDER_LEN_8 +//`define SPI_DIVIDER_LEN_16 //`define SPI_DIVIDER_LEN_24 //`define SPI_DIVIDER_LEN_32 @@ -102,8 +102,8 @@ // Number of device select signals. Use SPI_SS_NB for fine tuning the // exact number. // -`define SPI_SS_NB_8 -//`define SPI_SS_NB_16 +//`define SPI_SS_NB_8 +`define SPI_SS_NB_16 //`define SPI_SS_NB_24 //`define SPI_SS_NB_32 @@ -137,7 +137,7 @@ `define SPI_TX_2 2 `define SPI_TX_3 3 `define SPI_CTRL 4 -`define SPI_DEVIDE 5 +`define SPI_DIVIDE 5 `define SPI_SS 6 // diff --git a/fpga/usrp2/opencores/spi/rtl/verilog/spi_shift.v b/fpga/usrp2/opencores/spi/rtl/verilog/spi_shift.v index b17ac8b1f..ac3bb3f48 100644 --- a/fpga/usrp2/opencores/spi/rtl/verilog/spi_shift.v +++ b/fpga/usrp2/opencores/spi/rtl/verilog/spi_shift.v @@ -39,15 +39,12 @@ ////////////////////////////////////////////////////////////////////// `include "spi_defines.v" -`include "timescale.v" module spi_shift (clk, rst, latch, byte_sel, len, lsb, go, pos_edge, neg_edge, rx_negedge, tx_negedge, tip, last, p_in, p_out, s_clk, s_in, s_out); - parameter Tp = 1; - input clk; // system clock input rst; // reset input [3:0] latch; // latch signal for storing the data in shift register @@ -89,149 +86,149 @@ module spi_shift (clk, rst, latch, byte_sel, len, lsb, go, assign tx_clk = (tx_negedge ? neg_edge : pos_edge) && !last; // Character bit counter - always @(posedge clk or posedge rst) + always @(posedge clk) begin if(rst) - cnt <= #Tp {`SPI_CHAR_LEN_BITS+1{1'b0}}; + cnt <= {`SPI_CHAR_LEN_BITS+1{1'b0}}; else begin if(tip) - cnt <= #Tp pos_edge ? (cnt - {{`SPI_CHAR_LEN_BITS{1'b0}}, 1'b1}) : cnt; + cnt <= pos_edge ? (cnt - {{`SPI_CHAR_LEN_BITS{1'b0}}, 1'b1}) : cnt; else - cnt <= #Tp !(|len) ? {1'b1, {`SPI_CHAR_LEN_BITS{1'b0}}} : {1'b0, len}; + cnt <= !(|len) ? {1'b1, {`SPI_CHAR_LEN_BITS{1'b0}}} : {1'b0, len}; end end // Transfer in progress - always @(posedge clk or posedge rst) + always @(posedge clk) begin if(rst) - tip <= #Tp 1'b0; + tip <= 1'b0; else if(go && ~tip) - tip <= #Tp 1'b1; + tip <= 1'b1; else if(tip && last && pos_edge) - tip <= #Tp 1'b0; + tip <= 1'b0; end // Sending bits to the line - always @(posedge clk or posedge rst) + always @(posedge clk) begin if (rst) - s_out <= #Tp 1'b0; + s_out <= 1'b0; else - s_out <= #Tp (tx_clk || !tip) ? data[tx_bit_pos[`SPI_CHAR_LEN_BITS-1:0]] : s_out; + s_out <= (tx_clk || !tip) ? data[tx_bit_pos[`SPI_CHAR_LEN_BITS-1:0]] : s_out; end // Receiving bits from the line - always @(posedge clk or posedge rst) + always @(posedge clk) begin if (rst) - data <= #Tp {`SPI_MAX_CHAR{1'b0}}; + data <= {`SPI_MAX_CHAR{1'b0}}; `ifdef SPI_MAX_CHAR_128 else if (latch[0] && !tip) begin if (byte_sel[3]) - data[31:24] <= #Tp p_in[31:24]; + data[31:24] <= p_in[31:24]; if (byte_sel[2]) - data[23:16] <= #Tp p_in[23:16]; + data[23:16] <= p_in[23:16]; if (byte_sel[1]) - data[15:8] <= #Tp p_in[15:8]; + data[15:8] <= p_in[15:8]; if (byte_sel[0]) - data[7:0] <= #Tp p_in[7:0]; + data[7:0] <= p_in[7:0]; end else if (latch[1] && !tip) begin if (byte_sel[3]) - data[63:56] <= #Tp p_in[31:24]; + data[63:56] <= p_in[31:24]; if (byte_sel[2]) - data[55:48] <= #Tp p_in[23:16]; + data[55:48] <= p_in[23:16]; if (byte_sel[1]) - data[47:40] <= #Tp p_in[15:8]; + data[47:40] <= p_in[15:8]; if (byte_sel[0]) - data[39:32] <= #Tp p_in[7:0]; + data[39:32] <= p_in[7:0]; end else if (latch[2] && !tip) begin if (byte_sel[3]) - data[95:88] <= #Tp p_in[31:24]; + data[95:88] <= p_in[31:24]; if (byte_sel[2]) - data[87:80] <= #Tp p_in[23:16]; + data[87:80] <= p_in[23:16]; if (byte_sel[1]) - data[79:72] <= #Tp p_in[15:8]; + data[79:72] <= p_in[15:8]; if (byte_sel[0]) - data[71:64] <= #Tp p_in[7:0]; + data[71:64] <= p_in[7:0]; end else if (latch[3] && !tip) begin if (byte_sel[3]) - data[127:120] <= #Tp p_in[31:24]; + data[127:120] <= p_in[31:24]; if (byte_sel[2]) - data[119:112] <= #Tp p_in[23:16]; + data[119:112] <= p_in[23:16]; if (byte_sel[1]) - data[111:104] <= #Tp p_in[15:8]; + data[111:104] <= p_in[15:8]; if (byte_sel[0]) - data[103:96] <= #Tp p_in[7:0]; + data[103:96] <= p_in[7:0]; end `else `ifdef SPI_MAX_CHAR_64 else if (latch[0] && !tip) begin if (byte_sel[3]) - data[31:24] <= #Tp p_in[31:24]; + data[31:24] <= p_in[31:24]; if (byte_sel[2]) - data[23:16] <= #Tp p_in[23:16]; + data[23:16] <= p_in[23:16]; if (byte_sel[1]) - data[15:8] <= #Tp p_in[15:8]; + data[15:8] <= p_in[15:8]; if (byte_sel[0]) - data[7:0] <= #Tp p_in[7:0]; + data[7:0] <= p_in[7:0]; end else if (latch[1] && !tip) begin if (byte_sel[3]) - data[63:56] <= #Tp p_in[31:24]; + data[63:56] <= p_in[31:24]; if (byte_sel[2]) - data[55:48] <= #Tp p_in[23:16]; + data[55:48] <= p_in[23:16]; if (byte_sel[1]) - data[47:40] <= #Tp p_in[15:8]; + data[47:40] <= p_in[15:8]; if (byte_sel[0]) - data[39:32] <= #Tp p_in[7:0]; + data[39:32] <= p_in[7:0]; end `else else if (latch[0] && !tip) begin `ifdef SPI_MAX_CHAR_8 if (byte_sel[0]) - data[`SPI_MAX_CHAR-1:0] <= #Tp p_in[`SPI_MAX_CHAR-1:0]; + data[`SPI_MAX_CHAR-1:0] <= p_in[`SPI_MAX_CHAR-1:0]; `endif `ifdef SPI_MAX_CHAR_16 if (byte_sel[0]) - data[7:0] <= #Tp p_in[7:0]; + data[7:0] <= p_in[7:0]; if (byte_sel[1]) - data[`SPI_MAX_CHAR-1:8] <= #Tp p_in[`SPI_MAX_CHAR-1:8]; + data[`SPI_MAX_CHAR-1:8] <= p_in[`SPI_MAX_CHAR-1:8]; `endif `ifdef SPI_MAX_CHAR_24 if (byte_sel[0]) - data[7:0] <= #Tp p_in[7:0]; + data[7:0] <= p_in[7:0]; if (byte_sel[1]) - data[15:8] <= #Tp p_in[15:8]; + data[15:8] <= p_in[15:8]; if (byte_sel[2]) - data[`SPI_MAX_CHAR-1:16] <= #Tp p_in[`SPI_MAX_CHAR-1:16]; + data[`SPI_MAX_CHAR-1:16] <= p_in[`SPI_MAX_CHAR-1:16]; `endif `ifdef SPI_MAX_CHAR_32 if (byte_sel[0]) - data[7:0] <= #Tp p_in[7:0]; + data[7:0] <= p_in[7:0]; if (byte_sel[1]) - data[15:8] <= #Tp p_in[15:8]; + data[15:8] <= p_in[15:8]; if (byte_sel[2]) - data[23:16] <= #Tp p_in[23:16]; + data[23:16] <= p_in[23:16]; if (byte_sel[3]) - data[`SPI_MAX_CHAR-1:24] <= #Tp p_in[`SPI_MAX_CHAR-1:24]; + data[`SPI_MAX_CHAR-1:24] <= p_in[`SPI_MAX_CHAR-1:24]; `endif end `endif `endif else - data[rx_bit_pos[`SPI_CHAR_LEN_BITS-1:0]] <= #Tp rx_clk ? s_in : data[rx_bit_pos[`SPI_CHAR_LEN_BITS-1:0]]; + data[rx_bit_pos[`SPI_CHAR_LEN_BITS-1:0]] <= rx_clk ? s_in : data[rx_bit_pos[`SPI_CHAR_LEN_BITS-1:0]]; end endmodule diff --git a/fpga/usrp2/opencores/spi/rtl/verilog/spi_top.v b/fpga/usrp2/opencores/spi/rtl/verilog/spi_top.v index 09b2e50e1..8289449a9 100644 --- a/fpga/usrp2/opencores/spi/rtl/verilog/spi_top.v +++ b/fpga/usrp2/opencores/spi/rtl/verilog/spi_top.v @@ -1,3 +1,6 @@ + +// Modified 2010 by Matt Ettus to remove old verilog style + ////////////////////////////////////////////////////////////////////// //// //// //// spi_top.v //// @@ -40,7 +43,6 @@ `include "spi_defines.v" -`include "timescale.v" module spi_top ( @@ -52,8 +54,6 @@ module spi_top ss_pad_o, sclk_pad_o, mosi_pad_o, miso_pad_i ); - parameter Tp = 1; - // Wishbone signals input wb_clk_i; // master clock input input wb_rst_i; // synchronous active high reset @@ -101,7 +101,7 @@ module spi_top wire last_bit; // marks last character bit // Address decoder - assign spi_divider_sel = wb_cyc_i & wb_stb_i & (wb_adr_i[`SPI_OFS_BITS] == `SPI_DEVIDE); + assign spi_divider_sel = wb_cyc_i & wb_stb_i & (wb_adr_i[`SPI_OFS_BITS] == `SPI_DIVIDE); assign spi_ctrl_sel = wb_cyc_i & wb_stb_i & (wb_adr_i[`SPI_OFS_BITS] == `SPI_CTRL); assign spi_tx_sel[0] = wb_cyc_i & wb_stb_i & (wb_adr_i[`SPI_OFS_BITS] == `SPI_TX_0); assign spi_tx_sel[1] = wb_cyc_i & wb_stb_i & (wb_adr_i[`SPI_OFS_BITS] == `SPI_TX_1); @@ -132,96 +132,96 @@ module spi_top `endif `endif `SPI_CTRL: wb_dat = {{32-`SPI_CTRL_BIT_NB{1'b0}}, ctrl}; - `SPI_DEVIDE: wb_dat = {{32-`SPI_DIVIDER_LEN{1'b0}}, divider}; + `SPI_DIVIDE: wb_dat = {{32-`SPI_DIVIDER_LEN{1'b0}}, divider}; `SPI_SS: wb_dat = {{32-`SPI_SS_NB{1'b0}}, ss}; default: wb_dat = 32'bx; endcase end // Wb data out - always @(posedge wb_clk_i or posedge wb_rst_i) + always @(posedge wb_clk_i) begin if (wb_rst_i) - wb_dat_o <= #Tp 32'b0; + wb_dat_o <= 32'b0; else - wb_dat_o <= #Tp wb_dat; + wb_dat_o <= wb_dat; end // Wb acknowledge - always @(posedge wb_clk_i or posedge wb_rst_i) + always @(posedge wb_clk_i) begin if (wb_rst_i) - wb_ack_o <= #Tp 1'b0; + wb_ack_o <= 1'b0; else - wb_ack_o <= #Tp wb_cyc_i & wb_stb_i & ~wb_ack_o; + wb_ack_o <= wb_cyc_i & wb_stb_i & ~wb_ack_o; end // Wb error assign wb_err_o = 1'b0; // Interrupt - always @(posedge wb_clk_i or posedge wb_rst_i) + always @(posedge wb_clk_i) begin if (wb_rst_i) - wb_int_o <= #Tp 1'b0; + wb_int_o <= 1'b0; else if (ie && tip && last_bit && pos_edge) - wb_int_o <= #Tp 1'b1; + wb_int_o <= 1'b1; else if (wb_ack_o) - wb_int_o <= #Tp 1'b0; + wb_int_o <= 1'b0; end // Divider register - always @(posedge wb_clk_i or posedge wb_rst_i) + always @(posedge wb_clk_i) begin if (wb_rst_i) - divider <= #Tp {`SPI_DIVIDER_LEN{1'b0}}; + divider <= {`SPI_DIVIDER_LEN{1'b0}}; else if (spi_divider_sel && wb_we_i && !tip) begin `ifdef SPI_DIVIDER_LEN_8 if (wb_sel_i[0]) - divider <= #Tp wb_dat_i[`SPI_DIVIDER_LEN-1:0]; + divider <= wb_dat_i[`SPI_DIVIDER_LEN-1:0]; `endif `ifdef SPI_DIVIDER_LEN_16 if (wb_sel_i[0]) - divider[7:0] <= #Tp wb_dat_i[7:0]; + divider[7:0] <= wb_dat_i[7:0]; if (wb_sel_i[1]) - divider[`SPI_DIVIDER_LEN-1:8] <= #Tp wb_dat_i[`SPI_DIVIDER_LEN-1:8]; + divider[`SPI_DIVIDER_LEN-1:8] <= wb_dat_i[`SPI_DIVIDER_LEN-1:8]; `endif `ifdef SPI_DIVIDER_LEN_24 if (wb_sel_i[0]) - divider[7:0] <= #Tp wb_dat_i[7:0]; + divider[7:0] <= wb_dat_i[7:0]; if (wb_sel_i[1]) - divider[15:8] <= #Tp wb_dat_i[15:8]; + divider[15:8] <= wb_dat_i[15:8]; if (wb_sel_i[2]) - divider[`SPI_DIVIDER_LEN-1:16] <= #Tp wb_dat_i[`SPI_DIVIDER_LEN-1:16]; + divider[`SPI_DIVIDER_LEN-1:16] <= wb_dat_i[`SPI_DIVIDER_LEN-1:16]; `endif `ifdef SPI_DIVIDER_LEN_32 if (wb_sel_i[0]) - divider[7:0] <= #Tp wb_dat_i[7:0]; + divider[7:0] <= wb_dat_i[7:0]; if (wb_sel_i[1]) - divider[15:8] <= #Tp wb_dat_i[15:8]; + divider[15:8] <= wb_dat_i[15:8]; if (wb_sel_i[2]) - divider[23:16] <= #Tp wb_dat_i[23:16]; + divider[23:16] <= wb_dat_i[23:16]; if (wb_sel_i[3]) - divider[`SPI_DIVIDER_LEN-1:24] <= #Tp wb_dat_i[`SPI_DIVIDER_LEN-1:24]; + divider[`SPI_DIVIDER_LEN-1:24] <= wb_dat_i[`SPI_DIVIDER_LEN-1:24]; `endif end end // Ctrl register - always @(posedge wb_clk_i or posedge wb_rst_i) + always @(posedge wb_clk_i) begin if (wb_rst_i) - ctrl <= #Tp {`SPI_CTRL_BIT_NB{1'b0}}; + ctrl <= {`SPI_CTRL_BIT_NB{1'b0}}; else if(spi_ctrl_sel && wb_we_i && !tip) begin if (wb_sel_i[0]) - ctrl[7:0] <= #Tp wb_dat_i[7:0] | {7'b0, ctrl[0]}; + ctrl[7:0] <= wb_dat_i[7:0] | {7'b0, ctrl[0]}; if (wb_sel_i[1]) - ctrl[`SPI_CTRL_BIT_NB-1:8] <= #Tp wb_dat_i[`SPI_CTRL_BIT_NB-1:8]; + ctrl[`SPI_CTRL_BIT_NB-1:8] <= wb_dat_i[`SPI_CTRL_BIT_NB-1:8]; end else if(tip && last_bit && pos_edge) - ctrl[`SPI_CTRL_GO] <= #Tp 1'b0; + ctrl[`SPI_CTRL_GO] <= 1'b0; end assign rx_negedge = ctrl[`SPI_CTRL_RX_NEGEDGE]; @@ -233,39 +233,39 @@ module spi_top assign ass = ctrl[`SPI_CTRL_ASS]; // Slave select register - always @(posedge wb_clk_i or posedge wb_rst_i) + always @(posedge wb_clk_i) begin if (wb_rst_i) - ss <= #Tp {`SPI_SS_NB{1'b0}}; + ss <= {`SPI_SS_NB{1'b0}}; else if(spi_ss_sel && wb_we_i && !tip) begin `ifdef SPI_SS_NB_8 if (wb_sel_i[0]) - ss <= #Tp wb_dat_i[`SPI_SS_NB-1:0]; + ss <= wb_dat_i[`SPI_SS_NB-1:0]; `endif `ifdef SPI_SS_NB_16 if (wb_sel_i[0]) - ss[7:0] <= #Tp wb_dat_i[7:0]; + ss[7:0] <= wb_dat_i[7:0]; if (wb_sel_i[1]) - ss[`SPI_SS_NB-1:8] <= #Tp wb_dat_i[`SPI_SS_NB-1:8]; + ss[`SPI_SS_NB-1:8] <= wb_dat_i[`SPI_SS_NB-1:8]; `endif `ifdef SPI_SS_NB_24 if (wb_sel_i[0]) - ss[7:0] <= #Tp wb_dat_i[7:0]; + ss[7:0] <= wb_dat_i[7:0]; if (wb_sel_i[1]) - ss[15:8] <= #Tp wb_dat_i[15:8]; + ss[15:8] <= wb_dat_i[15:8]; if (wb_sel_i[2]) - ss[`SPI_SS_NB-1:16] <= #Tp wb_dat_i[`SPI_SS_NB-1:16]; + ss[`SPI_SS_NB-1:16] <= wb_dat_i[`SPI_SS_NB-1:16]; `endif `ifdef SPI_SS_NB_32 if (wb_sel_i[0]) - ss[7:0] <= #Tp wb_dat_i[7:0]; + ss[7:0] <= wb_dat_i[7:0]; if (wb_sel_i[1]) - ss[15:8] <= #Tp wb_dat_i[15:8]; + ss[15:8] <= wb_dat_i[15:8]; if (wb_sel_i[2]) - ss[23:16] <= #Tp wb_dat_i[23:16]; + ss[23:16] <= wb_dat_i[23:16]; if (wb_sel_i[3]) - ss[`SPI_SS_NB-1:24] <= #Tp wb_dat_i[`SPI_SS_NB-1:24]; + ss[`SPI_SS_NB-1:24] <= wb_dat_i[`SPI_SS_NB-1:24]; `endif end end diff --git a/fpga/usrp2/opencores/spi/rtl/verilog/spi_top16.v b/fpga/usrp2/opencores/spi/rtl/verilog/spi_top16.v new file mode 100644 index 000000000..ee808a8ab --- /dev/null +++ b/fpga/usrp2/opencores/spi/rtl/verilog/spi_top16.v @@ -0,0 +1,182 @@ + +// Modified 2010 by Matt Ettus to remove old verilog style and +// allow 16-bit operation + +////////////////////////////////////////////////////////////////////// +//// //// +//// spi_top.v //// +//// //// +//// This file is part of the SPI IP core project //// +//// http://www.opencores.org/projects/spi/ //// +//// //// +//// Author(s): //// +//// - Simon Srot (simons@opencores.org) //// +//// //// +//// All additional information is avaliable in the Readme.txt //// +//// file. //// +//// //// +////////////////////////////////////////////////////////////////////// +//// //// +//// Copyright (C) 2002 Authors //// +//// //// +//// This source file may be used and distributed without //// +//// restriction provided that this copyright statement is not //// +//// removed from the file and that any derivative work contains //// +//// the original copyright notice and the associated disclaimer. //// +//// //// +//// This source file is free software; you can redistribute it //// +//// and/or modify it under the terms of the GNU Lesser General //// +//// Public License as published by the Free Software Foundation; //// +//// either version 2.1 of the License, or (at your option) any //// +//// later version. //// +//// //// +//// This source is distributed in the hope that it will be //// +//// useful, but WITHOUT ANY WARRANTY; without even the implied //// +//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// +//// PURPOSE. See the GNU Lesser General Public License for more //// +//// details. //// +//// //// +//// You should have received a copy of the GNU Lesser General //// +//// Public License along with this source; if not, download it //// +//// from http://www.opencores.org/lgpl.shtml //// +//// //// +////////////////////////////////////////////////////////////////////// + + +`include "spi_defines.v" + +module spi_top16 + (input wb_clk_i, input wb_rst_i, + input [4:0] wb_adr_i, + input [15:0] wb_dat_i, + output reg [15:0] wb_dat_o, + input [1:0] wb_sel_i, + input wb_we_i, input wb_stb_i, input wb_cyc_i, + output reg wb_ack_o, output wb_err_o, output reg wb_int_o, + + // SPI signals + output [15:0] ss_pad_o, output sclk_pad_o, output mosi_pad_o, input miso_pad_i); + + // Internal signals + reg [15:0] divider; // Divider register + reg [`SPI_CTRL_BIT_NB-1:0] ctrl; // Control and status register + reg [15:0] ss; // Slave select register + reg [31:0] wb_dat; // wb data out + wire [31:0] rx; // Rx register + wire rx_negedge; // miso is sampled on negative edge + wire tx_negedge; // mosi is driven on negative edge + wire [`SPI_CHAR_LEN_BITS-1:0] char_len; // char len + wire go; // go + wire lsb; // lsb first on line + wire ie; // interrupt enable + wire ass; // automatic slave select + wire spi_divider_sel; // divider register select + wire spi_ctrl_sel; // ctrl register select + wire [3:0] spi_tx_sel; // tx_l register select + wire spi_ss_sel; // ss register select + wire tip; // transfer in progress + wire pos_edge; // recognize posedge of sclk + wire neg_edge; // recognize negedge of sclk + wire last_bit; // marks last character bit + + // Address decoder + assign spi_divider_sel = wb_cyc_i & wb_stb_i & (wb_adr_i[4:2] == `SPI_DIVIDE); + assign spi_ctrl_sel = wb_cyc_i & wb_stb_i & (wb_adr_i[4:2] == `SPI_CTRL); + assign spi_tx_sel[0] = wb_cyc_i & wb_stb_i & (wb_adr_i[4:2] == `SPI_TX_0); + assign spi_tx_sel[1] = wb_cyc_i & wb_stb_i & (wb_adr_i[4:2] == `SPI_TX_1); + assign spi_tx_sel[2] = wb_cyc_i & wb_stb_i & (wb_adr_i[4:2] == `SPI_TX_2); + assign spi_tx_sel[3] = wb_cyc_i & wb_stb_i & (wb_adr_i[4:2] == `SPI_TX_3); + assign spi_ss_sel = wb_cyc_i & wb_stb_i & (wb_adr_i[4:2] == `SPI_SS); + + always @(wb_adr_i or rx or ctrl or divider or ss) + case (wb_adr_i[4:2]) + `SPI_RX_0: wb_dat = rx[31:0]; + `SPI_CTRL: wb_dat = {{32-`SPI_CTRL_BIT_NB{1'b0}}, ctrl}; + `SPI_DIVIDE: wb_dat = {16'b0, divider}; + `SPI_SS: wb_dat = {16'b0, ss}; + default : wb_dat = 32'd0; + endcase // case (wb_adr_i[4:2]) + + always @(posedge wb_clk_i) + if (wb_rst_i) + wb_dat_o <= 32'b0; + else + wb_dat_o <= wb_adr_i[1] ? wb_dat[31:16] : wb_dat[15:0]; + + always @(posedge wb_clk_i) + if (wb_rst_i) + wb_ack_o <= 1'b0; + else + wb_ack_o <= wb_cyc_i & wb_stb_i & ~wb_ack_o; + + assign wb_err_o = 1'b0; + + // Interrupt + always @(posedge wb_clk_i) + if (wb_rst_i) + wb_int_o <= 1'b0; + else if (ie && tip && last_bit && pos_edge) + wb_int_o <= 1'b1; + else if (wb_ack_o) + wb_int_o <= 1'b0; + + // Divider register + always @(posedge wb_clk_i) + if (wb_rst_i) + divider <= 16'b0; + else if (spi_divider_sel && wb_we_i && !tip && ~wb_adr_i[1]) + divider <= wb_dat_i; + + // Ctrl register + always @(posedge wb_clk_i) + if (wb_rst_i) + ctrl <= {`SPI_CTRL_BIT_NB{1'b0}}; + else if(spi_ctrl_sel && wb_we_i && !tip && ~wb_adr_i[1]) + begin + if (wb_sel_i[0]) + ctrl[7:0] <= wb_dat_i[7:0] | {7'b0, ctrl[0]}; + if (wb_sel_i[1]) + ctrl[`SPI_CTRL_BIT_NB-1:8] <= wb_dat_i[`SPI_CTRL_BIT_NB-1:8]; + end + else if(tip && last_bit && pos_edge) + ctrl[`SPI_CTRL_GO] <= 1'b0; + + assign rx_negedge = ctrl[`SPI_CTRL_RX_NEGEDGE]; + assign tx_negedge = ctrl[`SPI_CTRL_TX_NEGEDGE]; + assign go = ctrl[`SPI_CTRL_GO]; + assign char_len = ctrl[`SPI_CTRL_CHAR_LEN]; + assign lsb = ctrl[`SPI_CTRL_LSB]; + assign ie = ctrl[`SPI_CTRL_IE]; + assign ass = ctrl[`SPI_CTRL_ASS]; + + // Slave select register + always @(posedge wb_clk_i) + if (wb_rst_i) + ss <= 16'b0; + else if(spi_ss_sel && wb_we_i && !tip & ~wb_adr_i[1]) + begin + if (wb_sel_i[0]) + ss[7:0] <= wb_dat_i[7:0]; + if (wb_sel_i[1]) + ss[15:8] <= wb_dat_i[15:8]; + end + + assign ss_pad_o = ~((ss & {16{tip & ass}}) | (ss & {16{!ass}})); + + spi_clgen clgen (.clk_in(wb_clk_i), .rst(wb_rst_i), .go(go), .enable(tip), .last_clk(last_bit), + .divider(divider[`SPI_DIVIDER_LEN-1:0]), .clk_out(sclk_pad_o), .pos_edge(pos_edge), + .neg_edge(neg_edge)); + + wire [3:0] new_sels = { (wb_adr_i[1] & wb_sel_i[1]), (wb_adr_i[1] & wb_sel_i[0]), + (~wb_adr_i[1] & wb_sel_i[1]), (~wb_adr_i[1] & wb_sel_i[0]) }; + + + spi_shift shift (.clk(wb_clk_i), .rst(wb_rst_i), .len(char_len[`SPI_CHAR_LEN_BITS-1:0]), + .latch(spi_tx_sel[3:0] & {4{wb_we_i}}), .byte_sel(new_sels), .lsb(lsb), + .go(go), .pos_edge(pos_edge), .neg_edge(neg_edge), + .rx_negedge(rx_negedge), .tx_negedge(tx_negedge), + .tip(tip), .last(last_bit), + .p_in({wb_dat_i,wb_dat_i}), .p_out(rx), + .s_clk(sclk_pad_o), .s_in(miso_pad_i), .s_out(mosi_pad_o)); + +endmodule // spi_top16 diff --git a/fpga/usrp2/opencores/spi/rtl/verilog/timescale.v b/fpga/usrp2/opencores/spi/rtl/verilog/timescale.v deleted file mode 100644 index 60d4ecbd1..000000000 --- a/fpga/usrp2/opencores/spi/rtl/verilog/timescale.v +++ /dev/null @@ -1,2 +0,0 @@ -`timescale 1ns / 10ps - diff --git a/fpga/usrp2/timing/time_compare.v b/fpga/usrp2/timing/time_compare.v index a21c9f8e0..cb2b6d860 100644 --- a/fpga/usrp2/timing/time_compare.v +++ b/fpga/usrp2/timing/time_compare.v @@ -14,10 +14,34 @@ module time_compare wire tick_match = (time_now[31:0] == trigger_time[31:0]); wire tick_late = (time_now[31:0] > trigger_time[31:0]); - +/* assign now = sec_match & tick_match; assign late = sec_late | (sec_match & tick_late); assign early = ~now & ~late; +*/ + + /* + assign now = (time_now == trigger_time); + assign late = (time_now > trigger_time); + assign early = (time_now < trigger_time); + */ + + // Compare fewer bits instead of 64 to speed up logic + // Unused bits are not significant + // Top bit of seconds would put us in year 2038, long after + // the warranty has run out :) + // Top 5 bits of ticks are always zero for clocks less than 134MHz + // "late" can drop bottom few bits of ticks, and just delay signaling + // of late. + // "now" cannot drop those bits, it needs to be exact. + + wire [57:0] short_now = {time_now[62:32],time_now[26:0]}; + wire [57:0] short_trig = {trigger_time[62:32],trigger_time[26:0]}; + + assign now = (short_now == short_trig); + assign late = (short_now[57:5] > short_trig[57:5]); + assign early = (short_now < short_trig); + assign too_early = (trigger_time[63:32] > (time_now[63:32] + 4)); // Don't wait too long endmodule // time_compare diff --git a/fpga/usrp2/top/.gitignore b/fpga/usrp2/top/.gitignore index bf1b77066..0d90f1698 100644 --- a/fpga/usrp2/top/.gitignore +++ b/fpga/usrp2/top/.gitignore @@ -1 +1,2 @@ /*.sav +build* diff --git a/fpga/usrp2/top/Makefile.common b/fpga/usrp2/top/Makefile.common index 9a180d10e..6f855a070 100644 --- a/fpga/usrp2/top/Makefile.common +++ b/fpga/usrp2/top/Makefile.common @@ -13,8 +13,10 @@ else endif BASE_DIR = $(abspath ..) ISE_HELPER = xtclsh $(BASE_DIR)/tcl/ise_helper.tcl +SANITY_CHECKER = python $(BASE_DIR)/python/check_inout.py ISE_FILE = $(BUILD_DIR)/$(TOP_MODULE).$(ISE_EXT) BIN_FILE = $(BUILD_DIR)/$(TOP_MODULE).bin +BIT_FILE = $(BUILD_DIR)/$(TOP_MODULE).bit MCS_FILE = $(BUILD_DIR)/$(TOP_MODULE).mcs ################################################## @@ -25,12 +27,13 @@ all: bin proj: $(ISE_FILE) check: $(ISE_FILE) + $(SANITY_CHECKER) $(TOP_MODULE).v $(TOP_MODULE).ucf $(ISE_HELPER) "Check Syntax" synth: $(ISE_FILE) $(ISE_HELPER) "Synthesize - XST" -bin: $(BIN_FILE) +bin: check $(BIN_FILE) $(ISE_HELPER) "Generate Programming File" mcs: $(MCS_FILE) @@ -54,6 +57,6 @@ $(BIN_FILE): $(ISE_FILE) $$(SOURCES) $$(MAKEFILE_LIST) touch $@ $(MCS_FILE): $(BIN_FILE) - promgen -w -spi -p mcs -o $(MCS_FILE) -s 4096 -u 0 $(BIN_FILE) + promgen -w -spi -p mcs -o $(MCS_FILE) -s 4096 -u 0 $(BIT_FILE) .EXPORT_ALL_VARIABLES: diff --git a/fpga/usrp2/top/python/check_inout.py b/fpga/usrp2/top/python/check_inout.py new file mode 100755 index 000000000..ff371d378 --- /dev/null +++ b/fpga/usrp2/top/python/check_inout.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python +# +# Copyright 2010 Ettus Research LLC +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Description: +# generates a list of inputs and outputs from the top-level Verilog file and cross-references them to the .ucf. +# outputs errors for pins that aren't found in the UCF, checks for capitalization errors and other common mistakes + +import sys +import re + +if __name__=='__main__': + if len(sys.argv) == 2: + print "Usage: %s " + sys.exit(-1) + + verilog_filename = sys.argv[1] + ucf_filename = sys.argv[2] + + verilog_file = open(verilog_filename, 'r') + ucf_file = open(ucf_filename, 'r') + + verilog_iolist = list() + ucf_iolist = list() + + #read in all input, inout, and output declarations and compile a list + for line in verilog_file: + for match in re.findall(r"(?:input|inout|output) (?:reg )*(?:\[.*\] )*(\w+)", line.split("//")[0]): + verilog_iolist.append(match) + + for line in ucf_file: + m = re.search(r"""NET "(\w+).*" """, line.split("#")[0]) + if m is not None: + ucf_iolist.append(m.group(1)) + + #now find corresponding matches and error when you don't find one + #we search for .v defs without matching .ucf defs since the reverse isn't necessarily a problem + err = False + + for item in verilog_iolist: + if item not in ucf_iolist: + print "Error: %s appears in the top-level Verilog file, but is not in the UCF definition file!" % item + err = True + + if err: + sys.exit(-1) + + print "No errors found." + sys.exit(0) diff --git a/fpga/usrp2/top/safe_u2plus/.gitignore b/fpga/usrp2/top/safe_u2plus/.gitignore new file mode 100644 index 000000000..a96f0be92 --- /dev/null +++ b/fpga/usrp2/top/safe_u2plus/.gitignore @@ -0,0 +1,2 @@ +build* +*impact* diff --git a/fpga/usrp2/top/safe_u2plus/Makefile b/fpga/usrp2/top/safe_u2plus/Makefile new file mode 100644 index 000000000..62a02ff40 --- /dev/null +++ b/fpga/usrp2/top/safe_u2plus/Makefile @@ -0,0 +1,246 @@ +# +# Copyright 2008 Ettus Research LLC +# +# This file is part of GNU Radio +# +# GNU Radio is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU Radio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +################################################## +# xtclsh Shell and tcl Script Path +################################################## +#XTCLSH := /opt/Xilinx/10.1/ISE/bin/lin/xtclsh +XTCLSH := xtclsh +ISE_HELPER := ../tcl/ise_helper.tcl + +################################################## +# Project Setup +################################################## +BUILD_DIR := build/ +export TOP_MODULE := safe_u2plus +export PROJ_FILE := $(BUILD_DIR)$(TOP_MODULE).ise + +################################################## +# Project Properties +################################################## +export PROJECT_PROPERTIES := \ +family "Spartan-3A DSP" \ +device xc3sd3400a \ +package fg676 \ +speed -5 \ +top_level_module_type "HDL" \ +synthesis_tool "XST (VHDL/Verilog)" \ +simulator "ISE Simulator (VHDL/Verilog)" \ +"Preferred Language" "Verilog" \ +"Enable Message Filtering" FALSE \ +"Display Incremental Messages" FALSE + +################################################## +# Sources +################################################## +export SOURCE_ROOT := ../../../ +export SOURCES := \ +control_lib/CRC16_D16.v \ +control_lib/atr_controller.v \ +control_lib/bin2gray.v \ +control_lib/dcache.v \ +control_lib/decoder_3_8.v \ +control_lib/dpram32.v \ +control_lib/gray2bin.v \ +control_lib/gray_send.v \ +control_lib/icache.v \ +control_lib/mux4.v \ +control_lib/mux8.v \ +control_lib/nsgpio.v \ +control_lib/ram_2port.v \ +control_lib/ram_harv_cache.v \ +control_lib/ram_loader.v \ +control_lib/setting_reg.v \ +control_lib/settings_bus.v \ +control_lib/srl.v \ +control_lib/system_control.v \ +control_lib/wb_1master.v \ +control_lib/wb_readback_mux.v \ +control_lib/simple_uart.v \ +control_lib/simple_uart_tx.v \ +control_lib/simple_uart_rx.v \ +control_lib/oneshot_2clk.v \ +control_lib/sd_spi.v \ +control_lib/sd_spi_wb.v \ +control_lib/wb_bridge_16_32.v \ +control_lib/reset_sync.v \ +simple_gemac/simple_gemac_wrapper.v \ +simple_gemac/simple_gemac.v \ +simple_gemac/simple_gemac_wb.v \ +simple_gemac/simple_gemac_tx.v \ +simple_gemac/simple_gemac_rx.v \ +simple_gemac/crc.v \ +simple_gemac/delay_line.v \ +simple_gemac/flow_ctrl_tx.v \ +simple_gemac/flow_ctrl_rx.v \ +simple_gemac/address_filter.v \ +simple_gemac/ll8_to_txmac.v \ +simple_gemac/rxmac_to_ll8.v \ +simple_gemac/miim/eth_miim.v \ +simple_gemac/miim/eth_clockgen.v \ +simple_gemac/miim/eth_outputcontrol.v \ +simple_gemac/miim/eth_shiftreg.v \ +control_lib/newfifo/buffer_int.v \ +control_lib/newfifo/buffer_pool.v \ +control_lib/newfifo/fifo_2clock.v \ +control_lib/newfifo/fifo_2clock_cascade.v \ +control_lib/newfifo/ll8_shortfifo.v \ +control_lib/newfifo/ll8_to_fifo36.v \ +control_lib/newfifo/fifo_short.v \ +control_lib/newfifo/fifo_long.v \ +control_lib/newfifo/fifo_cascade.v \ +control_lib/newfifo/fifo36_to_ll8.v \ +control_lib/longfifo.v \ +control_lib/shortfifo.v \ +control_lib/medfifo.v \ +coregen/fifo_xlnx_2Kx36_2clk.v \ +coregen/fifo_xlnx_2Kx36_2clk.xco \ +coregen/fifo_xlnx_512x36_2clk.v \ +coregen/fifo_xlnx_512x36_2clk.xco \ +coregen/fifo_xlnx_64x36_2clk.v \ +coregen/fifo_xlnx_64x36_2clk.xco \ +extram/wb_zbt16_b.v \ +opencores/8b10b/decode_8b10b.v \ +opencores/8b10b/encode_8b10b.v \ +opencores/aemb/rtl/verilog/aeMB_bpcu.v \ +opencores/aemb/rtl/verilog/aeMB_core_BE.v \ +opencores/aemb/rtl/verilog/aeMB_ctrl.v \ +opencores/aemb/rtl/verilog/aeMB_edk32.v \ +opencores/aemb/rtl/verilog/aeMB_ibuf.v \ +opencores/aemb/rtl/verilog/aeMB_regf.v \ +opencores/aemb/rtl/verilog/aeMB_xecu.v \ +opencores/i2c/rtl/verilog/i2c_master_bit_ctrl.v \ +opencores/i2c/rtl/verilog/i2c_master_byte_ctrl.v \ +opencores/i2c/rtl/verilog/i2c_master_defines.v \ +opencores/i2c/rtl/verilog/i2c_master_top.v \ +opencores/i2c/rtl/verilog/timescale.v \ +opencores/simple_pic/rtl/simple_pic.v \ +opencores/spi/rtl/verilog/spi_clgen.v \ +opencores/spi/rtl/verilog/spi_defines.v \ +opencores/spi/rtl/verilog/spi_shift.v \ +opencores/spi/rtl/verilog/spi_top.v \ +opencores/spi/rtl/verilog/timescale.v \ +sdr_lib/acc.v \ +sdr_lib/add2.v \ +sdr_lib/add2_and_round.v \ +sdr_lib/add2_and_round_reg.v \ +sdr_lib/add2_reg.v \ +sdr_lib/cic_dec_shifter.v \ +sdr_lib/cic_decim.v \ +sdr_lib/cic_int_shifter.v \ +sdr_lib/cic_interp.v \ +sdr_lib/cic_strober.v \ +sdr_lib/clip.v \ +sdr_lib/clip_reg.v \ +sdr_lib/cordic.v \ +sdr_lib/cordic_z24.v \ +sdr_lib/cordic_stage.v \ +sdr_lib/dsp_core_rx.v \ +sdr_lib/dsp_core_tx.v \ +sdr_lib/hb_dec.v \ +sdr_lib/hb_interp.v \ +sdr_lib/round.v \ +sdr_lib/round_reg.v \ +sdr_lib/rx_control.v \ +sdr_lib/rx_dcoffset.v \ +sdr_lib/sign_extend.v \ +sdr_lib/small_hb_dec.v \ +sdr_lib/small_hb_int.v \ +sdr_lib/tx_control.v \ +serdes/serdes.v \ +serdes/serdes_fc_rx.v \ +serdes/serdes_fc_tx.v \ +serdes/serdes_rx.v \ +serdes/serdes_tx.v \ +timing/time_receiver.v \ +timing/time_sender.v \ +timing/time_sync.v \ +timing/timer.v \ +top/u2_core/u2_core.v \ +top/u2plus/capture_ddrlvds.v \ +top/safe_u2plus/u2plus.ucf \ +top/safe_u2plus/safe_u2plus.v + +################################################## +# Process Properties +################################################## +export SYNTHESIZE_PROPERTIES := \ +"Number of Clock Buffers" 6 \ +"Pack I/O Registers into IOBs" Yes \ +"Optimization Effort" High \ +"Optimize Instantiated Primitives" TRUE \ +"Register Balancing" Yes \ +"Use Clock Enable" Auto \ +"Use Synchronous Reset" Auto \ +"Use Synchronous Set" Auto + +export TRANSLATE_PROPERTIES := \ +"Macro Search Path" "$(shell pwd)/../../coregen/" + +export MAP_PROPERTIES := \ +"Allow Logic Optimization Across Hierarchy" TRUE \ +"Map to Input Functions" 4 \ +"Optimization Strategy (Cover Mode)" Speed \ +"Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ +"Perform Timing-Driven Packing and Placement" TRUE \ +"Map Effort Level" High \ +"Extra Effort" Normal \ +"Combinatorial Logic Optimization" TRUE \ +"Register Duplication" TRUE + +export PLACE_ROUTE_PROPERTIES := \ +"Place & Route Effort Level (Overall)" High + +export STATIC_TIMING_PROPERTIES := \ +"Number of Paths in Error/Verbose Report" 10 \ +"Report Type" "Error Report" + +export GEN_PROG_FILE_PROPERTIES := \ +"Configuration Rate" 6 \ +"Create Binary Configuration File" TRUE \ +"Done (Output Events)" 5 \ +"Enable Bitstream Compression" TRUE \ +"Enable Outputs (Output Events)" 6 + +export SIM_MODEL_PROPERTIES := "" + +################################################## +# Make Options +################################################## +all: + @echo make proj, check, synth, bin, or clean + +proj: + PROCESS_RUN="" $(XTCLSH) $(ISE_HELPER) + +check: + PROCESS_RUN="Check Syntax" $(XTCLSH) $(ISE_HELPER) + +synth: + PROCESS_RUN="Synthesize - XST" $(XTCLSH) $(ISE_HELPER) + +bin: + PROCESS_RUN="Generate Programming File" $(XTCLSH) $(ISE_HELPER) + +clean: + rm -rf $(BUILD_DIR) + + diff --git a/fpga/usrp2/top/safe_u2plus/safe_u2plus.v b/fpga/usrp2/top/safe_u2plus/safe_u2plus.v new file mode 100644 index 000000000..dca9688c5 --- /dev/null +++ b/fpga/usrp2/top/safe_u2plus/safe_u2plus.v @@ -0,0 +1,23 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// + +module safe_u2plus + ( + input CLK_FPGA_P, input CLK_FPGA_N, // Diff + output [5:1] leds, // LED4 is shared w/INIT_B + output ETH_LED + ); + + wire clk_fpga; + + IBUFGDS clk_fpga_pin (.O(clk_fpga),.I(CLK_FPGA_P),.IB(CLK_FPGA_N)); + defparam clk_fpga_pin.IOSTANDARD = "LVPECL_25"; + + reg [31:0] ctr; + + always @(posedge clk_fpga) + ctr <= ctr + 1; + + assign {leds,ETH_LED} = ~ctr[29:24]; + +endmodule // safe_u2plus diff --git a/fpga/usrp2/top/safe_u2plus/u2plus.ucf b/fpga/usrp2/top/safe_u2plus/u2plus.ucf new file mode 100755 index 000000000..0a9460d86 --- /dev/null +++ b/fpga/usrp2/top/safe_u2plus/u2plus.ucf @@ -0,0 +1,401 @@ +## Main 100 MHz Clock +NET "CLK_FPGA_P" LOC = "AA13" ; +NET "CLK_FPGA_N" LOC = "Y13" ; + +## ADC +#NET "ADC_clkout_p" LOC = "P1" ; +#NET "ADC_clkout_n" LOC = "P2" ; +#NET "ADCA_12_p" LOC = "Y1" ; +#NET "ADCA_12_n" LOC = "Y2" ; +#NET "ADCA_10_p" LOC = "W3" ; +#NET "ADCA_10_n" LOC = "W4" ; +#NET "ADCA_8_p" LOC = "T7" ; +#NET "ADCA_8_n" LOC = "U6" ; +#NET "ADCA_6_p" LOC = "U5" ; +#NET "ADCA_6_n" LOC = "V5" ; +#NET "ADCA_4_p" LOC = "T10" ; +#NET "ADCA_4_n" LOC = "T9" ; +#NET "ADCA_2_p" LOC = "V1" ; +#NET "ADCA_2_n" LOC = "V2" ; +#NET "ADCA_0_p" LOC = "R8" ; +#NET "ADCA_0_n" LOC = "R7" ; +#NET "ADCB_2_p" LOC = "U7" ; +#NET "ADCB_2_n" LOC = "U8" ; +#NET "ADCB_0_p" LOC = "AA2" ; +#NET "ADCB_0_n" LOC = "AA3" ; +#NET "ADCB_4_p" LOC = "AE1" ; +#NET "ADCB_4_n" LOC = "AE2" ; +#NET "ADCB_6_p" LOC = "W1" ; +#NET "ADCB_6_n" LOC = "W2" ; +#NET "ADCB_8_p" LOC = "U3" ; +#NET "ADCB_8_n" LOC = "V4" ; +#NET "ADCB_10_p" LOC = "J1" ; +#NET "ADCB_10_n" LOC = "K1" ; +#NET "ADCB_12_p" LOC = "J3" ; +#NET "ADCB_12_n" LOC = "J2" ; + +## DAC +#NET "DAC_LOCK" LOC = "P4" ; +#NET "DACA<0>" LOC = "P8" ; +#NET "DACA<1>" LOC = "P9" ; +#NET "DACA<2>" LOC = "R5" ; +#NET "DACA<3>" LOC = "R6" ; +#NET "DACA<4>" LOC = "P7" ; +#NET "DACA<5>" LOC = "P6" ; +#NET "DACA<6>" LOC = "T3" ; +#NET "DACA<7>" LOC = "T4" ; +#NET "DACA<8>" LOC = "R3" ; +#NET "DACA<9>" LOC = "R4" ; +#NET "DACA<10>" LOC = "R2" ; +#NET "DACA<11>" LOC = "N1" ; +#NET "DACA<12>" LOC = "N2" ; +#NET "DACA<13>" LOC = "N5" ; +#NET "DACA<14>" LOC = "N4" ; +#NET "DACA<15>" LOC = "M2" ; +#NET "DACB<0>" LOC = "M5" ; +#NET "DACB<1>" LOC = "M6" ; +#NET "DACB<2>" LOC = "M4" ; +#NET "DACB<3>" LOC = "M3" ; +#NET "DACB<4>" LOC = "M8" ; +#NET "DACB<5>" LOC = "M7" ; +#NET "DACB<6>" LOC = "L4" ; +#NET "DACB<7>" LOC = "L3" ; +#NET "DACB<8>" LOC = "K3" ; +#NET "DACB<9>" LOC = "K2" ; +#NET "DACB<10>" LOC = "K5" ; +#NET "DACB<11>" LOC = "K4" ; +#NET "DACB<12>" LOC = "M10" ; +#NET "DACB<13>" LOC = "M9" ; +#NET "DACB<14>" LOC = "J5" ; +#NET "DACB<15>" LOC = "J4" ; + +## TX DB GPIO +#NET "io_tx<15>" LOC = "K6" ; +#NET "io_tx<14>" LOC = "L7" ; +#NET "io_tx<13>" LOC = "H2" ; +#NET "io_tx<12>" LOC = "H1" ; +#NET "io_tx<11>" LOC = "L10" ; +#NET "io_tx<10>" LOC = "L9" ; +#NET "io_tx<9>" LOC = "G3" ; +#NET "io_tx<8>" LOC = "F3" ; +#NET "io_tx<7>" LOC = "K7" ; +#NET "io_tx<6>" LOC = "J6" ; +#NET "io_tx<5>" LOC = "E1" ; +#NET "io_tx<4>" LOC = "F2" ; +#NET "io_tx<3>" LOC = "J7" ; +#NET "io_tx<2>" LOC = "H6" ; +#NET "io_tx<1>" LOC = "F5" ; +#NET "io_tx<0>" LOC = "G4" ; + +## RX DB GPIO +#NET "io_rx<15>" LOC = "AD1" ; +#NET "io_rx<14>" LOC = "AD2" ; +#NET "io_rx<13>" LOC = "AC2" ; +#NET "io_rx<12>" LOC = "AC3" ; +#NET "io_rx<11>" LOC = "W7" ; +#NET "io_rx<10>" LOC = "W6" ; +#NET "io_rx<9>" LOC = "U9" ; +#NET "io_rx<8>" LOC = "V8" ; +#NET "io_rx<7>" LOC = "AB1" ; +#NET "io_rx<6>" LOC = "AC1" ; +#NET "io_rx<5>" LOC = "V7" ; +#NET "io_rx<4>" LOC = "V6" ; +#NET "io_rx<3>" LOC = "Y5" ; +#NET "io_rx<2>" LOC = "R10" ; +#NET "io_rx<1>" LOC = "R1" ; +#NET "io_rx<0>" LOC = "M1" ; + +## MISC +NET "leds<5>" LOC = "AF25" ; +NET "leds<4>" LOC = "AE25" ; +NET "leds<3>" LOC = "AF23" ; +NET "leds<2>" LOC = "AE23" ; +NET "leds<1>" LOC = "AB18" ; +#NET "FPGA_RESET" LOC = "K24" ; + +## Debug +#NET "debug_clk<0>" LOC = "AA10" ; +#NET "debug_clk<1>" LOC = "AD11" ; +#NET "debug<0>" LOC = "AC19" ; +#NET "debug<1>" LOC = "AF20" ; +#NET "debug<2>" LOC = "AE20" ; +#NET "debug<3>" LOC = "AC16" ; +#NET "debug<4>" LOC = "AB16" ; +#NET "debug<5>" LOC = "AF19" ; +#NET "debug<6>" LOC = "AE19" ; +#NET "debug<7>" LOC = "V15" ; +#NET "debug<8>" LOC = "U15" ; +#NET "debug<9>" LOC = "AE17" ; +#NET "debug<10>" LOC = "AD17" ; +#NET "debug<11>" LOC = "V14" ; +#NET "debug<12>" LOC = "W15" ; +#NET "debug<13>" LOC = "AC15" ; +#NET "debug<14>" LOC = "AD14" ; +#NET "debug<15>" LOC = "AC14" ; +#NET "debug<16>" LOC = "AC11" ; +#NET "debug<17>" LOC = "AB12" ; +#NET "debug<18>" LOC = "AC12" ; +#NET "debug<19>" LOC = "V13" ; +#NET "debug<20>" LOC = "W13" ; +#NET "debug<21>" LOC = "AE8" ; +#NET "debug<22>" LOC = "AF8" ; +#NET "debug<23>" LOC = "V12" ; +#NET "debug<24>" LOC = "W12" ; +#NET "debug<25>" LOC = "AB9" ; +#NET "debug<26>" LOC = "AC9" ; +#NET "debug<27>" LOC = "AC8" ; +#NET "debug<28>" LOC = "AB7" ; +#NET "debug<29>" LOC = "V11" ; +#NET "debug<30>" LOC = "U11" ; +#NET "debug<31>" LOC = "Y10" ; + +## UARTS +#NET "TXD<3>" LOC = "AD20" ; +#NET "TXD<2>" LOC = "AC20" ; +#NET "TXD<1>" LOC = "AD19" ; +#NET "RXD<3>" LOC = "AF17" ; +#NET "RXD<2>" LOC = "AF15" ; +#NET "RXD<1>" LOC = "AD12" ; + +## AD9510 +#NET "CLK_STATUS" LOC = "AD22" ; +#NET "CLK_FUNC" LOC = "AC21" ; +#NET "clk_sel<0>" LOC = "AE21" ; +#NET "clk_sel<1>" LOC = "AD21" ; +#NET "clk_en<1>" LOC = "AA17" ; +#NET "clk_en<0>" LOC = "Y17" ; + +## I2C +#NET "SDA" LOC = "V16" ; +#NET "SCL" LOC = "U16" ; + +## Timing +#NET "PPS_IN" LOC = "AB6" ; +#NET "PPS2_IN" LOC = "AA20" ; + +## SPI +#NET "SEN_CLK" LOC = "AA18" ; +#NET "MOSI_CLK" LOC = "W17" ; +#NET "SCLK_CLK" LOC = "V17" ; +#NET "MISO_CLK" LOC = "AC10" ; + +#NET "SEN_DAC" LOC = "AE7" ; +#NET "SCLK_DAC" LOC = "AF5" ; +#NET "MOSI_DAC" LOC = "AE6" ; +#NET "MISO_DAC" LOC = "Y3" ; + +#NET "SCLK_ADC" LOC = "B1" ; +#NET "MOSI_ADC" LOC = "J8" ; +#NET "SEN_ADC" LOC = "J9" ; + +#NET "MOSI_TX_ADC" LOC = "V10" ; +#NET "SEN_TX_ADC" LOC = "W10" ; +#NET "SCLK_TX_ADC" LOC = "AC6" ; +#NET "MISO_TX_ADC" LOC = "G1" ; + +#NET "MOSI_TX_DAC" LOC = "AD6" ; +#NET "SEN_TX_DAC" LOC = "AE4" ; +#NET "SCLK_TX_DAC" LOC = "AF4" ; + +#NET "SCLK_TX_DB" LOC = "AE3" ; +#NET "MOSI_TX_DB" LOC = "AF3" ; +#NET "SEN_TX_DB" LOC = "W9" ; +#NET "MISO_TX_DB" LOC = "AA5" ; + +#NET "MOSI_RX_ADC" LOC = "E3" ; +#NET "SCLK_RX_ADC" LOC = "F4" ; +#NET "SEN_RX_ADC" LOC = "D3" ; +#NET "MISO_RX_ADC" LOC = "C1" ; + +#NET "SCLK_RX_DAC" LOC = "E4" ; +#NET "SEN_RX_DAC" LOC = "K9" ; +#NET "MOSI_RX_DAC" LOC = "K8" ; + +#NET "SCLK_RX_DB" LOC = "G6" ; +#NET "MOSI_RX_DB" LOC = "H7" ; +#NET "SEN_RX_DB" LOC = "B2" ; +#NET "MISO_RX_DB" LOC = "H4" ; + +## ETH PHY +#NET "CLK_TO_MAC" LOC = "P26" ; + +#NET "GMII_TXD<7>" LOC = "G21" ; +#NET "GMII_TXD<6>" LOC = "C26" ; +#NET "GMII_TXD<5>" LOC = "C25" ; +#NET "GMII_TXD<4>" LOC = "J21" ; +#NET "GMII_TXD<3>" LOC = "H21" ; +#NET "GMII_TXD<2>" LOC = "D25" ; +#NET "GMII_TXD<1>" LOC = "D24" ; +#NET "GMII_TXD<0>" LOC = "E26" ; +#NET "GMII_TX_EN" LOC = "D26" ; +#NET "GMII_TX_ER" LOC = "J19" ; +#NET "GMII_GTX_CLK" LOC = "J20" ; +#NET "GMII_TX_CLK" LOC = "P25" ; + +#NET "GMII_RX_CLK" LOC = "P21" ; +#NET "GMII_RXD<7>" LOC = "G22" ; +#NET "GMII_RXD<6>" LOC = "K19" ; +#NET "GMII_RXD<5>" LOC = "K18" ; +#NET "GMII_RXD<4>" LOC = "E24" ; +#NET "GMII_RXD<3>" LOC = "F23" ; +#NET "GMII_RXD<2>" LOC = "L18" ; +#NET "GMII_RXD<1>" LOC = "L17" ; +#NET "GMII_RXD<0>" LOC = "F25" ; +#NET "GMII_RX_DV" LOC = "F24" ; +#NET "GMII_RX_ER" LOC = "L20" ; +#NET "GMII_CRS" LOC = "K20" ; +#NET "GMII_COL" LOC = "G23" ; + +#NET "PHY_INTn" LOC = "L22" ; +#NET "MDIO" LOC = "K21" ; +#NET "MDC" LOC = "J23" ; +#NET "PHY_RESETn" LOC = "J22" ; +NET "ETH_LED" LOC = "H20" ; + +## MIMO Interface +#NET "exp_time_out_p" LOC = "Y14" ; +#NET "exp_time_out_n" LOC = "AA14" ; +#NET "exp_time_in_p" LOC = "N18" ; +#NET "exp_time_in_n" LOC = "N17" ; +#NET "exp_user_out_p" LOC = "AF14" ; +#NET "exp_user_out_n" LOC = "AE14" ; +#NET "exp_user_in_p" LOC = "L24" ; +#NET "exp_user_in_n" LOC = "M23" ; + +## SERDES +#NET "ser_enable" LOC = "R20" ; +#NET "ser_prbsen" LOC = "U23" ; +#NET "ser_loopen" LOC = "R19" ; +#NET "ser_rx_en" LOC = "Y21" ; +#NET "ser_tx_clk" LOC = "P23" ; # SERDES TX CLK +#NET "ser_t<15>" LOC = "V23" ; +#NET "ser_t<14>" LOC = "U22" ; +#NET "ser_t<13>" LOC = "V24" ; +#NET "ser_t<12>" LOC = "V25" ; +#NET "ser_t<11>" LOC = "W23" ; +#NET "ser_t<10>" LOC = "V22" ; +#NET "ser_t<9>" LOC = "T18" ; +#NET "ser_t<8>" LOC = "T17" ; +#NET "ser_t<7>" LOC = "Y24" ; +#NET "ser_t<6>" LOC = "Y25" ; +#NET "ser_t<5>" LOC = "U21" ; +#NET "ser_t<4>" LOC = "T20" ; +#NET "ser_t<3>" LOC = "Y22" ; +#NET "ser_t<2>" LOC = "Y23" ; +#NET "ser_t<1>" LOC = "U19" ; +#NET "ser_t<0>" LOC = "U18" ; +#NET "ser_tkmsb" LOC = "AA24" ; +#NET "ser_tklsb" LOC = "AA25" ; +#NET "ser_rx_clk" LOC = "P18" ; +#NET "ser_r<15>" LOC = "V21" ; +#NET "ser_r<14>" LOC = "U20" ; +#NET "ser_r<13>" LOC = "AA22" ; +#NET "ser_r<12>" LOC = "AA23" ; +#NET "ser_r<11>" LOC = "V18" ; +#NET "ser_r<10>" LOC = "V19" ; +#NET "ser_r<9>" LOC = "AB23" ; +#NET "ser_r<8>" LOC = "AC26" ; +#NET "ser_r<7>" LOC = "AB26" ; +#NET "ser_r<6>" LOC = "AD26" ; +#NET "ser_r<5>" LOC = "AC25" ; +#NET "ser_r<4>" LOC = "W20" ; +#NET "ser_r<3>" LOC = "W21" ; +#NET "ser_r<2>" LOC = "AC23" ; +#NET "ser_r<1>" LOC = "AC24" ; +#NET "ser_r<0>" LOC = "AE26" ; +#NET "ser_rkmsb" LOC = "AD25" ; +#NET "ser_rklsb" LOC = "Y20" ; + +## SRAM +#NET "RAM_D<35>" LOC = "K16" ; +#NET "RAM_D<34>" LOC = "D20" ; +#NET "RAM_D<33>" LOC = "C20" ; +#NET "RAM_D<32>" LOC = "E21" ; +#NET "RAM_D<31>" LOC = "D21" ; +#NET "RAM_D<30>" LOC = "C21" ; +#NET "RAM_D<29>" LOC = "B21" ; +#NET "RAM_D<28>" LOC = "H17" ; +#NET "RAM_D<27>" LOC = "G17" ; +#NET "RAM_D<26>" LOC = "B23" ; +#NET "RAM_D<25>" LOC = "A22" ; +#NET "RAM_D<24>" LOC = "D23" ; +#NET "RAM_D<23>" LOC = "C23" ; +#NET "RAM_D<22>" LOC = "D22" ; +#NET "RAM_D<21>" LOC = "C22" ; +#NET "RAM_D<20>" LOC = "F19" ; +#NET "RAM_D<19>" LOC = "G20" ; +#NET "RAM_D<18>" LOC = "F20" ; +#NET "RAM_D<17>" LOC = "F7" ; +#NET "RAM_D<16>" LOC = "E7" ; +#NET "RAM_D<15>" LOC = "G9" ; +#NET "RAM_D<14>" LOC = "H9" ; +#NET "RAM_D<13>" LOC = "G10" ; +#NET "RAM_D<12>" LOC = "H10" ; +#NET "RAM_D<11>" LOC = "A4" ; +#NET "RAM_D<10>" LOC = "B4" ; +#NET "RAM_D<9>" LOC = "C5" ; +#NET "RAM_D<8>" LOC = "D6" ; +#NET "RAM_D<7>" LOC = "J11" ; +#NET "RAM_D<6>" LOC = "K11" ; +#NET "RAM_D<5>" LOC = "B7" ; +#NET "RAM_D<4>" LOC = "C7" ; +#NET "RAM_D<3>" LOC = "B6" ; +#NET "RAM_D<2>" LOC = "C6" ; +#NET "RAM_D<1>" LOC = "C8" ; +#NET "RAM_D<0>" LOC = "D8" ; +#NET "RAM_A<0>" LOC = "C11" ; +#NET "RAM_A<1>" LOC = "E12" ; +#NET "RAM_A<2>" LOC = "F12" ; +#NET "RAM_A<3>" LOC = "D13" ; +#NET "RAM_A<4>" LOC = "C12" ; +#NET "RAM_A<5>" LOC = "A12" ; +#NET "RAM_A<6>" LOC = "B12" ; +#NET "RAM_A<7>" LOC = "E14" ; +#NET "RAM_A<8>" LOC = "F14" ; +#NET "RAM_A<9>" LOC = "B15" ; +#NET "RAM_A<10>" LOC = "A15" ; +#NET "RAM_A<11>" LOC = "D16" ; +#NET "RAM_A<12>" LOC = "C15" ; +#NET "RAM_A<13>" LOC = "D17" ; +#NET "RAM_A<14>" LOC = "C16" ; +#NET "RAM_A<15>" LOC = "F15" ; +#NET "RAM_A<16>" LOC = "C17" ; +#NET "RAM_A<17>" LOC = "B17" ; +#NET "RAM_A<18>" LOC = "B18" ; +#NET "RAM_A<19>" LOC = "A18" ; +#NET "RAM_A<20>" LOC = "D18" ; +#NET "RAM_BWn<3>" LOC = "D9" ; +#NET "RAM_BWn<2>" LOC = "A9" ; +#NET "RAM_BWn<1>" LOC = "B9" ; +#NET "RAM_BWn<0>" LOC = "G12" ; +#NET "RAM_ZZ" LOC = "J12" ; +#NET "RAM_LDn" LOC = "H12" ; +#NET "RAM_OEn" LOC = "C10" ; +#NET "RAM_WEn" LOC = "D10" ; +#NET "RAM_CENn" LOC = "B10" ; +#NET "RAM_CLK" LOC = "A10" ; + +## SPI Flash +#NET "flash_miso" LOC = "AF24" ; +#NET "flash_clk" LOC = "AE24" ; +#NET "flash_mosi" LOC = "AB15" ; +#NET "flash_cs" LOC = "AA7" ; + +## MISC FPGA, unused for now +##NET "PROG_B" LOC = "A2" ; +##NET "PUDC_B" LOC = "G8" ; +##NET "DONE" LOC = "AB21" ; +##NET "INIT_B" LOC = "AA15" ; + + +##NET "unnamed_net19" LOC = "AE9" ; # VS1 +##NET "unnamed_net18" LOC = "AF9" ; # VS0 +##NET "unnamed_net17" LOC = "AA12" ; # VS2 +##NET "unnamed_net16" LOC = "Y7" ; # M2 +##NET "unnamed_net15" LOC = "AC4" ; # M1 +##NET "unnamed_net14" LOC = "AD4" ; # M0 +##NET "unnamed_net13" LOC = "D4" ; # TMS +##NET "unnamed_net12" LOC = "E23" ; # TDO +##NET "unnamed_net11" LOC = "G7" ; # TDI +##NET "unnamed_net10" LOC = "A25" ; # TCK +##NET "unnamed_net20" LOC = "V20" ; # SUSPEND diff --git a/fpga/usrp2/top/u1e/.gitignore b/fpga/usrp2/top/u1e/.gitignore new file mode 100644 index 000000000..8d872713e --- /dev/null +++ b/fpga/usrp2/top/u1e/.gitignore @@ -0,0 +1,6 @@ +*~ +build +*.log +*.cmd +tb_u1e +*.lxt diff --git a/fpga/usrp2/top/u1e/Makefile b/fpga/usrp2/top/u1e/Makefile new file mode 100644 index 000000000..3cb9fd8f3 --- /dev/null +++ b/fpga/usrp2/top/u1e/Makefile @@ -0,0 +1,101 @@ +# +# Copyright 2008 Ettus Research LLC +# + +################################################## +# Project Setup +################################################## +TOP_MODULE = u1e +BUILD_DIR = $(abspath build$(ISE)) + +################################################## +# Include other makefiles +################################################## + +include ../Makefile.common +include ../../fifo/Makefile.srcs +include ../../control_lib/Makefile.srcs +include ../../sdr_lib/Makefile.srcs +include ../../serdes/Makefile.srcs +include ../../simple_gemac/Makefile.srcs +include ../../timing/Makefile.srcs +include ../../opencores/Makefile.srcs +include ../../vrt/Makefile.srcs +include ../../udp/Makefile.srcs +include ../../coregen/Makefile.srcs +include ../../extram/Makefile.srcs +include ../../gpmc/Makefile.srcs + +################################################## +# Project Properties +################################################## +export PROJECT_PROPERTIES := \ +family "Spartan-3A DSP" \ +device xc3sd1800a \ +package cs484 \ +speed -4 \ +top_level_module_type "HDL" \ +synthesis_tool "XST (VHDL/Verilog)" \ +simulator "ISE Simulator (VHDL/Verilog)" \ +"Preferred Language" "Verilog" \ +"Enable Message Filtering" FALSE \ +"Display Incremental Messages" FALSE + +################################################## +# Sources +################################################## +TOP_SRCS = \ +u1e_core.v \ +u1e.v \ +u1e.ucf \ +timing.ucf + +SOURCES = $(abspath $(TOP_SRCS)) $(FIFO_SRCS) \ +$(CONTROL_LIB_SRCS) $(SDR_LIB_SRCS) $(SERDES_SRCS) \ +$(SIMPLE_GEMAC_SRCS) $(TIMING_SRCS) $(OPENCORES_SRCS) \ +$(VRT_SRCS) $(UDP_SRCS) $(COREGEN_SRCS) $(EXTRAM_SRCS) \ +$(GPMC_SRCS) + +################################################## +# Process Properties +################################################## +SYNTHESIZE_PROPERTIES = \ +"Number of Clock Buffers" 8 \ +"Pack I/O Registers into IOBs" Yes \ +"Optimization Effort" High \ +"Optimize Instantiated Primitives" TRUE \ +"Register Balancing" Yes \ +"Use Clock Enable" Auto \ +"Use Synchronous Reset" Auto \ +"Use Synchronous Set" Auto + +TRANSLATE_PROPERTIES = \ +"Macro Search Path" "$(shell pwd)/../../coregen/" + +MAP_PROPERTIES = \ +"Allow Logic Optimization Across Hierarchy" TRUE \ +"Map to Input Functions" 4 \ +"Optimization Strategy (Cover Mode)" Speed \ +"Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ +"Perform Timing-Driven Packing and Placement" TRUE \ +"Map Effort Level" High \ +"Extra Effort" Normal \ +"Combinatorial Logic Optimization" TRUE \ +"Register Duplication" TRUE + +PLACE_ROUTE_PROPERTIES = \ +"Place & Route Effort Level (Overall)" High + +STATIC_TIMING_PROPERTIES = \ +"Number of Paths in Error/Verbose Report" 10 \ +"Report Type" "Error Report" + +GEN_PROG_FILE_PROPERTIES = \ +"Configuration Rate" 6 \ +"Create Binary Configuration File" TRUE \ +"Done (Output Events)" 5 \ +"Enable Bitstream Compression" TRUE \ +"Enable Outputs (Output Events)" 6 \ +"Unused IOB Pins" "Pull Up" + +SIM_MODEL_PROPERTIES = "" diff --git a/fpga/usrp2/top/u1e/README b/fpga/usrp2/top/u1e/README new file mode 100644 index 000000000..14c7a4955 --- /dev/null +++ b/fpga/usrp2/top/u1e/README @@ -0,0 +1,4 @@ + +make clean +make sim +./tb_u1e -lxt2 diff --git a/fpga/usrp2/top/u1e/cmdfile b/fpga/usrp2/top/u1e/cmdfile new file mode 100644 index 000000000..291c723b8 --- /dev/null +++ b/fpga/usrp2/top/u1e/cmdfile @@ -0,0 +1,20 @@ + +# My stuff +-y . +-y ../../control_lib +-y ../../control_lib/newfifo +-y ../../sdr_lib +-y ../../timing +-y ../../coregen +-y ../../gpmc + +# Models +-y ../../models +-y /opt/Xilinx/10.1/ISE/verilog/src/unisims + +# Open Cores +-y ../../opencores/spi/rtl/verilog ++incdir+../../opencores/spi/rtl/verilog +-y ../../opencores/i2c/rtl/verilog ++incdir+../../opencores/i2c/rtl/verilog + diff --git a/fpga/usrp2/top/u1e/make.sim b/fpga/usrp2/top/u1e/make.sim new file mode 100644 index 000000000..1c163884c --- /dev/null +++ b/fpga/usrp2/top/u1e/make.sim @@ -0,0 +1,7 @@ +all: sim + +sim: + iverilog -Wimplicit -Wportbind -c cmdfile tb_u1e.v -o tb_u1e + +clean: + rm -f tb_u1e *.vcd *.lxt a.out diff --git a/fpga/usrp2/top/u1e/tb_u1e.v b/fpga/usrp2/top/u1e/tb_u1e.v new file mode 100644 index 000000000..5fc8134fb --- /dev/null +++ b/fpga/usrp2/top/u1e/tb_u1e.v @@ -0,0 +1,41 @@ +`timescale 1ps / 1ps +////////////////////////////////////////////////////////////////////////////////// + +module tb_u1e(); + + wire [2:0] debug_led; + wire [31:0] debug; + wire [1:0] debug_clk; + + xlnx_glbl glbl (.GSR(),.GTS()); + + initial begin + $dumpfile("tb_u1e.lxt"); + $dumpvars(0,tb_u1e); + end + + // GPMC + wire EM_CLK, EM_WAIT0, EM_NCS4, EM_NCS6, EM_NWE, EM_NOE; + wire [15:0] EM_D; + wire [10:1] EM_A; + wire [1:0] EM_NBE; + + reg clk_fpga = 0, rst_fpga = 1; + always #15625 clk_fpga = ~clk_fpga; + + initial #200000 + @(posedge clk_fpga) + rst_fpga <= 0; + + u1e_core u1e_core(.clk_fpga(clk_fpga), .rst_fpga(rst_fpga), + .debug_led(debug_led), .debug(debug), .debug_clk(debug_clk), + .EM_CLK(EM_CLK), .EM_D(EM_D), .EM_A(EM_A), .EM_NBE(EM_NBE), + .EM_WAIT0(EM_WAIT0), .EM_NCS4(EM_NCS4), .EM_NCS6(EM_NCS6), + .EM_NWE(EM_NWE), .EM_NOE(EM_NOE) ); + + gpmc_model_async gpmc_model_async + (.EM_CLK(EM_CLK), .EM_D(EM_D), .EM_A(EM_A), .EM_NBE(EM_NBE), + .EM_WAIT0(EM_WAIT0), .EM_NCS4(EM_NCS4), .EM_NCS6(EM_NCS6), + .EM_NWE(EM_NWE), .EM_NOE(EM_NOE) ); + +endmodule // tb_u1e diff --git a/fpga/usrp2/top/u1e/timing.ucf b/fpga/usrp2/top/u1e/timing.ucf new file mode 100644 index 000000000..8df28c9d3 --- /dev/null +++ b/fpga/usrp2/top/u1e/timing.ucf @@ -0,0 +1,13 @@ + +NET "CLK_FPGA_P" TNM_NET = "CLK_FPGA_P"; +TIMESPEC "TS_clk_fpga_p" = PERIOD "CLK_FPGA_P" 15625 ps HIGH 50 %; + + + + +#NET "adc_a<*>" TNM_NET = ADC_DATA_GRP; +#NET "adc_b<*>" TNM_NET = ADC_DATA_GRP; +#TIMEGRP "ADC_DATA_GRP" OFFSET = IN 1 ns VALID 5 ns BEFORE "clk_fpga_p" RISING; + +#NET "adc_a<*>" OFFSET = IN 1 ns VALID 5 ns BEFORE "clk_fpga_p" RISING; +#NET "adc_b<*>" OFFSET = IN 1 ns VALID 5 ns BEFORE "clk_fpga_p" RISING; diff --git a/fpga/usrp2/top/u1e/u1e.ucf b/fpga/usrp2/top/u1e/u1e.ucf new file mode 100644 index 000000000..0c487a601 --- /dev/null +++ b/fpga/usrp2/top/u1e/u1e.ucf @@ -0,0 +1,259 @@ + +NET "CLK_FPGA_P" LOC = "Y11" ; +NET "CLK_FPGA_N" LOC = "Y10" ; + +## GPMC +NET "EM_D<15>" LOC = "D13" ; +NET "EM_D<14>" LOC = "D15" ; +NET "EM_D<13>" LOC = "C16" ; +NET "EM_D<12>" LOC = "B20" ; +NET "EM_D<11>" LOC = "A19" ; +NET "EM_D<10>" LOC = "A17" ; +NET "EM_D<9>" LOC = "E15" ; +NET "EM_D<8>" LOC = "F15" ; +NET "EM_D<7>" LOC = "E16" ; +NET "EM_D<6>" LOC = "F16" ; +NET "EM_D<5>" LOC = "B17" ; +NET "EM_D<4>" LOC = "C17" ; +NET "EM_D<3>" LOC = "B19" ; +NET "EM_D<2>" LOC = "D19" ; +NET "EM_D<1>" LOC = "C19" ; +NET "EM_D<0>" LOC = "A20" ; + +NET "EM_A<10>" LOC = "C14" ; +NET "EM_A<9>" LOC = "C10" ; +NET "EM_A<8>" LOC = "C5" ; +NET "EM_A<7>" LOC = "A18" ; +NET "EM_A<6>" LOC = "A15" ; +NET "EM_A<5>" LOC = "A12" ; +NET "EM_A<4>" LOC = "A10" ; +NET "EM_A<3>" LOC = "E7" ; +NET "EM_A<2>" LOC = "A7" ; +NET "EM_A<1>" LOC = "C15" ; + +NET "EM_NCS6" LOC = "E17" ; +NET "EM_NCS5" LOC = "E10" ; +NET "EM_NCS4" LOC = "E6" ; +#NET "EM_NCS1" LOC = "D18" ; +#NET "EM_NCS0" LOC = "D17" ; + +NET "EM_CLK" LOC = "F11" ; +NET "EM_WAIT0" LOC = "F14" ; +NET "EM_NBE<1>" LOC = "D14" ; +NET "EM_NBE<0>" LOC = "A13" ; +NET "EM_NWE" LOC = "B13" ; +NET "EM_NOE" LOC = "A14" ; +#NET "EM_NADV_ALE" LOC = "B15" ; +#NET "EM_NWP" LOC = "F13" ; + +## Overo GPIO +NET "overo_gpio0" LOC = "F9" ; # MISC GPIO for debug +NET "overo_gpio14" LOC = "C4" ; # MISC GPIO for debug +NET "overo_gpio21" LOC = "D5" ; # MISC GPIO for debug +NET "overo_gpio22" LOC = "A3" ; # MISC GPIO for debug +NET "overo_gpio23" LOC = "B3" ; # MISC GPIO for debug +NET "overo_gpio64" LOC = "A4" ; # MISC GPIO for debug +NET "overo_gpio65" LOC = "F8" ; # MISC GPIO for debug + +NET "overo_gpio127" LOC = "C8" ; # Changed name to gpio10 +NET "overo_gpio128" LOC = "G8" ; # Changed name to gpio186 + +NET "overo_gpio144" LOC = "A5" ; # tx_have_space +NET "overo_gpio145" LOC = "C7" ; # tx_underrun +NET "overo_gpio146" LOC = "A6" ; # rx_have_data +NET "overo_gpio147" LOC = "B6" ; # rx_overrun +NET "overo_gpio163" LOC = "D7" ; # MISC GPIO for debug +NET "overo_gpio170" LOC = "E8" ; # MISC GPIO for debug +NET "overo_gpio176" LOC = "B4" ; # MISC GPIO for debug + +## Overo UART +#NET "overo_txd1" LOC = "C6" ; +#NET "overo_rxd1" LOC = "D6" ; + +## FTDI UART to USB converter +NET "FPGA_TXD" LOC = "G19" ; +NET "FPGA_RXD" LOC = "F20" ; + +#NET "SYSEN" LOC = "C11" ; + +## I2C +NET "db_scl" LOC = "F19" ; +NET "db_sda" LOC = "F18" ; + +## SPI +### DBoard SPI +NET "db_sclk_rx" LOC = "D21" ; +NET "db_miso_rx" LOC = "D22" ; +NET "db_mosi_rx" LOC = "D20" ; +NET "db_sen_rx" LOC = "E19" ; +NET "db_sclk_tx" LOC = "F21" ; +NET "db_miso_tx" LOC = "E20" ; +NET "db_mosi_tx" LOC = "G17" ; +NET "db_sen_tx" LOC = "G18" ; + +### AD9862 SPI and aux SPI Interfaces +#NET "aux_sdi_codec" LOC = "G3" ; +#NET "aux_sdo_codec" LOC = "F3" ; +#NET "aux_sclk_codec" LOC = "C1" ; +NET "sen_codec" LOC = "F5" |IOSTANDARD = LVCMOS33; +NET "mosi_codec" LOC = "F4" |IOSTANDARD = LVCMOS33; +NET "miso_codec" LOC = "H4" ; +NET "sclk_codec" LOC = "H3" |IOSTANDARD = LVCMOS33; + +### Clock Gen SPI +NET "cgen_miso" LOC = "F22" ; +NET "cgen_mosi" LOC = "E22" ; +NET "cgen_sclk" LOC = "J19" ; +NET "cgen_sen_b" LOC = "H20" ; + +## Clock gen control +NET "cgen_st_status" LOC = "P20" ; +NET "cgen_st_ld" LOC = "R17" ; +NET "cgen_st_refmon" LOC = "P17" ; +NET "cgen_sync_b" LOC = "U18" ; +NET "cgen_ref_sel" LOC = "U19" ; + +## Debug pins +NET "debug_led<3>" LOC = "Y15" ; +NET "debug_led<2>" LOC = "K16" ; +NET "debug_led<1>" LOC = "J17" ; +NET "debug_led<0>" LOC = "H22" ; +NET "debug<0>" LOC = "G22" ; +NET "debug<1>" LOC = "H17" ; +NET "debug<2>" LOC = "H18" ; +NET "debug<3>" LOC = "K20" ; +NET "debug<4>" LOC = "J20" ; +NET "debug<5>" LOC = "K19" ; +NET "debug<6>" LOC = "K18" ; +NET "debug<7>" LOC = "L22" ; +NET "debug<8>" LOC = "K22" ; +NET "debug<9>" LOC = "N22" ; +NET "debug<10>" LOC = "M22" ; +NET "debug<11>" LOC = "N20" ; +NET "debug<12>" LOC = "N19" ; +NET "debug<13>" LOC = "R22" ; +NET "debug<14>" LOC = "P22" ; +NET "debug<15>" LOC = "N17" ; +NET "debug<16>" LOC = "P16" ; +NET "debug<17>" LOC = "U22" ; +NET "debug<18>" LOC = "P19" ; +NET "debug<19>" LOC = "R18" ; +NET "debug<20>" LOC = "U20" ; +NET "debug<21>" LOC = "T20" ; +NET "debug<22>" LOC = "R19" ; +NET "debug<23>" LOC = "R20" ; +NET "debug<24>" LOC = "W22" ; +NET "debug<25>" LOC = "Y22" ; +NET "debug<26>" LOC = "T18" ; +NET "debug<27>" LOC = "T17" ; +NET "debug<28>" LOC = "W19" ; +NET "debug<29>" LOC = "V20" ; +NET "debug<30>" LOC = "Y21" ; +NET "debug<31>" LOC = "AA22" ; +NET "debug_clk<0>" LOC = "N18" ; +NET "debug_clk<1>" LOC = "M17" ; + +NET "debug_pb" LOC = "C22" ; + +#NET "reset_codec" LOC = "C2" ; + +NET "RXSYNC" LOC = "F2" ; +NET "DB<11>" LOC = "G6" ; +NET "DB<10>" LOC = "G5" ; +NET "DB<9>" LOC = "E4" ; +NET "DB<8>" LOC = "E3" ; +NET "DB<7>" LOC = "H6" ; +NET "DB<6>" LOC = "H5" ; +NET "DB<5>" LOC = "H1" ; +NET "DB<4>" LOC = "G1" ; +NET "DB<3>" LOC = "K5" ; +NET "DB<2>" LOC = "K4" ; +NET "DB<1>" LOC = "H2" ; +NET "DB<0>" LOC = "L5" ; + +NET "DA<11>" LOC = "K6" ; +NET "DA<10>" LOC = "K3" ; +NET "DA<9>" LOC = "K2" ; +NET "DA<8>" LOC = "N1" ; +NET "DA<7>" LOC = "N5" ; +NET "DA<6>" LOC = "N6" ; +NET "DA<5>" LOC = "P2" ; +NET "DA<4>" LOC = "P1" ; +NET "DA<3>" LOC = "R6" ; +NET "DA<2>" LOC = "P6" ; +NET "DA<1>" LOC = "R1" ; +NET "DA<0>" LOC = "R2" ; + +NET "TX<13>" LOC = "T6" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; +NET "TX<12>" LOC = "U1" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; +NET "TX<11>" LOC = "T1" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; +NET "TX<10>" LOC = "R5" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; +NET "TX<9>" LOC = "V1" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; +NET "TX<8>" LOC = "U2" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; +NET "TX<7>" LOC = "T4" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; +NET "TX<6>" LOC = "R3" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; +NET "TX<5>" LOC = "W1" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; +NET "TX<4>" LOC = "Y1" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; +NET "TX<3>" LOC = "V3" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; +NET "TX<2>" LOC = "V4" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; +NET "TX<1>" LOC = "W2" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; +NET "TX<0>" LOC = "W3" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; +NET "TXSYNC" LOC = "U5" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; +NET "TXBLANK" LOC = "U4" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; + +NET "PPS_IN" LOC = "M5" ; + +NET "io_tx<0>" LOC = "AB20" ; +NET "io_tx<1>" LOC = "Y17" ; +NET "io_tx<2>" LOC = "Y16" ; +NET "io_tx<3>" LOC = "U16" ; +NET "io_tx<4>" LOC = "V16" ; +NET "io_tx<5>" LOC = "AB19" ; +NET "io_tx<6>" LOC = "AA19" ; +NET "io_tx<7>" LOC = "U14" ; +NET "io_tx<8>" LOC = "U15" ; +NET "io_tx<9>" LOC = "AB17" ; +NET "io_tx<10>" LOC = "AB18" ; +NET "io_tx<11>" LOC = "Y13" ; +NET "io_tx<12>" LOC = "W14" ; +NET "io_tx<13>" LOC = "U13" ; +NET "io_tx<14>" LOC = "AA15" ; +NET "io_tx<15>" LOC = "AB14" ; + +NET "io_rx<0>" LOC = "Y8" ; +NET "io_rx<1>" LOC = "Y9" ; +NET "io_rx<2>" LOC = "V7" ; +NET "io_rx<3>" LOC = "U8" ; +NET "io_rx<4>" LOC = "V10" ; +NET "io_rx<5>" LOC = "U9" ; +NET "io_rx<6>" LOC = "AB7" ; +NET "io_rx<7>" LOC = "AA8" ; +NET "io_rx<8>" LOC = "W8" ; +NET "io_rx<9>" LOC = "V8" ; +NET "io_rx<10>" LOC = "AB5" ; +NET "io_rx<11>" LOC = "AB6" ; +NET "io_rx<12>" LOC = "AB4" ; +NET "io_rx<13>" LOC = "AA4" ; +NET "io_rx<14>" LOC = "W5" ; +NET "io_rx<15>" LOC = "Y4" ; + +#NET "CLKOUT2_CODEC" LOC = "U12" ; +#NET "CLKOUT1_CODEC" LOC = "V12" ; + +## FPGA Config Pins +#NET "fpga_cfg_prog_b" LOC = "A2" ; +#NET "fpga_cfg_done" LOC = "AB21" ; +#NET "fpga_cfg_din" LOC = "W17" ; +#NET "fpga_cfg_cclk" LOC = "V17" ; +#NET "fpga_cfg_init_b" LOC = "W15" ; + +## Unused +#NET "unnamed_net53" LOC = "B1" ; # TMS +#NET "unnamed_net52" LOC = "B22" ; # TDO +#NET "unnamed_net51" LOC = "D2" ; # TDI +#NET "unnamed_net50" LOC = "A21" ; # TCK +#NET "unnamed_net59" LOC = "F7" ; # PUDC_B +#NET "unnamed_net58" LOC = "V6" ; # M2 +#NET "unnamed_net57" LOC = "AA3" ; # M1 +#NET "unnamed_net56" LOC = "AB3" ; # M0 +#NET "GND" LOC = "V19" ; # Suspend, unused diff --git a/fpga/usrp2/top/u1e/u1e.v b/fpga/usrp2/top/u1e/u1e.v new file mode 100644 index 000000000..445b14a03 --- /dev/null +++ b/fpga/usrp2/top/u1e/u1e.v @@ -0,0 +1,141 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// + +module u1e + (input CLK_FPGA_P, input CLK_FPGA_N, // Diff + output [3:0] debug_led, output [31:0] debug, output [1:0] debug_clk, + input debug_pb, output FPGA_TXD, input FPGA_RXD, + + // GPMC + input EM_CLK, inout [15:0] EM_D, input [10:1] EM_A, input [1:0] EM_NBE, + input EM_WAIT0, input EM_NCS4, input EM_NCS5, input EM_NCS6, + input EM_NWE, input EM_NOE, + + inout db_sda, inout db_scl, // I2C + + output db_sclk_tx, output db_sen_tx, output db_mosi_tx, input db_miso_tx, // DB TX SPI + output db_sclk_rx, output db_sen_rx, output db_mosi_rx, input db_miso_rx, // DB TX SPI + output sclk_codec, output sen_codec, output mosi_codec, input miso_codec, // AD9862 main SPI + output cgen_sclk, output cgen_sen_b, output cgen_mosi, input cgen_miso, // Clock gen SPI + + input cgen_st_status, input cgen_st_ld, input cgen_st_refmon, output cgen_sync_b, output cgen_ref_sel, + + output overo_gpio144, output overo_gpio145, output overo_gpio146, output overo_gpio147, // Fifo controls + input overo_gpio0, input overo_gpio14, input overo_gpio21, input overo_gpio22, // Misc GPIO + input overo_gpio23, input overo_gpio64, input overo_gpio65, input overo_gpio127, // Misc GPIO + input overo_gpio128, input overo_gpio163, input overo_gpio170, input overo_gpio176, // Misc GPIO + + inout [15:0] io_tx, inout [15:0] io_rx, + + output [13:0] TX, output TXSYNC, output TXBLANK, + input [11:0] DA, input [11:0] DB, input RXSYNC, + + input PPS_IN + ); + + // ///////////////////////////////////////////////////////////////////////// + // Clocking + wire clk_fpga, clk_fpga_in; + + IBUFGDS #(.IOSTANDARD("LVDS_33"), .DIFF_TERM("TRUE")) + clk_fpga_pin (.O(clk_fpga_in),.I(CLK_FPGA_P),.IB(CLK_FPGA_N)); + + wire clk_2x, dcm_rst, dcm_locked, clk_fb; + DCM #(.CLK_FEEDBACK ( "1X" ), + .CLKDV_DIVIDE ( 2 ), + .CLKFX_DIVIDE ( 2 ), + .CLKFX_MULTIPLY ( 2 ), + .CLKIN_DIVIDE_BY_2 ( "FALSE" ), + .CLKIN_PERIOD ( 15.625 ), + .CLKOUT_PHASE_SHIFT ( "NONE" ), + .DESKEW_ADJUST ( "SYSTEM_SYNCHRONOUS" ), + .DFS_FREQUENCY_MODE ( "LOW" ), + .DLL_FREQUENCY_MODE ( "LOW" ), + .DUTY_CYCLE_CORRECTION ( "TRUE" ), + .FACTORY_JF ( 16'h8080 ), + .PHASE_SHIFT ( 0 ), + .STARTUP_WAIT ( "FALSE" )) + clk_doubler (.CLKFB(clk_fb), .CLKIN(clk_fpga_in), .RST(dcm_rst), + .DSSEN(0), .PSCLK(0), .PSEN(0), .PSINCDEC(0), .PSDONE(), + .CLKDV(), .CLKFX(), .CLKFX180(), + .CLK2X(), .CLK2X180(), + .CLK0(clk_fb), .CLK90(clk_fpga), .CLK180(), .CLK270(), + .LOCKED(dcm_locked), .STATUS()); + + // ///////////////////////////////////////////////////////////////////////// + // SPI + wire mosi, sclk, miso; + assign { db_sclk_tx, db_mosi_tx } = ~db_sen_tx ? {sclk,mosi} : 2'b0; + assign { db_sclk_rx, db_mosi_rx } = ~db_sen_rx ? {sclk,mosi} : 2'b0; + assign { sclk_codec, mosi_codec } = ~sen_codec ? {sclk,mosi} : 2'b0; + assign { cgen_sclk, cgen_mosi } = ~cgen_sen_b ? {sclk,mosi} : 2'b0; + assign miso = (~db_sen_tx & db_miso_tx) | (~db_sen_rx & db_miso_rx) | + (~sen_codec & miso_codec) | (~cgen_sen_b & cgen_miso); + + // ///////////////////////////////////////////////////////////////////////// + // TX DAC -- handle the interleaved data bus to DAC, with clock doubling DLL + + assign TXBLANK = 0; + wire [13:0] tx_i, tx_q; + + reg[13:0] delay_q; + always @(posedge clk_fpga) + delay_q <= tx_q; + + genvar i; + generate + for(i=0;i<14;i=i+1) + begin : gen_dacout + ODDR2 #(.DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1" + .INIT(1'b0), // Sets initial state of the Q output to 1'b0 or 1'b1 + .SRTYPE("SYNC")) // Specifies "SYNC" or "ASYNC" set/reset + ODDR2_inst (.Q(TX[i]), // 1-bit DDR output data + .C0(clk_fpga), // 1-bit clock input + .C1(~clk_fpga), // 1-bit clock input + .CE(1'b1), // 1-bit clock enable input + .D0(tx_i[i]), // 1-bit data input (associated with C0) + .D1(delay_q[i]), // 1-bit data input (associated with C1) + .R(1'b0), // 1-bit reset input + .S(1'b0)); // 1-bit set input + end // block: gen_dacout + endgenerate + ODDR2 #(.DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1" + .INIT(1'b0), // Sets initial state of the Q output to 1'b0 or 1'b1 + .SRTYPE("SYNC")) // Specifies "SYNC" or "ASYNC" set/reset + ODDR2_txsnc (.Q(TXSYNC), // 1-bit DDR output data + .C0(clk_fpga), // 1-bit clock input + .C1(~clk_fpga), // 1-bit clock input + .CE(1'b1), // 1-bit clock enable input + .D0(1'b0), // 1-bit data input (associated with C0) + .D1(1'b1), // 1-bit data input (associated with C1) + .R(1'b0), // 1-bit reset input + .S(1'b0)); // 1-bit set input + + // ///////////////////////////////////////////////////////////////////////// + // Main U1E Core + u1e_core u1e_core(.clk_fpga(clk_fpga), .rst_fpga(~debug_pb), + .debug_led(debug_led), .debug(debug), .debug_clk(debug_clk), + .debug_txd(FPGA_TXD), .debug_rxd(FPGA_RXD), + .EM_CLK(EM_CLK), .EM_D(EM_D), .EM_A(EM_A), .EM_NBE(EM_NBE), + .EM_WAIT0(EM_WAIT0), .EM_NCS4(EM_NCS4), .EM_NCS5(EM_NCS5), + .EM_NCS6(EM_NCS6), .EM_NWE(EM_NWE), .EM_NOE(EM_NOE), + .db_sda(db_sda), .db_scl(db_scl), + .sclk(sclk), .sen({cgen_sen_b,sen_codec,db_sen_tx,db_sen_rx}), .mosi(mosi), .miso(miso), + .cgen_st_status(cgen_st_status), .cgen_st_ld(cgen_st_ld),.cgen_st_refmon(cgen_st_refmon), + .cgen_sync_b(cgen_sync_b), .cgen_ref_sel(cgen_ref_sel), + .tx_have_space(overo_gpio144), .tx_underrun(overo_gpio145), + .rx_have_data(overo_gpio146), .rx_overrun(overo_gpio147), + .io_tx(io_tx), .io_rx(io_rx), + .tx_i(tx_i), .tx_q(tx_q), + .rx_i(DA), .rx_q(DB), + .misc_gpio( {{overo_gpio128,overo_gpio163,overo_gpio170,overo_gpio176}, + {overo_gpio0,overo_gpio14,overo_gpio21,overo_gpio22}, + {overo_gpio23,overo_gpio64,overo_gpio65,overo_gpio127}}), + .pps_in(PPS_IN) ); + + // ///////////////////////////////////////////////////////////////////////// + // Local Debug + // assign debug_clk = {clk_fpga, clk_2x }; + // assign debug = { TXSYNC, TXBLANK, TX }; + +endmodule // u1e diff --git a/fpga/usrp2/top/u1e/u1e_core.v b/fpga/usrp2/top/u1e/u1e_core.v new file mode 100644 index 000000000..e7e798b34 --- /dev/null +++ b/fpga/usrp2/top/u1e/u1e_core.v @@ -0,0 +1,459 @@ + + +//`define LOOPBACK 1 +//`define TIMED 1 +`define DSP 1 + +module u1e_core + (input clk_fpga, input rst_fpga, + output [3:0] debug_led, output [31:0] debug, output [1:0] debug_clk, + output debug_txd, input debug_rxd, + + // GPMC + input EM_CLK, inout [15:0] EM_D, input [10:1] EM_A, input [1:0] EM_NBE, + input EM_WAIT0, input EM_NCS4, input EM_NCS5, input EM_NCS6, + input EM_NWE, input EM_NOE, + + inout db_sda, inout db_scl, + output sclk, output [7:0] sen, output mosi, input miso, + + input cgen_st_status, input cgen_st_ld, input cgen_st_refmon, output cgen_sync_b, output cgen_ref_sel, + output tx_have_space, output tx_underrun, output rx_have_data, output rx_overrun, + inout [15:0] io_tx, inout [15:0] io_rx, + output [13:0] tx_i, output [13:0] tx_q, + input [11:0] rx_i, input [11:0] rx_q, + + input [11:0] misc_gpio, input pps_in + ); + + localparam TXFIFOSIZE = 13; + localparam RXFIFOSIZE = 13; + + localparam SR_RX_DSP = 0; // 5 regs + localparam SR_CLEAR_FIFO = 6; // 1 reg + localparam SR_RX_CTRL = 8; // 9 regs + localparam SR_TX_DSP = 17; // 5 regs + localparam SR_TX_CTRL = 24; // 2 regs + localparam SR_TIME64 = 28; // 4 regs + + wire [7:0] COMPAT_NUM = 8'd2; + + wire wb_clk = clk_fpga; + wire wb_rst = rst_fpga; + + wire pps_int; + wire [63:0] vita_time; + reg [15:0] reg_leds, reg_cgen_ctrl, reg_test, xfer_rate; + + wire [7:0] set_addr; + wire [31:0] set_data; + wire set_stb; + + wire [31:0] debug_vt; + + // ///////////////////////////////////////////////////////////////////////////////////// + // GPMC Slave to Wishbone Master + localparam dw = 16; + localparam aw = 11; + localparam sw = 2; + + wire [dw-1:0] m0_dat_mosi, m0_dat_miso; + wire [aw-1:0] m0_adr; + wire [sw-1:0] m0_sel; + wire m0_cyc, m0_stb, m0_we, m0_ack, m0_err, m0_rty; + + wire [31:0] debug_gpmc; + + wire [35:0] tx_data, rx_data, tx_err_data; + wire tx_src_rdy, tx_dst_rdy, rx_src_rdy, rx_dst_rdy, + tx_err_src_rdy, tx_err_dst_rdy; + reg [15:0] tx_frame_len; + wire [15:0] rx_frame_len; + wire [7:0] rate; + + wire bus_error; + + wire clear_rx_int, clear_tx_int, clear_tx, clear_rx, do_clear; + + setting_reg #(.my_addr(SR_CLEAR_FIFO), .width(2)) sr_clear + (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out({clear_tx_int,clear_rx_int}),.changed(do_clear)); + assign clear_tx = clear_tx_int & do_clear; + assign clear_rx = clear_rx_int & do_clear; + + gpmc_async #(.TXFIFOSIZE(TXFIFOSIZE), .RXFIFOSIZE(RXFIFOSIZE)) + gpmc (.arst(wb_rst), + .EM_CLK(EM_CLK), .EM_D(EM_D), .EM_A(EM_A), .EM_NBE(EM_NBE), + .EM_WAIT0(EM_WAIT0), .EM_NCS4(EM_NCS4), .EM_NCS6(EM_NCS6), .EM_NWE(EM_NWE), + .EM_NOE(EM_NOE), + + .rx_have_data(rx_have_data), .tx_have_space(tx_have_space), + .bus_error(bus_error), .bus_reset(0), + + .wb_clk(wb_clk), .wb_rst(wb_rst), + .wb_adr_o(m0_adr), .wb_dat_mosi(m0_dat_mosi), .wb_dat_miso(m0_dat_miso), + .wb_sel_o(m0_sel), .wb_cyc_o(m0_cyc), .wb_stb_o(m0_stb), .wb_we_o(m0_we), + .wb_ack_i(m0_ack), + + .fifo_clk(wb_clk), .fifo_rst(wb_rst), .clear_tx(clear_tx), .clear_rx(clear_rx), + .tx_data_o(tx_data), .tx_src_rdy_o(tx_src_rdy), .tx_dst_rdy_i(tx_dst_rdy), + .rx_data_i(rx_data), .rx_src_rdy_i(rx_src_rdy), .rx_dst_rdy_o(rx_dst_rdy), + + .tx_frame_len(tx_frame_len), .rx_frame_len(rx_frame_len), + .debug(debug_gpmc)); + + wire rx_sof = rx_data[32]; + wire rx_eof = rx_data[33]; + wire rx_src_rdy_int, rx_dst_rdy_int, tx_src_rdy_int, tx_dst_rdy_int; + +`ifdef LOOPBACK + wire [7:0] WHOAMI = 1; + + fifo_cascade #(.WIDTH(36), .SIZE(12)) loopback_fifo + (.clk(wb_clk), .reset(wb_rst), .clear(clear_tx | clear_rx), + .datain(tx_data), .src_rdy_i(tx_src_rdy), .dst_rdy_o(tx_dst_rdy), + .dataout(rx_data), .src_rdy_o(rx_src_rdy), .dst_rdy_i(rx_dst_rdy)); + + assign tx_underrun = 0; + assign rx_overrun = 0; + + wire run_tx, run_rx, strobe_tx, strobe_rx; +`endif // LOOPBACK + +`ifdef TIMED + wire [7:0] WHOAMI = 2; + + // TX side + wire tx_enable; + + fifo_pacer tx_pacer + (.clk(wb_clk), .reset(wb_rst), .rate(rate), .enable(tx_enable), + .src1_rdy_i(tx_src_rdy), .dst1_rdy_o(tx_dst_rdy), + .src2_rdy_o(tx_src_rdy_int), .dst2_rdy_i(tx_dst_rdy_int), + .underrun(tx_underrun), .overrun()); + + packet_verifier32 pktver32 + (.clk(wb_clk), .reset(wb_rst), .clear(clear_tx), + .data_i(tx_data), .src_rdy_i(tx_src_rdy_int), .dst_rdy_o(tx_dst_rdy_int), + .total(total), .crc_err(crc_err), .seq_err(seq_err), .len_err(len_err)); + + // RX side + wire rx_enable; + + packet_generator32 pktgen32 + (.clk(wb_clk), .reset(wb_rst), .clear(clear_rx), + .data_o(rx_data), .src_rdy_o(rx_src_rdy_int), .dst_rdy_i(rx_dst_rdy_int)); + + fifo_pacer rx_pacer + (.clk(wb_clk), .reset(wb_rst), .rate(rate), .enable(rx_enable), + .src1_rdy_i(rx_src_rdy_int), .dst1_rdy_o(rx_dst_rdy_int), + .src2_rdy_o(rx_src_rdy), .dst2_rdy_i(rx_dst_rdy), + .underrun(), .overrun(rx_overrun)); + +`endif // `ifdef TIMED + +`ifdef DSP + wire [7:0] WHOAMI = 0; + + wire [31:0] debug_rx_dsp, vrc_debug, vrf_debug; + + // ///////////////////////////////////////////////////////////////////////// + // DSP RX + wire [31:0] sample_rx, sample_tx; + wire strobe_rx, strobe_tx; + wire rx1_dst_rdy, rx1_src_rdy; + wire [99:0] rx1_data; + wire run_rx; + wire [35:0] vita_rx_data; + wire vita_rx_src_rdy, vita_rx_dst_rdy; + + dsp_core_rx #(.BASE(SR_RX_DSP)) dsp_core_rx + (.clk(wb_clk),.rst(wb_rst), + .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), + .adc_a({rx_i,2'b0}),.adc_ovf_a(0),.adc_b({rx_q,2'b0}),.adc_ovf_b(0), + .sample(sample_rx), .run(run_rx), .strobe(strobe_rx), + .debug(debug_rx_dsp) ); + + vita_rx_control #(.BASE(SR_RX_CTRL), .WIDTH(32)) vita_rx_control + (.clk(wb_clk), .reset(wb_rst), .clear(clear_rx), + .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), + .vita_time(vita_time), .overrun(rx_overrun), + .sample(sample_rx), .run(run_rx), .strobe(strobe_rx), + .sample_fifo_o(rx1_data), .sample_fifo_dst_rdy_i(rx1_dst_rdy), .sample_fifo_src_rdy_o(rx1_src_rdy), + .debug_rx(vrc_debug)); + + vita_rx_framer #(.BASE(SR_RX_CTRL), .MAXCHAN(1)) vita_rx_framer + (.clk(wb_clk), .reset(wb_rst), .clear(clear_rx), + .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), + .sample_fifo_i(rx1_data), .sample_fifo_dst_rdy_o(rx1_dst_rdy), .sample_fifo_src_rdy_i(rx1_src_rdy), + .data_o(vita_rx_data), .dst_rdy_i(vita_rx_dst_rdy), .src_rdy_o(vita_rx_src_rdy), + .fifo_occupied(), .fifo_full(), .fifo_empty(), + .debug_rx(vrf_debug) ); + + fifo36_mux #(.prio(0)) mux_err_stream + (.clk(wb_clk), .reset(wb_rst), .clear(0), + .data0_i(vita_rx_data), .src0_rdy_i(vita_rx_src_rdy), .dst0_rdy_o(vita_rx_dst_rdy), + .data1_i(tx_err_data), .src1_rdy_i(tx_err_src_rdy), .dst1_rdy_o(tx_err_dst_rdy), + .data_o(rx_data), .src_rdy_o(rx_src_rdy), .dst_rdy_i(rx_dst_rdy)); + + // /////////////////////////////////////////////////////////////////////////////////// + // DSP TX + + wire [15:0] tx_i_int, tx_q_int; + wire run_tx; + + vita_tx_chain #(.BASE_CTRL(SR_TX_CTRL), .BASE_DSP(SR_TX_DSP), + .REPORT_ERROR(1), .PROT_ENG_FLAGS(0)) + vita_tx_chain + (.clk(wb_clk), .reset(wb_rst), + .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), + .vita_time(vita_time), + .tx_data_i(tx_data), .tx_src_rdy_i(tx_src_rdy), .tx_dst_rdy_o(tx_dst_rdy), + .err_data_o(tx_err_data), .err_src_rdy_o(tx_err_src_rdy), .err_dst_rdy_i(tx_err_dst_rdy), + .dac_a(tx_i_int),.dac_b(tx_q_int), + .underrun(underrun), .run(run_tx), + .debug(debug_vt)); + + assign tx_i = tx_i_int[15:2]; + assign tx_q = tx_q_int[15:2]; + +`else // !`ifdef DSP + // Dummy DSP signal generator for test purposes + wire [23:0] tx_i_int, tx_q_int; + wire [23:0] freq = {reg_test,8'd0}; + reg [23:0] phase; + + always @(posedge wb_clk) + phase <= phase + freq; + + cordic_z24 #(.bitwidth(24)) tx_cordic + (.clock(wb_clk), .reset(wb_rst), .enable(1), + .xi(24'd2500000), .yi(24'd0), .zi(phase), .xo(tx_i_int), .yo(tx_q_int), .zo()); + + assign tx_i = tx_i_int[23:10]; + assign tx_q = tx_q_int[23:10]; +`endif // !`ifdef DSP + + // ///////////////////////////////////////////////////////////////////////////////////// + // Wishbone Intercon, single master + wire [dw-1:0] s0_dat_mosi, s1_dat_mosi, s0_dat_miso, s1_dat_miso, s2_dat_mosi, s3_dat_mosi, s2_dat_miso, s3_dat_miso, + s4_dat_mosi, s5_dat_mosi, s4_dat_miso, s5_dat_miso, s6_dat_mosi, s7_dat_mosi, s6_dat_miso, s7_dat_miso, + s8_dat_mosi, s9_dat_mosi, s8_dat_miso, s9_dat_miso, sa_dat_mosi, sb_dat_mosi, sa_dat_miso, sb_dat_miso, + sc_dat_mosi, sd_dat_mosi, sc_dat_miso, sd_dat_miso, se_dat_mosi, sf_dat_mosi, se_dat_miso, sf_dat_miso; + wire [aw-1:0] s0_adr,s1_adr,s2_adr,s3_adr,s4_adr,s5_adr,s6_adr,s7_adr; + wire [aw-1:0] s8_adr,s9_adr,sa_adr,sb_adr,sc_adr, sd_adr, se_adr, sf_adr; + wire [sw-1:0] s0_sel,s1_sel,s2_sel,s3_sel,s4_sel,s5_sel,s6_sel,s7_sel; + wire [sw-1:0] s8_sel,s9_sel,sa_sel,sb_sel,sc_sel, sd_sel, se_sel, sf_sel; + wire s0_ack,s1_ack,s2_ack,s3_ack,s4_ack,s5_ack,s6_ack,s7_ack; + wire s8_ack,s9_ack,sa_ack,sb_ack,sc_ack, sd_ack, se_ack, sf_ack; + wire s0_stb,s1_stb,s2_stb,s3_stb,s4_stb,s5_stb,s6_stb,s7_stb; + wire s8_stb,s9_stb,sa_stb,sb_stb,sc_stb, sd_stb, se_stb, sf_stb; + wire s0_cyc,s1_cyc,s2_cyc,s3_cyc,s4_cyc,s5_cyc,s6_cyc,s7_cyc; + wire s8_cyc,s9_cyc,sa_cyc,sb_cyc,sc_cyc, sd_cyc, se_cyc, sf_cyc; + wire s0_we,s1_we,s2_we,s3_we,s4_we,s5_we,s6_we,s7_we; + wire s8_we,s9_we,sa_we,sb_we,sc_we,sd_we, se_we, sf_we; + + wb_1master #(.dw(dw), .aw(aw), .sw(sw), .decode_w(4), + .s0_addr(4'h0), .s0_mask(4'hF), .s1_addr(4'h1), .s1_mask(4'hF), + .s2_addr(4'h2), .s2_mask(4'hF), .s3_addr(4'h3), .s3_mask(4'hF), + .s4_addr(4'h4), .s4_mask(4'hF), .s5_addr(4'h5), .s5_mask(4'hF), + .s6_addr(4'h6), .s6_mask(4'hF), .s7_addr(4'h7), .s7_mask(4'hF), + .s8_addr(4'h8), .s8_mask(4'hF), .s9_addr(4'h9), .s9_mask(4'hF), + .sa_addr(4'ha), .sa_mask(4'hF), .sb_addr(4'hb), .sb_mask(4'hF), + .sc_addr(4'hc), .sc_mask(4'hF), .sd_addr(4'hd), .sd_mask(4'hF), + .se_addr(4'he), .se_mask(4'hF), .sf_addr(4'hf), .sf_mask(4'hF)) + wb_1master + (.clk_i(wb_clk),.rst_i(wb_rst), + .m0_dat_o(m0_dat_miso),.m0_ack_o(m0_ack),.m0_err_o(m0_err),.m0_rty_o(m0_rty),.m0_dat_i(m0_dat_mosi), + .m0_adr_i(m0_adr),.m0_sel_i(m0_sel),.m0_we_i(m0_we),.m0_cyc_i(m0_cyc),.m0_stb_i(m0_stb), + .s0_dat_o(s0_dat_mosi),.s0_adr_o(s0_adr),.s0_sel_o(s0_sel),.s0_we_o(s0_we),.s0_cyc_o(s0_cyc),.s0_stb_o(s0_stb), + .s0_dat_i(s0_dat_miso),.s0_ack_i(s0_ack),.s0_err_i(0),.s0_rty_i(0), + .s1_dat_o(s1_dat_mosi),.s1_adr_o(s1_adr),.s1_sel_o(s1_sel),.s1_we_o(s1_we),.s1_cyc_o(s1_cyc),.s1_stb_o(s1_stb), + .s1_dat_i(s1_dat_miso),.s1_ack_i(s1_ack),.s1_err_i(0),.s1_rty_i(0), + .s2_dat_o(s2_dat_mosi),.s2_adr_o(s2_adr),.s2_sel_o(s2_sel),.s2_we_o(s2_we),.s2_cyc_o(s2_cyc),.s2_stb_o(s2_stb), + .s2_dat_i(s2_dat_miso),.s2_ack_i(s2_ack),.s2_err_i(0),.s2_rty_i(0), + .s3_dat_o(s3_dat_mosi),.s3_adr_o(s3_adr),.s3_sel_o(s3_sel),.s3_we_o(s3_we),.s3_cyc_o(s3_cyc),.s3_stb_o(s3_stb), + .s3_dat_i(s3_dat_miso),.s3_ack_i(s3_ack),.s3_err_i(0),.s3_rty_i(0), + .s4_dat_o(s4_dat_mosi),.s4_adr_o(s4_adr),.s4_sel_o(s4_sel),.s4_we_o(s4_we),.s4_cyc_o(s4_cyc),.s4_stb_o(s4_stb), + .s4_dat_i(s4_dat_miso),.s4_ack_i(s4_ack),.s4_err_i(0),.s4_rty_i(0), + .s5_dat_o(s5_dat_mosi),.s5_adr_o(s5_adr),.s5_sel_o(s5_sel),.s5_we_o(s5_we),.s5_cyc_o(s5_cyc),.s5_stb_o(s5_stb), + .s5_dat_i(s5_dat_miso),.s5_ack_i(s5_ack),.s5_err_i(0),.s5_rty_i(0), + .s6_dat_o(s6_dat_mosi),.s6_adr_o(s6_adr),.s6_sel_o(s6_sel),.s6_we_o(s6_we),.s6_cyc_o(s6_cyc),.s6_stb_o(s6_stb), + .s6_dat_i(s6_dat_miso),.s6_ack_i(s6_ack),.s6_err_i(0),.s6_rty_i(0), + .s7_dat_o(s7_dat_mosi),.s7_adr_o(s7_adr),.s7_sel_o(s7_sel),.s7_we_o(s7_we),.s7_cyc_o(s7_cyc),.s7_stb_o(s7_stb), + .s7_dat_i(s7_dat_miso),.s7_ack_i(s7_ack),.s7_err_i(0),.s7_rty_i(0), + .s8_dat_o(s8_dat_mosi),.s8_adr_o(s8_adr),.s8_sel_o(s8_sel),.s8_we_o(s8_we),.s8_cyc_o(s8_cyc),.s8_stb_o(s8_stb), + .s8_dat_i(s8_dat_miso),.s8_ack_i(s8_ack),.s8_err_i(0),.s8_rty_i(0), + .s9_dat_o(s9_dat_mosi),.s9_adr_o(s9_adr),.s9_sel_o(s9_sel),.s9_we_o(s9_we),.s9_cyc_o(s9_cyc),.s9_stb_o(s9_stb), + .s9_dat_i(s9_dat_miso),.s9_ack_i(s9_ack),.s9_err_i(0),.s9_rty_i(0), + .sa_dat_o(sa_dat_mosi),.sa_adr_o(sa_adr),.sa_sel_o(sa_sel),.sa_we_o(sa_we),.sa_cyc_o(sa_cyc),.sa_stb_o(sa_stb), + .sa_dat_i(sa_dat_miso),.sa_ack_i(sa_ack),.sa_err_i(0),.sa_rty_i(0), + .sb_dat_o(sb_dat_mosi),.sb_adr_o(sb_adr),.sb_sel_o(sb_sel),.sb_we_o(sb_we),.sb_cyc_o(sb_cyc),.sb_stb_o(sb_stb), + .sb_dat_i(sb_dat_miso),.sb_ack_i(sb_ack),.sb_err_i(0),.sb_rty_i(0), + .sc_dat_o(sc_dat_mosi),.sc_adr_o(sc_adr),.sc_sel_o(sc_sel),.sc_we_o(sc_we),.sc_cyc_o(sc_cyc),.sc_stb_o(sc_stb), + .sc_dat_i(sc_dat_miso),.sc_ack_i(sc_ack),.sc_err_i(0),.sc_rty_i(0), + .sd_dat_o(sd_dat_mosi),.sd_adr_o(sd_adr),.sd_sel_o(sd_sel),.sd_we_o(sd_we),.sd_cyc_o(sd_cyc),.sd_stb_o(sd_stb), + .sd_dat_i(sd_dat_miso),.sd_ack_i(sd_ack),.sd_err_i(0),.sd_rty_i(0), + .se_dat_o(se_dat_mosi),.se_adr_o(se_adr),.se_sel_o(se_sel),.se_we_o(se_we),.se_cyc_o(se_cyc),.se_stb_o(se_stb), + .se_dat_i(se_dat_miso),.se_ack_i(se_ack),.se_err_i(0),.se_rty_i(0), + .sf_dat_o(sf_dat_mosi),.sf_adr_o(sf_adr),.sf_sel_o(sf_sel),.sf_we_o(sf_we),.sf_cyc_o(sf_cyc),.sf_stb_o(sf_stb), + .sf_dat_i(sf_dat_miso),.sf_ack_i(sf_ack),.sf_err_i(0),.sf_rty_i(0) ); + + assign s7_ack = 0; + assign s8_ack = 0; assign s9_ack = 0; assign sa_ack = 0; assign sb_ack = 0; + assign sc_ack = 0; assign sd_ack = 0; assign se_ack = 0; assign sf_ack = 0; + + // ///////////////////////////////////////////////////////////////////////////////////// + // Slave 0, Misc LEDs, Switches, controls + + localparam REG_LEDS = 7'd0; // out + localparam REG_SWITCHES = 7'd2; // in + localparam REG_CGEN_CTRL = 7'd4; // out + localparam REG_CGEN_ST = 7'd6; // in + localparam REG_TEST = 7'd8; // out + localparam REG_RX_FRAMELEN = 7'd10; // in + localparam REG_TX_FRAMELEN = 7'd12; // out + localparam REG_XFER_RATE = 7'd14; // out + localparam REG_COMPAT = 7'd16; // in + + always @(posedge wb_clk) + if(wb_rst) + begin + reg_leds <= 0; + reg_cgen_ctrl <= 2'b11; + reg_test <= 0; + tx_frame_len <= 0; + xfer_rate <= 0; + end + else + if(s0_cyc & s0_stb & s0_we) + case(s0_adr[6:0]) + REG_LEDS : + reg_leds <= s0_dat_mosi; + REG_CGEN_CTRL : + reg_cgen_ctrl <= s0_dat_mosi; + REG_TEST : + reg_test <= s0_dat_mosi; + REG_TX_FRAMELEN : + tx_frame_len <= s0_dat_mosi; + REG_XFER_RATE : + xfer_rate <= s0_dat_mosi; + endcase // case (s0_adr[6:0]) + + assign tx_enable = xfer_rate[15]; + assign rx_enable = xfer_rate[14]; + assign rate = xfer_rate[7:0]; + + assign { debug_led[3:0] } = ~{run_rx,run_tx,reg_leds[1:0]}; + assign { cgen_sync_b, cgen_ref_sel } = reg_cgen_ctrl; + + assign s0_dat_miso = (s0_adr[6:0] == REG_LEDS) ? reg_leds : + (s0_adr[6:0] == REG_SWITCHES) ? { 16'd0 } : + (s0_adr[6:0] == REG_CGEN_CTRL) ? reg_cgen_ctrl : + (s0_adr[6:0] == REG_CGEN_ST) ? {13'b0,cgen_st_status,cgen_st_ld,cgen_st_refmon} : + (s0_adr[6:0] == REG_TEST) ? reg_test : + (s0_adr[6:0] == REG_RX_FRAMELEN) ? rx_frame_len : + (s0_adr[6:0] == REG_COMPAT) ? { WHOAMI, COMPAT_NUM } : + 16'hBEEF; + + assign s0_ack = s0_stb & s0_cyc; + + // ///////////////////////////////////////////////////////////////////////////////////// + // Slave 1, UART + // depth of 3 is 128 entries, clkdiv of 278 gives 230.4k with a 64 MHz system clock + + simple_uart #(.TXDEPTH(3),.RXDEPTH(3), .CLKDIV_DEFAULT(278)) uart + (.clk_i(wb_clk),.rst_i(wb_rst), + .we_i(s1_we),.stb_i(s1_stb),.cyc_i(s1_cyc),.ack_o(s1_ack), + .adr_i(s1_adr[3:1]),.dat_i({16'd0,s1_dat_mosi}),.dat_o(s1_dat_miso), + .rx_int_o(),.tx_int_o(), + .tx_o(debug_txd),.rx_i(debug_rxd),.baud_o()); + + // ///////////////////////////////////////////////////////////////////////////////////// + // Slave 2, SPI + + spi_top16 shared_spi + (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.wb_adr_i(s2_adr[4:0]),.wb_dat_i(s2_dat_mosi), + .wb_dat_o(s2_dat_miso),.wb_sel_i(s2_sel),.wb_we_i(s2_we),.wb_stb_i(s2_stb), + .wb_cyc_i(s2_cyc),.wb_ack_o(s2_ack),.wb_err_o(),.wb_int_o(), + .ss_pad_o(sen), .sclk_pad_o(sclk), .mosi_pad_o(mosi), .miso_pad_i(miso) ); + + // ///////////////////////////////////////////////////////////////////////// + // Slave 3, I2C + + wire scl_pad_i, scl_pad_o, scl_pad_oen_o, sda_pad_i, sda_pad_o, sda_pad_oen_o; + i2c_master_top #(.ARST_LVL(1)) i2c + (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.arst_i(1'b0), + .wb_adr_i(s3_adr[4:2]),.wb_dat_i(s3_dat_mosi[7:0]),.wb_dat_o(s3_dat_miso[7:0]), + .wb_we_i(s3_we),.wb_stb_i(s3_stb),.wb_cyc_i(s3_cyc), + .wb_ack_o(s3_ack),.wb_inta_o(), + .scl_pad_i(scl_pad_i),.scl_pad_o(scl_pad_o),.scl_padoen_o(scl_pad_oen_o), + .sda_pad_i(sda_pad_i),.sda_pad_o(sda_pad_o),.sda_padoen_o(sda_pad_oen_o) ); + + assign s3_dat_miso[15:8] = 8'd0; + + // I2C -- Don't use external transistors for open drain, the FPGA implements this + IOBUF scl_pin(.O(scl_pad_i), .IO(db_scl), .I(scl_pad_o), .T(scl_pad_oen_o)); + IOBUF sda_pin(.O(sda_pad_i), .IO(db_sda), .I(sda_pad_o), .T(sda_pad_oen_o)); + + // ///////////////////////////////////////////////////////////////////////// + // GPIOs -- Slave #4 + + wire [31:0] atr_lines; + wire [31:0] debug_gpio_0, debug_gpio_1; + + nsgpio16LE + nsgpio16LE(.clk_i(wb_clk),.rst_i(wb_rst), + .cyc_i(s4_cyc),.stb_i(s4_stb),.adr_i(s4_adr[3:0]),.we_i(s4_we), + .dat_i(s4_dat_mosi),.dat_o(s4_dat_miso),.ack_o(s4_ack), + .atr(atr_lines),.debug_0(debug_gpio_0),.debug_1(debug_gpio_1), + .gpio( {io_tx,io_rx} ) ); + + // ///////////////////////////////////////////////////////////////////////// + // Settings Bus -- Slave #5 + + // only have 32 regs, 32 bits each with current setup... + settings_bus_16LE #(.AWIDTH(11),.RWIDTH(11-4-2)) settings_bus_16LE + (.wb_clk(wb_clk),.wb_rst(wb_rst),.wb_adr_i(s5_adr),.wb_dat_i(s5_dat_mosi), + .wb_stb_i(s5_stb),.wb_we_i(s5_we),.wb_ack_o(s5_ack), + .strobe(set_stb),.addr(set_addr),.data(set_data) ); + + // ///////////////////////////////////////////////////////////////////////// + // ATR Controller -- Slave #6 + + atr_controller16 atr_controller16 + (.clk_i(wb_clk), .rst_i(wb_rst), + .adr_i(s6_adr), .sel_i(s6_sel), .dat_i(s6_dat_mosi), .dat_o(s6_dat_miso), + .we_i(s6_we), .stb_i(s6_stb), .cyc_i(s6_cyc), .ack_o(s6_ack), + .run_rx(run_rx), .run_tx(run_tx), .ctrl_lines(atr_lines)); + + + // ///////////////////////////////////////////////////////////////////////// + // VITA Timing + + time_64bit #(.TICKS_PER_SEC(32'd64000000),.BASE(SR_TIME64)) time_64bit + (.clk(wb_clk), .rst(wb_rst), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), + .pps(pps_in), .vita_time(vita_time), .pps_int(pps_int)); + + // ///////////////////////////////////////////////////////////////////////////////////// + // Debug circuitry + + assign debug_clk = { EM_CLK, clk_fpga }; + + assign debug = { { rx_have_data, tx_have_space, EM_NCS6, EM_NCS5, EM_NCS4, EM_NWE, EM_NOE, rx_overrun }, + { tx_src_rdy, tx_src_rdy_int, tx_dst_rdy, tx_dst_rdy_int, rx_src_rdy, rx_src_rdy_int, rx_dst_rdy, rx_dst_rdy_int }, + { EM_D } }; + + assign debug_gpio_0 = { {run_tx, strobe_tx, run_rx, strobe_rx, tx_i[11:0]}, + {2'b00, tx_src_rdy, tx_dst_rdy, tx_q[11:0]} }; + + assign debug_gpio_1 = debug_vt; + +/* + assign debug_gpio_1 = { {rx_enable, rx_src_rdy, rx_dst_rdy, rx_src_rdy & ~rx_dst_rdy}, + {tx_enable, tx_src_rdy, tx_dst_rdy, tx_dst_rdy & ~tx_src_rdy}, + {rx_sof, rx_eof, rx_src_rdy, rx_dst_rdy, rx_data[33:32],2'b0}, + {2'b0, bus_error, debug_gpmc[4:0] }, + {misc_gpio[7:0]} }; + */ +endmodule // u1e_core diff --git a/fpga/usrp2/top/u1e_ethdebug/.gitignore b/fpga/usrp2/top/u1e_ethdebug/.gitignore new file mode 100644 index 000000000..8d872713e --- /dev/null +++ b/fpga/usrp2/top/u1e_ethdebug/.gitignore @@ -0,0 +1,6 @@ +*~ +build +*.log +*.cmd +tb_u1e +*.lxt diff --git a/fpga/usrp2/top/u1e_ethdebug/Makefile b/fpga/usrp2/top/u1e_ethdebug/Makefile new file mode 100644 index 000000000..751b52970 --- /dev/null +++ b/fpga/usrp2/top/u1e_ethdebug/Makefile @@ -0,0 +1,83 @@ +# +# Copyright 2008 Ettus Research LLC +# + +################################################## +# Project Setup +################################################## +TOP_MODULE = u1e +BUILD_DIR = $(abspath build$(ISE)) + +################################################## +# Include other makefiles +################################################## + +include ../Makefile.common + +################################################## +# Project Properties +################################################## +export PROJECT_PROPERTIES := \ +family "Spartan-3A DSP" \ +device xc3sd1800a \ +package cs484 \ +speed -4 \ +top_level_module_type "HDL" \ +synthesis_tool "XST (VHDL/Verilog)" \ +simulator "ISE Simulator (VHDL/Verilog)" \ +"Preferred Language" "Verilog" \ +"Enable Message Filtering" FALSE \ +"Display Incremental Messages" FALSE + +################################################## +# Sources +################################################## +TOP_SRCS = \ +u1e.v \ +u1e.ucf + +SOURCES = $(abspath $(TOP_SRCS)) + +################################################## +# Process Properties +################################################## +SYNTHESIZE_PROPERTIES = \ +"Number of Clock Buffers" 8 \ +"Pack I/O Registers into IOBs" Yes \ +"Optimization Effort" High \ +"Optimize Instantiated Primitives" TRUE \ +"Register Balancing" Yes \ +"Use Clock Enable" Auto \ +"Use Synchronous Reset" Auto \ +"Use Synchronous Set" Auto + +TRANSLATE_PROPERTIES = \ +"Macro Search Path" "$(shell pwd)/../../coregen/" + +MAP_PROPERTIES = \ +"Allow Logic Optimization Across Hierarchy" TRUE \ +"Map to Input Functions" 4 \ +"Optimization Strategy (Cover Mode)" Speed \ +"Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ +"Perform Timing-Driven Packing and Placement" TRUE \ +"Map Effort Level" High \ +"Extra Effort" Normal \ +"Combinatorial Logic Optimization" TRUE \ +"Register Duplication" TRUE + +PLACE_ROUTE_PROPERTIES = \ +"Place & Route Effort Level (Overall)" High + +STATIC_TIMING_PROPERTIES = \ +"Number of Paths in Error/Verbose Report" 10 \ +"Report Type" "Error Report" + +GEN_PROG_FILE_PROPERTIES = \ +"Configuration Rate" 6 \ +"Create Binary Configuration File" TRUE \ +"Done (Output Events)" 5 \ +"Enable Bitstream Compression" TRUE \ +"Enable Outputs (Output Events)" 6 \ +"Unused IOB Pins" "Pull Up" + +SIM_MODEL_PROPERTIES = "" diff --git a/fpga/usrp2/top/u1e_ethdebug/u1e.ucf b/fpga/usrp2/top/u1e_ethdebug/u1e.ucf new file mode 100644 index 000000000..d6a2ea4ed --- /dev/null +++ b/fpga/usrp2/top/u1e_ethdebug/u1e.ucf @@ -0,0 +1,88 @@ + +## GPMC +NET "EM_D<15>" LOC = "D13" ; +NET "EM_D<14>" LOC = "D15" ; +NET "EM_D<13>" LOC = "C16" ; +NET "EM_D<12>" LOC = "B20" ; +NET "EM_D<11>" LOC = "A19" ; +NET "EM_D<10>" LOC = "A17" ; +NET "EM_D<9>" LOC = "E15" ; +NET "EM_D<8>" LOC = "F15" ; +NET "EM_D<7>" LOC = "E16" ; +NET "EM_D<6>" LOC = "F16" ; +NET "EM_D<5>" LOC = "B17" ; +NET "EM_D<4>" LOC = "C17" ; +NET "EM_D<3>" LOC = "B19" ; +NET "EM_D<2>" LOC = "D19" ; +NET "EM_D<1>" LOC = "C19" ; +NET "EM_D<0>" LOC = "A20" ; + +NET "EM_A<10>" LOC = "C14" ; +NET "EM_A<9>" LOC = "C10" ; +NET "EM_A<8>" LOC = "C5" ; +NET "EM_A<7>" LOC = "A18" ; +NET "EM_A<6>" LOC = "A15" ; +NET "EM_A<5>" LOC = "A12" ; +NET "EM_A<4>" LOC = "A10" ; +NET "EM_A<3>" LOC = "E7" ; +NET "EM_A<2>" LOC = "A7" ; +NET "EM_A<1>" LOC = "C15" ; + +NET "EM_NCS6" LOC = "E17" ; +NET "EM_NCS5" LOC = "E10" ; +NET "EM_NCS4" LOC = "E6" ; +#NET "EM_NCS1" LOC = "D18" ; +#NET "EM_NCS0" LOC = "D17" ; + +NET "EM_CLK" LOC = "F11" ; +NET "EM_WAIT0" LOC = "F14" ; +#NET "EM_NBE<1>" LOC = "D14" ; +#NET "EM_NBE<0>" LOC = "A13" ; +NET "EM_NWE" LOC = "B13" ; +NET "EM_NOE" LOC = "A14" ; +NET "EM_NADV_ALE" LOC = "B15" ; +#NET "EM_NWP" LOC = "F13" ; +NET "overo_gpio64" LOC = "A4" ; # nRESET +NET "overo_gpio176" LOC = "B4" ; # IRQ + +## Debug pins +NET "debug_led<3>" LOC = "Y15" ; +NET "debug_led<2>" LOC = "K16" ; +NET "debug_led<1>" LOC = "J17" ; +NET "debug_led<0>" LOC = "H22" ; +NET "debug<0>" LOC = "G22" ; +NET "debug<1>" LOC = "H17" ; +NET "debug<2>" LOC = "H18" ; +NET "debug<3>" LOC = "K20" ; +NET "debug<4>" LOC = "J20" ; +NET "debug<5>" LOC = "K19" ; +NET "debug<6>" LOC = "K18" ; +NET "debug<7>" LOC = "L22" ; +NET "debug<8>" LOC = "K22" ; +NET "debug<9>" LOC = "N22" ; +NET "debug<10>" LOC = "M22" ; +NET "debug<11>" LOC = "N20" ; +NET "debug<12>" LOC = "N19" ; +NET "debug<13>" LOC = "R22" ; +NET "debug<14>" LOC = "P22" ; +NET "debug<15>" LOC = "N17" ; +NET "debug<16>" LOC = "P16" ; +NET "debug<17>" LOC = "U22" ; +NET "debug<18>" LOC = "P19" ; +NET "debug<19>" LOC = "R18" ; +NET "debug<20>" LOC = "U20" ; +NET "debug<21>" LOC = "T20" ; +NET "debug<22>" LOC = "R19" ; +NET "debug<23>" LOC = "R20" ; +NET "debug<24>" LOC = "W22" ; +NET "debug<25>" LOC = "Y22" ; +NET "debug<26>" LOC = "T18" ; +NET "debug<27>" LOC = "T17" ; +NET "debug<28>" LOC = "W19" ; +NET "debug<29>" LOC = "V20" ; +NET "debug<30>" LOC = "Y21" ; +NET "debug<31>" LOC = "AA22" ; +NET "debug_clk<0>" LOC = "N18" ; +NET "debug_clk<1>" LOC = "M17" ; + +NET "debug_pb" LOC = "C22" ; diff --git a/fpga/usrp2/top/u1e_ethdebug/u1e.v b/fpga/usrp2/top/u1e_ethdebug/u1e.v new file mode 100644 index 000000000..2a543a313 --- /dev/null +++ b/fpga/usrp2/top/u1e_ethdebug/u1e.v @@ -0,0 +1,28 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// + +//`define DCM 1 + +module u1e + (output [3:0] debug_led, output [31:0] debug, output [1:0] debug_clk, + input debug_pb, + + // GPMC + input EM_CLK, input [15:0] EM_D, input [10:1] EM_A, + input EM_WAIT0, input EM_NCS4, input EM_NCS5, input EM_NCS6, input EM_NWE, input EM_NOE, + input EM_NADV_ALE, + + input overo_gpio64, input overo_gpio176 + ); + + assign debug_clk = {EM_CLK, EM_NADV_ALE}; + + assign debug_led = {1'b0, EM_A[9], EM_A[8], debug_pb}; + + assign debug = { {overo_gpio64, overo_gpio176, EM_WAIT0, EM_NCS4, EM_NCS5, EM_NCS6, EM_NWE, EM_NOE }, + { EM_A[10], EM_A[7:1] }, + { EM_D[15:8] }, + { EM_D[7:0] } }; + + +endmodule // u1e diff --git a/fpga/usrp2/top/u1e_passthru/.gitignore b/fpga/usrp2/top/u1e_passthru/.gitignore new file mode 100644 index 000000000..1b2211df0 --- /dev/null +++ b/fpga/usrp2/top/u1e_passthru/.gitignore @@ -0,0 +1 @@ +build* diff --git a/fpga/usrp2/top/u1e_passthru/Makefile b/fpga/usrp2/top/u1e_passthru/Makefile new file mode 100644 index 000000000..d1950629b --- /dev/null +++ b/fpga/usrp2/top/u1e_passthru/Makefile @@ -0,0 +1,99 @@ +# +# Copyright 2008 Ettus Research LLC +# + +################################################## +# Project Setup +################################################## +TOP_MODULE = passthru +BUILD_DIR = $(abspath build$(ISE)) + +################################################## +# Include other makefiles +################################################## + +include ../Makefile.common +include ../../fifo/Makefile.srcs +include ../../control_lib/Makefile.srcs +include ../../sdr_lib/Makefile.srcs +include ../../serdes/Makefile.srcs +include ../../simple_gemac/Makefile.srcs +include ../../timing/Makefile.srcs +include ../../opencores/Makefile.srcs +include ../../vrt/Makefile.srcs +include ../../udp/Makefile.srcs +include ../../coregen/Makefile.srcs +include ../../extram/Makefile.srcs +include ../../gpmc/Makefile.srcs + +################################################## +# Project Properties +################################################## +export PROJECT_PROPERTIES := \ +family "Spartan-3A DSP" \ +device xc3sd1800a \ +package cs484 \ +speed -4 \ +top_level_module_type "HDL" \ +synthesis_tool "XST (VHDL/Verilog)" \ +simulator "ISE Simulator (VHDL/Verilog)" \ +"Preferred Language" "Verilog" \ +"Enable Message Filtering" FALSE \ +"Display Incremental Messages" FALSE + +################################################## +# Sources +################################################## +TOP_SRCS = \ +passthru.v \ +passthru.ucf + +SOURCES = $(abspath $(TOP_SRCS)) $(FIFO_SRCS) \ +$(CONTROL_LIB_SRCS) $(SDR_LIB_SRCS) $(SERDES_SRCS) \ +$(SIMPLE_GEMAC_SRCS) $(TIMING_SRCS) $(OPENCORES_SRCS) \ +$(VRT_SRCS) $(UDP_SRCS) $(COREGEN_SRCS) $(EXTRAM_SRCS) \ +$(GPMC_SRCS) + +################################################## +# Process Properties +################################################## +SYNTHESIZE_PROPERTIES = \ +"Number of Clock Buffers" 8 \ +"Pack I/O Registers into IOBs" Yes \ +"Optimization Effort" High \ +"Optimize Instantiated Primitives" TRUE \ +"Register Balancing" Yes \ +"Use Clock Enable" Auto \ +"Use Synchronous Reset" Auto \ +"Use Synchronous Set" Auto + +TRANSLATE_PROPERTIES = \ +"Macro Search Path" "$(shell pwd)/../../coregen/" + +MAP_PROPERTIES = \ +"Allow Logic Optimization Across Hierarchy" TRUE \ +"Map to Input Functions" 4 \ +"Optimization Strategy (Cover Mode)" Speed \ +"Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ +"Perform Timing-Driven Packing and Placement" TRUE \ +"Map Effort Level" High \ +"Extra Effort" Normal \ +"Combinatorial Logic Optimization" TRUE \ +"Register Duplication" TRUE + +PLACE_ROUTE_PROPERTIES = \ +"Place & Route Effort Level (Overall)" High + +STATIC_TIMING_PROPERTIES = \ +"Number of Paths in Error/Verbose Report" 10 \ +"Report Type" "Error Report" + +GEN_PROG_FILE_PROPERTIES = \ +"Configuration Rate" 6 \ +"Create Binary Configuration File" TRUE \ +"Done (Output Events)" 5 \ +"Enable Bitstream Compression" TRUE \ +"Enable Outputs (Output Events)" 6 \ +"Unused IOB Pins" "Pull Up" + +SIM_MODEL_PROPERTIES = "" diff --git a/fpga/usrp2/top/u1e_passthru/passthru.ucf b/fpga/usrp2/top/u1e_passthru/passthru.ucf new file mode 100644 index 000000000..64e6f0440 --- /dev/null +++ b/fpga/usrp2/top/u1e_passthru/passthru.ucf @@ -0,0 +1,6 @@ +NET "overo_gpio145" LOC = "C7" ; +NET "cgen_mosi" LOC = "E22" ; +NET "cgen_sclk" LOC = "J19" ; +NET "cgen_sen_b" LOC = "H20" ; +NET "fpga_cfg_din" LOC = "W17" ; +NET "fpga_cfg_cclk" LOC = "V17" ; diff --git a/fpga/usrp2/top/u1e_passthru/passthru.v b/fpga/usrp2/top/u1e_passthru/passthru.v new file mode 100644 index 000000000..12e4db017 --- /dev/null +++ b/fpga/usrp2/top/u1e_passthru/passthru.v @@ -0,0 +1,18 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// + +module passthru + (input overo_gpio145, + output cgen_sclk, + output cgen_sen_b, + output cgen_mosi, + input fpga_cfg_din, + input fpga_cfg_cclk + ); + + assign cgen_sclk = fpga_cfg_cclk; + assign cgen_sen_b = overo_gpio145; + assign cgen_mosi = fpga_cfg_din; + + +endmodule // passthru diff --git a/fpga/usrp2/top/u2_rev3/u2_core.v b/fpga/usrp2/top/u2_rev3/u2_core.v old mode 100755 new mode 100644 diff --git a/fpga/usrp2/top/u2_rev3/u2_core_udp.v b/fpga/usrp2/top/u2_rev3/u2_core_udp.v index b47e7e311..9e62ee1cc 100644 --- a/fpga/usrp2/top/u2_rev3/u2_core_udp.v +++ b/fpga/usrp2/top/u2_rev3/u2_core_udp.v @@ -125,7 +125,6 @@ module u2_core output [18:0] RAM_A, output RAM_CE1n, output RAM_CENn, - // output RAM_CLK, output RAM_WEn, output RAM_OEn, output RAM_LDn, @@ -162,6 +161,7 @@ module u2_core wire ram_loader_done; wire ram_loader_rst, wb_rst, dsp_rst; + assign dsp_rst = wb_rst; wire [31:0] status, status_b0, status_b1, status_b2, status_b3, status_b4, status_b5, status_b6, status_b7; wire bus_error, spi_int, i2c_int, pps_int, onetime_int, periodic_int, buffer_int; @@ -561,14 +561,6 @@ module u2_core // Master Timer, Slave #9 // No longer used, replaced with simple_timer below - /* - wire [31:0] master_time; - timer timer - (.wb_clk_i(wb_clk),.rst_i(wb_rst), - .cyc_i(s9_cyc),.stb_i(s9_stb),.adr_i(s9_adr[4:2]), - .we_i(s9_we),.dat_i(s9_dat_o),.dat_o(s9_dat_i),.ack_o(s9_ack), - .sys_clk_i(dsp_clk),.master_time_i(master_time),.int_o(timer_int) ); - */ assign s9_ack = 0; // ///////////////////////////////////////////////////////////////////////// @@ -632,9 +624,15 @@ module u2_core .debug(debug_rx_dsp) ); wire [31:0] vrc_debug; + wire clear_rx; + setting_reg #(.my_addr(SR_RX_CTRL+3)) sr_clear + (.clk(dsp_clk),.rst(dsp_rst), + .strobe(set_stb_dsp),.addr(set_addr_dsp),.in(set_data_dsp), + .out(),.changed(clear_rx)); + vita_rx_control #(.BASE(SR_RX_CTRL), .WIDTH(32)) vita_rx_control - (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + (.clk(dsp_clk), .reset(dsp_rst), .clear(clear_rx), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .vita_time(vita_time), .overrun(overrun), .sample(sample_rx), .run(run_rx), .strobe(strobe_rx), @@ -644,7 +642,7 @@ module u2_core wire [3:0] vita_state; vita_rx_framer #(.BASE(SR_RX_CTRL), .MAXCHAN(1)) vita_rx_framer - (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + (.clk(dsp_clk), .reset(dsp_rst), .clear(clear_rx), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .sample_fifo_i(rx_data), .sample_fifo_dst_rdy_o(rx_dst_rdy), .sample_fifo_src_rdy_i(rx_src_rdy), .data_o(rx1_data), .dst_rdy_i(rx1_dst_rdy), .src_rdy_o(rx1_src_rdy), @@ -652,7 +650,7 @@ module u2_core .debug_rx(vita_state) ); fifo_cascade #(.WIDTH(36), .SIZE(DSP_RX_FIFOSIZE)) rx_fifo_cascade - (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + (.clk(dsp_clk), .reset(dsp_rst), .clear(clear_rx), .datain(rx1_data), .src_rdy_i(rx1_src_rdy), .dst_rdy_o(rx1_dst_rdy), .dataout({wr1_flags,wr1_dat}), .src_rdy_o(wr1_ready_i), .dst_rdy_i(wr1_ready_o)); @@ -662,23 +660,17 @@ module u2_core wire [35:0] tx_data; wire tx_src_rdy, tx_dst_rdy; wire [31:0] debug_vt; + wire clear_tx; - // FIFO cascade draws from buffer pool, feeds vita tx deframer -/* -----\/----- EXCLUDED -----\/----- - - fifo_cascade #(.WIDTH(36), .SIZE(DSP_TX_FIFOSIZE)) tx_fifo_cascade - (.clk(dsp_clk), .reset(dsp_rst), .clear(0), - .datain({rd1_flags,rd1_dat}), .src_rdy_i(rd1_ready_o), .dst_rdy_o(rd1_ready_i), - .dataout(tx_data), .src_rdy_o(tx_src_rdy), .dst_rdy_i(tx_dst_rdy) ); - -----/\----- EXCLUDED -----/\----- */ + setting_reg #(.my_addr(SR_TX_CTRL+1)) sr_clear_tx + (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(),.changed(clear_tx)); ext_fifo #(.EXT_WIDTH(18),.INT_WIDTH(36),.RAM_DEPTH(19),.FIFO_DEPTH(19)) ext_fifo_i1 - ( - .int_clk(dsp_clk), + (.int_clk(dsp_clk), .ext_clk(clk_to_mac), -// .ext_clk(wb_clk), - .rst(dsp_rst), + .rst(dsp_rst | clear_tx), .RAM_D_pi(RAM_D_pi), .RAM_D_po(RAM_D_po), .RAM_D_poe(RAM_D_poe), @@ -688,17 +680,14 @@ module u2_core .RAM_LDn(RAM_LDn), .RAM_OEn(RAM_OEn), .RAM_CE1n(RAM_CE1n), -// .datain({rd1_flags,rd1_dat}), .datain({rd1_flags[3:2],rd1_dat[31:16],rd1_flags[1:0],rd1_dat[15:0]}), - .src_rdy_i(rd1_ready_o), // WRITE - .dst_rdy_o(rd1_ready_i), // not FULL -// .dataout(tx_data), + .src_rdy_i(rd1_ready_o), + .dst_rdy_o(rd1_ready_i), .dataout({tx_data[35:34],tx_data[31:16],tx_data[33:32],tx_data[15:0]}), - .src_rdy_o(tx_src_rdy), // not EMPTY + .src_rdy_o(tx_src_rdy), .dst_rdy_i(tx_dst_rdy), .debug(debug_extfifo), - .debug2(debug_extfifo2) - ); + .debug2(debug_extfifo2) ); vita_tx_chain #(.BASE_CTRL(SR_TX_CTRL), .BASE_DSP(SR_TX_DSP), .REPORT_ERROR(1), .DO_FLOW_CONTROL(1), @@ -713,8 +702,6 @@ module u2_core .underrun(underrun), .run(run_tx), .debug(debug_vt)); - assign dsp_rst = wb_rst; - // /////////////////////////////////////////////////////////////////////////////////// // SERDES @@ -728,63 +715,7 @@ module u2_core .rx_occupied(ser_rx_occ),.rx_full(ser_rx_full),.rx_empty(ser_rx_empty), .serdes_link_up(serdes_link_up),.debug0(debug_serdes0), .debug1(debug_serdes1) ); - // /////////////////////////////////////////////////////////////////////////////////// - // External RAM Interface - - /* - localparam PAGE_SIZE = 10; // PAGE SIZE is in bytes, 10 = 1024 bytes - - wire [15:0] bus2ram, ram2bus; - wire [15:0] bridge_adr; - wire [1:0] bridge_sel; - wire bridge_stb, bridge_cyc, bridge_we, bridge_ack; - - wire [19:0] page; - wire [19:0] wb_ram_adr = {page[19:PAGE_SIZE],bridge_adr[PAGE_SIZE-1:0]}; - setting_reg #(.my_addr(6),.width(20)) sr_page (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), - .in(set_data),.out(page),.changed()); - - wb_bridge_16_32 bridge - (.wb_clk(wb_clk),.wb_rst(wb_rst), - .A_cyc_i(se_cyc),.A_stb_i(se_stb),.A_we_i(se_we),.A_sel_i(se_sel), - .A_adr_i(se_adr),.A_dat_i(se_dat_o),.A_dat_o(se_dat_i),.A_ack_o(se_ack), - .B_cyc_o(bridge_cyc),.B_stb_o(bridge_stb),.B_we_o(bridge_we),.B_sel_o(bridge_sel), - .B_adr_o(bridge_adr),.B_dat_o(bus2ram),.B_dat_i(ram2bus),.B_ack_i(bridge_ack)); - - wb_zbt16_b wb_zbt16_b - (.clk(wb_clk),.rst(wb_rst), - .wb_adr_i(wb_ram_adr),.wb_dat_i(bus2ram),.wb_dat_o(ram2bus),.wb_sel_i(bridge_sel), - .wb_cyc_i(bridge_cyc),.wb_stb_i(bridge_stb),.wb_ack_o(bridge_ack),.wb_we_i(bridge_we), - .sram_clk(RAM_CLK),.sram_a(RAM_A),.sram_d(RAM_D[15:0]),.sram_we(RAM_WEn), - .sram_bw(),.sram_adv(RAM_LDn),.sram_ce(RAM_CENn),.sram_oe(RAM_OEn), - .sram_mode(),.sram_zz() ); - - assign RAM_CE1n = 0; - assign RAM_D[17:16] = 2'bzz; -/* -----\/----- EXCLUDED -----\/----- - *-/ - - test_sram_if test_sram_if_i1 - ( - // .clk(wb_clk), - .clk(clk_to_mac), - .rst(wb_rst), - .RAM_D_pi(RAM_D_pi), - .RAM_D_po(RAM_D_po), - .RAM_D_poe(RAM_D_poe), - .RAM_A(RAM_A), - .RAM_WEn(RAM_WEn), - .RAM_CENn(RAM_CENn), - .RAM_LDn(RAM_LDn), - .RAM_OEn(RAM_OEn), - .RAM_CE1n(RAM_CE1n), - .correct() - ); - -----/\----- EXCLUDED -----/\----- */ - - //assign RAM_CLK = wb_clk; - //assign RAM_CLK = clk_to_mac; - + assign RAM_CLK = clk_to_mac; // ///////////////////////////////////////////////////////////////////////// // VITA Timing @@ -802,140 +733,3 @@ module u2_core assign debug_gpio_1 = 32'd0; endmodule // u2_core - -/* - // FIFO Level Debugging - reg [31:0] host_to_dsp_fifo,dsp_to_host_fifo,eth_mac_debug,serdes_to_dsp_fifo,dsp_to_serdes_fifo; - - always @(posedge dsp_clk) - serdes_to_dsp_fifo <= { {ser_rx_full,ser_rx_empty,ser_rx_occ[13:0]}, - {dsp_tx_full,dsp_tx_empty,dsp_tx_occ[13:0]} }; - - always @(posedge dsp_clk) - dsp_to_serdes_fifo <= { {ser_tx_full,ser_tx_empty,ser_tx_occ[13:0]}, - {dsp_rx_full,dsp_rx_empty,dsp_rx_occ[13:0]} }; - - always @(posedge dsp_clk) - host_to_dsp_fifo <= { {eth_rx_full,eth_rx_empty,eth_rx_occ[13:0]}, - {dsp_tx_full,dsp_tx_empty,dsp_tx_occ[13:0]} }; - - always @(posedge dsp_clk) - dsp_to_host_fifo <= { {eth_tx_full,eth_tx_empty,eth_tx_occ[13:0]}, - {dsp_rx_full,dsp_rx_empty,dsp_rx_occ[13:0]} }; - - always @(posedge dsp_clk) - eth_mac_debug <= { { 6'd0, GMII_TX_EN, GMII_RX_DV, debug_mac0[7:0]}, - {eth_rx_full2, eth_rx_empty2, eth_rx_occ2[13:0]} }; - - assign debug_clk[0] = GMII_RX_CLK; // wb_clk; - assign debug_clk[1] = dsp_clk; -*/ -/* - - wire mdio_cpy = MDIO; - assign debug = { { 1'b0, s6_stb, s6_ack, s6_we, s6_sel[3:0] }, - { s6_adr[15:8] }, - { s6_adr[7:0] }, - { 6'd0, mdio_cpy, MDC } }; - - assign debug = { { GMII_TXD }, - { 5'd0, GMII_TX_EN, GMII_TX_ER, GMII_GTX_CLK }, - { wr2_flags, rd2_flags }, - { 4'd0, wr2_ready_i, wr2_ready_o, rd2_ready_i, rd2_ready_o } }; - assign debug = { { GMII_RXD }, - { 5'd0, GMII_RX_DV, GMII_RX_ER, GMII_RX_CLK }, - { wr2_flags, rd2_flags }, - { GMII_TX_EN,3'd0, wr2_ready_i, wr2_ready_o, rd2_ready_i, rd2_ready_o } }; - -// assign debug = debug_udp; - // assign debug = vrc_debug; -/* - assign debug_gpio_0 = { {pps_in, pps_int, 2'd0, vita_state}, - {2'd0, rx_dst_rdy, rx_src_rdy, rx_data[99:96]}, - {run_rx_d1, run_rx, strobe_rx, overrun, wr1_flags[3:0]} , - {wr1_ready_i, wr1_ready_o, rx1_src_rdy, rx1_dst_rdy, rx1_data[35:32]}}; -*/ -// assign debug_gpio_1 = {vita_time[63:32] }; -/* - assign debug_gpio_1 = { { tx_f19_data[15:8] }, - { tx_f19_data[7:0] }, - { 3'd0, tx_f19_src_rdy, tx_f19_dst_rdy, tx_f19_data[18:16] }, - { 2'b0, rd2_ready_i, rd2_ready_o, rd2_flags } }; - */ - -// wire debug_mux; -// setting_reg #(.my_addr(5)) sr_debug (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), -// .in(set_data),.out(debug_mux),.changed()); - -//assign debug = debug_mux ? host_to_dsp_fifo : dsp_to_host_fifo; -//assign debug = debug_mux ? serdes_to_dsp_fifo : dsp_to_serdes_fifo; - -//assign debug = {{strobe_rx,/*adc_ovf_a*/ 1'b0,adc_a}, -// {run_rx,/*adc_ovf_b*/ 1'b0,adc_b}}; - -//assign debug = debug_tx_dsp; -//assign debug = debug_serdes0; - -//assign debug_gpio_0 = 0; //debug_serdes0; -//assign debug_gpio_1 = 0; //debug_serdes1; - -// assign debug={{3'b0, wb_clk, wb_rst, dsp_rst, por, config_success}, -// {8'b0}, -// {3'b0,ram_loader_ack, ram_loader_stb, ram_loader_we,ram_loader_rst,ram_loader_done }, -// {cpld_start,cpld_mode,cpld_done,cpld_din,cpld_clk,cpld_detached,cpld_misc,cpld_init_b} }; - -//assign debug = {dac_a,dac_b}; - -/* - assign debug = {{ram_loader_done, takeover, 6'd0}, - {1'b0, cpld_start_int, cpld_mode_int, cpld_done_int, sd_clk, sd_csn, sd_miso, sd_mosi}, - {8'd0}, - {cpld_start, cpld_mode, cpld_done, cpld_din, cpld_misc, cpld_detached, cpld_clk, cpld_init_b}}; */ - -/*assign debug = host_to_dsp_fifo; - assign debug_gpio_0 = eth_mac_debug; - assign debug_gpio_1 = 0; - */ -// Assign various commonly used debug buses. -/* - wire [31:0] debug_rx_1 = {uart_tx_o,GMII_TX_EN,strobe_rx,overrun,proc_int,buffer_int,timer_int,GMII_RX_DV, - irq[7:0], - GMII_RXD, - GMII_TXD}; - - wire [31:0] debug_rx_2 = { 5'd0, s8_we, s8_stb, s8_ack, debug_rx[23:0] }; - - wire [31:0] debug_time = {uart_tx_o, 7'b0, - irq[7:0], - 6'b0, GMII_RX_DV, GMII_TX_EN, - 4'b0, exp_pps_in, exp_pps_out, pps_in, pps_int}; - - wire [31:0] debug_irq = {uart_tx_o, iwb_adr, iwb_ack, - irq[7:0], - proc_int, 7'b0 }; - - wire [31:0] debug_eth = - {{uart_tx_o,proc_int,underrun,buffer_int,wr2_ready,wr2_error,wr2_done,wr2_write}, - {8'd0}, - {8'd0}, - {GMII_TX_EN,GMII_RX_DV,Rx_mac_empty,Rx_mac_rd,Rx_mac_err,Rx_mac_sop,Rx_mac_eop,wr2_full} }; - - assign debug_serdes0 = { { rd0_dat[7:0] }, - { ser_tx_clk, ser_tkmsb, ser_tklsb, rd0_sop, rd0_eop, rd0_read, rd0_error, rd0_done }, - { ser_t[15:8] }, - { ser_t[7:0] } }; - - assign debug_serdes1 = { {1'b0,proc_int,underrun,buffer_int,wr0_ready,wr0_error,wr0_done,wr0_write}, - { 1'b0, ser_rx_clk, ser_rkmsb, ser_rklsb, ser_enable, ser_prbsen, ser_loopen, ser_rx_en }, - { ser_r[15:8] }, - { ser_r[7:0] } }; - - assign debug_gpio_1 = {uart_tx_o,7'd0, - 3'd0,rd1_sop,rd1_eop,rd1_read,rd1_done,rd1_error, - debug_txc[15:0]}; - assign debug_gpio_1 = debug_rx; - assign debug_gpio_1 = debug_serdes1; - assign debug_gpio_1 = debug_eth; - - */ - diff --git a/fpga/usrp2/top/u2_rev3/u2_rev3.ucf b/fpga/usrp2/top/u2_rev3/u2_rev3.ucf index deaeecb53..6e0caedd5 100644 --- a/fpga/usrp2/top/u2_rev3/u2_rev3.ucf +++ b/fpga/usrp2/top/u2_rev3/u2_rev3.ucf @@ -74,49 +74,49 @@ NET "MDC" LOC = "V18" ; NET "PHY_INTn" LOC = "AB13" ; NET "PHY_RESETn" LOC = "AA19" ; NET "PHY_CLK" LOC = "V15" ; -NET "RAM_D[0]" LOC = "N20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[1]" LOC = "N21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[2]" LOC = "N22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[3]" LOC = "M17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[4]" LOC = "M18" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[5]" LOC = "M19" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[6]" LOC = "M20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[7]" LOC = "M21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[8]" LOC = "M22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[9]" LOC = "Y22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[10]" LOC = "Y21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[11]" LOC = "Y20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[12]" LOC = "Y19" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[13]" LOC = "W22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[14]" LOC = "W21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[15]" LOC = "W20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[16]" LOC = "W19" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_D[17]" LOC = "V22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[0]" LOC = "U21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[1]" LOC = "T19" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[2]" LOC = "V21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[3]" LOC = "V20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[4]" LOC = "T20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[5]" LOC = "T21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[6]" LOC = "T22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[7]" LOC = "T18" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[8]" LOC = "R18" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[9]" LOC = "P19" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[10]" LOC = "P21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[11]" LOC = "P22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[12]" LOC = "N19" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[13]" LOC = "N17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[14]" LOC = "N18" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[15]" LOC = "T17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[16]" LOC = "U19" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[17]" LOC = "U18" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_A[18]" LOC = "V19" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_CE1n" LOC = "U20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_CENn" LOC = "P18" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_CLK" LOC = "P17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_WEn" LOC = "R22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_OEn" LOC = "R21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; -NET "RAM_LDn" LOC = "R19" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = SLOW ; +NET "RAM_D[0]" LOC = "N20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[1]" LOC = "N21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[2]" LOC = "N22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[3]" LOC = "M17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[4]" LOC = "M18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[5]" LOC = "M19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[6]" LOC = "M20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[7]" LOC = "M21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[8]" LOC = "M22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[9]" LOC = "Y22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[10]" LOC = "Y21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[11]" LOC = "Y20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[12]" LOC = "Y19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[13]" LOC = "W22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[14]" LOC = "W21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[15]" LOC = "W20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[16]" LOC = "W19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_D[17]" LOC = "V22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[0]" LOC = "U21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[1]" LOC = "T19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[2]" LOC = "V21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[3]" LOC = "V20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[4]" LOC = "T20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[5]" LOC = "T21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[6]" LOC = "T22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[7]" LOC = "T18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[8]" LOC = "R18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[9]" LOC = "P19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[10]" LOC = "P21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[11]" LOC = "P22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[12]" LOC = "N19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[13]" LOC = "N17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[14]" LOC = "N18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[15]" LOC = "T17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[16]" LOC = "U19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[17]" LOC = "U18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_A[18]" LOC = "V19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_CE1n" LOC = "U20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_CENn" LOC = "P18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_CLK" LOC = "P17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_WEn" LOC = "R22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_OEn" LOC = "R21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; +NET "RAM_LDn" LOC = "R19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_enable" LOC = "W11" ; NET "ser_prbsen" LOC = "AA3" ; NET "ser_loopen" LOC = "Y4" ; diff --git a/fpga/usrp2/top/u2plus/.gitignore b/fpga/usrp2/top/u2plus/.gitignore new file mode 100644 index 000000000..1b2211df0 --- /dev/null +++ b/fpga/usrp2/top/u2plus/.gitignore @@ -0,0 +1 @@ +build* diff --git a/fpga/usrp2/top/u2plus/Makefile b/fpga/usrp2/top/u2plus/Makefile new file mode 100644 index 000000000..c38bd3ec1 --- /dev/null +++ b/fpga/usrp2/top/u2plus/Makefile @@ -0,0 +1,99 @@ +# +# Copyright 2008 Ettus Research LLC +# + +################################################## +# Project Setup +################################################## +TOP_MODULE = u2plus +BUILD_DIR = $(abspath build$(ISE)) + +################################################## +# Include other makefiles +################################################## + +include ../Makefile.common +include ../../fifo/Makefile.srcs +include ../../control_lib/Makefile.srcs +include ../../sdr_lib/Makefile.srcs +include ../../serdes/Makefile.srcs +include ../../simple_gemac/Makefile.srcs +include ../../timing/Makefile.srcs +include ../../opencores/Makefile.srcs +include ../../vrt/Makefile.srcs +include ../../udp/Makefile.srcs +include ../../coregen/Makefile.srcs +include ../../extram/Makefile.srcs +include ../../extramfifo/Makefile.srcs + + +################################################## +# Project Properties +################################################## +export PROJECT_PROPERTIES := \ +family "Spartan-3A DSP" \ +device xc3sd3400a \ +package fg676 \ +speed -5 \ +top_level_module_type "HDL" \ +synthesis_tool "XST (VHDL/Verilog)" \ +simulator "ISE Simulator (VHDL/Verilog)" \ +"Preferred Language" "Verilog" \ +"Enable Message Filtering" FALSE \ +"Display Incremental Messages" FALSE + +################################################## +# Sources +################################################## +TOP_SRCS = \ +u2plus_core.v \ +u2plus.v \ +u2plus.ucf + +SOURCES = $(abspath $(TOP_SRCS)) $(FIFO_SRCS) \ +$(CONTROL_LIB_SRCS) $(SDR_LIB_SRCS) $(SERDES_SRCS) \ +$(SIMPLE_GEMAC_SRCS) $(TIMING_SRCS) $(OPENCORES_SRCS) \ +$(VRT_SRCS) $(UDP_SRCS) $(COREGEN_SRCS) $(EXTRAM_SRCS) + +################################################## +# Process Properties +################################################## +SYNTHESIZE_PROPERTIES = \ +"Number of Clock Buffers" 8 \ +"Pack I/O Registers into IOBs" Yes \ +"Optimization Effort" High \ +"Optimize Instantiated Primitives" TRUE \ +"Register Balancing" Yes \ +"Use Clock Enable" Auto \ +"Use Synchronous Reset" Auto \ +"Use Synchronous Set" Auto + +TRANSLATE_PROPERTIES = \ +"Macro Search Path" "$(shell pwd)/../../coregen/" + +MAP_PROPERTIES = \ +"Allow Logic Optimization Across Hierarchy" TRUE \ +"Map to Input Functions" 4 \ +"Optimization Strategy (Cover Mode)" Speed \ +"Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ +"Perform Timing-Driven Packing and Placement" TRUE \ +"Map Effort Level" High \ +"Extra Effort" Normal \ +"Combinatorial Logic Optimization" TRUE \ +"Register Duplication" TRUE + +PLACE_ROUTE_PROPERTIES = \ +"Place & Route Effort Level (Overall)" High + +STATIC_TIMING_PROPERTIES = \ +"Number of Paths in Error/Verbose Report" 10 \ +"Report Type" "Error Report" + +GEN_PROG_FILE_PROPERTIES = \ +"Configuration Rate" 6 \ +"Create Binary Configuration File" TRUE \ +"Done (Output Events)" 5 \ +"Enable Bitstream Compression" TRUE \ +"Enable Outputs (Output Events)" 6 + +SIM_MODEL_PROPERTIES = "" diff --git a/fpga/usrp2/top/u2plus/bootloader.rmi b/fpga/usrp2/top/u2plus/bootloader.rmi new file mode 100644 index 000000000..7c15699db --- /dev/null +++ b/fpga/usrp2/top/u2plus/bootloader.rmi @@ -0,0 +1,245 @@ +defparam bootram.RAM0.INIT_00=256'h00000000_00000000_00000000_b80801c0_00000000_b808175c_00000000_b8080050; +defparam bootram.RAM0.INIT_01=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_b8081764; +defparam bootram.RAM0.INIT_02=256'h3020ffe0_b0000000_30401e70_31a01e98_00000000_00000000_00000000_00000000; +defparam bootram.RAM0.INIT_03=256'h3021ffe4_e060f800_b0000000_b8000000_30a30000_b9f40668_80000000_b9f400cc; +defparam bootram.RAM0.INIT_04=256'he8830000_e8601e78_80000000_99fc2000_f8601e78_b8000044_bc030014_f9e10000; +defparam bootram.RAM0.INIT_05=256'h80000000_99fc1800_30a01e8c_bc030010_30600000_b0000000_30630004_be24ffec; +defparam bootram.RAM0.INIT_06=256'h30600000_b0000000_3021001c_b60f0008_e9e10000_f060f800_b0000000_30600001; +defparam bootram.RAM0.INIT_07=256'h80000000_99fc1800_bc03000c_30c0f804_b0000000_30a01e8c_f9e10000_3021ffe4; +defparam bootram.RAM0.INIT_08=256'h80000000_99fc2000_bc04000c_30a01e90_bc030014_30800000_b0000000_e8601e90; +defparam bootram.RAM0.INIT_09=256'h06463800_20e01e98_20c01e98_f9e10000_2021ffec_3021001c_b60f0008_e9e10000; +defparam bootram.RAM0.INIT_0A=256'hb0000000_20c0f800_b0000000_bc92fff4_06463800_20c60004_f8060000_bc720014; +defparam bootram.RAM0.INIT_0B=256'hb9f415f8_bc92fff4_06463800_20c60004_f8060000_bc720014_06463800_20e0f82c; +defparam bootram.RAM0.INIT_0C=256'h32630000_20a00000_b9f401c8_20e00000_20c00000_80000000_b9f41778_80000000; +defparam bootram.RAM0.INIT_0D=256'h20210014_b60f0008_30730000_c9e10000_80000000_b9f415c4_80000000_b9f41780; +defparam bootram.RAM0.INIT_0E=256'he9e10000_f9610004_fa410010_95608001_fa21000c_f9610008_f9e10000_3021ffec; +defparam bootram.RAM0.INIT_0F=256'hbc050018_30210014_b62e0000_ea410010_ea21000c_e9610008_940bc001_e9610004; +defparam bootram.RAM0.INIT_10=256'h3021ff2c_80000000_b60f0008_bc32fff4_16432800_30630001_80000000_10600000; +defparam bootram.RAM0.INIT_11=256'hb9f4062c_32c1001c_3261004c_f8610028_f9e10000_fac100d0_fa6100cc_3061002c; +defparam bootram.RAM0.INIT_12=256'h22407fff_e8610024_bc230038_30a01984_10b30000_b9f40da4_10d60000_10b30000; +defparam bootram.RAM0.INIT_13=256'h30a01984_bc120040_aa430001_30a0194c_e061001c_10a30000_be520034_16439003; +defparam bootram.RAM0.INIT_14=256'he8e10020_e8c10028_b800ffa8_80000000_b9f406c0_b800ffb4_80000000_b9f406cc; +defparam bootram.RAM0.INIT_15=256'h80000000_b9f40694_b800ff88_80000000_b9f406a0_30a0194c_80000000_b9f4155c; +defparam bootram.RAM0.INIT_16=256'hb800ff60_80000000_b9f40678_30a01950_80000000_b9f411e8_30a08000_b0000000; +defparam bootram.RAM0.INIT_17=256'hbe030020_30a00050_31000001_30e1001c_30c000f7_f9e10000_a46500ff_3021ffe0; +defparam bootram.RAM0.INIT_18=256'hb810ffe8_30210020_b60f0008_e9e10000_80000000_b9f40330_f081001c_3080005e; +defparam bootram.RAM0.INIT_19=256'h31000001_b9f40280_f9e10000_30e1001c_30c000f7_30a00050_3021ffe0_308000dc; +defparam bootram.RAM0.INIT_1A=256'h3021ffdc_30210020_b60f0008_6463001f_3063ffff_a863005e_e9e10000_e061001c; +defparam bootram.RAM0.INIT_1B=256'h30a0a120_b0000007_9403c001_ac640002_94808001_fac10020_fa61001c_f9e10000; +defparam bootram.RAM0.INIT_1C=256'hb9f40ea8_80000000_b9f4082c_f800200c_80000000_b9f4fe74_f860200c_306000ff; +defparam bootram.RAM0.INIT_1D=256'h80000000_b9f4ff6c_80000000_b9f4059c_30a01988_80000000_b9f409ec_80000000; +defparam bootram.RAM0.INIT_1E=256'h30a00000_b0000030_bc160100_bc130134_a6632000_e8603334_12c30000_be23017c; +defparam bootram.RAM0.INIT_1F=256'hb0000000_80000000_b9f40558_30a01b04_12c30000_be030068_80000000_b9f41180; +defparam bootram.RAM0.INIT_20=256'hb9f41094_30a08000_b0000000_30c07c00_b9f40e70_30a00000_b0000030_30e08000; +defparam bootram.RAM0.INIT_21=256'he9e10000_30600001_10a00000_b9f41244_80000000_b9f40524_30a01b30_80000000; +defparam bootram.RAM0.INIT_22=256'hb000003f_80000000_b9f404f8_30a01b6c_30210024_b60f0008_eac10020_ea61001c; +defparam bootram.RAM0.INIT_23=256'h80000000_b9f404d4_30a019f8_12630000_be230024_80000000_b9f410fc_30a00000; +defparam bootram.RAM0.INIT_24=256'h30a00000_b000003f_30e08000_b0000000_10730000_b810ffb4_80000000_b9f4fd9c; +defparam bootram.RAM0.INIT_25=256'hb9f40490_30a019bc_80000000_b9f41000_30a08000_b0000000_30c07c00_b9f40ddc; +defparam bootram.RAM0.INIT_26=256'h80000000_b9f40474_30a01a50_30600001_b810ff70_10b60000_b9f411b0_80000000; +defparam bootram.RAM0.INIT_27=256'h80000000_b9f40454_30a01ab4_bc230098_80000000_b9f41000_30a00000_b0000018; +defparam bootram.RAM0.INIT_28=256'h80000000_b9f41048_30a00000_b000003f_80000000_b9f40444_30a0199c_b800fed8; +defparam bootram.RAM0.INIT_29=256'hb9f4fda4_b800fe9c_80000000_b9f4fcec_80000000_b9f40424_30a019f8_bc230028; +defparam bootram.RAM0.INIT_2A=256'h30c07c00_b9f40d24_30a00000_b000003f_30e08000_b0000000_b800fe84_10a00000; +defparam bootram.RAM0.INIT_2B=256'hb9f410f8_80000000_b9f403d8_30a019bc_80000000_b9f40f48_30a08000_b0000000; +defparam bootram.RAM0.INIT_2C=256'hb9f4fc60_30a00001_b9f4fd4c_80000000_b9f403c0_30a01a7c_b800fe50_10b30000; +defparam bootram.RAM0.INIT_2D=256'hfa610020_3021ffd4_b800ff40_80000000_b9f410c8_30a00000_b0000018_30a07530; +defparam bootram.RAM0.INIT_2E=256'hfac10024_30e00001_30c1001c_12e70000_f0c1001c_fae10028_10b30000_a66500ff; +defparam bootram.RAM0.INIT_2F=256'h10b30000_10f60000_10d70000_10830000_be030030_12c80000_b9f40898_f9e10000; +defparam bootram.RAM0.INIT_30=256'h10640000_a8830001_6463001f_3063ffff_80000000_b9f407d0_30800001_be76001c; +defparam bootram.RAM0.INIT_31=256'hfac10024_3021ffcc_3021002c_b60f0008_eae10028_eac10024_ea610020_e9e10000; +defparam bootram.RAM0.INIT_32=256'hf9e10000_12c80000_12e70000_13250000_13060000_fb210030_fb01002c_fae10028; +defparam bootram.RAM0.INIT_33=256'h32d6ffff_e0770000_f301001c_30e00002_be76005c_30c1001c_10b90000_fa610020; +defparam bootram.RAM0.INIT_34=256'hbe33ffcc_32f70001_b9f4089c_30a0000a_12630000_33180001_b9f407f8_f061001d; +defparam bootram.RAM0.INIT_35=256'heb210030_eb01002c_eae10028_eac10024_ea610020_e9e10000_10730000_10b90000; +defparam bootram.RAM0.INIT_36=256'h80000000_b9f4f998_f9e10000_3021ffe4_30600001_b810ffe0_30210034_b60f0008; +defparam bootram.RAM0.INIT_37=256'h12660000_fb21002c_fb010028_fae10024_fa61001c_3021ffd0_80000000_b60f0008; +defparam bootram.RAM0.INIT_38=256'haa43ffff_12c00000_b810001c_f9e10000_fac10020_13260000_12e70000_13050000; +defparam bootram.RAM0.INIT_39=256'h10960000_90630060_10b80000_b9f405ec_32730001_bcb2002c_16572001_bc120030; +defparam bootram.RAM0.INIT_3A=256'he9e10000_10640000_f0130000_14999800_32d60001_be32ffd4_aa43000a_f0730000; +defparam bootram.RAM0.INIT_3B=256'h3021ffd0_30210030_b60f0008_eb21002c_eb010028_eae10024_eac10020_ea61001c; +defparam bootram.RAM0.INIT_3C=256'h13260000_12e70000_13050000_12660000_fb21002c_fb010028_fae10024_fa61001c; +defparam bootram.RAM0.INIT_3D=256'hb9f4051c_32730001_bcb2002c_16572001_12c00000_b8100014_f9e10000_fac10020; +defparam bootram.RAM0.INIT_3E=256'h14999800_32d60001_be32ffdc_aa43000a_f0730000_10960000_90630060_10b80000; +defparam bootram.RAM0.INIT_3F=256'heb21002c_eb010028_eae10024_eac10020_ea61001c_e9e10000_10640000_f0130000; +defparam bootram.RAM1.INIT_00=256'h12e60000_12c50000_fae10024_fac10020_fa61001c_3021ffd8_30210030_b60f0008; +defparam bootram.RAM1.INIT_01=256'hbe32ffec_aa43000a_f0730000_90630060_10b60000_b9f404b0_12660000_f9e10000; +defparam bootram.RAM1.INIT_02=256'heae10024_eac10020_ea61001c_e9e10000_10770000_f0130000_3273ffff_32730001; +defparam bootram.RAM1.INIT_03=256'he9e10000_10a00000_b9f4ff94_f9e10000_3021ffe4_10c50000_30210028_b60f0008; +defparam bootram.RAM1.INIT_04=256'hb60f0008_e9e10000_80000000_b9f40448_f9e10000_3021ffe4_3021001c_b60f0008; +defparam bootram.RAM1.INIT_05=256'h3021001c_b60f0008_e9e10000_10a00000_b9f4ffdc_f9e10000_3021ffe4_3021001c; +defparam bootram.RAM1.INIT_06=256'hbe060024_90c30060_12660000_e0660000_f9e10000_fac10020_fa61001c_3021ffdc; +defparam bootram.RAM1.INIT_07=256'h10b60000_be26fff0_90c30060_e0730000_32730001_b9f40324_10b60000_12c50000; +defparam bootram.RAM1.INIT_08=256'hfac1001c_3021ffe0_30210024_b60f0008_10600000_eac10020_ea61001c_e9e10000; +defparam bootram.RAM1.INIT_09=256'heac1001c_e9e10000_30c0000a_b9f402dc_10b60000_12c50000_b9f4ff9c_f9e10000; +defparam bootram.RAM1.INIT_0A=256'h10a00000_b9f4ffc0_f9e10000_3021ffe4_10c50000_30210020_b60f0008_10600000; +defparam bootram.RAM1.INIT_0B=256'h10a00000_b9f4ff48_f9e10000_3021ffe4_10c50000_3021001c_b60f0008_e9e10000; +defparam bootram.RAM1.INIT_0C=256'he9e10000_30c0000a_b9f40278_f9e10000_3021ffe4_3021001c_b60f0008_e9e10000; +defparam bootram.RAM1.INIT_0D=256'hb9f40250_f9e10000_10a00000_12c50000_fac1001c_3021ffe0_3021001c_b60f0008; +defparam bootram.RAM1.INIT_0E=256'hfac1001c_3021ffe0_30210020_b60f0008_eac1001c_e9e10000_10760000_10d60000; +defparam bootram.RAM1.INIT_0F=256'h30210020_b60f0008_eac1001c_e9e10000_10760000_12c60000_b9f40228_f9e10000; +defparam bootram.RAM1.INIT_10=256'h94e08001_3021001c_b60f0008_e9e10000_80000000_b9f401b8_f9e10000_3021ffe4; +defparam bootram.RAM1.INIT_11=256'h80633000_84632000_84c62800_a866ffff_e880f81c_b0000000_9404c001_ac870002; +defparam bootram.RAM1.INIT_12=256'h9404c001_80843800_ac840002_94808001_a4e70002_f860f81c_b0000000_f860200c; +defparam bootram.RAM1.INIT_13=256'h88a52000_e880f81c_b0000000_9406c001_acc30002_94608001_80000000_b60f0008; +defparam bootram.RAM1.INIT_14=256'h9404c001_80841800_ac840002_94808001_a4630002_f8a0f81c_b0000000_f8a0200c; +defparam bootram.RAM1.INIT_15=256'ha866ffff_e880f820_b0000000_9404c001_ac870002_94e08001_80000000_b60f0008; +defparam bootram.RAM1.INIT_16=256'h94808001_a4e70002_f860f820_b0000000_f8602020_80633000_84632000_84c62800; +defparam bootram.RAM1.INIT_17=256'hfae10024_fa61001c_3021ffd4_80000000_b60f0008_9404c001_80843800_ac840002; +defparam bootram.RAM1.INIT_18=256'hbe060040_90c30060_13050000_12e60000_e0660000_fac10020_f9e10000_fb010028; +defparam bootram.RAM1.INIT_19=256'h10730000_be120028_16569800_32c70001_b8100014_32600001_be670038_12660000; +defparam bootram.RAM1.INIT_1A=256'h10730000_3273ffff_32730001_be26ffe4_90c30060_c0779800_10b80000_b9f400cc; +defparam bootram.RAM1.INIT_1B=256'h3021ffe4_3021002c_b60f0008_eb010028_eae10024_eac10020_ea61001c_e9e10000; +defparam bootram.RAM1.INIT_1C=256'hf0c51e7c_3021001c_b60f0008_e9e10000_30c0000a_b9f40084_f9e10000_10a00000; +defparam bootram.RAM1.INIT_1D=256'h80000000_b60f0008_f8653700_64a50405_e4661bac_10c63000_80000000_b60f0008; +defparam bootram.RAM1.INIT_1E=256'h90c60060_b9f4ffc4_10b30000_e0d31e7c_12600000_f9e10000_fa61001c_3021ffe0; +defparam bootram.RAM1.INIT_1F=256'he9e10000_bc32ffd8_aa530003_90c60060_b9f4ffbc_32730001_10b30000_e0d31ba8; +defparam bootram.RAM1.INIT_20=256'h12c60000_f9e10000_fac10020_fa61001c_3021ffdc_30210020_b60f0008_ea61001c; +defparam bootram.RAM1.INIT_21=256'hfac5000c_bc03fffc_e8650004_30a33700_64730405_12650000_be120030_aa46000a; +defparam bootram.RAM1.INIT_22=256'hbc32ffd0_aa430001_e0651e7c_30210024_b60f0008_eac10020_ea61001c_e9e10000; +defparam bootram.RAM1.INIT_23=256'hf9e10000_fac10020_fa61001c_3021ffdc_64730405_b810ffc8_30c0000d_b9f4ffac; +defparam bootram.RAM1.INIT_24=256'hbc040008_e8830004_30633700_64730405_12650000_be120030_aa46000a_12c60000; +defparam bootram.RAM1.INIT_25=256'haa430001_e0651e7c_30210024_b60f0008_eac10020_ea61001c_e9e10000_fac3000c; +defparam bootram.RAM1.INIT_26=256'h30a53700_64a50405_64730405_b810ffc4_80000000_b9f4ff44_30c0000d_be32ffd0; +defparam bootram.RAM1.INIT_27=256'he8650008_30a53700_64a50405_80000000_b60f0008_e8650010_bc03fffc_e8650008; +defparam bootram.RAM1.INIT_28=256'h64a50405_80000000_b60f0008_90630060_be24fff8_e8850008_e8650010_bc030014; +defparam bootram.RAM1.INIT_29=256'h32600001_be230040_e8760008_32c53700_fa61001c_f9e10000_fac10020_3021ffdc; +defparam bootram.RAM1.INIT_2A=256'hbe03ffe8_e8760008_30a00001_b9f401e0_3060ffff_be120034_aa53012d_b8000010; +defparam bootram.RAM1.INIT_2B=256'he9e10000_e8760010_3060ffff_be52000c_16539001_3240012b_3273ffff_32730001; +defparam bootram.RAM1.INIT_2C=256'h32400004_a463000f_e8603324_f8003108_30210024_b60f0008_eac10020_ea61001c; +defparam bootram.RAM1.INIT_2D=256'ha46300ff_64a30008_e4641bb8_10831800_30600004_10831800_beb20010_16439001; +defparam bootram.RAM1.INIT_2E=256'ha4a500ff_be070088_80000000_b60f0008_f8603108_30600080_f8a03104_f8603100; +defparam bootram.RAM1.INIT_2F=256'hf8803110_30800090_f860310c_a0630001_10652800_be23fff8_a4630040_e8603110; +defparam bootram.RAM1.INIT_30=256'haa470001_10800000_be230058_a4630080_e8603110_bc23fff8_a4630002_e8603110; +defparam bootram.RAM1.INIT_31=256'h30e7ffff_e860310c_bc23fff8_a4630002_e8603110_f8603110_30600020_be120038; +defparam bootram.RAM1.INIT_32=256'h30600068_b810ffd0_30600020_be32ffd8_aa470001_30c60001_be07001c_f0660000; +defparam bootram.RAM1.INIT_33=256'ha4a500ff_10640000_b60f0008_f8603110_30600040_10640000_b60f0008_30800001; +defparam bootram.RAM1.INIT_34=256'h306000d0_30600090_be27000c_f860310c_10652800_be23fff8_a4630040_e8603110; +defparam bootram.RAM1.INIT_35=256'h10800000_be23005c_a4630080_e8603110_bc23fff8_a4630002_e8603110_f8603110; +defparam bootram.RAM1.INIT_36=256'hf8803110_bc120030_aa470001_f860310c_30800010_e0660000_30800001_be070068; +defparam bootram.RAM1.INIT_37=256'hbe070028_30e7ffff_be23001c_a4630080_e8603110_bc23fff8_a4630002_e8603110; +defparam bootram.RAM1.INIT_38=256'hb60f0008_f8603110_30600040_10800000_30800050_b810ffd4_b800ffc4_30c60001; +defparam bootram.RAM1.INIT_39=256'hbc260054_a4c30000_b0008000_e8603324_10640000_b60f0008_30800001_10640000; +defparam bootram.RAM1.INIT_3A=256'h80000000_10800000_bc660030_e8c01e80_10660000_be650048_bc430054_e8601e80; +defparam bootram.RAM1.INIT_3B=256'h16443000_30840001_80000000_80000000_80000000_80000000_80000000_80000000; +defparam bootram.RAM1.INIT_3C=256'ha4630007_e8603324_80000000_b60f0008_bc32ffc8_16432800_30630001_bc32ffdc; +defparam bootram.RAM1.INIT_3D=256'h16459001_3240005a_3065ffa9_90a50060_b800ff9c_f8801e80_e4831bc4_10631800; +defparam bootram.RAM1.INIT_3E=256'h3085ffd0_be52000c_16459001_32400039_a46300ff_3065ffc9_a46300ff_be520024; +defparam bootram.RAM1.INIT_3F=256'hf9e10000_fb610034_13250000_fb21002c_3021ffc8_80000000_b60f0008_a46400ff; +defparam bootram.RAM2.INIT_00=256'haa43003a_13660000_e0790000_fb410030_fb010028_fae10024_fac10020_fa61001c; +defparam bootram.RAM2.INIT_01=256'heb010028_eae10024_eac10020_ea61001c_e9e10000_10650000_30a0ffff_be120034; +defparam bootram.RAM2.INIT_02=256'hc085c800_30a00001_e8c01e84_30210038_b60f0008_eb610034_eb410030_eb21002c; +defparam bootram.RAM2.INIT_03=256'hb810ffac_bc23ffe4_a4630044_c0662000_a4a300ff_be04001c_90840060_30650001; +defparam bootram.RAM2.INIT_04=256'h12761800_66c30404_b9f4ff1c_e0b90002_80000000_b9f4ff28_e0b90001_30a0fffe; +defparam bootram.RAM2.INIT_05=256'he0b90005_30a0fffd_be38ff74_93040060_e083000b_10791800_fa7b0004_10739800; +defparam bootram.RAM2.INIT_06=256'h66c3040c_b9f4fed8_e0b90004_66e30404_b9f4fee4_e0b90003_13530000_b9f4fef0; +defparam bootram.RAM2.INIT_07=256'he0b90007_fafb0008_12f7b000_12d61800_12d61800_b9f4fec8_64630408_e0b90006; +defparam bootram.RAM2.INIT_08=256'hbe130060_f07b0000_1063b000_66c30404_b9f4fea4_e0b90008_80000000_b9f4feb0; +defparam bootram.RAM2.INIT_09=256'hb9f4fe74_c0b6c800_a6d600ff_32d60009_12d8c000_ea7b000c_13580000_10f30000; +defparam bootram.RAM2.INIT_0A=256'he8fb0004_ea7b000c_d0789800_1063b800_66e30404_b9f4fe68_e0b60001_12d9b000; +defparam bootram.RAM2.INIT_0B=256'headb0008_a74300ff_be52ffb8_1647c003_107a1800_a70400ff_c073c000_30980001; +defparam bootram.RAM2.INIT_0C=256'h107a1800_12c7b000_10632000_e0b70009_12f9b800_64760008_12e73800_e09b0000; +defparam bootram.RAM2.INIT_0D=256'ha6d600ff_1063c000_16d60000_67030404_b9f4fe04_e0b7000a_12d61800_b9f4fe10; +defparam bootram.RAM2.INIT_0E=256'ha4630100_e8603b10_10a00000_b810fe58_30a0fffb_be32fe60_1643b000_a46300ff; +defparam bootram.RAM2.INIT_0F=256'ha4a500ff_80884800_a1292000_a508007f_a5290600_80000000_b60f0008_bc23fff8; +defparam bootram.RAM2.INIT_10=256'ha0840100_f8603b18_a46600ff_f8803b10_f8e03b00_bc23fff8_a4630100_e8603b10; +defparam bootram.RAM2.INIT_11=256'hb60f0008_e8603b00_bc23fff8_a4630100_e8603b10_10650000_be050018_f8803b10; +defparam bootram.RAM2.INIT_12=256'h31200400_31000008_10a00000_f9e10000_3021ffe4_10e60000_10c00000_80000000; +defparam bootram.RAM2.INIT_13=256'h3021ffc4_3021001c_b60f0008_e9e10000_80000000_b9f4ff84_f8603b14_30600001; +defparam bootram.RAM2.INIT_14=256'hb9f4ff3c_fae10034_13060000_f9e10000_fb010038_fa61002c_12c50000_fac10030; +defparam bootram.RAM2.INIT_15=256'hfac03b00_f8603b04_3060000b_66d60408_f8603b10_f8003b18_30600400_12670000; +defparam bootram.RAM2.INIT_16=256'h80000000_b9f4ff00_f8603b10_30600528_f8803b10_30800428_f8603b18_30600001; +defparam bootram.RAM2.INIT_17=256'hf8803b10_30800500_f8603b10_30600400_3261001c_12e00000_12d30000_be18009c; +defparam bootram.RAM2.INIT_18=256'he8803b04_f8610020_e8603b08_f881001c_14b7c000_e8803b0c_80000000_b9f4fed8; +defparam bootram.RAM2.INIT_19=256'h30a00010_10800000_beb20034_16459003_22400010_f8610028_e8603b00_f8810024; +defparam bootram.RAM2.INIT_1A=256'hbeb20020_1658b803_12f72800_bc32fff0_16442800_30840001_d0762000_c0732000; +defparam bootram.RAM2.INIT_1B=256'hf8003b18_12d62800_be52ff7c_1658b803_12f72800_bc25ffd8_b800ff8c_12d62800; +defparam bootram.RAM2.INIT_1C=256'hb0009f00_3021003c_b60f0008_eb010038_eae10034_eac10030_ea61002c_e9e10000; +defparam bootram.RAM2.INIT_1D=256'h31200400_b9f4fe34_f9e10000_31000020_30c00001_30a00001_3021ffe4_30e00000; +defparam bootram.RAM2.INIT_1E=256'h3021ffe4_e860f828_b0000000_3021001c_b60f0008_a463ffff_b00000ff_e9e10000; +defparam bootram.RAM2.INIT_1F=256'h64830008_80000000_b9f4ffa8_3021001c_b60f0008_e9e10000_bc030010_f9e10000; +defparam bootram.RAM2.INIT_20=256'h16439001_32400015_80000000_b9f40330_a46300ff_be120010_aa440020_a48400ff; +defparam bootram.RAM2.INIT_21=256'hb0000000_b800ffb0_f860f828_b0000000_bc52ffe4_16439001_32400018_bcb2fff0; +defparam bootram.RAM2.INIT_22=256'hb9f4ff40_3021001c_b60f0008_e9e10000_bc030010_f9e10000_3021ffe4_e860f824; +defparam bootram.RAM2.INIT_23=256'h80000000_b9f402c8_a4a300ff_be120010_aa440020_a48400ff_64830008_80000000; +defparam bootram.RAM2.INIT_24=256'hb0000000_e0651bbe_bc52ffe4_16459001_32400018_bcb2fff0_16459001_32400015; +defparam bootram.RAM2.INIT_25=256'h10c50000_12c00000_fac1001c_3021ffe0_b800ffa4_f860f824_b0000000_f8a0f828; +defparam bootram.RAM2.INIT_26=256'heac1001c_e9e10000_80000000_99fcb000_30e00024_b9f40334_f9e10000_10b60000; +defparam bootram.RAM2.INIT_27=256'hb810001c_30e1001c_b9f4fd88_f9e10000_30c00040_3021ffa4_30210020_b60f0008; +defparam bootram.RAM2.INIT_28=256'he063001c_10612800_10600000_be520044_16459001_3240003e_30a50001_10a00000; +defparam bootram.RAM2.INIT_29=256'haa440099_e083001c_10612800_30a50001_bc32ffd8_aa4300aa_bc12ffe0_aa4300ff; +defparam bootram.RAM2.INIT_2A=256'h3021005c_b60f0008_e9e10000_3021005c_b60f0008_e9e10000_30600001_be32ffc8; +defparam bootram.RAM2.INIT_2B=256'h10b60000_30c00006_b9f4fd08_f9e10000_10f60000_32c1001c_fac10028_3021ffd4; +defparam bootram.RAM2.INIT_2C=256'heac10028_e9e10000_a884ffff_80841800_14830000_30e00006_b9f401f8_30c01bd8; +defparam bootram.RAM2.INIT_2D=256'h65040403_64e40003_64a40007_64c40005_e0803a03_3021002c_b60f0008_6464001f; +defparam bootram.RAM2.INIT_2E=256'ha4a50008_80e73000_90a40041_a4e70004_80c62800_a4c60002_64640407_65240405; +defparam bootram.RAM2.INIT_2F=256'h81294000_a5290040_81082000_a5080020_80842800_a4840010_80a53800_10842000; +defparam bootram.RAM2.INIT_30=256'h64e50403_64c50003_64650007_64850005_a4a500ff_a46300ff_b60f0008_80634800; +defparam bootram.RAM2.INIT_31=256'ha4630008_80c62000_90650041_a4c60004_80841800_a4840002_65250407_65050405; +defparam bootram.RAM2.INIT_32=256'h81083800_a5080040_80e72800_a4e70020_80a51800_a4a50010_80633000_10a52800; +defparam bootram.RAM2.INIT_33=256'hb00000ff_fac1001c_3021ffe0_80000000_b60f0008_f9203a00_a52900ff_81294000; +defparam bootram.RAM2.INIT_34=256'h30a0ffaa_b9f4ff74_30a0ffff_b9f4ff7c_30a0ffff_b9f4ff84_f9e10000_a6c5ffff; +defparam bootram.RAM2.INIT_35=256'h30a00061_b9f4ff54_30a00032_b9f4ff5c_a2d60000_b0000b00_30a0ff99_b9f4ff6c; +defparam bootram.RAM2.INIT_36=256'h30a0ff81_b9f4ff34_30a00032_b9f4ff3c_10b60000_b9f4ff44_64b60008_b9f4ff4c; +defparam bootram.RAM2.INIT_37=256'h30a0ffa1_b9f4ff14_30a00030_b9f4ff1c_64b60010_b9f4ff24_30a0000b_b9f4ff2c; +defparam bootram.RAM2.INIT_38=256'h10a00000_b9f4fef4_30a00020_b9f4fefc_30a0000e_b9f4ff04_10a00000_b9f4ff0c; +defparam bootram.RAM2.INIT_39=256'h30210020_b60f0008_eac1001c_e9e10000_10a00000_b9f4fee4_30a00020_b9f4feec; +defparam bootram.RAM2.INIT_3A=256'hb6110000_30a0ffff_b9f4e91c_80000000_b9f4f220_f9e10000_3021ffe4_30a01be0; +defparam bootram.RAM2.INIT_3B=256'h22400003_80000000_b60f0008_80000000_b60f0008_80000000_b6910000_80000000; +defparam bootram.RAM2.INIT_3C=256'h16432000_e8660000_e8850000_bc230050_a4630003_80653000_beb2005c_16479003; +defparam bootram.RAM2.INIT_3D=256'h30e7ffff_30c60004_be52ffe0_16479003_22400003_30a50004_30e7fffc_bc320040; +defparam bootram.RAM2.INIT_3E=256'h30c60001_30a50001_be320020_16434000_e0660000_e1050000_bc120028_aa47ffff; +defparam bootram.RAM2.INIT_3F=256'h2240000f_14634000_b60f0008_10600000_b60f0008_bc32ffe0_aa47ffff_30e7ffff; +defparam bootram.RAM3.INIT_00=256'hbc070024_11050000_be030034_a4630003_80662800_10850000_beb20018_16479003; +defparam bootram.RAM3.INIT_01=256'h30c60001_be32fff0_16474000_31080001_f0680000_e0660000_10e72000_11040000; +defparam bootram.RAM3.INIT_02=256'he8860008_f8680004_e8660004_f8880000_30e7fff0_e8860000_10650000_b60f0008; +defparam bootram.RAM3.INIT_03=256'h31080010_be52ffd0_16479003_2240000f_f868000c_30c60010_e866000c_f8880008; +defparam bootram.RAM3.INIT_04=256'h22400003_d8682000_30e7fffc_c8662000_10800000_bcb2002c_16479003_22400003; +defparam bootram.RAM3.INIT_05=256'he860193c_10880000_b810ff68_11044000_10c43000_30840004_be52ffec_16479003; +defparam bootram.RAM3.INIT_06=256'h3273fffc_99fc1800_bc120018_aa43ffff_3260193c_f9e10000_fa61001c_3021ffe0; +defparam bootram.RAM3.INIT_07=256'h3021fff8_30210020_b60f0008_ea61001c_e9e10000_bc32fff0_aa43ffff_e8730000; +defparam bootram.RAM3.INIT_08=256'h30210008_b60f0008_c9e00800_80000000_b9f4ffb0_80000000_b9f4e7d4_d9e00800; +defparam bootram.RAM3.INIT_09=256'hffffffff_30210008_b60f0008_c9e00800_80000000_b9f4e74c_d9e00800_3021fff8; +defparam bootram.RAM3.INIT_0A=256'h696d6167_61696e20_523a206d_4552524f_4f4b0000_00000000_ffffffff_00000000; +defparam bootram.RAM3.INIT_0B=256'h64206d6f_206c6f61_49484558_20696e20_4261636b_65642120_7475726e_65207265; +defparam bootram.RAM3.INIT_0C=256'h53746172_720a0000_6f616465_6f6f746c_322b2062_55535250_4e4f4b00_64652e00; +defparam bootram.RAM3.INIT_0D=256'h4552524f_2e000000_6d6f6465_61666520_696e2073_50322b20_20555352_74696e67; +defparam bootram.RAM3.INIT_0E=256'h20546869_72616d21_70726f67_61696e20_6f6d206d_6e206672_65747572_523a2072; +defparam bootram.RAM3.INIT_0F=256'h523a206e_4552524f_6e210000_61707065_65722068_206e6576_6f756c64_73207368; +defparam bootram.RAM3.INIT_10=256'h626c652e_61696c61_65206176_696d6167_61726520_69726d77_66652066_6f207361; +defparam bootram.RAM3.INIT_11=256'h6c6f6164_20746f20_66726565_65656c20_6b2e2046_62726963_6d206120_20492061; +defparam bootram.RAM3.INIT_12=256'h2076616c_20666f72_6b696e67_43686563_2e000000_2052414d_5820746f_20494845; +defparam bootram.RAM3.INIT_13=256'h56616c69_2e2e2e00_6d616765_47412069_6e204650_6374696f_726f6475_69642070; +defparam bootram.RAM3.INIT_14=256'h642e2041_666f756e_61676520_4120696d_20465047_74696f6e_6f647563_64207072; +defparam bootram.RAM3.INIT_15=256'h2070726f_616c6964_4e6f2076_742e0000_20626f6f_6720746f_7074696e_7474656d; +defparam bootram.RAM3.INIT_16=256'h74656d70_2e0a4174_6f756e64_67652066_20696d61_46504741_696f6e20_64756374; +defparam bootram.RAM3.INIT_17=256'h77617265_6669726d_696f6e20_64756374_2070726f_6c6f6164_20746f20_74696e67; +defparam bootram.RAM3.INIT_18=256'h6520666f_6d776172_20666972_74696f6e_6f647563_64207072_56616c69_2e2e2e00; +defparam bootram.RAM3.INIT_19=256'h6e206672_65747572_523a2052_4552524f_2e2e2e00_64696e67_204c6f61_756e642e; +defparam bootram.RAM3.INIT_1A=256'h206e6576_6f756c64_73207368_20546869_72616d21_70726f67_61696e20_6f6d206d; +defparam bootram.RAM3.INIT_1B=256'h696f6e20_64756374_2070726f_616c6964_4e6f2076_6e210000_61707065_65722068; +defparam bootram.RAM3.INIT_1C=256'h6669726d_61666520_6e672073_54727969_6e642e20_20666f75_77617265_6669726d; +defparam bootram.RAM3.INIT_1D=256'h0018000f_ffff0031_01b200d9_05160364_14580a2c_05050400_2e2e2e00_77617265; +defparam bootram.RAM3.INIT_1E=256'hb8080000_b0000000_10101200_06820594_09c407d0_13880d05_00002710_000b0000; +defparam bootram.RAM3.INIT_1F=256'h20202020_28282820_20202828_20202020_00202020_00000000_6f72740a_0a0a6162; +defparam bootram.RAM3.INIT_20=256'h10040404_10101010_10101010_10101010_20881010_20202020_20202020_20202020; +defparam bootram.RAM3.INIT_21=256'h01010101_01010101_01010101_41414141_10104141_10101010_04040410_04040404; +defparam bootram.RAM3.INIT_22=256'h02020202_02020202_02020202_42424242_10104242_10101010_01010101_01010101; +defparam bootram.RAM3.INIT_23=256'h00000000_00000000_00000000_00000000_20000000_10101010_02020202_02020202; +defparam bootram.RAM3.INIT_24=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_25=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_26=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_27=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_28=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_29=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_2A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_2B=256'h28282020_20282828_20202020_20202020_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_2C=256'h10101010_10101010_10101010_88101010_20202020_20202020_20202020_20202020; +defparam bootram.RAM3.INIT_2D=256'h01010101_01010101_41414101_10414141_10101010_04041010_04040404_04040404; +defparam bootram.RAM3.INIT_2E=256'h02020202_02020202_42424202_10424242_10101010_01010110_01010101_01010101; +defparam bootram.RAM3.INIT_2F=256'h00000000_00000000_00000000_00000000_10101020_02020210_02020202_02020202; +defparam bootram.RAM3.INIT_30=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_31=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_32=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_33=256'h01010100_00001948_00000000_00000000_00000000_00000000_00000000_00000000; +defparam bootram.RAM3.INIT_34=256'h00000000_00000000_00000000_00000000_00000000_00000000_00001d70_ffffffff; diff --git a/fpga/usrp2/top/u2plus/capture_ddrlvds.v b/fpga/usrp2/top/u2plus/capture_ddrlvds.v new file mode 100644 index 000000000..b9f53ff8c --- /dev/null +++ b/fpga/usrp2/top/u2plus/capture_ddrlvds.v @@ -0,0 +1,39 @@ + + +module capture_ddrlvds + #(parameter WIDTH=7) + (input clk, + input ssclk_p, + input ssclk_n, + input [WIDTH-1:0] in_p, + input [WIDTH-1:0] in_n, + output reg [(2*WIDTH)-1:0] out); + + wire [WIDTH-1:0] ddr_dat; + wire ssclk_regional; + wire ssclk_io; + wire ssclk; + wire [(2*WIDTH)-1:0] out_pre1; + reg [(2*WIDTH)-1:0] out_pre2; + + IBUFGDS #(.IOSTANDARD("LVDS_25"),.DIFF_TERM("TRUE")) clkbuf (.O(ssclk), .I(ssclk_p), .IB(ssclk_n)); + + genvar i; + generate + for(i = 0; i < WIDTH; i = i + 1) + begin : gen_lvds_pins + IBUFDS #(.IOSTANDARD("LVDS_25"),.DIFF_TERM("TRUE")) ibufds + (.O(ddr_dat[i]), .I(in_p[i]), .IB(in_n[i]) ); + IDDR2 #(.DDR_ALIGNMENT("C1")) iddr2 + (.Q0(out_pre1[2*i]), .Q1(out_pre1[(2*i)+1]), .C0(ssclk), .C1(~ssclk), + .CE(1'b1), .D(ddr_dat[i]), .R(1'b0), .S(1'b0)); + end + endgenerate + + always @(negedge clk) + out_pre2 <= out_pre1; + + always @(posedge clk) + out <= out_pre2; + +endmodule // capture_ddrlvds diff --git a/fpga/usrp2/top/u2plus/u2plus.ucf b/fpga/usrp2/top/u2plus/u2plus.ucf index 091eb2005..25267a67e 100755 --- a/fpga/usrp2/top/u2plus/u2plus.ucf +++ b/fpga/usrp2/top/u2plus/u2plus.ucf @@ -1,157 +1,137 @@ -NET "DAC_LOCK" LOC = "P4" ; +## Main 100 MHz Clock +NET "CLK_FPGA_P" LOC = "AA13" ; +NET "CLK_FPGA_N" LOC = "Y13" ; + +## ADC NET "ADC_clkout_p" LOC = "P1" ; NET "ADC_clkout_n" LOC = "P2" ; -NET "io_rx<15>" LOC = "AD1" ; -NET "io_rx<14>" LOC = "AD2" ; -NET "io_rx<13>" LOC = "AC2" ; -NET "io_rx<12>" LOC = "AC3" ; -NET "io_rx<11>" LOC = "W7" ; -NET "io_rx<10>" LOC = "W6" ; -NET "io_rx<09>" LOC = "U9" ; -NET "io_rx<08>" LOC = "V8" ; -NET "io_rx<07>" LOC = "AB1" ; -NET "io_rx<06>" LOC = "AC1" ; -NET "io_rx<05>" LOC = "V7" ; -NET "io_rx<04>" LOC = "V6" ; -NET "io_rx<03>" LOC = "Y5" ; -NET "ADCB_2_3_p" LOC = "U7" ; -NET "ADCB_2_3_n" LOC = "U8" ; -NET "ADCB_0_1_p" LOC = "AA2" ; -NET "ADCB_0_1_n" LOC = "AA3" ; -NET "ADCA_12_13_p" LOC = "Y1" ; -NET "ADCA_12_13_n" LOC = "Y2" ; -NET "ADCA_10_11_p" LOC = "W3" ; -NET "ADCA_10_11_n" LOC = "W4" ; -NET "ADCA_8_9_p" LOC = "T7" ; -NET "ADCA_8_9_n" LOC = "U6" ; -NET "ADCA_6_7_p" LOC = "U5" ; -NET "ADCA_6_7_n" LOC = "V5" ; -NET "ADCA_4_5_p" LOC = "T10" ; -NET "ADCA_4_5_n" LOC = "T9" ; -NET "ADCA_2_3_p" LOC = "V1" ; -NET "ADCA_2_3_n" LOC = "V2" ; -NET "ADCA_0_1_p" LOC = "R8" ; -NET "ADCA_0_1_n" LOC = "R7" ; -NET "TX00_A" LOC = "P8" ; -NET "TX01_A" LOC = "P9" ; -NET "TX02_A" LOC = "R5" ; -NET "TX03_A" LOC = "R6" ; -NET "TX04_A" LOC = "P7" ; -NET "TX05_A" LOC = "P6" ; -NET "TX06_A" LOC = "T3" ; -NET "TX07_A" LOC = "T4" ; -NET "TX08_A" LOC = "R3" ; -NET "TX09_A" LOC = "R4" ; -NET "TX10_A" LOC = "R2" ; -NET "TX11_A" LOC = "N1" ; -NET "TX12_A" LOC = "N2" ; -NET "TX13_A" LOC = "N5" ; -NET "TX14_A" LOC = "N4" ; -NET "TX15_A" LOC = "M2" ; -NET "TX00_B" LOC = "M5" ; -NET "TX01_B" LOC = "M6" ; -NET "TX02_B" LOC = "M4" ; -NET "TX03_B" LOC = "M3" ; -NET "TX04_B" LOC = "M8" ; -NET "TX05_B" LOC = "M7" ; -NET "TX06_B" LOC = "L4" ; -NET "TX07_B" LOC = "L3" ; -NET "TX08_B" LOC = "K3" ; -NET "TX09_B" LOC = "K2" ; -NET "TX10_B" LOC = "K5" ; -NET "TX11_B" LOC = "K4" ; -NET "TX12_B" LOC = "M10" ; -NET "TX13_B" LOC = "M9" ; -NET "TX14_B" LOC = "J5" ; -NET "TX15_B" LOC = "J4" ; +NET "ADCA_12_p" LOC = "Y1" ; +NET "ADCA_12_n" LOC = "Y2" ; +NET "ADCA_10_p" LOC = "W3" ; +NET "ADCA_10_n" LOC = "W4" ; +NET "ADCA_8_p" LOC = "T7" ; +NET "ADCA_8_n" LOC = "U6" ; +NET "ADCA_6_p" LOC = "U5" ; +NET "ADCA_6_n" LOC = "V5" ; +NET "ADCA_4_p" LOC = "T10" ; +NET "ADCA_4_n" LOC = "T9" ; +NET "ADCA_2_p" LOC = "V1" ; +NET "ADCA_2_n" LOC = "V2" ; +NET "ADCA_0_p" LOC = "R8" ; +NET "ADCA_0_n" LOC = "R7" ; +NET "ADCB_2_p" LOC = "U7" ; +NET "ADCB_2_n" LOC = "U8" ; +NET "ADCB_0_p" LOC = "AA2" ; +NET "ADCB_0_n" LOC = "AA3" ; +NET "ADCB_4_p" LOC = "AE1" ; +NET "ADCB_4_n" LOC = "AE2" ; +NET "ADCB_6_p" LOC = "W1" ; +NET "ADCB_6_n" LOC = "W2" ; +NET "ADCB_8_p" LOC = "U3" ; +NET "ADCB_8_n" LOC = "V4" ; +NET "ADCB_10_p" LOC = "J1" ; +NET "ADCB_10_n" LOC = "K1" ; +NET "ADCB_12_p" LOC = "J3" ; +NET "ADCB_12_n" LOC = "J2" ; + +## DAC +NET "DAC_LOCK" LOC = "P4" ; +NET "DACA<0>" LOC = "P8" ; +NET "DACA<1>" LOC = "P9" ; +NET "DACA<2>" LOC = "R5" ; +NET "DACA<3>" LOC = "R6" ; +NET "DACA<4>" LOC = "P7" ; +NET "DACA<5>" LOC = "P6" ; +NET "DACA<6>" LOC = "T3" ; +NET "DACA<7>" LOC = "T4" ; +NET "DACA<8>" LOC = "R3" ; +NET "DACA<9>" LOC = "R4" ; +NET "DACA<10>" LOC = "R2" ; +NET "DACA<11>" LOC = "N1" ; +NET "DACA<12>" LOC = "N2" ; +NET "DACA<13>" LOC = "N5" ; +NET "DACA<14>" LOC = "N4" ; +NET "DACA<15>" LOC = "M2" ; +NET "DACB<0>" LOC = "M5" ; +NET "DACB<1>" LOC = "M6" ; +NET "DACB<2>" LOC = "M4" ; +NET "DACB<3>" LOC = "M3" ; +NET "DACB<4>" LOC = "M8" ; +NET "DACB<5>" LOC = "M7" ; +NET "DACB<6>" LOC = "L4" ; +NET "DACB<7>" LOC = "L3" ; +NET "DACB<8>" LOC = "K3" ; +NET "DACB<9>" LOC = "K2" ; +NET "DACB<10>" LOC = "K5" ; +NET "DACB<11>" LOC = "K4" ; +NET "DACB<12>" LOC = "M10" ; +NET "DACB<13>" LOC = "M9" ; +NET "DACB<14>" LOC = "J5" ; +NET "DACB<15>" LOC = "J4" ; + +## TX DB GPIO NET "io_tx<15>" LOC = "K6" ; NET "io_tx<14>" LOC = "L7" ; NET "io_tx<13>" LOC = "H2" ; NET "io_tx<12>" LOC = "H1" ; NET "io_tx<11>" LOC = "L10" ; NET "io_tx<10>" LOC = "L9" ; -NET "io_tx<09>" LOC = "G3" ; -NET "io_tx<08>" LOC = "F3" ; -NET "io_tx<07>" LOC = "K7" ; -NET "io_tx<06>" LOC = "J6" ; -NET "io_tx<05>" LOC = "E1" ; -NET "io_tx<04>" LOC = "F2" ; -NET "io_tx<03>" LOC = "J7" ; -NET "io_tx<02>" LOC = "H6" ; -NET "io_tx<01>" LOC = "F5" ; -NET "io_tx<00>" LOC = "G4" ; -NET "MOSI_RX_ADC" LOC = "E3" ; -NET "SCLK_RX_ADC" LOC = "F4" ; -NET "SEN_RX_ADC" LOC = "D3" ; -NET "SCLK_RX_DAC" LOC = "E4" ; -NET "SEN_RX_DAC" LOC = "K9" ; -NET "MOSI_RX_DAC" LOC = "K8" ; -NET "SCLK_RX_DB" LOC = "G6" ; -NET "MOSI_RX_DB" LOC = "H7" ; -NET "SEN_RX_DB" LOC = "B2" ; -NET "SCLK_ADC" LOC = "B1" ; -NET "MOSI_ADC" LOC = "J8" ; -NET "SEN_ADC" LOC = "J9" ; -NET "ADCB_4_5_p" LOC = "AE1" ; -NET "ADCB_4_5_n" LOC = "AE2" ; -NET "ADCB_6_7_p" LOC = "W1" ; -NET "ADCB_6_7_n" LOC = "W2" ; -NET "ADCB_8_9_p" LOC = "U3" ; -NET "ADCB_8_9_n" LOC = "V4" ; -NET "ADCB_10_11_p" LOC = "J1" ; -NET "ADCB_10_11_n" LOC = "K1" ; -NET "ADCB_12_13_p" LOC = "J3" ; -NET "ADCB_12_13_n" LOC = "J2" ; -NET "MISO_RX_DB" LOC = "H4" ; -NET "MISO_RX_ADC" LOC = "C1" ; -NET "MISO_TX_DB" LOC = "AA5" ; -NET "MISO_DAC" LOC = "Y3" ; -NET "MISO_TX_ADC" LOC = "G1" ; -NET "io_rx<02>" LOC = "R10" ; -NET "io_rx<01>" LOC = "R1" ; -NET "io_rx<00>" LOC = "M1" ; -NET "exp_user_out_p" LOC = "AF14" ; -NET "exp_user_out_n" LOC = "AE14" ; -NET "exp_time_out_p" LOC = "Y14" ; -NET "exp_time_out_n" LOC = "AA14" ; -NET "CLK_FPGA_P" LOC = "AA13" ; -NET "CLK_FPGA_N" LOC = "Y13" ; +NET "io_tx<9>" LOC = "G3" ; +NET "io_tx<8>" LOC = "F3" ; +NET "io_tx<7>" LOC = "K7" ; +NET "io_tx<6>" LOC = "J6" ; +NET "io_tx<5>" LOC = "E1" ; +NET "io_tx<4>" LOC = "F2" ; +NET "io_tx<3>" LOC = "J7" ; +NET "io_tx<2>" LOC = "H6" ; +NET "io_tx<1>" LOC = "F5" ; +NET "io_tx<0>" LOC = "G4" ; + +## RX DB GPIO +NET "io_rx<15>" LOC = "AD1" ; +NET "io_rx<14>" LOC = "AD2" ; +NET "io_rx<13>" LOC = "AC2" ; +NET "io_rx<12>" LOC = "AC3" ; +NET "io_rx<11>" LOC = "W7" ; +NET "io_rx<10>" LOC = "W6" ; +NET "io_rx<9>" LOC = "U9" ; +NET "io_rx<8>" LOC = "V8" ; +NET "io_rx<7>" LOC = "AB1" ; +NET "io_rx<6>" LOC = "AC1" ; +NET "io_rx<5>" LOC = "V7" ; +NET "io_rx<4>" LOC = "V6" ; +NET "io_rx<3>" LOC = "Y5" ; +NET "io_rx<2>" LOC = "R10" ; +NET "io_rx<1>" LOC = "R1" ; +NET "io_rx<0>" LOC = "M1" ; + +## MISC NET "leds<5>" LOC = "AF25" ; NET "leds<4>" LOC = "AE25" ; NET "leds<3>" LOC = "AF23" ; NET "leds<2>" LOC = "AE23" ; NET "leds<1>" LOC = "AB18" ; -NET "SEN_CLK" LOC = "AA18" ; -NET "MOSI_CLK" LOC = "W17" ; -NET "SCLK_CLK" LOC = "V17" ; -NET "CLK_STATUS" LOC = "AD22" ; -NET "CLK_FUNC" LOC = "AC21" ; -NET "clk_sel<0>" LOC = "AE21" ; -NET "clk_sel<1>" LOC = "AD21" ; -NET "clk_en<1>" LOC = "AA17" ; -NET "clk_en<0>" LOC = "Y17" ; -NET "SDA" LOC = "V16" ; -NET "SCL" LOC = "U16" ; -NET "TXD3" LOC = "AD20" ; -NET "TXD2" LOC = "AC20" ; -NET "TXD1" LOC = "AD19" ; -NET "debug<00>" LOC = "AC19" ; -NET "debug<01>" LOC = "AF20" ; -NET "debug<02>" LOC = "AE20" ; -NET "debug<03>" LOC = "AC16" ; -NET "debug<04>" LOC = "AB16" ; -NET "debug<05>" LOC = "AF19" ; -NET "debug<06>" LOC = "AE19" ; -NET "debug<07>" LOC = "V15" ; -NET "debug<08>" LOC = "U15" ; -NET "debug<09>" LOC = "AE17" ; +NET "FPGA_RESET" LOC = "K24" ; + +## Debug +NET "debug_clk<0>" LOC = "AA10" ; +NET "debug_clk<1>" LOC = "AD11" ; +NET "debug<0>" LOC = "AC19" ; +NET "debug<1>" LOC = "AF20" ; +NET "debug<2>" LOC = "AE20" ; +NET "debug<3>" LOC = "AC16" ; +NET "debug<4>" LOC = "AB16" ; +NET "debug<5>" LOC = "AF19" ; +NET "debug<6>" LOC = "AE19" ; +NET "debug<7>" LOC = "V15" ; +NET "debug<8>" LOC = "U15" ; +NET "debug<9>" LOC = "AE17" ; NET "debug<10>" LOC = "AD17" ; NET "debug<11>" LOC = "V14" ; NET "debug<12>" LOC = "W15" ; NET "debug<13>" LOC = "AC15" ; NET "debug<14>" LOC = "AD14" ; NET "debug<15>" LOC = "AC14" ; -NET "debug_clk<1>" LOC = "AD11" ; NET "debug<16>" LOC = "AC11" ; NET "debug<17>" LOC = "AB12" ; NET "debug<18>" LOC = "AC12" ; @@ -168,187 +148,277 @@ NET "debug<28>" LOC = "AB7" ; NET "debug<29>" LOC = "V11" ; NET "debug<30>" LOC = "U11" ; NET "debug<31>" LOC = "Y10" ; -NET "debug_clk<0>" LOC = "AA10" ; + +## UARTS +NET "TXD<3>" LOC = "AD20" ; +NET "TXD<2>" LOC = "AC20" ; +NET "TXD<1>" LOC = "AD19" ; +NET "RXD<3>" LOC = "AF17" ; +NET "RXD<2>" LOC = "AF15" ; +NET "RXD<1>" LOC = "AD12" ; + +## AD9510 +NET "CLK_STATUS" LOC = "AD22" ; +NET "CLK_FUNC" LOC = "AC21" ; +NET "clk_sel<0>" LOC = "AE21" ; +NET "clk_sel<1>" LOC = "AD21" ; +NET "clk_en<1>" LOC = "AA17" ; +NET "clk_en<0>" LOC = "Y17" ; + +## I2C +NET "SDA" LOC = "V16" ; +NET "SCL" LOC = "U16" ; + +## Timing +NET "PPS_IN" LOC = "AB6" ; +NET "PPS2_IN" LOC = "AA20" ; + +## SPI +NET "SEN_CLK" LOC = "AA18" ; +NET "MOSI_CLK" LOC = "W17" ; +NET "SCLK_CLK" LOC = "V17" ; +NET "MISO_CLK" LOC = "AC10" ; + NET "SEN_DAC" LOC = "AE7" ; NET "SCLK_DAC" LOC = "AF5" ; NET "MOSI_DAC" LOC = "AE6" ; +NET "MISO_DAC" LOC = "Y3" ; + +NET "SCLK_ADC" LOC = "B1" ; +NET "MOSI_ADC" LOC = "J8" ; +NET "SEN_ADC" LOC = "J9" ; + NET "MOSI_TX_ADC" LOC = "V10" ; NET "SEN_TX_ADC" LOC = "W10" ; NET "SCLK_TX_ADC" LOC = "AC6" ; +NET "MISO_TX_ADC" LOC = "G1" ; + NET "MOSI_TX_DAC" LOC = "AD6" ; NET "SEN_TX_DAC" LOC = "AE4" ; NET "SCLK_TX_DAC" LOC = "AF4" ; + NET "SCLK_TX_DB" LOC = "AE3" ; NET "MOSI_TX_DB" LOC = "AF3" ; NET "SEN_TX_DB" LOC = "W9" ; -NET "RXD3" LOC = "AF17" ; -NET "RXD2" LOC = "AF15" ; -NET "RXD1" LOC = "AD12" ; -NET "MISO_CLK" LOC = "AC10" ; -NET "PPS_IN" LOC = "AB6" ; -NET "PPS2_IN" LOC = "AA20" ; -NET "ser_rx_clk" LOC = "P18" ; -NET "ser_tx_clk" LOC = "P23" ; # SERDES TX CLK +NET "MISO_TX_DB" LOC = "AA5" ; + +NET "MOSI_RX_ADC" LOC = "E3" ; +NET "SCLK_RX_ADC" LOC = "F4" ; +NET "SEN_RX_ADC" LOC = "D3" ; +NET "MISO_RX_ADC" LOC = "C1" ; + +NET "SCLK_RX_DAC" LOC = "E4" ; +NET "SEN_RX_DAC" LOC = "K9" ; +NET "MOSI_RX_DAC" LOC = "K8" ; + +NET "SCLK_RX_DB" LOC = "G6" ; +NET "MOSI_RX_DB" LOC = "H7" ; +NET "SEN_RX_DB" LOC = "B2" ; +NET "MISO_RX_DB" LOC = "H4" ; + +## ETH PHY NET "CLK_TO_MAC" LOC = "P26" ; -NET "GMII_TX_CLK" LOC = "P25" ; -NET "GMII_RX_CLK" LOC = "P21" ; -NET "ETH_LED" LOC = "H20" ; -NET "GMII_TXD7" LOC = "G21" ; -NET "GMII_TXD6" LOC = "C26" ; -NET "GMII_TXD5" LOC = "C25" ; -NET "GMII_TXD4" LOC = "J21" ; -NET "GMII_TXD3" LOC = "H21" ; -NET "GMII_TXD2" LOC = "D25" ; -NET "GMII_TXD1" LOC = "D24" ; -NET "GMII_TXD0" LOC = "E26" ; + +NET "GMII_TXD<7>" LOC = "G21" ; +NET "GMII_TXD<6>" LOC = "C26" ; +NET "GMII_TXD<5>" LOC = "C25" ; +NET "GMII_TXD<4>" LOC = "J21" ; +NET "GMII_TXD<3>" LOC = "H21" ; +NET "GMII_TXD<2>" LOC = "D25" ; +NET "GMII_TXD<1>" LOC = "D24" ; +NET "GMII_TXD<0>" LOC = "E26" ; NET "GMII_TX_EN" LOC = "D26" ; NET "GMII_TX_ER" LOC = "J19" ; NET "GMII_GTX_CLK" LOC = "J20" ; -NET "GMII_RXD7" LOC = "G22" ; -NET "GMII_RXD6" LOC = "K19" ; -NET "GMII_RXD5" LOC = "K18" ; -NET "GMII_RXD4" LOC = "E24" ; -NET "GMII_RXD3" LOC = "F23" ; -NET "GMII_RXD2" LOC = "L18" ; -NET "GMII_RXD1" LOC = "L17" ; -NET "GMII_RXD0" LOC = "F25" ; +NET "GMII_TX_CLK" LOC = "P25" ; + +NET "GMII_RX_CLK" LOC = "P21" ; +NET "GMII_RXD<7>" LOC = "G22" ; +NET "GMII_RXD<6>" LOC = "K19" ; +NET "GMII_RXD<5>" LOC = "K18" ; +NET "GMII_RXD<4>" LOC = "E24" ; +NET "GMII_RXD<3>" LOC = "F23" ; +NET "GMII_RXD<2>" LOC = "L18" ; +NET "GMII_RXD<1>" LOC = "L17" ; +NET "GMII_RXD<0>" LOC = "F25" ; NET "GMII_RX_DV" LOC = "F24" ; NET "GMII_RX_ER" LOC = "L20" ; NET "GMII_CRS" LOC = "K20" ; NET "GMII_COL" LOC = "G23" ; + NET "PHY_INTn" LOC = "L22" ; NET "MDIO" LOC = "K21" ; NET "MDC" LOC = "J23" ; -NET "PHY_RESET" LOC = "J22" ; +NET "PHY_RESETn" LOC = "J22" ; +NET "ETH_LED" LOC = "H20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; + +## MIMO Interface +NET "exp_time_out_p" LOC = "Y14" ; +NET "exp_time_out_n" LOC = "AA14" ; NET "exp_time_in_p" LOC = "N18" ; NET "exp_time_in_n" LOC = "N17" ; +NET "exp_user_out_p" LOC = "AF14" ; +NET "exp_user_out_n" LOC = "AE14" ; NET "exp_user_in_p" LOC = "L24" ; NET "exp_user_in_n" LOC = "M23" ; + +## SERDES +NET "ser_enable" LOC = "R20" ; NET "ser_prbsen" LOC = "U23" ; NET "ser_loopen" LOC = "R19" ; -NET "ser_enable" LOC = "R20" ; +NET "ser_rx_en" LOC = "Y21" ; +NET "ser_tx_clk" LOC = "P23" ; # SERDES TX CLK NET "ser_t<15>" LOC = "V23" ; NET "ser_t<14>" LOC = "U22" ; NET "ser_t<13>" LOC = "V24" ; NET "ser_t<12>" LOC = "V25" ; NET "ser_t<11>" LOC = "W23" ; NET "ser_t<10>" LOC = "V22" ; -NET "ser_t<09>" LOC = "T18" ; -NET "ser_t<08>" LOC = "T17" ; -NET "ser_t<07>" LOC = "Y24" ; -NET "ser_t<06>" LOC = "Y25" ; -NET "ser_t<05>" LOC = "U21" ; -NET "ser_t<04>" LOC = "T20" ; -NET "ser_t<03>" LOC = "Y22" ; -NET "ser_t<02>" LOC = "Y23" ; -NET "ser_t<01>" LOC = "U19" ; -NET "ser_t<00>" LOC = "U18" ; +NET "ser_t<9>" LOC = "T18" ; +NET "ser_t<8>" LOC = "T17" ; +NET "ser_t<7>" LOC = "Y24" ; +NET "ser_t<6>" LOC = "Y25" ; +NET "ser_t<5>" LOC = "U21" ; +NET "ser_t<4>" LOC = "T20" ; +NET "ser_t<3>" LOC = "Y22" ; +NET "ser_t<2>" LOC = "Y23" ; +NET "ser_t<1>" LOC = "U19" ; +NET "ser_t<0>" LOC = "U18" ; NET "ser_tkmsb" LOC = "AA24" ; NET "ser_tklsb" LOC = "AA25" ; +NET "ser_rx_clk" LOC = "P18" ; NET "ser_r<15>" LOC = "V21" ; NET "ser_r<14>" LOC = "U20" ; NET "ser_r<13>" LOC = "AA22" ; NET "ser_r<12>" LOC = "AA23" ; NET "ser_r<11>" LOC = "V18" ; NET "ser_r<10>" LOC = "V19" ; -NET "ser_r<09>" LOC = "AB23" ; -NET "ser_r<08>" LOC = "AC26" ; -NET "ser_r<07>" LOC = "AB26" ; -NET "ser_r<06>" LOC = "AD26" ; -NET "ser_r<05>" LOC = "AC25" ; -NET "ser_r<04>" LOC = "W20" ; -NET "ser_r<03>" LOC = "W21" ; -NET "ser_r<02>" LOC = "AC23" ; -NET "ser_r<01>" LOC = "AC24" ; -NET "ser_r<00>" LOC = "AE26" ; +NET "ser_r<9>" LOC = "AB23" ; +NET "ser_r<8>" LOC = "AC26" ; +NET "ser_r<7>" LOC = "AB26" ; +NET "ser_r<6>" LOC = "AD26" ; +NET "ser_r<5>" LOC = "AC25" ; +NET "ser_r<4>" LOC = "W20" ; +NET "ser_r<3>" LOC = "W21" ; +NET "ser_r<2>" LOC = "AC23" ; +NET "ser_r<1>" LOC = "AC24" ; +NET "ser_r<0>" LOC = "AE26" ; NET "ser_rkmsb" LOC = "AD25" ; NET "ser_rklsb" LOC = "Y20" ; -NET "ser_rx_en" LOC = "Y21" ; -NET "FPGA_RESET" LOC = "K24" ; -NET "RAM_D<17>" LOC = "F7" ; -NET "RAM_D<16>" LOC = "E7" ; -NET "RAM_D<15>" LOC = "G9" ; -NET "RAM_D<14>" LOC = "H9" ; -NET "RAM_D<13>" LOC = "G10" ; -NET "RAM_D<12>" LOC = "H10" ; -NET "RAM_D<11>" LOC = "A4" ; -NET "RAM_D<10>" LOC = "B4" ; -NET "RAM_D<09>" LOC = "C5" ; -NET "RAM_D<08>" LOC = "D6" ; -NET "RAM_D<07>" LOC = "J11" ; -NET "RAM_D<06>" LOC = "K11" ; -NET "RAM_D<05>" LOC = "B7" ; -NET "RAM_D<04>" LOC = "C7" ; -NET "RAM_D<03>" LOC = "B6" ; -NET "RAM_D<02>" LOC = "C6" ; -NET "RAM_D<01>" LOC = "C8" ; -NET "RAM_D<00>" LOC = "D8" ; -NET "RAM_ZZ" LOC = "J12" ; -NET "RAM_BWn<3>" LOC = "D9" ; -NET "RAM_BWn<2>" LOC = "A9" ; -NET "RAM_BWn<1>" LOC = "B9" ; -NET "RAM_BWn<0>" LOC = "G12" ; -NET "RAM_LDn" LOC = "H12" ; -NET "RAM_OEn" LOC = "C10" ; -NET "RAM_WEn" LOC = "D10" ; -NET "RAM_CLK" LOC = "A10" ; -NET "RAM_CENn" LOC = "B10" ; -NET "RAM_A<00>" LOC = "C11" ; -NET "RAM_A<01>" LOC = "E12" ; -NET "RAM_A<02>" LOC = "F12" ; -NET "RAM_A<03>" LOC = "D13" ; -NET "RAM_A<04>" LOC = "C12" ; -NET "RAM_A<05>" LOC = "A12" ; -NET "RAM_A<06>" LOC = "B12" ; -NET "RAM_A<07>" LOC = "E14" ; -NET "RAM_A<08>" LOC = "F14" ; -NET "RAM_A<09>" LOC = "B15" ; -NET "RAM_A<10>" LOC = "A15" ; -NET "RAM_A<11>" LOC = "D16" ; -NET "RAM_A<12>" LOC = "C15" ; -NET "RAM_A<13>" LOC = "D17" ; -NET "RAM_A<14>" LOC = "C16" ; -NET "RAM_A<15>" LOC = "F15" ; -NET "RAM_A<16>" LOC = "C17" ; -NET "RAM_A<17>" LOC = "B17" ; -NET "RAM_A<18>" LOC = "B18" ; -NET "RAM_A<19>" LOC = "A18" ; -NET "RAM_A<20>" LOC = "D18" ; -NET "RAM_D<35>" LOC = "K16" ; -NET "RAM_D<34>" LOC = "D20" ; -NET "RAM_D<33>" LOC = "C20" ; -NET "RAM_D<32>" LOC = "E21" ; -NET "RAM_D<31>" LOC = "D21" ; -NET "RAM_D<30>" LOC = "C21" ; -NET "RAM_D<29>" LOC = "B21" ; -NET "RAM_D<28>" LOC = "H17" ; -NET "RAM_D<27>" LOC = "G17" ; -NET "RAM_D<26>" LOC = "B23" ; -NET "RAM_D<25>" LOC = "A22" ; -NET "RAM_D<24>" LOC = "D23" ; -NET "RAM_D<23>" LOC = "C23" ; -NET "RAM_D<22>" LOC = "D22" ; -NET "RAM_D<21>" LOC = "C22" ; -NET "RAM_D<20>" LOC = "F19" ; -NET "RAM_D<19>" LOC = "G20" ; -NET "RAM_D<18>" LOC = "F20" ; -#NET "unnamed_net20" LOC = "V20" ; # SUSPEND -NET "PROG_B" LOC = "A2" ; -NET "PUDC_B" LOC = "G8" ; -NET "DONE" LOC = "AB21" ; + +## SRAM +NET "RAM_D<35>" LOC = "K16" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<34>" LOC = "D20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<33>" LOC = "C20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<32>" LOC = "E21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<31>" LOC = "D21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<30>" LOC = "C21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<29>" LOC = "B21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<28>" LOC = "H17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<27>" LOC = "G17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<26>" LOC = "B23" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<25>" LOC = "A22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<24>" LOC = "D23" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<23>" LOC = "C23" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<22>" LOC = "D22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<21>" LOC = "C22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<20>" LOC = "F19" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<19>" LOC = "G20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<18>" LOC = "F20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<17>" LOC = "F7" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<16>" LOC = "E7" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<15>" LOC = "G9" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<14>" LOC = "H9" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<13>" LOC = "G10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<12>" LOC = "H10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<11>" LOC = "A4" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<10>" LOC = "B4" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<9>" LOC = "C5" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<8>" LOC = "D6" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<7>" LOC = "J11" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<6>" LOC = "K11" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<5>" LOC = "B7" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<4>" LOC = "C7" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<3>" LOC = "B6" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<2>" LOC = "C6" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<1>" LOC = "C8" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_D<0>" LOC = "D8" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<0>" LOC = "C11" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<1>" LOC = "E12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<2>" LOC = "F12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<3>" LOC = "D13" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<4>" LOC = "C12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<5>" LOC = "A12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<6>" LOC = "B12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<7>" LOC = "E14" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<8>" LOC = "F14" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<9>" LOC = "B15" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<10>" LOC = "A15" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<11>" LOC = "D16" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<12>" LOC = "C15" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<13>" LOC = "D17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<14>" LOC = "C16" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<15>" LOC = "F15" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<16>" LOC = "C17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<17>" LOC = "B17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<18>" LOC = "B18" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<19>" LOC = "A18" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_A<20>" LOC = "D18" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_BWn<3>" LOC = "D9" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_BWn<2>" LOC = "A9" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_BWn<1>" LOC = "B9" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_BWn<0>" LOC = "G12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_ZZ" LOC = "J12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_LDn" LOC = "H12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_OEn" LOC = "C10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_WEn" LOC = "D10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_CENn" LOC = "B10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; +NET "RAM_CLK" LOC = "A10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; + +## SPI Flash NET "flash_miso" LOC = "AF24" ; NET "flash_clk" LOC = "AE24" ; -NET "INIT_B" LOC = "AA15" ; NET "flash_mosi" LOC = "AB15" ; +NET "flash_cs" LOC = "AA7" ; + +## MISC FPGA, unused for now +#NET "PROG_B" LOC = "A2" ; +#NET "PUDC_B" LOC = "G8" ; +#NET "DONE" LOC = "AB21" ; +#NET "INIT_B" LOC = "AA15" ; + + #NET "unnamed_net19" LOC = "AE9" ; # VS1 #NET "unnamed_net18" LOC = "AF9" ; # VS0 #NET "unnamed_net17" LOC = "AA12" ; # VS2 #NET "unnamed_net16" LOC = "Y7" ; # M2 -NET "flash_cs" LOC = "AA7" ; #NET "unnamed_net15" LOC = "AC4" ; # M1 #NET "unnamed_net14" LOC = "AD4" ; # M0 #NET "unnamed_net13" LOC = "D4" ; # TMS #NET "unnamed_net12" LOC = "E23" ; # TDO #NET "unnamed_net11" LOC = "G7" ; # TDI #NET "unnamed_net10" LOC = "A25" ; # TCK +#NET "unnamed_net20" LOC = "V20" ; # SUSPEND + + +NET "clk_to_mac" TNM_NET = "clk_to_mac"; +TIMESPEC "TS_clk_to_mac" = PERIOD "clk_to_mac" 8 ns HIGH 50 %; + +NET "clk_fpga_p" TNM_NET = "clk_fpga_p"; +TIMESPEC "TS_clk_fpga_p" = PERIOD "clk_fpga_p" 10 ns HIGH 50 %; + +NET "GMII_RX_CLK" TNM_NET = "GMII_RX_CLK"; +TIMESPEC "TS_GMII_RX_CLK" = PERIOD "GMII_RX_CLK" 8 ns HIGH 50 %; + +NET "ser_rx_clk" TNM_NET = "ser_rx_clk"; +TIMESPEC "TS_ser_rx_clk" = PERIOD "ser_rx_clk" 10 ns HIGH 50 %; + +TIMESPEC "TS_clk_div_to_dsp_clk" = FROM "clk_div" TO "dcm_out" 10 ns; + +#NET "CLK_FPGA_P" CLOCK_DEDICATED_ROUTE = FALSE; +#PIN "DCM_INST/DCM_SP.CLKIN" CLOCK_DEDICATED_ROUTE = FALSE; + +#NET "RAM_CLK" CLOCK_DEDICATED_ROUTE = FALSE; +#PIN "DCM_INST1/DCM_SP.CLKFB" CLOCK_DEDICATED_ROUTE = FALSE; + diff --git a/fpga/usrp2/top/u2plus/u2plus.v b/fpga/usrp2/top/u2plus/u2plus.v index e95445867..270655a8d 100644 --- a/fpga/usrp2/top/u2plus/u2plus.v +++ b/fpga/usrp2/top/u2plus/u2plus.v @@ -1,48 +1,96 @@ `timescale 1ns / 1ps +//`define DCM_FOR_RAMCLK ////////////////////////////////////////////////////////////////////////////////// module u2plus ( + input CLK_FPGA_P, input CLK_FPGA_N, // Diff + + // ADC + input ADC_clkout_p, input ADC_clkout_n, + input ADCA_12_p, input ADCA_12_n, + input ADCA_10_p, input ADCA_10_n, + input ADCA_8_p, input ADCA_8_n, + input ADCA_6_p, input ADCA_6_n, + input ADCA_4_p, input ADCA_4_n, + input ADCA_2_p, input ADCA_2_n, + input ADCA_0_p, input ADCA_0_n, + input ADCB_12_p, input ADCB_12_n, + input ADCB_10_p, input ADCB_10_n, + input ADCB_8_p, input ADCB_8_n, + input ADCB_6_p, input ADCB_6_n, + input ADCB_4_p, input ADCB_4_n, + input ADCB_2_p, input ADCB_2_n, + input ADCB_0_p, input ADCB_0_n, + + // DAC + output reg [15:0] DACA, + output reg [15:0] DACB, + input DAC_LOCK, // unused for now + + // DB IO Pins + inout [15:0] io_tx, + inout [15:0] io_rx, + // Misc, debug - output [4:0] leds, // LED4 is shared w/INIT_B - input [3:0] dipsw, - output [31:0] debug, + output [5:1] leds, // LED4 is shared w/INIT_B + input FPGA_RESET, output [1:0] debug_clk, - output uart_tx_o, - input uart_rx_i, - - // Expansion - input exp_pps_in_p, // Diff - input exp_pps_in_n, // Diff - output exp_pps_out_p, // Diff - output exp_pps_out_n, // Diff + output [31:0] debug, + output [3:1] TXD, input [3:1] RXD, // UARTs + //input [3:0] dipsw, // Forgot DIP Switches... - // GMII - // GMII-CTRL - input GMII_COL, - input GMII_CRS, + // Clock Gen Control + output [1:0] clk_en, + output [1:0] clk_sel, + input CLK_FUNC, // FIXME is an input to control the 9510 + input CLK_STATUS, + + inout SCL, inout SDA, // I2C + + // PPS + input PPS_IN, input PPS2_IN, + + // SPI + output SEN_CLK, output SCLK_CLK, output MOSI_CLK, input MISO_CLK, + output SEN_DAC, output SCLK_DAC, output MOSI_DAC, input MISO_DAC, + output SEN_ADC, output SCLK_ADC, output MOSI_ADC, + output SEN_TX_DB, output SCLK_TX_DB, output MOSI_TX_DB, input MISO_TX_DB, + output SEN_TX_DAC, output SCLK_TX_DAC, output MOSI_TX_DAC, + output SEN_TX_ADC, output SCLK_TX_ADC, output MOSI_TX_ADC, input MISO_TX_ADC, + output SEN_RX_DB, output SCLK_RX_DB, output MOSI_RX_DB, input MISO_RX_DB, + output SEN_RX_DAC, output SCLK_RX_DAC, output MOSI_RX_DAC, + output SEN_RX_ADC, output SCLK_RX_ADC, output MOSI_RX_ADC, input MISO_RX_ADC, + + // GigE PHY + input CLK_TO_MAC, - // GMII-TX output reg [7:0] GMII_TXD, output reg GMII_TX_EN, output reg GMII_TX_ER, output GMII_GTX_CLK, input GMII_TX_CLK, // 100mbps clk - // GMII-RX - input [7:0] GMII_RXD, input GMII_RX_CLK, + input [7:0] GMII_RXD, input GMII_RX_DV, input GMII_RX_ER, + input GMII_COL, + input GMII_CRS, - // GMII-Management + input PHY_INTn, // open drain inout MDIO, output MDC, - input PHY_INTn, // open drain output PHY_RESETn, - input PHY_CLK, // possibly use on-board osc - input clk_to_mac, - output eth_led, + output ETH_LED, + +// input POR, + + // Expansion + input exp_time_in_p, input exp_time_in_n, // Diff + output exp_time_out_p, output exp_time_out_n, // Diff + input exp_user_in_p, input exp_user_in_n, // Diff + output exp_user_out_p, output exp_user_out_n, // Diff // SERDES output ser_enable, @@ -59,75 +107,18 @@ module u2plus input [15:0] ser_r, input ser_rklsb, input ser_rkmsb, - - // ADC - input [13:0] adc_a, - input adc_ovf_a, - output adc_oen_a, - output adc_pdn_a, - - input [13:0] adc_b, - input adc_ovf_b, - output adc_oen_b, - output adc_pdn_b, - - // DAC - output [15:0] dac_a, - output [15:0] dac_b, - input dac_lock, // unused for now - - // I2C - inout SCL, - inout SDA, - // Clock Gen Control - output [1:0] clk_en, - output [1:0] clk_sel, - input clk_func, // FIXME is an input to control the 9510 - input clk_status, - - // Clocks - input clk_fpga_p, // Diff - input clk_fpga_n, // Diff - input pps_in, - input POR, + // SRAM + inout [35:0] RAM_D, + output [20:0] RAM_A, + output [3:0] RAM_BWn, + output RAM_ZZ, + output RAM_LDn, + output RAM_OEn, + output RAM_WEn, + output RAM_CENn, + output RAM_CLK, - // AD9510 SPI - output sclk, - output sen_clk, - output sdi, - input sdo, - - // TX side SPI -- tx_db, tx_adc, tx_dac, 9777 - output sen_dac, - output sen_tx_db, - output sen_tx_adc, - output sen_tx_dac, - output mosi_tx, - input miso_dac, - input miso_tx_db, - input miso_tx_adc, - output sclk_tx, - - // RX side SPI - output sen_rx_db, - output sclk_rx_db, - input sdo_rx_db, - output sdi_rx_db, - - output sen_rx_adc, - output sclk_rx_adc, - input sdo_rx_adc, - output sdi_rx_adc, - - output sen_rx_dac, - output sclk_rx_dac, - output sdi_rx_dac, - - // DB IO Pins - inout [15:0] io_tx, - inout [15:0] io_rx, - // SPI Flash output flash_cs, output flash_clk, @@ -135,38 +126,63 @@ module u2plus input flash_miso ); + wire CLK_TO_MAC_int, CLK_TO_MAC_int2; + IBUFG phyclk (.O(CLK_TO_MAC_int), .I(CLK_TO_MAC)); + BUFG phyclk2 (.O(CLK_TO_MAC_int2), .I(CLK_TO_MAC_int)); + // FPGA-specific pins connections - wire aux_clk = PHY_CLK; - wire clk_fpga, dsp_clk, clk_div, dcm_out, wb_clk, clock_ready; - IBUFGDS clk_fpga_pin (.O(clk_fpga),.I(clk_fpga_p),.IB(clk_fpga_n)); + IBUFGDS clk_fpga_pin (.O(clk_fpga),.I(CLK_FPGA_P),.IB(CLK_FPGA_N)); defparam clk_fpga_pin.IOSTANDARD = "LVPECL_25"; - wire exp_pps_in; - IBUFDS exp_pps_in_pin (.O(exp_pps_in),.I(exp_pps_in_p),.IB(exp_pps_in_n)); - defparam exp_pps_in_pin.IOSTANDARD = "LVDS_25"; + wire exp_time_in; + IBUFDS exp_time_in_pin (.O(exp_time_in),.I(exp_time_in_p),.IB(exp_time_in_n)); + defparam exp_time_in_pin.IOSTANDARD = "LVDS_25"; + + wire exp_time_out; + OBUFDS exp_time_out_pin (.O(exp_time_out_p),.OB(exp_time_out_n),.I(exp_time_out)); + defparam exp_time_out_pin.IOSTANDARD = "LVDS_25"; + + wire exp_user_in; + IBUFDS exp_user_in_pin (.O(exp_user_in),.I(exp_user_in_p),.IB(exp_user_in_n)); + defparam exp_user_in_pin.IOSTANDARD = "LVDS_25"; - wire exp_pps_out; - OBUFDS exp_pps_out_pin (.O(exp_pps_out_p),.OB(exp_pps_out_n),.I(exp_pps_out)); - defparam exp_pps_out_pin.IOSTANDARD = "LVDS_25"; + wire exp_user_out; + OBUFDS exp_user_out_pin (.O(exp_user_out_p),.OB(exp_user_out_n),.I(exp_user_out)); + defparam exp_user_out_pin.IOSTANDARD = "LVDS_25"; reg [5:0] clock_ready_d; - always @(posedge aux_clk) + always @(posedge clk_fpga) clock_ready_d[5:0] <= {clock_ready_d[4:0],clock_ready}; - wire dcm_rst = ~&clock_ready_d & |clock_ready_d; - wire clk_muxed = clock_ready ? clk_fpga : aux_clk; - - wire adc_on_a, adc_on_b, adc_oe_a, adc_oe_b; - assign adc_oen_a = ~adc_oe_a; - assign adc_oen_b = ~adc_oe_b; - assign adc_pdn_a = ~adc_on_a; - assign adc_pdn_b = ~adc_on_b; + // ADC A is inverted on the schematic to facilitate a clean layout + // We account for that here by inverting it +`ifdef LVDS + wire [13:0] adc_a, adc_a_inv, adc_b; + capture_ddrlvds #(.WIDTH(14)) capture_ddrlvds + (.clk(dsp_clk), .ssclk_p(ADC_clkout_p), .ssclk_n(ADC_clkout_n), + .in_p({{ADCA_12_p, ADCA_10_p, ADCA_8_p, ADCA_6_p, ADCA_4_p, ADCA_2_p, ADCA_0_p}, + {ADCB_12_p, ADCB_10_p, ADCB_8_p, ADCB_6_p, ADCB_4_p, ADCB_2_p, ADCB_0_p}}), + .in_n({{ADCA_12_n, ADCA_10_n, ADCA_8_n, ADCA_6_n, ADCA_4_n, ADCA_2_n, ADCA_0_n}, + {ADCB_12_n, ADCB_10_n, ADCB_8_n, ADCB_6_n, ADCB_4_n, ADCB_2_n, ADCB_0_n}}), + .out({adc_a_inv,adc_b})); + assign adc_a = ~adc_a_inv; +`else + reg [13:0] adc_a, adc_b; + always @(posedge dsp_clk) + begin + adc_a <= ~{ADCA_12_p,ADCA_12_n, ADCA_10_p,ADCA_10_n, ADCA_8_p,ADCA_8_n, ADCA_6_p,ADCA_6_n, + ADCA_4_p,ADCA_4_n, ADCA_2_p,ADCA_2_n, ADCA_0_p,ADCA_0_n }; + adc_b <= {ADCB_12_p,ADCB_12_n, ADCB_10_p,ADCB_10_n, ADCB_8_p,ADCB_8_n, ADCB_6_p,ADCB_6_n, + ADCB_4_p,ADCB_4_n, ADCB_2_p,ADCB_2_n, ADCB_0_p,ADCB_0_n }; + end +`endif // !`ifdef LVDS + // Handle Clocks DCM DCM_INST (.CLKFB(dsp_clk), - .CLKIN(clk_muxed), + .CLKIN(clk_fpga), .DSSEN(0), .PSCLK(0), .PSEN(0), @@ -180,7 +196,7 @@ module u2plus .CLK2X180(), .CLK90(), .CLK180(), - .CLK270(), + .CLK270(clk270_100), .LOCKED(LOCKED_OUT), .PSDONE(), .STATUS()); @@ -202,28 +218,43 @@ module u2plus BUFG dspclk_BUFG (.I(dcm_out), .O(dsp_clk)); BUFG wbclk_BUFG (.I(clk_div), .O(wb_clk)); + // Create clock for external SRAM thats -90degree phase to DSPCLK (i.e) 2nS earlier at 100MHz. + BUFG clk270_100_buf_i1 (.I(clk270_100), + .O(clk270_100_buf)); + OFDDRRSE RAM_CLK_i1 (.Q(RAM_CLK), + .C0(clk270_100_buf), + .C1(~clk270_100_buf), + .CE(1'b1), + .D0(1'b1), + .D1(1'b0), + .R(1'b0), + .S(1'b0)); + // I2C -- Don't use external transistors for open drain, the FPGA implements this IOBUF scl_pin(.O(scl_pad_i), .IO(SCL), .I(scl_pad_o), .T(scl_pad_oen_o)); IOBUF sda_pin(.O(sda_pad_i), .IO(SDA), .I(sda_pad_o), .T(sda_pad_oen_o)); // LEDs are active low outputs - wire [4:0] leds_int; - assign leds = ~leds_int; // drive low to turn on leds + wire [5:0] leds_int; + assign {ETH_LED,leds} = {6'b011111 ^ leds_int}; // drive low to turn on leds // SPI - wire miso, mosi, sclk_int; - assign {sclk,sdi} = (~sen_clk | ~sen_dac) ? {sclk_int,mosi} : 2'b0; - assign {sclk_tx_db,sdi_tx_db} = ~sen_tx_db ? {sclk_int,mosi} : 2'b0; - assign {sclk_tx_dac,sdi_tx_dac} = ~sen_tx_dac ? {sclk_int,mosi} : 2'b0; - assign {sclk_tx_adc,sdi_tx_adc} = ~sen_tx_adc ? {sclk_int,mosi} : 2'b0; - assign {sclk_rx_db,sdi_rx_db} = ~sen_rx_db ? {sclk_int,mosi} : 2'b0; - assign {sclk_rx_dac,sdi_rx_dac} = ~sen_rx_dac ? {sclk_int,mosi} : 2'b0; - assign {sclk_rx_adc,sdi_rx_adc} = ~sen_rx_adc ? {sclk_int,mosi} : 2'b0; - - assign miso = (~sen_clk & sdo) | (~sen_dac & sdo) | - (~sen_tx_db & sdo_tx_db) | (~sen_tx_adc & sdo_tx_adc) | - (~sen_rx_db & sdo_rx_db) | (~sen_rx_adc & sdo_rx_adc); + wire miso, mosi, sclk; + assign {SCLK_CLK,MOSI_CLK} = ~SEN_CLK ? {sclk,mosi} : 2'B0; + assign {SCLK_DAC,MOSI_DAC} = ~SEN_DAC ? {sclk,mosi} : 2'B0; + assign {SCLK_ADC,MOSI_ADC} = ~SEN_ADC ? {sclk,mosi} : 2'B0; + assign {SCLK_TX_DB,MOSI_TX_DB} = ~SEN_TX_DB ? {sclk,mosi} : 2'B0; + assign {SCLK_TX_DAC,MOSI_TX_DAC} = ~SEN_TX_DAC ? {sclk,mosi} : 2'B0; + assign {SCLK_TX_ADC,MOSI_TX_ADC} = ~SEN_TX_ADC ? {sclk,mosi} : 2'B0; + assign {SCLK_RX_DB,MOSI_RX_DB} = ~SEN_RX_DB ? {sclk,mosi} : 2'B0; + assign {SCLK_RX_DAC,MOSI_RX_DAC} = ~SEN_RX_DAC ? {sclk,mosi} : 2'B0; + assign {SCLK_RX_ADC,MOSI_RX_ADC} = ~SEN_RX_ADC ? {sclk,mosi} : 2'B0; + + assign miso = (~SEN_CLK & MISO_CLK) | (~SEN_DAC & MISO_DAC) | + (~SEN_TX_DB & MISO_TX_DB) | (~SEN_TX_ADC & MISO_TX_ADC) | + (~SEN_RX_DB & MISO_RX_DB) | (~SEN_RX_ADC & MISO_RX_ADC); + wire GMII_TX_EN_unreg, GMII_TX_ER_unreg; wire [7:0] GMII_TXD_unreg; wire GMII_GTX_CLK_int; @@ -281,16 +312,53 @@ module u2plus .S(0) // Synchronous preset input ); */ - u2_core u2_core(.dsp_clk (dsp_clk), + + + // + // Instantiate IO for Bidirectional bus to SRAM + // + wire [35:0] RAM_D_pi; + wire [35:0] RAM_D_po; + wire RAM_D_poe; + + genvar i; + + generate + for (i=0;i<36;i=i+1) + begin : gen_RAM_D_IO + + IOBUF #( + .DRIVE(12), + .IOSTANDARD("LVCMOS25"), + .SLEW("FAST") + ) + RAM_D_i ( + .O(RAM_D_pi[i]), + .I(RAM_D_po[i]), + .IO(RAM_D[i]), + .T(RAM_D_poe) + ); + end // block: gen_RAM_D_IO + endgenerate + + + + wire [15:0] dac_a_int, dac_b_int; + // DAC A and B are swapped in schematic to facilitate clean layout + // DAC A is also inverted in schematic to facilitate clean layout + always @(negedge dsp_clk) DACA <= ~dac_b_int; + always @(negedge dsp_clk) DACB <= dac_a_int; + + u2plus_core u2p_c(.dsp_clk (dsp_clk), .wb_clk (wb_clk), .clock_ready (clock_ready), - .clk_to_mac (clk_to_mac), - .pps_in (pps_in), + .clk_to_mac (CLK_TO_MAC_int2), + .pps_in (PPS_IN), .leds (leds_int), .debug (debug[31:0]), .debug_clk (debug_clk[1:0]), - .exp_pps_in (exp_pps_in), - .exp_pps_out (exp_pps_out), + .exp_pps_in (exp_time_in), + .exp_pps_out (exp_time_out), .GMII_COL (GMII_COL), .GMII_CRS (GMII_CRS), .GMII_TXD (GMII_TXD_unreg[7:0]), @@ -306,7 +374,6 @@ module u2plus .MDC (MDC), .PHY_INTn (PHY_INTn), .PHY_RESETn (PHY_RESETn), - .PHY_CLK (PHY_CLK), .ser_enable (ser_enable), .ser_prbsen (ser_prbsen), .ser_loopen (ser_loopen), @@ -319,22 +386,16 @@ module u2plus .ser_r (ser_r_int[15:0]), .ser_rklsb (ser_rklsb_int), .ser_rkmsb (ser_rkmsb_int), - .cpld_start (cpld_start), - .cpld_mode (cpld_mode), - .cpld_done (cpld_done), - .cpld_din (cpld_din), - .cpld_clk (cpld_clk), - .cpld_detached (cpld_detached), .adc_a (adc_a[13:0]), - .adc_ovf_a (adc_ovf_a), - .adc_on_a (adc_on_a), - .adc_oe_a (adc_oe_a), + .adc_ovf_a (1'b0), + .adc_on_a (), + .adc_oe_a (), .adc_b (adc_b[13:0]), - .adc_ovf_b (adc_ovf_b), - .adc_on_b (adc_on_b), - .adc_oe_b (adc_oe_b), - .dac_a (dac_a[15:0]), - .dac_b (dac_b[15:0]), + .adc_ovf_b (1'b0), + .adc_on_b (), + .adc_oe_b (), + .dac_a (dac_a_int[15:0]), + .dac_b (dac_b_int[15:0]), .scl_pad_i (scl_pad_i), .scl_pad_o (scl_pad_o), .scl_pad_oen_o (scl_pad_oen_o), @@ -345,33 +406,45 @@ module u2plus .clk_sel (clk_sel[1:0]), .clk_func (clk_func), .clk_status (clk_status), - .sclk (sclk_int), + .sclk (sclk), .mosi (mosi), .miso (miso), - .sen_clk (sen_clk), - .sen_dac (sen_dac), - .sen_tx_db (sen_tx_db), - .sen_tx_adc (sen_tx_adc), - .sen_tx_dac (sen_tx_dac), - .sen_rx_db (sen_rx_db), - .sen_rx_adc (sen_rx_adc), - .sen_rx_dac (sen_rx_dac), + .sen_clk (SEN_CLK), + .sen_dac (SEN_DAC), + .sen_adc (SEN_ADC), + .sen_tx_db (SEN_TX_DB), + .sen_tx_adc (SEN_TX_ADC), + .sen_tx_dac (SEN_TX_DAC), + .sen_rx_db (SEN_RX_DB), + .sen_rx_adc (SEN_RX_ADC), + .sen_rx_dac (SEN_RX_DAC), .io_tx (io_tx[15:0]), .io_rx (io_rx[15:0]), - .RAM_D (RAM_D), + .RAM_D_po (RAM_D_po), + .RAM_D_pi (RAM_D_pi), + .RAM_D_poe (RAM_D_poe), .RAM_A (RAM_A), .RAM_CE1n (RAM_CE1n), .RAM_CENn (RAM_CENn), - .RAM_CLK (RAM_CLK), .RAM_WEn (RAM_WEn), .RAM_OEn (RAM_OEn), .RAM_LDn (RAM_LDn), - .uart_tx_o (uart_tx_o), - //.uart_rx_i (uart_rx_i), - .uart_rx_i (), + .uart_tx_o (TXD[3:1]), + .uart_rx_i ({1'b1,RXD[3:1]}), .uart_baud_o (), .sim_mode (1'b0), - .clock_divider (2) + .clock_divider (2), + .button (FPGA_RESET), + .spiflash_cs (flash_cs), + .spiflash_clk (flash_clk), + .spiflash_miso (flash_miso), + .spiflash_mosi (flash_mosi) ); + + // Drive low so that RAM does not sleep. + assign RAM_ZZ = 0; + // Byte Writes are qualified by the global write enable + // Always do 36bit operations to extram. + assign RAM_BWn = 4'b0000; endmodule // u2plus diff --git a/fpga/usrp2/top/u2plus/u2plus_core.v b/fpga/usrp2/top/u2plus/u2plus_core.v new file mode 100644 index 000000000..8426826e2 --- /dev/null +++ b/fpga/usrp2/top/u2plus/u2plus_core.v @@ -0,0 +1,696 @@ +// //////////////////////////////////////////////////////////////////////////////// +// Module Name: u2_core +// //////////////////////////////////////////////////////////////////////////////// + +module u2plus_core + (// Clocks + input dsp_clk, + input wb_clk, + output clock_ready, + input clk_to_mac, + input pps_in, + + // Misc, debug + output [7:0] leds, + output [31:0] debug, + output [1:0] debug_clk, + + // Expansion + input exp_pps_in, + output exp_pps_out, + + // GMII + // GMII-CTRL + input GMII_COL, + input GMII_CRS, + + // GMII-TX + output [7:0] GMII_TXD, + output GMII_TX_EN, + output GMII_TX_ER, + output GMII_GTX_CLK, + input GMII_TX_CLK, // 100mbps clk + + // GMII-RX + input [7:0] GMII_RXD, + input GMII_RX_CLK, + input GMII_RX_DV, + input GMII_RX_ER, + + // GMII-Management + inout MDIO, + output MDC, + input PHY_INTn, // open drain + output PHY_RESETn, + + // SERDES + output ser_enable, + output ser_prbsen, + output ser_loopen, + output ser_rx_en, + + output ser_tx_clk, + output [15:0] ser_t, + output ser_tklsb, + output ser_tkmsb, + + input ser_rx_clk, + input [15:0] ser_r, + input ser_rklsb, + input ser_rkmsb, + + input por, + output config_success, + + // ADC + input [13:0] adc_a, + input adc_ovf_a, + output adc_on_a, + output adc_oe_a, + + input [13:0] adc_b, + input adc_ovf_b, + output adc_on_b, + output adc_oe_b, + + // DAC + output [15:0] dac_a, + output [15:0] dac_b, + + // I2C + input scl_pad_i, + output scl_pad_o, + output scl_pad_oen_o, + input sda_pad_i, + output sda_pad_o, + output sda_pad_oen_o, + + // Clock Gen Control + output [1:0] clk_en, + output [1:0] clk_sel, + input clk_func, // FIXME is an input to control the 9510 + input clk_status, + + // Generic SPI + output sclk, + output mosi, + input miso, + output sen_clk, + output sen_dac, + output sen_adc, + output sen_tx_db, + output sen_tx_adc, + output sen_tx_dac, + output sen_rx_db, + output sen_rx_adc, + output sen_rx_dac, + + // GPIO to DBoards + inout [15:0] io_tx, + inout [15:0] io_rx, + + // External RAM + input [35:0] RAM_D_pi, + output [35:0] RAM_D_po, + output RAM_D_poe, + output [20:0] RAM_A, + output RAM_CE1n, + output RAM_CENn, + output RAM_WEn, + output RAM_OEn, + output RAM_LDn, + + // Debug stuff + output [3:0] uart_tx_o, + input [3:0] uart_rx_i, + output [3:0] uart_baud_o, + input sim_mode, + input [3:0] clock_divider, + input button, + + output spiflash_cs, output spiflash_clk, input spiflash_miso, output spiflash_mosi + ); + + localparam SR_BUF_POOL = 64; // Uses 1 reg + localparam SR_UDP_SM = 96; // 64 regs + localparam SR_RX_DSP = 160; // 16 + localparam SR_RX_CTRL = 176; // 16 + localparam SR_TIME64 = 192; // 3 + localparam SR_SIMTIMER = 198; // 2 + localparam SR_TX_DSP = 208; // 16 + localparam SR_TX_CTRL = 224; // 16 + + // FIFO Sizes, 9 = 512 lines, 10 = 1024, 11 = 2048 + // all (most?) are 36 bits wide, so 9 is 1 BRAM, 10 is 2, 11 is 4 BRAMs + localparam DSP_TX_FIFOSIZE = 10; + localparam DSP_RX_FIFOSIZE = 10; + localparam ETH_TX_FIFOSIZE = 10; + localparam ETH_RX_FIFOSIZE = 11; + localparam SERDES_TX_FIFOSIZE = 9; + localparam SERDES_RX_FIFOSIZE = 9; // RX currently doesn't use a fifo? + + wire [7:0] set_addr, set_addr_dsp; + wire [31:0] set_data, set_data_dsp; + wire set_stb, set_stb_dsp; + + wire wb_rst, dsp_rst; + + wire [31:0] status, status_b0, status_b1, status_b2, status_b3, status_b4, status_b5, status_b6, status_b7; + wire bus_error, spi_int, i2c_int, pps_int, onetime_int, periodic_int, buffer_int; + wire proc_int, overrun, underrun; + wire [3:0] uart_tx_int, uart_rx_int; + + wire [31:0] debug_gpio_0, debug_gpio_1; + wire [31:0] atr_lines; + + wire [31:0] debug_rx, debug_mac, debug_mac0, debug_mac1, debug_tx_dsp, debug_txc, + debug_serdes0, debug_serdes1, debug_serdes2, debug_rx_dsp, debug_udp; + + wire [15:0] ser_rx_occ, ser_tx_occ, dsp_rx_occ, dsp_tx_occ, eth_rx_occ, eth_tx_occ, eth_rx_occ2; + wire ser_rx_full, ser_tx_full, dsp_rx_full, dsp_tx_full, eth_rx_full, eth_tx_full, eth_rx_full2; + wire ser_rx_empty, ser_tx_empty, dsp_rx_empty, dsp_tx_empty, eth_rx_empty, eth_tx_empty, eth_rx_empty2; + + wire serdes_link_up; + wire epoch; + wire [31:0] irq; + wire [63:0] vita_time; + wire run_rx, run_tx; + + // /////////////////////////////////////////////////////////////////////////////////////////////// + // Wishbone Single Master INTERCON + localparam dw = 32; // Data bus width + localparam aw = 16; // Address bus width, for byte addressibility, 16 = 64K byte memory space + localparam sw = 4; // Select width -- 32-bit data bus with 8-bit granularity. + + wire [dw-1:0] m0_dat_o, m0_dat_i; + wire [dw-1:0] s0_dat_o, s1_dat_o, s0_dat_i, s1_dat_i, s2_dat_o, s3_dat_o, s2_dat_i, s3_dat_i, + s4_dat_o, s5_dat_o, s4_dat_i, s5_dat_i, s6_dat_o, s7_dat_o, s6_dat_i, s7_dat_i, + s8_dat_o, s9_dat_o, s8_dat_i, s9_dat_i, sa_dat_o, sa_dat_i, sb_dat_i, sb_dat_o, + sc_dat_i, sc_dat_o, sd_dat_i, sd_dat_o, se_dat_i, se_dat_o, sf_dat_i, sf_dat_o; + wire [aw-1:0] m0_adr,s0_adr,s1_adr,s2_adr,s3_adr,s4_adr,s5_adr,s6_adr,s7_adr,s8_adr,s9_adr,sa_adr,sb_adr,sc_adr, sd_adr, se_adr, sf_adr; + wire [sw-1:0] m0_sel,s0_sel,s1_sel,s2_sel,s3_sel,s4_sel,s5_sel,s6_sel,s7_sel,s8_sel,s9_sel,sa_sel,sb_sel,sc_sel, sd_sel, se_sel, sf_sel; + wire m0_ack,s0_ack,s1_ack,s2_ack,s3_ack,s4_ack,s5_ack,s6_ack,s7_ack,s8_ack,s9_ack,sa_ack,sb_ack,sc_ack, sd_ack, se_ack, sf_ack; + wire m0_stb,s0_stb,s1_stb,s2_stb,s3_stb,s4_stb,s5_stb,s6_stb,s7_stb,s8_stb,s9_stb,sa_stb,sb_stb,sc_stb, sd_stb, se_stb, sf_stb; + wire m0_cyc,s0_cyc,s1_cyc,s2_cyc,s3_cyc,s4_cyc,s5_cyc,s6_cyc,s7_cyc,s8_cyc,s9_cyc,sa_cyc,sb_cyc,sc_cyc, sd_cyc, se_cyc, sf_cyc; + wire m0_err, m0_rty; + wire m0_we,s0_we,s1_we,s2_we,s3_we,s4_we,s5_we,s6_we,s7_we,s8_we,s9_we,sa_we,sb_we,sc_we,sd_we,se_we,sf_we; + + wb_1master #(.decode_w(8), + .s0_addr(8'b0000_0000),.s0_mask(8'b1110_0000), // 0-8K, Boot RAM + .s1_addr(8'b0100_0000),.s1_mask(8'b1100_0000), // 16K-32K, Buffer Pool + .s2_addr(8'b0011_0000),.s2_mask(8'b1111_1111), // SPI + .s3_addr(8'b0011_0001),.s3_mask(8'b1111_1111), // I2C + .s4_addr(8'b0011_0010),.s4_mask(8'b1111_1111), // GPIO + .s5_addr(8'b0011_0011),.s5_mask(8'b1111_1111), // Readback + .s6_addr(8'b0011_0100),.s6_mask(8'b1111_1111), // Ethernet MAC + .s7_addr(8'b0010_0000),.s7_mask(8'b1111_0000), // 8-12K, Settings Bus (only uses 1K) + .s8_addr(8'b0011_0101),.s8_mask(8'b1111_1111), // PIC + .s9_addr(8'b0011_0110),.s9_mask(8'b1111_1111), // Unused + .sa_addr(8'b0011_0111),.sa_mask(8'b1111_1111), // UART + .sb_addr(8'b0011_1000),.sb_mask(8'b1111_1111), // ATR + .sc_addr(8'b0011_1001),.sc_mask(8'b1111_1111), // Unused + .sd_addr(8'b0011_1010),.sd_mask(8'b1111_1111), // ICAP + .se_addr(8'b0011_1011),.se_mask(8'b1111_1111), // SPI Flash + .sf_addr(8'b1000_0000),.sf_mask(8'b1000_0000), // 32-64K, Main RAM + .dw(dw),.aw(aw),.sw(sw)) wb_1master + (.clk_i(wb_clk),.rst_i(wb_rst), + .m0_dat_o(m0_dat_o),.m0_ack_o(m0_ack),.m0_err_o(m0_err),.m0_rty_o(m0_rty),.m0_dat_i(m0_dat_i), + .m0_adr_i(m0_adr),.m0_sel_i(m0_sel),.m0_we_i(m0_we),.m0_cyc_i(m0_cyc),.m0_stb_i(m0_stb), + .s0_dat_o(s0_dat_o),.s0_adr_o(s0_adr),.s0_sel_o(s0_sel),.s0_we_o (s0_we),.s0_cyc_o(s0_cyc),.s0_stb_o(s0_stb), + .s0_dat_i(s0_dat_i),.s0_ack_i(s0_ack),.s0_err_i(0),.s0_rty_i(0), + .s1_dat_o(s1_dat_o),.s1_adr_o(s1_adr),.s1_sel_o(s1_sel),.s1_we_o (s1_we),.s1_cyc_o(s1_cyc),.s1_stb_o(s1_stb), + .s1_dat_i(s1_dat_i),.s1_ack_i(s1_ack),.s1_err_i(0),.s1_rty_i(0), + .s2_dat_o(s2_dat_o),.s2_adr_o(s2_adr),.s2_sel_o(s2_sel),.s2_we_o (s2_we),.s2_cyc_o(s2_cyc),.s2_stb_o(s2_stb), + .s2_dat_i(s2_dat_i),.s2_ack_i(s2_ack),.s2_err_i(0),.s2_rty_i(0), + .s3_dat_o(s3_dat_o),.s3_adr_o(s3_adr),.s3_sel_o(s3_sel),.s3_we_o (s3_we),.s3_cyc_o(s3_cyc),.s3_stb_o(s3_stb), + .s3_dat_i(s3_dat_i),.s3_ack_i(s3_ack),.s3_err_i(0),.s3_rty_i(0), + .s4_dat_o(s4_dat_o),.s4_adr_o(s4_adr),.s4_sel_o(s4_sel),.s4_we_o (s4_we),.s4_cyc_o(s4_cyc),.s4_stb_o(s4_stb), + .s4_dat_i(s4_dat_i),.s4_ack_i(s4_ack),.s4_err_i(0),.s4_rty_i(0), + .s5_dat_o(s5_dat_o),.s5_adr_o(s5_adr),.s5_sel_o(s5_sel),.s5_we_o (s5_we),.s5_cyc_o(s5_cyc),.s5_stb_o(s5_stb), + .s5_dat_i(s5_dat_i),.s5_ack_i(s5_ack),.s5_err_i(0),.s5_rty_i(0), + .s6_dat_o(s6_dat_o),.s6_adr_o(s6_adr),.s6_sel_o(s6_sel),.s6_we_o (s6_we),.s6_cyc_o(s6_cyc),.s6_stb_o(s6_stb), + .s6_dat_i(s6_dat_i),.s6_ack_i(s6_ack),.s6_err_i(0),.s6_rty_i(0), + .s7_dat_o(s7_dat_o),.s7_adr_o(s7_adr),.s7_sel_o(s7_sel),.s7_we_o (s7_we),.s7_cyc_o(s7_cyc),.s7_stb_o(s7_stb), + .s7_dat_i(s7_dat_i),.s7_ack_i(s7_ack),.s7_err_i(0),.s7_rty_i(0), + .s8_dat_o(s8_dat_o),.s8_adr_o(s8_adr),.s8_sel_o(s8_sel),.s8_we_o (s8_we),.s8_cyc_o(s8_cyc),.s8_stb_o(s8_stb), + .s8_dat_i(s8_dat_i),.s8_ack_i(s8_ack),.s8_err_i(0),.s8_rty_i(0), + .s9_dat_o(s9_dat_o),.s9_adr_o(s9_adr),.s9_sel_o(s9_sel),.s9_we_o (s9_we),.s9_cyc_o(s9_cyc),.s9_stb_o(s9_stb), + .s9_dat_i(s9_dat_i),.s9_ack_i(s9_ack),.s9_err_i(0),.s9_rty_i(0), + .sa_dat_o(sa_dat_o),.sa_adr_o(sa_adr),.sa_sel_o(sa_sel),.sa_we_o(sa_we),.sa_cyc_o(sa_cyc),.sa_stb_o(sa_stb), + .sa_dat_i(sa_dat_i),.sa_ack_i(sa_ack),.sa_err_i(0),.sa_rty_i(0), + .sb_dat_o(sb_dat_o),.sb_adr_o(sb_adr),.sb_sel_o(sb_sel),.sb_we_o(sb_we),.sb_cyc_o(sb_cyc),.sb_stb_o(sb_stb), + .sb_dat_i(sb_dat_i),.sb_ack_i(sb_ack),.sb_err_i(0),.sb_rty_i(0), + .sc_dat_o(sc_dat_o),.sc_adr_o(sc_adr),.sc_sel_o(sc_sel),.sc_we_o(sc_we),.sc_cyc_o(sc_cyc),.sc_stb_o(sc_stb), + .sc_dat_i(sc_dat_i),.sc_ack_i(sc_ack),.sc_err_i(0),.sc_rty_i(0), + .sd_dat_o(sd_dat_o),.sd_adr_o(sd_adr),.sd_sel_o(sd_sel),.sd_we_o(sd_we),.sd_cyc_o(sd_cyc),.sd_stb_o(sd_stb), + .sd_dat_i(sd_dat_i),.sd_ack_i(sd_ack),.sd_err_i(0),.sd_rty_i(0), + .se_dat_o(se_dat_o),.se_adr_o(se_adr),.se_sel_o(se_sel),.se_we_o(se_we),.se_cyc_o(se_cyc),.se_stb_o(se_stb), + .se_dat_i(se_dat_i),.se_ack_i(se_ack),.se_err_i(0),.se_rty_i(0), + .sf_dat_o(sf_dat_o),.sf_adr_o(sf_adr),.sf_sel_o(sf_sel),.sf_we_o(sf_we),.sf_cyc_o(sf_cyc),.sf_stb_o(sf_stb), + .sf_dat_i(sf_dat_i),.sf_ack_i(sf_ack),.sf_err_i(0),.sf_rty_i(0)); + + ////////////////////////////////////////////////////////////////////////////////////////// + // Reset Controller + + // ///////////////////////////////////////////////////////////////////////// + // Processor + wire [31:0] if_dat; + wire [15:0] if_adr; + + aeMB_core_BE #(.ISIZ(16),.DSIZ(16),.MUL(0),.BSF(1)) + aeMB (.sys_clk_i(wb_clk), .sys_rst_i(wb_rst), + // Instruction Wishbone bus to I-RAM + .if_adr(if_adr), + .if_dat(if_dat), + // Data Wishbone bus to system bus fabric + .dwb_we_o(m0_we),.dwb_stb_o(m0_stb),.dwb_dat_o(m0_dat_i),.dwb_adr_o(m0_adr), + .dwb_dat_i(m0_dat_o),.dwb_ack_i(m0_ack),.dwb_sel_o(m0_sel),.dwb_cyc_o(m0_cyc), + // Interrupts and exceptions + .sys_int_i(proc_int),.sys_exc_i(bus_error) ); + + assign bus_error = m0_err | m0_rty; + + // ///////////////////////////////////////////////////////////////////////// + // Dual Ported Boot RAM -- D-Port is Slave #0 on main Wishbone + // Dual Ported Main RAM -- D-Port is Slave #F on main Wishbone + // I-port connects directly to processor + + wire [31:0] if_dat_boot, if_dat_main; + assign if_dat = if_adr[15] ? if_dat_main : if_dat_boot; + + bootram bootram(.clk(wb_clk), .reset(wb_rst), + .if_adr(if_adr[12:0]), .if_data(if_dat_boot), + .dwb_adr_i(s0_adr[12:0]), .dwb_dat_i(s0_dat_o), .dwb_dat_o(s0_dat_i), + .dwb_we_i(s0_we), .dwb_ack_o(s0_ack), .dwb_stb_i(s0_stb), .dwb_sel_i(s0_sel)); + +////blinkenlights v0.1 +//defparam bootram.RAM0.INIT_00=256'hbc32fff0_aa43502b_b00000fe_30630001_80000000_10600000_a48500ff_10a00000; +//defparam bootram.RAM0.INIT_01=256'ha48500ff_b810ffd0_f880200c_30a50001_10830000_308000ff_be23000c_a4640001; + +`include "bootloader.rmi" + + ram_harvard2 #(.AWIDTH(15),.RAM_SIZE(32768)) + sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), + .if_adr(if_adr[14:0]), .if_data(if_dat_main), + .dwb_adr_i(sf_adr[14:0]), .dwb_dat_i(sf_dat_o), .dwb_dat_o(sf_dat_i), + .dwb_we_i(sf_we), .dwb_ack_o(sf_ack), .dwb_stb_i(sf_stb), .dwb_sel_i(sf_sel)); + + // ///////////////////////////////////////////////////////////////////////// + // Buffer Pool, slave #1 + wire rd0_ready_i, rd0_ready_o; + wire rd1_ready_i, rd1_ready_o; + wire rd2_ready_i, rd2_ready_o; + wire rd3_ready_i, rd3_ready_o; + wire [3:0] rd0_flags, rd1_flags, rd2_flags, rd3_flags; + wire [31:0] rd0_dat, rd1_dat, rd2_dat, rd3_dat; + + wire wr0_ready_i, wr0_ready_o; + wire wr1_ready_i, wr1_ready_o; + wire wr2_ready_i, wr2_ready_o; + wire wr3_ready_i, wr3_ready_o; + wire [3:0] wr0_flags, wr1_flags, wr2_flags, wr3_flags; + wire [31:0] wr0_dat, wr1_dat, wr2_dat, wr3_dat; + + buffer_pool #(.BUF_SIZE(9), .SET_ADDR(SR_BUF_POOL)) buffer_pool + (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), + .wb_we_i(s1_we),.wb_stb_i(s1_stb),.wb_adr_i(s1_adr),.wb_dat_i(s1_dat_o), + .wb_dat_o(s1_dat_i),.wb_ack_o(s1_ack),.wb_err_o(),.wb_rty_o(), + + .stream_clk(dsp_clk), .stream_rst(dsp_rst), + .set_stb(set_stb_dsp), .set_addr(set_addr_dsp), .set_data(set_data_dsp), + .status(status),.sys_int_o(buffer_int), + + .s0(status_b0),.s1(status_b1),.s2(status_b2),.s3(status_b3), + .s4(status_b4),.s5(status_b5),.s6(status_b6),.s7(status_b7), + + // Write Interfaces + .wr0_data_i(wr0_dat), .wr0_flags_i(wr0_flags), .wr0_ready_i(wr0_ready_i), .wr0_ready_o(wr0_ready_o), + .wr1_data_i(wr1_dat), .wr1_flags_i(wr1_flags), .wr1_ready_i(wr1_ready_i), .wr1_ready_o(wr1_ready_o), + .wr2_data_i(wr2_dat), .wr2_flags_i(wr2_flags), .wr2_ready_i(wr2_ready_i), .wr2_ready_o(wr2_ready_o), + .wr3_data_i(wr3_dat), .wr3_flags_i(wr3_flags), .wr3_ready_i(wr3_ready_i), .wr3_ready_o(wr3_ready_o), + // Read Interfaces + .rd0_data_o(rd0_dat), .rd0_flags_o(rd0_flags), .rd0_ready_i(rd0_ready_i), .rd0_ready_o(rd0_ready_o), + .rd1_data_o(rd1_dat), .rd1_flags_o(rd1_flags), .rd1_ready_i(rd1_ready_i), .rd1_ready_o(rd1_ready_o), + .rd2_data_o(rd2_dat), .rd2_flags_o(rd2_flags), .rd2_ready_i(rd2_ready_i), .rd2_ready_o(rd2_ready_o), + .rd3_data_o(rd3_dat), .rd3_flags_o(rd3_flags), .rd3_ready_i(rd3_ready_i), .rd3_ready_o(rd3_ready_o) + ); + + wire [31:0] status_enc; + priority_enc priority_enc (.in({16'b0,status[15:0]}), .out(status_enc)); + + // ///////////////////////////////////////////////////////////////////////// + // SPI -- Slave #2 + spi_top shared_spi + (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.wb_adr_i(s2_adr[4:0]),.wb_dat_i(s2_dat_o), + .wb_dat_o(s2_dat_i),.wb_sel_i(s2_sel),.wb_we_i(s2_we),.wb_stb_i(s2_stb), + .wb_cyc_i(s2_cyc),.wb_ack_o(s2_ack),.wb_err_o(),.wb_int_o(spi_int), + .ss_pad_o({sen_adc, sen_tx_db,sen_tx_adc,sen_tx_dac,sen_rx_db,sen_rx_adc,sen_rx_dac,sen_dac,sen_clk}), + .sclk_pad_o(sclk),.mosi_pad_o(mosi),.miso_pad_i(miso) ); + + // ///////////////////////////////////////////////////////////////////////// + // I2C -- Slave #3 + i2c_master_top #(.ARST_LVL(1)) + i2c (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.arst_i(1'b0), + .wb_adr_i(s3_adr[4:2]),.wb_dat_i(s3_dat_o[7:0]),.wb_dat_o(s3_dat_i[7:0]), + .wb_we_i(s3_we),.wb_stb_i(s3_stb),.wb_cyc_i(s3_cyc), + .wb_ack_o(s3_ack),.wb_inta_o(i2c_int), + .scl_pad_i(scl_pad_i),.scl_pad_o(scl_pad_o),.scl_padoen_o(scl_pad_oen_o), + .sda_pad_i(sda_pad_i),.sda_pad_o(sda_pad_o),.sda_padoen_o(sda_pad_oen_o) ); + + assign s3_dat_i[31:8] = 24'd0; + + // ///////////////////////////////////////////////////////////////////////// + // GPIOs -- Slave #4 + nsgpio nsgpio(.clk_i(wb_clk),.rst_i(wb_rst), + .cyc_i(s4_cyc),.stb_i(s4_stb),.adr_i(s4_adr[3:0]),.we_i(s4_we), + .dat_i(s4_dat_o),.dat_o(s4_dat_i),.ack_o(s4_ack), + .atr(atr_lines),.debug_0(debug_gpio_0),.debug_1(debug_gpio_1), + .gpio({io_tx,io_rx}) ); + + // ///////////////////////////////////////////////////////////////////////// + // Buffer Pool Status -- Slave #5 + + reg [31:0] cycle_count; + always @(posedge wb_clk) + if(wb_rst) + cycle_count <= 0; + else + cycle_count <= cycle_count + 1; + + //compatibility number -> increment when the fpga has been sufficiently altered + localparam compat_num = 32'd3; + + wb_readback_mux buff_pool_status + (.wb_clk_i(wb_clk), .wb_rst_i(wb_rst), .wb_stb_i(s5_stb), + .wb_adr_i(s5_adr), .wb_dat_o(s5_dat_i), .wb_ack_o(s5_ack), + + .word00(status_b0),.word01(status_b1),.word02(status_b2),.word03(status_b3), + .word04(status_b4),.word05(status_b5),.word06(status_b6),.word07(status_b7), + .word08(status),.word09({sim_mode,27'b0,clock_divider[3:0]}),.word10(vita_time[63:32]), + .word11(vita_time[31:0]),.word12(compat_num),.word13(irq),.word14(status_enc),.word15(cycle_count) + ); + + // ///////////////////////////////////////////////////////////////////////// + // Ethernet MAC Slave #6 + + wire [18:0] rx_f19_data, tx_f19_data; + wire rx_f19_src_rdy, rx_f19_dst_rdy, rx_f36_src_rdy, rx_f36_dst_rdy; + + simple_gemac_wrapper19 #(.RXFIFOSIZE(11), .TXFIFOSIZE(6)) simple_gemac_wrapper19 + (.clk125(clk_to_mac), .reset(wb_rst), + .GMII_GTX_CLK(GMII_GTX_CLK), .GMII_TX_EN(GMII_TX_EN), + .GMII_TX_ER(GMII_TX_ER), .GMII_TXD(GMII_TXD), + .GMII_RX_CLK(GMII_RX_CLK), .GMII_RX_DV(GMII_RX_DV), + .GMII_RX_ER(GMII_RX_ER), .GMII_RXD(GMII_RXD), + .sys_clk(dsp_clk), + .rx_f19_data(rx_f19_data), .rx_f19_src_rdy(rx_f19_src_rdy), .rx_f19_dst_rdy(rx_f19_dst_rdy), + .tx_f19_data(tx_f19_data), .tx_f19_src_rdy(tx_f19_src_rdy), .tx_f19_dst_rdy(tx_f19_dst_rdy), + .wb_clk(wb_clk), .wb_rst(wb_rst), .wb_stb(s6_stb), .wb_cyc(s6_cyc), .wb_ack(s6_ack), + .wb_we(s6_we), .wb_adr(s6_adr), .wb_dat_i(s6_dat_o), .wb_dat_o(s6_dat_i), + .mdio(MDIO), .mdc(MDC), + .debug(debug_mac)); + + wire [35:0] udp_tx_data, udp_rx_data; + wire udp_tx_src_rdy, udp_tx_dst_rdy, udp_rx_src_rdy, udp_rx_dst_rdy; + + udp_wrapper #(.BASE(SR_UDP_SM)) udp_wrapper + (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + .set_stb(set_stb_dsp), .set_addr(set_addr_dsp), .set_data(set_data_dsp), + .rx_f19_data(rx_f19_data), .rx_f19_src_rdy_i(rx_f19_src_rdy), .rx_f19_dst_rdy_o(rx_f19_dst_rdy), + .tx_f19_data(tx_f19_data), .tx_f19_src_rdy_o(tx_f19_src_rdy), .tx_f19_dst_rdy_i(tx_f19_dst_rdy), + .rx_f36_data(udp_rx_data), .rx_f36_src_rdy_o(udp_rx_src_rdy), .rx_f36_dst_rdy_i(udp_rx_dst_rdy), + .tx_f36_data(udp_tx_data), .tx_f36_src_rdy_i(udp_tx_src_rdy), .tx_f36_dst_rdy_o(udp_tx_dst_rdy), + .debug(debug_udp) ); + + wire [35:0] tx_err_data, udp1_tx_data; + wire tx_err_src_rdy, tx_err_dst_rdy, udp1_tx_src_rdy, udp1_tx_dst_rdy; + + fifo_cascade #(.WIDTH(36), .SIZE(ETH_TX_FIFOSIZE)) tx_eth_fifo + (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + .datain({rd2_flags,rd2_dat}), .src_rdy_i(rd2_ready_o), .dst_rdy_o(rd2_ready_i), + .dataout(udp1_tx_data), .src_rdy_o(udp1_tx_src_rdy), .dst_rdy_i(udp1_tx_dst_rdy)); + + fifo36_mux #(.prio(0)) mux_err_stream + (.clk(dsp_clk), .reset(dsp_reset), .clear(0), + .data0_i(udp1_tx_data), .src0_rdy_i(udp1_tx_src_rdy), .dst0_rdy_o(udp1_tx_dst_rdy), + .data1_i(tx_err_data), .src1_rdy_i(tx_err_src_rdy), .dst1_rdy_o(tx_err_dst_rdy), + .data_o(udp_tx_data), .src_rdy_o(udp_tx_src_rdy), .dst_rdy_i(udp_tx_dst_rdy)); + + fifo_cascade #(.WIDTH(36), .SIZE(ETH_RX_FIFOSIZE)) rx_eth_fifo + (.clk(dsp_clk), .reset(dsp_rst), .clear(0), + .datain(udp_rx_data), .src_rdy_i(udp_rx_src_rdy), .dst_rdy_o(udp_rx_dst_rdy), + .dataout({wr2_flags,wr2_dat}), .src_rdy_o(wr2_ready_i), .dst_rdy_i(wr2_ready_o)); + + // ///////////////////////////////////////////////////////////////////////// + // Settings Bus -- Slave #7 + settings_bus settings_bus + (.wb_clk(wb_clk),.wb_rst(wb_rst),.wb_adr_i(s7_adr),.wb_dat_i(s7_dat_o), + .wb_stb_i(s7_stb),.wb_we_i(s7_we),.wb_ack_o(s7_ack), + .strobe(set_stb),.addr(set_addr),.data(set_data)); + + assign s7_dat_i = 32'd0; + + settings_bus_crossclock settings_bus_crossclock + (.clk_i(wb_clk), .rst_i(wb_rst), .set_stb_i(set_stb), .set_addr_i(set_addr), .set_data_i(set_data), + .clk_o(dsp_clk), .rst_o(dsp_rst), .set_stb_o(set_stb_dsp), .set_addr_o(set_addr_dsp), .set_data_o(set_data_dsp)); + + // Output control lines + wire [7:0] clock_outs, serdes_outs, adc_outs; + assign {clock_ready, clk_en[1:0], clk_sel[1:0]} = clock_outs[4:0]; + assign {ser_enable, ser_prbsen, ser_loopen, ser_rx_en} = serdes_outs[3:0]; + assign {adc_oe_a, adc_on_a, adc_oe_b, adc_on_b } = adc_outs[3:0]; + + wire phy_reset; + assign PHY_RESETn = ~phy_reset; + + setting_reg #(.my_addr(0),.width(8)) sr_clk (.clk(wb_clk),.rst(wb_rst),.strobe(s7_ack),.addr(set_addr), + .in(set_data),.out(clock_outs),.changed()); + setting_reg #(.my_addr(1),.width(8)) sr_ser (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(serdes_outs),.changed()); + setting_reg #(.my_addr(2),.width(8)) sr_adc (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(adc_outs),.changed()); + setting_reg #(.my_addr(4),.width(1)) sr_phy (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(phy_reset),.changed()); + + // ///////////////////////////////////////////////////////////////////////// + // LEDS + // register 8 determines whether leds are controlled by SW or not + // 1 = controlled by HW, 0 = by SW + // In Rev3 there are only 6 leds, and the highest one is on the ETH connector + + wire [7:0] led_src, led_sw; + wire [7:0] led_hw = {run_tx, run_rx, clk_status, serdes_link_up, 1'b0}; + + setting_reg #(.my_addr(3),.width(8)) sr_led (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(led_sw),.changed()); + + setting_reg #(.my_addr(8),.width(8), .at_reset(8'b0001_1110)) + sr_led_src (.clk(wb_clk),.rst(wb_rst), .strobe(set_stb),.addr(set_addr), .in(set_data),.out(led_src),.changed()); + + assign leds = (led_src & led_hw) | (~led_src & led_sw); + + // ///////////////////////////////////////////////////////////////////////// + // Interrupt Controller, Slave #8 + + // Pass interrupts on dsp_clk to wb_clk. These need edge triggering in the pic + wire underrun_wb, overrun_wb, pps_wb; + + oneshot_2clk underrun_1s (.clk_in(dsp_clk), .in(underrun), .clk_out(wb_clk), .out(underrun_wb)); + oneshot_2clk overrun_1s (.clk_in(dsp_clk), .in(overrun), .clk_out(wb_clk), .out(overrun_wb)); + oneshot_2clk pps_1s (.clk_in(dsp_clk), .in(pps_int), .clk_out(wb_clk), .out(pps_wb)); + + assign irq= {{8'b0}, + {uart_tx_int[3:0], uart_rx_int[3:0]}, + {2'b0, button, periodic_int, clk_status, serdes_link_up, 2'b00}, + {pps_wb,overrun_wb,underrun_wb,PHY_INTn,i2c_int,spi_int,onetime_int,buffer_int}}; + + pic pic(.clk_i(wb_clk),.rst_i(wb_rst),.cyc_i(s8_cyc),.stb_i(s8_stb),.adr_i(s8_adr[4:2]), + .we_i(s8_we),.dat_i(s8_dat_o),.dat_o(s8_dat_i),.ack_o(s8_ack),.int_o(proc_int), + .irq(irq) ); + + // ///////////////////////////////////////////////////////////////////////// + // Master Timer, Slave #9 + + // No longer used, replaced with simple_timer below + assign s9_ack = 0; + + // ///////////////////////////////////////////////////////////////////////// + // Simple Timer interrupts + + simple_timer #(.BASE(SR_SIMTIMER)) simple_timer + (.clk(wb_clk), .reset(wb_rst), + .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), + .onetime_int(onetime_int), .periodic_int(periodic_int)); + + // ///////////////////////////////////////////////////////////////////////// + // UART, Slave #10 + + quad_uart #(.TXDEPTH(3),.RXDEPTH(3)) uart // depth of 3 is 128 entries + (.clk_i(wb_clk),.rst_i(wb_rst), + .we_i(sa_we),.stb_i(sa_stb),.cyc_i(sa_cyc),.ack_o(sa_ack), + .adr_i(sa_adr[6:2]),.dat_i(sa_dat_o),.dat_o(sa_dat_i), + .rx_int_o(uart_rx_int),.tx_int_o(uart_tx_int), + .tx_o(uart_tx_o),.rx_i(uart_rx_i),.baud_o(uart_baud_o)); + + // ///////////////////////////////////////////////////////////////////////// + // ATR Controller, Slave #11 + + reg run_rx_d1; + always @(posedge dsp_clk) + run_rx_d1 <= run_rx; + + atr_controller atr_controller + (.clk_i(wb_clk),.rst_i(wb_rst), + .adr_i(sb_adr[5:0]),.sel_i(sb_sel),.dat_i(sb_dat_o),.dat_o(sb_dat_i), + .we_i(sb_we),.stb_i(sb_stb),.cyc_i(sb_cyc),.ack_o(sb_ack), + .run_rx(run_rx_d1),.run_tx(run_tx),.ctrl_lines(atr_lines) ); + + // ////////////////////////////////////////////////////////////////////////// + // Time Sync, Slave #12 + + // No longer used, see time_64bit. Still need to handle mimo time, though + assign sc_ack = 0; + + // ///////////////////////////////////////////////////////////////////////// + // ICAP for reprogramming the FPGA, Slave #13 (D) + + s3a_icap_wb s3a_icap_wb + (.clk(wb_clk), .reset(wb_rst), .cyc_i(sd_cyc), .stb_i(sd_stb), + .we_i(sd_we), .ack_o(sd_ack), .dat_i(sd_dat_o), .dat_o(sd_dat_i)); + + // ///////////////////////////////////////////////////////////////////////// + // SPI for Flash -- Slave #14 (E) + spi_top flash_spi + (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.wb_adr_i(se_adr[4:0]),.wb_dat_i(se_dat_o), + .wb_dat_o(se_dat_i),.wb_sel_i(se_sel),.wb_we_i(se_we),.wb_stb_i(se_stb), + .wb_cyc_i(se_cyc),.wb_ack_o(se_ack),.wb_err_o(se_err),.wb_int_o(spiflash_int), + .ss_pad_o(spiflash_cs), + .sclk_pad_o(spiflash_clk),.mosi_pad_o(spiflash_mosi),.miso_pad_i(spiflash_miso) ); + + // ///////////////////////////////////////////////////////////////////////// + // DSP RX + wire [31:0] sample_rx, sample_tx; + wire strobe_rx, strobe_tx; + wire rx_dst_rdy, rx_src_rdy, rx1_dst_rdy, rx1_src_rdy; + wire [99:0] rx_data; + wire [35:0] rx1_data; + + dsp_core_rx #(.BASE(SR_RX_DSP)) dsp_core_rx + (.clk(dsp_clk),.rst(dsp_rst), + .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), + .adc_a(adc_a),.adc_ovf_a(adc_ovf_a),.adc_b(adc_b),.adc_ovf_b(adc_ovf_b), + .sample(sample_rx), .run(run_rx_d1), .strobe(strobe_rx), + .debug(debug_rx_dsp) ); + + wire [31:0] vrc_debug; + wire clear_rx; + + setting_reg #(.my_addr(SR_RX_CTRL+3)) sr_clear + (.clk(dsp_clk),.rst(dsp_rst), + .strobe(set_stb_dsp),.addr(set_addr_dsp),.in(set_data_dsp), + .out(),.changed(clear_rx)); + + vita_rx_control #(.BASE(SR_RX_CTRL), .WIDTH(32)) vita_rx_control + (.clk(dsp_clk), .reset(dsp_rst), .clear(clear_rx), + .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), + .vita_time(vita_time), .overrun(overrun), + .sample(sample_rx), .run(run_rx), .strobe(strobe_rx), + .sample_fifo_o(rx_data), .sample_fifo_dst_rdy_i(rx_dst_rdy), .sample_fifo_src_rdy_o(rx_src_rdy), + .debug_rx(vrc_debug)); + + wire [3:0] vita_state; + + vita_rx_framer #(.BASE(SR_RX_CTRL), .MAXCHAN(1)) vita_rx_framer + (.clk(dsp_clk), .reset(dsp_rst), .clear(clear_rx), + .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), + .sample_fifo_i(rx_data), .sample_fifo_dst_rdy_o(rx_dst_rdy), .sample_fifo_src_rdy_i(rx_src_rdy), + .data_o(rx1_data), .dst_rdy_i(rx1_dst_rdy), .src_rdy_o(rx1_src_rdy), + .fifo_occupied(), .fifo_full(), .fifo_empty(), + .debug_rx(vita_state) ); + + fifo_cascade #(.WIDTH(36), .SIZE(DSP_RX_FIFOSIZE)) rx_fifo_cascade + (.clk(dsp_clk), .reset(dsp_rst), .clear(clear_rx), + .datain(rx1_data), .src_rdy_i(rx1_src_rdy), .dst_rdy_o(rx1_dst_rdy), + .dataout({wr1_flags,wr1_dat}), .src_rdy_o(wr1_ready_i), .dst_rdy_i(wr1_ready_o)); + + // /////////////////////////////////////////////////////////////////////////////////// + // DSP TX + + wire [35:0] tx_data; + wire tx_src_rdy, tx_dst_rdy; + wire [31:0] debug_vt; + wire clear_tx; + + setting_reg #(.my_addr(SR_TX_CTRL+1)) sr_clear_tx + (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(),.changed(clear_tx)); + + assign RAM_A[20:18] = 3'b0; + + ext_fifo #(.EXT_WIDTH(36),.INT_WIDTH(36),.RAM_DEPTH(18),.FIFO_DEPTH(18)) + ext_fifo_i1 + (.int_clk(dsp_clk), + .ext_clk(dsp_clk), + .rst(dsp_rst | clear_tx), + .RAM_D_pi(RAM_D_pi), + .RAM_D_po(RAM_D_po), + .RAM_D_poe(RAM_D_poe), + .RAM_A(RAM_A[17:0]), + .RAM_WEn(RAM_WEn), + .RAM_CENn(RAM_CENn), + .RAM_LDn(RAM_LDn), + .RAM_OEn(RAM_OEn), + .RAM_CE1n(RAM_CE1n), + .datain({rd1_flags[3:2],rd1_dat[31:16],rd1_flags[1:0],rd1_dat[15:0]}), + .src_rdy_i(rd1_ready_o), + .dst_rdy_o(rd1_ready_i), + .dataout({tx_data[35:34],tx_data[31:16],tx_data[33:32],tx_data[15:0]}), + .src_rdy_o(tx_src_rdy), + .dst_rdy_i(tx_dst_rdy), + .debug(debug_extfifo), + .debug2(debug_extfifo2) ); + + vita_tx_chain #(.BASE_CTRL(SR_TX_CTRL), .BASE_DSP(SR_TX_DSP), + .REPORT_ERROR(1), .DO_FLOW_CONTROL(1), + .PROT_ENG_FLAGS(1), .USE_TRANS_HEADER(1)) + vita_tx_chain + (.clk(dsp_clk), .reset(dsp_rst), + .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), + .vita_time(vita_time), + .tx_data_i(tx_data), .tx_src_rdy_i(tx_src_rdy), .tx_dst_rdy_o(tx_dst_rdy), + .err_data_o(tx_err_data), .err_src_rdy_o(tx_err_src_rdy), .err_dst_rdy_i(tx_err_dst_rdy), + .dac_a(dac_a),.dac_b(dac_b), + .underrun(underrun), .run(run_tx), + .debug(debug_vt)); + + assign dsp_rst = wb_rst; + + // /////////////////////////////////////////////////////////////////////////////////// + // SERDES + + serdes #(.TXFIFOSIZE(SERDES_TX_FIFOSIZE),.RXFIFOSIZE(SERDES_RX_FIFOSIZE)) serdes + (.clk(dsp_clk),.rst(dsp_rst), + .ser_tx_clk(ser_tx_clk),.ser_t(ser_t),.ser_tklsb(ser_tklsb),.ser_tkmsb(ser_tkmsb), + .rd_dat_i(rd0_dat),.rd_flags_i(rd0_flags),.rd_ready_o(rd0_ready_i),.rd_ready_i(rd0_ready_o), + .ser_rx_clk(ser_rx_clk),.ser_r(ser_r),.ser_rklsb(ser_rklsb),.ser_rkmsb(ser_rkmsb), + .wr_dat_o(wr0_dat),.wr_flags_o(wr0_flags),.wr_ready_o(wr0_ready_i),.wr_ready_i(wr0_ready_o), + .tx_occupied(ser_tx_occ),.tx_full(ser_tx_full),.tx_empty(ser_tx_empty), + .rx_occupied(ser_rx_occ),.rx_full(ser_rx_full),.rx_empty(ser_rx_empty), + .serdes_link_up(serdes_link_up),.debug0(debug_serdes0), .debug1(debug_serdes1) ); + + // ///////////////////////////////////////////////////////////////////////// + // VITA Timing + + time_64bit #(.TICKS_PER_SEC(32'd100000000),.BASE(SR_TIME64)) time_64bit + (.clk(dsp_clk), .rst(dsp_rst), .set_stb(set_stb_dsp), .set_addr(set_addr_dsp), .set_data(set_data_dsp), + .pps(pps_in), .vita_time(vita_time), .pps_int(pps_int)); + + // ///////////////////////////////////////////////////////////////////////////////////////// + // Debug Pins + + assign debug_clk = 2'b00; // {dsp_clk, clk_to_mac}; + assign debug = 32'd0; // debug_extfifo; + assign debug_gpio_0 = 32'd0; + assign debug_gpio_1 = 32'd0; + +endmodule // u2_core diff --git a/fpga/usrp2/vrt/gen_context_pkt.v b/fpga/usrp2/vrt/gen_context_pkt.v index 0eb035f3e..bf83aeae5 100644 --- a/fpga/usrp2/vrt/gen_context_pkt.v +++ b/fpga/usrp2/vrt/gen_context_pkt.v @@ -7,8 +7,7 @@ module gen_context_pkt input [31:0] streamid, input [63:0] vita_time, input [31:0] message, - input [31:0] seqnum0, - input [31:0] seqnum1, + input [31:0] seqnum, output [35:0] data_o, output src_rdy_o, input dst_rdy_i); localparam CTXT_IDLE = 0; @@ -19,9 +18,8 @@ module gen_context_pkt localparam CTXT_TICS = 5; localparam CTXT_TICS2 = 6; localparam CTXT_MESSAGE = 7; - localparam CTXT_FLOWCTRL0 = 8; - localparam CTXT_FLOWCTRL1 = 9; - localparam CTXT_DONE = 10; + localparam CTXT_FLOWCTRL = 8; + localparam CTXT_DONE = 9; reg [33:0] data_int; wire src_rdy_int, dst_rdy_int; @@ -36,11 +34,12 @@ module gen_context_pkt else if(trigger) stored_message <= message; - else if(ctxt_state == CTXT_FLOWCTRL1) + else if(ctxt_state == CTXT_DONE) stored_message <= 0; - + + // Don't want to clear most of this to avoid getting stuck with a half packet in the pipe always @(posedge clk) - if(reset | clear) + if(reset) begin ctxt_state <= CTXT_IDLE; seqno <= 0; @@ -72,19 +71,18 @@ module gen_context_pkt always @* case(ctxt_state) CTXT_PROT_ENG : data_int <= { 2'b01, 16'd1, 16'd32 }; - CTXT_HEADER : data_int <= { 1'b0, (PROT_ENG_FLAGS ? 1'b0 : 1'b1), 12'b010100001101, seqno, 16'd8 }; + CTXT_HEADER : data_int <= { 1'b0, (PROT_ENG_FLAGS ? 1'b0 : 1'b1), 12'b010100001101, seqno, 16'd7 }; CTXT_STREAMID : data_int <= { 2'b00, streamid }; CTXT_SECS : data_int <= { 2'b00, err_time[63:32] }; CTXT_TICS : data_int <= { 2'b00, 32'd0 }; CTXT_TICS2 : data_int <= { 2'b00, err_time[31:0] }; CTXT_MESSAGE : data_int <= { 2'b00, message }; - CTXT_FLOWCTRL0 : data_int <= { 2'b00, seqnum0 }; - CTXT_FLOWCTRL1 : data_int <= { 2'b10, seqnum1 }; + CTXT_FLOWCTRL : data_int <= { 2'b10, seqnum }; default : data_int <= {2'b00, 32'b00}; endcase // case (ctxt_state) fifo_short #(.WIDTH(34)) ctxt_fifo - (.clk(clk), .reset(reset), .clear(clear), + (.clk(clk), .reset(reset), .clear(0), .datain(data_int), .src_rdy_i(src_rdy_int), .dst_rdy_o(dst_rdy_int), .dataout(data_o[33:0]), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i)); assign data_o[35:34] = 2'b00; diff --git a/fpga/usrp2/vrt/vita_rx_control.v b/fpga/usrp2/vrt/vita_rx_control.v index 93673d292..0769f3a24 100644 --- a/fpga/usrp2/vrt/vita_rx_control.v +++ b/fpga/usrp2/vrt/vita_rx_control.v @@ -9,7 +9,7 @@ module vita_rx_control output overrun, // To vita_rx_framer - output [4+64+WIDTH-1:0] sample_fifo_o, + output [5+64+WIDTH-1:0] sample_fifo_o, output sample_fifo_src_rdy_o, input sample_fifo_dst_rdy_i, @@ -25,16 +25,14 @@ module vita_rx_control wire [63:0] new_time; wire [31:0] new_command; - wire sc_pre1, clear_int, clear_reg; + wire sc_pre1; - assign clear_int = clear | clear_reg; - wire [63:0] rcvtime_pre; reg [63:0] rcvtime; wire [28:0] numlines_pre; wire send_imm_pre, chain_pre, reload_pre; reg send_imm, chain, reload; - wire full_ctrl, read_ctrl, empty_ctrl, write_ctrl; + wire read_ctrl, not_empty_ctrl, write_ctrl; reg sc_pre2; wire [33:0] fifo_line; reg [28:0] lines_left, lines_total; @@ -54,21 +52,22 @@ module vita_rx_control (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(new_time[31:0]),.changed(sc_pre1)); - setting_reg #(.my_addr(BASE+3)) sr_clear - (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), - .in(set_data),.out(),.changed(clear_reg)); - // FIFO to store commands sent from the settings bus always @(posedge clk) - sc_pre2 <= sc_pre1; + if(reset | clear) + sc_pre2 <= 0; + else + sc_pre2 <= sc_pre1; + assign write_ctrl = sc_pre1 & ~sc_pre2; wire [4:0] command_queue_len; - shortfifo #(.WIDTH(96)) commandfifo - (.clk(clk),.rst(reset),.clear(clear_int), - .datain({new_command,new_time}), .write(write_ctrl&~full_ctrl), .full(full_ctrl), + + fifo_short #(.WIDTH(96)) commandfifo + (.clk(clk),.reset(reset),.clear(clear), + .datain({new_command,new_time}), .src_rdy_i(write_ctrl), .dst_rdy_o(), .dataout({send_imm_pre,chain_pre,reload_pre,numlines_pre,rcvtime_pre}), - .read(read_ctrl), .empty(empty_ctrl), + .src_rdy_o(not_empty_ctrl), .dst_rdy_i(read_ctrl), .occupied(command_queue_len), .space() ); reg [33:0] pkt_fifo_line; @@ -79,20 +78,23 @@ module vita_rx_control localparam IBS_OVERRUN = 4; localparam IBS_BROKENCHAIN = 5; localparam IBS_LATECMD = 6; - - wire signal_cmd_done = (lines_left == 1) & (~chain | (~empty_ctrl & (numlines_pre==0))); + localparam IBS_ZEROLEN = 7; + + wire signal_cmd_done = (lines_left == 1) & (~chain | (not_empty_ctrl & (numlines_pre==0))); wire signal_overrun = (ibs_state == IBS_OVERRUN); wire signal_brokenchain = (ibs_state == IBS_BROKENCHAIN); wire signal_latecmd = (ibs_state == IBS_LATECMD); + wire signal_zerolen = (ibs_state == IBS_ZEROLEN); // Buffer of samples for while we're writing the packet headers - wire [3:0] flags = {signal_overrun,signal_brokenchain,signal_latecmd,signal_cmd_done}; + wire [4:0] flags = {signal_zerolen,signal_overrun,signal_brokenchain,signal_latecmd,signal_cmd_done}; wire attempt_sample_write = ((run & strobe) | (ibs_state==IBS_OVERRUN) | - (ibs_state==IBS_BROKENCHAIN) | (ibs_state==IBS_LATECMD)); + (ibs_state==IBS_BROKENCHAIN) | (ibs_state==IBS_LATECMD) | + (ibs_state==IBS_ZEROLEN)); - fifo_short #(.WIDTH(4+64+WIDTH)) rx_sample_fifo - (.clk(clk),.reset(reset),.clear(clear_int), + fifo_short #(.WIDTH(5+64+WIDTH)) rx_sample_fifo + (.clk(clk),.reset(reset),.clear(clear), .datain({flags,vita_time,sample}), .src_rdy_i(attempt_sample_write), .dst_rdy_o(sample_fifo_in_rdy), .dataout(sample_fifo_o), .src_rdy_o(sample_fifo_src_rdy_o), .dst_rdy_i(sample_fifo_dst_rdy_i), @@ -107,7 +109,7 @@ module vita_rx_control wire full = ~sample_fifo_in_rdy; always @(posedge clk) - if(reset | clear_int) + if(reset | clear) begin ibs_state <= IBS_IDLE; lines_left <= 0; @@ -120,12 +122,15 @@ module vita_rx_control else case(ibs_state) IBS_IDLE : - if(~empty_ctrl) + if(not_empty_ctrl) begin lines_left <= numlines_pre; lines_total <= numlines_pre; rcvtime <= rcvtime_pre; - ibs_state <= IBS_WAITING; + if(numlines_pre == 0) + ibs_state <= IBS_ZEROLEN; + else + ibs_state <= IBS_WAITING; send_imm <= send_imm_pre; chain <= chain_pre; reload <= reload_pre; @@ -145,12 +150,12 @@ module vita_rx_control if(lines_left == 1) if(~chain) ibs_state <= IBS_IDLE; - else if(empty_ctrl & reload) + else if(~not_empty_ctrl & reload) begin ibs_state <= IBS_RUNNING; lines_left <= lines_total; end - else if(empty_ctrl) + else if(~not_empty_ctrl) ibs_state <= IBS_BROKENCHAIN; else begin @@ -175,17 +180,20 @@ module vita_rx_control IBS_BROKENCHAIN : if(sample_fifo_in_rdy) ibs_state <= IBS_IDLE; + IBS_ZEROLEN : + if(sample_fifo_in_rdy) + ibs_state <= IBS_IDLE; endcase // case(ibs_state) assign overrun = (ibs_state == IBS_OVERRUN); assign run = (ibs_state == IBS_RUNNING); assign read_ctrl = ( (ibs_state == IBS_IDLE) | ((ibs_state == IBS_RUNNING) & strobe & ~full & (lines_left==1) & chain) ) - & ~empty_ctrl; + & not_empty_ctrl; assign debug_rx = { { ibs_state[2:0], command_queue_len }, { 8'd0 }, - { go_now, too_late, run, strobe, read_ctrl, write_ctrl, full_ctrl, empty_ctrl }, + { go_now, too_late, run, strobe, read_ctrl, write_ctrl, 1'b0, ~not_empty_ctrl }, { 2'b0, overrun, chain_pre, sample_fifo_in_rdy, attempt_sample_write, sample_fifo_src_rdy_o,sample_fifo_dst_rdy_i} }; endmodule // rx_control diff --git a/fpga/usrp2/vrt/vita_rx_framer.v b/fpga/usrp2/vrt/vita_rx_framer.v index 235817941..bce8fe334 100644 --- a/fpga/usrp2/vrt/vita_rx_framer.v +++ b/fpga/usrp2/vrt/vita_rx_framer.v @@ -11,7 +11,7 @@ module vita_rx_framer output src_rdy_o, // From vita_rx_control - input [4+64+(32*MAXCHAN)-1:0] sample_fifo_i, + input [5+64+(32*MAXCHAN)-1:0] sample_fifo_i, input sample_fifo_src_rdy_i, output sample_fifo_dst_rdy_o, @@ -23,11 +23,11 @@ module vita_rx_framer output [31:0] debug_rx ); - localparam SAMP_WIDTH = 4+64+(32*MAXCHAN); + localparam SAMP_WIDTH = 5+64+(32*MAXCHAN); reg [3:0] sample_phase; wire [3:0] numchan; - wire [3:0] flags_fifo_o = sample_fifo_i[SAMP_WIDTH-1:SAMP_WIDTH-4]; - wire [63:0] vita_time_fifo_o = sample_fifo_i[SAMP_WIDTH-5:SAMP_WIDTH-68]; + wire [4:0] flags_fifo_o = sample_fifo_i[SAMP_WIDTH-1:SAMP_WIDTH-5]; + wire [63:0] vita_time_fifo_o = sample_fifo_i[SAMP_WIDTH-6:SAMP_WIDTH-69]; reg [31:0] data_fifo_o; @@ -55,14 +55,7 @@ module vita_rx_framer reg [3:0] pkt_count; wire [15:0] vita_pkt_len = samples_per_packet + 6; - //wire [3:0] flags = {signal_overrun,signal_brokenchain,signal_latecmd,signal_cmd_done}; - - wire clear_reg; - wire clear_int = clear | clear_reg; - - setting_reg #(.my_addr(BASE+3)) sr_clear - (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), - .in(set_data),.out(),.changed(clear_reg)); + //wire [4:0] flags = {signal_zerolen,signal_overrun,signal_brokenchain,signal_latecmd,signal_cmd_done}; setting_reg #(.my_addr(BASE+4)) sr_header (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), @@ -76,11 +69,11 @@ module vita_rx_framer (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(vita_trailer),.changed()); - setting_reg #(.my_addr(BASE+7)) sr_samples_per_pkt + setting_reg #(.my_addr(BASE+7),.width(16)) sr_samples_per_pkt (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(samples_per_packet),.changed()); - setting_reg #(.my_addr(BASE+8), .at_reset(1)) sr_numchan + setting_reg #(.my_addr(BASE+8),.width(4), .at_reset(1)) sr_numchan (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(numchan),.changed()); @@ -102,7 +95,7 @@ module vita_rx_framer localparam VITA_ERR_TRAILER = 15; // Extension context packets have no trailer always @(posedge clk) - if(reset | clear_pkt_count) + if(reset | clear | clear_pkt_count) pkt_count <= 0; else if((vita_state == VITA_TRAILER) & pkt_fifo_rdy) pkt_count <= pkt_count + 1; @@ -114,7 +107,8 @@ module vita_rx_framer always @* case(vita_state) // Data packets are IF Data packets with or w/o streamid, no classid, with trailer - VITA_HEADER : pkt_fifo_line <= {2'b01,3'b000,vita_header[28],2'b01,vita_header[25:20],pkt_count,vita_pkt_len}; + VITA_HEADER : pkt_fifo_line <= {2'b01,3'b000,vita_header[28],2'b01,vita_header[25:24], + vita_header[23:20],pkt_count[3:0],vita_pkt_len[15:0]}; VITA_STREAMID : pkt_fifo_line <= {2'b00,vita_streamid}; VITA_SECS : pkt_fifo_line <= {2'b00,vita_time_fifo_o[63:32]}; VITA_TICS : pkt_fifo_line <= {2'b00,32'd0}; @@ -128,14 +122,14 @@ module vita_rx_framer VITA_ERR_SECS : pkt_fifo_line <= {2'b00,vita_time_fifo_o[63:32]}; VITA_ERR_TICS : pkt_fifo_line <= {2'b00,32'd0}; VITA_ERR_TICS2 : pkt_fifo_line <= {2'b00,vita_time_fifo_o[31:0]}; - VITA_ERR_PAYLOAD : pkt_fifo_line <= {2'b10,28'd0,flags_fifo_o}; + VITA_ERR_PAYLOAD : pkt_fifo_line <= {2'b10,27'd0,flags_fifo_o}; //VITA_ERR_TRAILER : pkt_fifo_line <= {2'b11,vita_trailer}; default : pkt_fifo_line <= 34'h0_FFFF_FFFF; endcase // case (vita_state) always @(posedge clk) - if(reset) + if(reset | clear) begin vita_state <= VITA_IDLE; sample_ctr <= 0; @@ -147,7 +141,7 @@ module vita_rx_framer sample_ctr <= 1; sample_phase <= 0; if(sample_fifo_src_rdy_i) - if(|flags_fifo_o[3:1]) + if(|flags_fifo_o[4:1]) vita_state <= VITA_ERR_HEADER; else vita_state <= VITA_HEADER; @@ -192,7 +186,7 @@ module vita_rx_framer req_write_pkt_fifo <= 1; VITA_PAYLOAD : // Write if sample ready and no error flags - req_write_pkt_fifo <= (sample_fifo_src_rdy_i & ~|flags_fifo_o[3:1]); + req_write_pkt_fifo <= (sample_fifo_src_rdy_i & ~|flags_fifo_o[4:1]); VITA_ERR_HEADER, VITA_ERR_STREAMID, VITA_ERR_SECS, VITA_ERR_TICS, VITA_ERR_TICS2, VITA_ERR_PAYLOAD : req_write_pkt_fifo <= 1; default : @@ -203,7 +197,7 @@ module vita_rx_framer // Short FIFO to buffer between us and the FIFOs outside fifo_short #(.WIDTH(34)) rx_pkt_fifo - (.clk(clk), .reset(reset), .clear(clear_int), + (.clk(clk), .reset(reset), .clear(clear), .datain(pkt_fifo_line), .src_rdy_i(req_write_pkt_fifo), .dst_rdy_o(pkt_fifo_rdy), .dataout(data_o[33:0]), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i), .space(),.occupied(fifo_occupied[4:0]) ); @@ -212,7 +206,7 @@ module vita_rx_framer assign sample_fifo_dst_rdy_o = pkt_fifo_rdy & ( ((vita_state==VITA_PAYLOAD) & (sample_phase == (numchan-4'd1)) & - ~|flags_fifo_o[3:1]) | + ~|flags_fifo_o[4:1]) | (vita_state==VITA_ERR_PAYLOAD)); assign debug_rx = vita_state; diff --git a/fpga/usrp2/vrt/vita_rx_tb.v b/fpga/usrp2/vrt/vita_rx_tb.v index 3e01e2ee2..023934f39 100644 --- a/fpga/usrp2/vrt/vita_rx_tb.v +++ b/fpga/usrp2/vrt/vita_rx_tb.v @@ -37,7 +37,7 @@ module vita_rx_tb; wire sample_dst_rdy, sample_src_rdy; //wire [99:0] sample_data_o; - wire [64+4+(MAXCHAN*32)-1:0] sample_data_o; + wire [64+5+(MAXCHAN*32)-1:0] sample_data_o; vita_rx_control #(.BASE(0), .WIDTH(32*MAXCHAN)) vita_rx_control (.clk(clk), .reset(reset), .clear(0), @@ -92,58 +92,68 @@ module vita_rx_tb; begin @(negedge reset); @(posedge clk); - write_setting(4,32'hDEADBEEF); // VITA header + write_setting(4,32'h15F00000); // VITA header write_setting(5,32'hF00D1234); // VITA streamid - write_setting(6,32'hF0000000); // VITA trailer + write_setting(6,32'hE0000000); // VITA trailer write_setting(7,8); // Samples per VITA packet - write_setting(8,NUMCHAN); // Samples per VITA packet - queue_rx_cmd(1,0,8,32'h0,32'h0); // send imm, single packet - queue_rx_cmd(1,0,16,32'h0,32'h0); // send imm, 2 packets worth - queue_rx_cmd(1,0,7,32'h0,32'h0); // send imm, 1 short packet worth - queue_rx_cmd(1,0,9,32'h0,32'h0); // send imm, just longer than 1 packet + write_setting(8,NUMCHAN); // Vector length + + queue_rx_cmd(1,1,0,10,32'h0,32'h0); // send imm, single packet + #10000; + + queue_rx_cmd(1,0,0,0,32'h0,32'h0); // send imm, single packet + //queue_rx_cmd(1,1,0,0,32'h0,32'h0); // send imm, single packet + + //queue_rx_cmd(1,0,0,0,32'h0,32'h0); // send imm, single packet + + /* + queue_rx_cmd(1,0,0,8,32'h0,32'h0); // send imm, single packet + queue_rx_cmd(1,0,0,16,32'h0,32'h0); // send imm, 2 packets worth + queue_rx_cmd(1,0,0,7,32'h0,32'h0); // send imm, 1 short packet worth + queue_rx_cmd(1,0,0,9,32'h0,32'h0); // send imm, just longer than 1 packet - queue_rx_cmd(1,1,16,32'h0,32'h0); // chained - queue_rx_cmd(0,0,8,32'h0,32'h0); // 2nd in chain + queue_rx_cmd(1,1,0,16,32'h0,32'h0); // chained + queue_rx_cmd(0,0,0,8,32'h0,32'h0); // 2nd in chain - queue_rx_cmd(1,1,17,32'h0,32'h0); // chained, odd length - queue_rx_cmd(0,0,9,32'h0,32'h0); // 2nd in chain, also odd length + queue_rx_cmd(1,1,0,17,32'h0,32'h0); // chained, odd length + queue_rx_cmd(0,0,0,9,32'h0,32'h0); // 2nd in chain, also odd length - queue_rx_cmd(0,0,8,32'h0,32'h340); // send at, on time - queue_rx_cmd(0,0,8,32'h0,32'h100); // send at, but late + queue_rx_cmd(0,0,0,8,32'h0,32'h340); // send at, on time + queue_rx_cmd(0,0,0,8,32'h0,32'h100); // send at, but late #100000; $display("\nChained, break chain\n"); - queue_rx_cmd(1,1,8,32'h0,32'h0); // chained, but break chain + queue_rx_cmd(1,1,0,8,32'h0,32'h0); // chained, but break chain #100000; $display("\nSingle packet\n"); - queue_rx_cmd(1,0,8,32'h0,32'h0); // send imm, single packet + queue_rx_cmd(1,0,0,8,32'h0,32'h0); // send imm, single packet #100000; $display("\nEnd chain with zero samples, shouldn't error\n"); - queue_rx_cmd(1,1,8,32'h0,32'h0); // chained - queue_rx_cmd(0,0,0,32'h0,32'h0); // end chain with zero samples, should keep us out of error + queue_rx_cmd(1,1,0,8,32'h0,32'h0); // chained + queue_rx_cmd(0,0,0,0,32'h0,32'h0); // end chain with zero samples, should keep us out of error #100000; $display("\nEnd chain with zero samples on odd-length, shouldn't error\n"); - queue_rx_cmd(1,1,14,32'h0,32'h0); // chained - queue_rx_cmd(0,0,0,32'h0,32'h0); // end chain with zero samples, should keep us out of error + queue_rx_cmd(1,1,0,14,32'h0,32'h0); // chained + queue_rx_cmd(0,0,0,0,32'h0,32'h0); // end chain with zero samples, should keep us out of error #100000; $display("Should have gotten 14 samples and EOF by now\n"); - queue_rx_cmd(1,1,9,32'h0,32'h0); // chained, but break chain, odd length + queue_rx_cmd(1,1,0,9,32'h0,32'h0); // chained, but break chain, odd length #100000; dst_rdy <= 0; // stop pulling out of fifo so we can get an overrun - queue_rx_cmd(1,0,100,32'h0,32'h0); // long enough to fill the fifos - queue_rx_cmd(1,0,5,32'h0,32'h0); // this command waits until the previous error packet is sent + queue_rx_cmd(1,0,0,100,32'h0,32'h0); // long enough to fill the fifos + queue_rx_cmd(1,0,0,5,32'h0,32'h0); // this command waits until the previous error packet is sent #100000; dst_rdy <= 1; // restart the reads so we can see what we got #100000; dst_rdy <= 0; // stop pulling out of fifo so we can get an overrun - queue_rx_cmd(1,1,100,32'h0,32'h0); // long enough to fill the fifos - //queue_rx_cmd(1,0,5,32'h0,32'h0); // this command waits until the previous error packet is sent + queue_rx_cmd(1,1,0,100,32'h0,32'h0); // long enough to fill the fifos + //queue_rx_cmd(1,0,0,5,32'h0,32'h0); // this command waits until the previous error packet is sent #100000; @(posedge clk); dst_rdy <= 1; - + */ #100000 $finish; end @@ -164,11 +174,12 @@ module vita_rx_tb; task queue_rx_cmd; input send_imm; input chain; - input [29:0] lines; + input reload; + input [28:0] lines; input [31:0] secs; input [31:0] tics; begin - write_setting(0,{send_imm,chain,lines}); + write_setting(0,{send_imm,chain,reload,lines}); write_setting(1,secs); write_setting(2,tics); end diff --git a/fpga/usrp2/vrt/vita_tx.build b/fpga/usrp2/vrt/vita_tx.build index 902929c08..e7106aa10 100755 --- a/fpga/usrp2/vrt/vita_tx.build +++ b/fpga/usrp2/vrt/vita_tx.build @@ -1 +1 @@ -iverilog -Wimplict -Wportbind -y ../sdr_lib -y ../models -y . -y ../control_lib/ -y ../control_lib/newfifo -y ../coregen -y /opt/Xilinx/10.1/ISE/verilog/src/XilinxCoreLib -y /opt/Xilinx/10.1/ISE/verilog/src/unisims/ -y ../timing -o vita_tx_tb vita_tx_tb.v +iverilog -Wimplict -Wportbind -y ../sdr_lib -y ../models -y . -y ../control_lib/ -y ../fifo -y ../coregen -y /opt/Xilinx/10.1/ISE/verilog/src/XilinxCoreLib -y /opt/Xilinx/10.1/ISE/verilog/src/unisims/ -y ../timing -o vita_tx_tb vita_tx_tb.v diff --git a/fpga/usrp2/vrt/vita_tx_chain.v b/fpga/usrp2/vrt/vita_tx_chain.v index 00da4c6e1..2ec78189b 100644 --- a/fpga/usrp2/vrt/vita_tx_chain.v +++ b/fpga/usrp2/vrt/vita_tx_chain.v @@ -31,9 +31,13 @@ module vita_tx_chain wire clear_seqnum; wire [31:0] current_seqnum; - assign underrun = error & ~(error_code == 1); + assign underrun = error; assign message = error_code; - + + setting_reg #(.my_addr(BASE_CTRL+1)) sr + (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), + .in(set_data),.out(),.changed(clear_vita)); + setting_reg #(.my_addr(BASE_CTRL+2), .at_reset(0)) sr_streamid (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(streamid),.changed(clear_seqnum)); @@ -52,7 +56,7 @@ module vita_tx_chain vita_tx_control #(.BASE(BASE_CTRL), .WIDTH(32*MAXCHAN)) vita_tx_control (.clk(clk), .reset(reset), .clear(clear_vita), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), - .vita_time(vita_time),.error(error),.error_code(error_code), + .vita_time(vita_time), .error(error), .ack(ack), .error_code(error_code), .sample_fifo_i(tx1_data), .sample_fifo_src_rdy_i(tx1_src_rdy), .sample_fifo_dst_rdy_o(tx1_dst_rdy), .sample(sample_tx), .run(run), .strobe(strobe_tx), .packet_consumed(packet_consumed), .debug(debug_vtc) ); @@ -71,7 +75,7 @@ module vita_tx_chain (.clk(clk), .reset(reset), .clear(clear_vita), .trigger(trigger & (DO_FLOW_CONTROL==1)), .sent(), .streamid(streamid), .vita_time(vita_time), .message(32'd0), - .seqnum0(current_seqnum), .seqnum1(32'd0), + .seqnum(current_seqnum), .data_o(flow_data), .src_rdy_o(flow_src_rdy), .dst_rdy_i(flow_dst_rdy)); trigger_context_pkt #(.BASE(BASE_CTRL)) trigger_context_pkt (.clk(clk), .reset(reset), .clear(clear_vita), @@ -80,15 +84,15 @@ module vita_tx_chain gen_context_pkt #(.PROT_ENG_FLAGS(PROT_ENG_FLAGS)) gen_tx_err_pkt (.clk(clk), .reset(reset), .clear(clear_vita), - .trigger(error & (REPORT_ERROR==1)), .sent(), + .trigger((error|ack) & (REPORT_ERROR==1)), .sent(), .streamid(streamid), .vita_time(vita_time), .message(message), - .seqnum0(current_seqnum), .seqnum1(32'd0), + .seqnum(current_seqnum), .data_o(err_data_int), .src_rdy_o(err_src_rdy_int), .dst_rdy_i(err_dst_rdy_int)); assign debug = debug_vtc | debug_vtd; fifo36_mux #(.prio(1)) mux_err_and_flow // Priority to err messages - (.clk(clk), .reset(reset), .clear(clear_vita), + (.clk(clk), .reset(reset), .clear(0), // Don't clear this or it could get clogged .data0_i(err_data_int), .src0_rdy_i(err_src_rdy_int), .dst0_rdy_o(err_dst_rdy_int), .data1_i(flow_data), .src1_rdy_i(flow_src_rdy), .dst1_rdy_o(flow_dst_rdy), .data_o(err_data_o), .src_rdy_o(err_src_rdy_o), .dst_rdy_i(err_dst_rdy_i)); diff --git a/fpga/usrp2/vrt/vita_tx_control.v b/fpga/usrp2/vrt/vita_tx_control.v index 936762212..20ad6b995 100644 --- a/fpga/usrp2/vrt/vita_tx_control.v +++ b/fpga/usrp2/vrt/vita_tx_control.v @@ -6,7 +6,7 @@ module vita_tx_control input set_stb, input [7:0] set_addr, input [31:0] set_data, input [63:0] vita_time, - output error, + output error, output ack, output reg [31:0] error_code, output reg packet_consumed, @@ -38,9 +38,8 @@ module vita_tx_control // FIXME ignore too_early for now for timing reasons assign too_early = 0; time_compare - time_compare (.time_now(vita_time), .trigger_time(send_time), .now(now), .early(early), - .late(late), .too_early()); -// .late(late), .too_early(too_early)); + time_compare (.time_now(vita_time), .trigger_time(send_time), + .now(now), .early(early), .late(late), .too_early()); localparam IBS_IDLE = 0; localparam IBS_RUN = 1; // FIXME do we need this? @@ -58,11 +57,6 @@ module vita_tx_control reg [2:0] ibs_state; - wire clear_state; - setting_reg #(.my_addr(BASE+1)) sr - (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), - .in(set_data),.out(),.changed(clear_state)); - wire [31:0] error_policy; setting_reg #(.my_addr(BASE+3)) sr_error_policy (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), @@ -71,13 +65,15 @@ module vita_tx_control wire policy_wait = error_policy[0]; wire policy_next_packet = error_policy[1]; wire policy_next_burst = error_policy[2]; - reg send_error; + reg send_error, send_ack; always @(posedge clk) - if(reset | clear_state) + if(reset | clear) begin ibs_state <= IBS_IDLE; send_error <= 0; + send_ack <= 0; + error_code <= 0; end else case(ibs_state) @@ -111,7 +107,7 @@ module vita_tx_control begin ibs_state <= IBS_ERROR_DONE; // Not really an error error_code <= CODE_EOB_ACK; - send_error <= 1; + send_ack <= 1; end else ibs_state <= IBS_CONT_BURST; @@ -151,6 +147,7 @@ module vita_tx_control IBS_ERROR_DONE : begin send_error <= 0; + send_ack <= 0; ibs_state <= IBS_IDLE; end @@ -161,14 +158,15 @@ module vita_tx_control assign sample_fifo_dst_rdy_o = (ibs_state == IBS_ERROR) | (strobe & (ibs_state == IBS_RUN)); // FIXME also cleanout assign run = (ibs_state == IBS_RUN) | (ibs_state == IBS_CONT_BURST); assign error = send_error; + assign ack = send_ack; always @(posedge clk) - if(reset) + if(reset | clear) packet_consumed <= 0; else packet_consumed <= eop & sample_fifo_src_rdy_i & sample_fifo_dst_rdy_o; - assign debug = { { now,early,late,too_early,eop,eob,sob,send_at }, + assign debug = { { now,early,late,ack,eop,eob,sob,send_at }, { sample_fifo_src_rdy_i, sample_fifo_dst_rdy_o, strobe, run, error, ibs_state[2:0] }, { 8'b0 }, { 8'b0 } }; diff --git a/fpga/usrp2/vrt/vita_tx_deframer.v b/fpga/usrp2/vrt/vita_tx_deframer.v index 7fb8e3893..eb39feaec 100644 --- a/fpga/usrp2/vrt/vita_tx_deframer.v +++ b/fpga/usrp2/vrt/vita_tx_deframer.v @@ -80,7 +80,7 @@ module vita_tx_deframer wire fifo_space; always @(posedge clk) - if(reset | clear_seqnum) + if(reset | clear | clear_seqnum) begin seqnum_reg <= 32'hFFFF_FFFF; vita_seqnum_reg <= 4'hF; @@ -201,8 +201,6 @@ module vita_tx_deframer send_time[63:32] <= data_i[31:0]; VITA_TICS2 : send_time[31:0] <= data_i[31:0]; - VITA_STORE, VITA_HEADER : - send_time[63:0] <= 64'd0; endcase // case (vita_state) always @(posedge clk) diff --git a/fpga/usrp2/vrt/vita_tx_tb.v b/fpga/usrp2/vrt/vita_tx_tb.v index 0223d6850..a118ffd4e 100644 --- a/fpga/usrp2/vrt/vita_tx_tb.v +++ b/fpga/usrp2/vrt/vita_tx_tb.v @@ -33,7 +33,7 @@ module vita_tx_tb; wire [31:0] set_data_dsp; wire sample_dst_rdy, sample_src_rdy; - wire [64+4+(MAXCHAN*32)-1:0] sample_data_o, sample_data_tx; + wire [5+64+16+(MAXCHAN*32)-1:0] sample_data_o, sample_data_tx; time_64bit #(.TICKS_PER_SEC(100000000), .BASE(0)) time_64bit (.clk(clk), .rst(reset), @@ -49,8 +49,8 @@ module vita_tx_tb; .datain(data_o), .src_rdy_i(src_rdy), .dst_rdy_o(dst_rdy), .dataout(data_tx), .src_rdy_o(src_rdy_tx), .dst_rdy_i(dst_rdy_tx)); - vita_tx_deframer #(.BASE(16), .MAXCHAN(MAXCHAN)) vita_tx_deframer - (.clk(clk), .reset(reset), .clear(0), + vita_tx_deframer #(.BASE(16), .MAXCHAN(MAXCHAN), .USE_TRANS_HEADER(0)) vita_tx_deframer + (.clk(clk), .reset(reset), .clear(0), .clear_seqnum(0), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .data_i(data_tx), .dst_rdy_o(dst_rdy_tx), .src_rdy_i(src_rdy_tx), .sample_fifo_o(sample_data_tx), @@ -60,7 +60,7 @@ module vita_tx_tb; vita_tx_control #(.BASE(16), .WIDTH(MAXCHAN*32)) vita_tx_control (.clk(clk), .reset(reset), .clear(0), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), - .vita_time(vita_time), .underrun(underrun), + .vita_time(vita_time), .error(underrun), .error_code(), .sample_fifo_i(sample_data_tx), .sample_fifo_dst_rdy_o(sample_dst_rdy_tx), .sample_fifo_src_rdy_i(sample_src_rdy_tx), .sample(sample_tx), .run(run_tx), .strobe(strobe_tx)); @@ -92,35 +92,47 @@ module vita_tx_tb; write_setting(7,8); // Samples per VITA packet write_setting(8,NUMCHAN); // Samples per VITA packet #10000; - queue_vita_packets(32'h300, 106, 32'hF00D_1234, 32'h55AA_AA55); - //queue_vita_packets(32'h300, 6, 32'hF00D_1234, 32'h0); - queue_vita_packets(32'h600, 9, 32'h9876_ABCD, 32'h0); - + queue_vita_packets(0, 32'h300, 5, 32'h0000_1000, 32'h0, 4'h0, 1, 0, 1); + queue_vita_packets(0, 32'h0, 5, 32'h0000_2000, 32'h0, 4'h1, 0, 0, 0); + queue_vita_packets(0, 32'h0, 5, 32'h0000_3000, 32'h0, 4'h2, 0, 0, 0); + + queue_vita_packets(0, 32'h400, 3, 32'h0000_4000, 32'h0, 4'h3, 1, 0, 1); + queue_vita_packets(0, 32'h0, 3, 32'h0000_5000, 32'h0, 4'h4, 0, 0, 0); + queue_vita_packets(0, 32'h0, 3, 32'h0000_6000, 32'h0, 4'h5, 0, 1, 0); + #300000 $finish; end task queue_vita_packets; + input [31:0] send_secs; input [31:0] sendtime; input [15:0] samples; input [15:0] word; input [31:0] trailer; + input [3:0] seqnum; + input sob; + input eob; + input sendat; reg [15:0] i; begin + src_rdy <= 0; @(posedge clk); src_rdy <= 1; - data_o <= {4'b0001,4'h1,1'b0,|trailer,2'h3,8'hF0,(16'd5+samples+|trailer)}; // header - @(posedge clk); - data_o <= {4'b0000,32'h0}; // streamid - @(posedge clk); - data_o <= {4'b0000,32'h0}; // SECS - @(posedge clk); - data_o <= {4'b0000,32'h0}; // TICS + data_o <= {4'b0001,4'h0,1'b0,|trailer,sob,eob,{2{sendat}},1'b0,sendat,seqnum,(16'd1+samples+|trailer+sendat+sendat+sendat)}; // header @(posedge clk); - data_o <= {4'b0000,sendtime}; // TICS - @(posedge clk); - + //data_o <= {4'b0000,32'h0}; // streamid + //@(posedge clk); + if(sendat) + begin + data_o <= {4'b0000,send_secs}; // SECS + @(posedge clk); + data_o <= {4'b0000,32'h0}; // TICS + @(posedge clk); + data_o <= {4'b0000,sendtime}; // TICS + @(posedge clk); + end for(i=0;i