From 79f708c08af6fa0c4390b39eb14b6d7783c8f7c8 Mon Sep 17 00:00:00 2001 From: Daniel Primosch Date: Mon, 4 Nov 2024 17:43:28 -0800 Subject: [PATCH 1/8] refactoring convert_full_model.py, wip --- convert_full_model.py | 362 ++++++++++++++++++++++++++---------------- 1 file changed, 224 insertions(+), 138 deletions(-) diff --git a/convert_full_model.py b/convert_full_model.py index f54971a2..3d85275c 100644 --- a/convert_full_model.py +++ b/convert_full_model.py @@ -1,3 +1,4 @@ +import argparse import tensorflow from models import dense_embedding from tensorflow.keras.layers import Input, Concatenate @@ -10,11 +11,13 @@ from utils import preProcessing import h5py import scipy +import seaborn +import pandas as pd +import matplotlib.pyplot as plt co = {} _add_supported_quantized_objects(co) - def print_dict(d, indent=0): align = 20 for key, value in d.items(): @@ -25,141 +28,224 @@ def print_dict(d, indent=0): else: print(':' + ' ' * (20 - len(key) - 2 * indent) + str(value)) - -# load full model: -model_name = 'trained_DeepMET' -# model_name = 'trained_quantized_DeepMET' -# model_name = 'trained_quantized_DeepMET_normfac1000' -model = tensorflow.keras.models.load_model(f'models/baseline_DeepMET{"_quantized" if "quantized" in model_name else ""}/{model_name}.h5', compile=False, custom_objects=co) - -reuse_factor = 1 -precision = 'ap_fixed<32,16>' -io_type = 'io_parallel' -strategy = 'Latency' -output_dir = 'hls_output_{}_{}_{}_rf{}_{}'.format(model_name ,io_type, strategy, reuse_factor, precision) -batch_size = 1 -synth = False -trace = True -normFac = 1 - -# check everthing works -model.summary() -model.save('{}/model.h5'.format(output_dir)) - -config = hls4ml.utils.config_from_keras_model(model, - granularity='name', - default_reuse_factor=reuse_factor, - default_precision=precision) -config['Model']['Strategy'] = strategy -for name in config['LayerName'].keys(): - config['LayerName'][name]['Trace'] = trace -config['LayerName']['input_cat0']['Precision']['result'] = 'ap_uint<4>' -config['LayerName']['input_cat1']['Precision']['result'] = 'ap_uint<4>' -# config['LayerName']['input_cont']['Precision']['result'] = 'ap_fixed<20,10>' -#if 'q_dense' in config['LayerName']: -# config['LayerName']['q_dense']['Precision']['accum'] = 'ap_fixed<32,16>' -# config['LayerName']['q_dense']['Precision']['weight'] = 'ap_fixed<32,16>' -# config['LayerName']['q_dense']['Precision']['bias'] = 'ap_fixed<32,16>' -# config['LayerName']['q_dense_1']['Precision']['accum'] = 'ap_fixed<32,16>' -# config['LayerName']['q_dense_1']['Precision']['weight'] = 'ap_fixed<32,16>' -# config['LayerName']['q_dense_1']['Precision']['bias'] = 'ap_fixed<32,16>' -config['LayerName']['multiply']['n_elem'] = 100 -config['LayerName']['output']['n_filt'] = 2 -# skip optimize_pointwise_conv -# config['SkipOptimizers'] = ['optimize_pointwise_conv'] -# for layer in config['LayerName'].keys(): -# config['LayerName'][layer]['Trace'] = True - -print("-----------------------------------") -print_dict(config) -print("-----------------------------------") -hls_model = hls4ml.converters.convert_from_keras_model(model, - hls_config=config, - io_type=io_type, - output_dir=output_dir, - part='xcvu13p-flga2577-2-e', - clock_period=5, - project_name='L1METML_v1', -) -hls_model.compile() - -hls4ml.utils.plot_model(hls_model, show_shapes=True, show_precision=True, to_file='{}/model_hls4ml.png'.format(output_dir)) - -if synth: - hls_model.build(synth=synth) - hls4ml.report.read_vivado_report(output_dir) - -f = h5py.File('data/test_data.h5') -# 1000 test events is good enough -X = f['X'][:1000] -y = -f['Y'][:1000] - -# preprocessing -X_pre = list(preProcessing(X, normFac=normFac)) -X_pre = [np.ascontiguousarray(x) for x in X_pre] - -y_pred = model.predict(X_pre) -y_hls = hls_model.predict(X_pre) - -met = np.hypot(y[:, 0], y[:, 1]) -met_pred = np.hypot(y_pred[:, 0], y_pred[:, 1]) * normFac -met_hls = np.hypot(y_hls[:, 0], y_hls[:, 1]) * normFac -met_pup_x = np.sum(X[:, :, 1], axis=-1) -met_pup_y = np.sum(X[:, :, 2], axis=-1) -met_pup = np.hypot(met_pup_x, met_pup_y) - -import seaborn -import pandas as pd -import matplotlib.pyplot as plt - -df = pd.DataFrame.from_dict({'Gen MET': met, 'PUPPI MET': met_pup, 'QKeras MET': met_pred, 'hls4ml MET': met_hls}) -plt.figure() -seaborn.pairplot(df, corner=True) -plt.savefig(f'{output_dir}/profiling_MET.png', dpi=300) - -df = pd.DataFrame.from_dict({'Gen MET x': y[:, 0], 'PUPPI MET x': met_pup_x, 'QKeras MET x': y_pred[:, 0], 'hls4ml MET x': y_hls[:, 0]}) -plt.figure() -seaborn.pairplot(df, corner=True) -plt.savefig(f'{output_dir}/profiling_MET_x.png', dpi=300) - -df = pd.DataFrame.from_dict({'Gen MET y': y[:, 1], 'PUPPI MET y': met_pup_y, 'QKeras MET y': y_pred[:, 1], 'hls4ml MET y': y_hls[:, 1]}) -plt.figure() -seaborn.pairplot(df, corner=True) -plt.savefig(f'{output_dir}/profiling_MET_y.png', dpi=300) - -response_pup = met_pup / met -response_pred = met_pred / met -response_hls = met_hls / met -bins = np.linspace(0, 2, 25) -plt.figure(figsize=(12, 5)) -plt.subplot(1, 3, 1) -plt.hist(response_pup, bins=bins, label=f'PUPPI, median={np.median(response_pup):0.2f}, IQR={scipy.stats.iqr(response_pup):0.2f}') -plt.legend() -plt.xlabel("MET response $\hat{y}/y$") -plt.ylabel("Events") -plt.subplot(1, 3, 2) -plt.hist(response_pred, bins=bins, label=f'QKeras, median={np.median(response_pred):0.2f}, IQR={scipy.stats.iqr(response_pred):0.2f}') -plt.legend() -plt.xlabel("MET response $\hat{y}/y$") -plt.ylabel("Events") -plt.subplot(1, 3, 3) -plt.hist(response_hls, bins=bins, label=f'hls4ml, median={np.median(response_hls):0.2f}, IQR={scipy.stats.iqr(response_hls):0.2f}') -plt.legend() -plt.xlabel("MET response $\hat{y}/y$") -plt.ylabel("Events") -plt.tight_layout() -plt.savefig(f"{output_dir}/response_MET.png", dpi=300) - -y_hls, hls4ml_trace = hls_model.trace(X_pre) -keras_trace = hls4ml.model.profiling.get_ymodel_keras(model, X_pre) - -for layer in hls4ml_trace.keys(): +def load_model(model_name): + if 'quantized' in model_name: + model = tensorflow.keras.models.load_model(f'models/baseline_DeepMET_quantized/{model_name}.h5', compile=False, custom_objects=co) + else: + model = tensorflow.keras.models.load_model(f'models/baseline_DeepMET/{model_name}.h5', compile=False) + return model + +def configure_hls_model(model, config_params): + config = hls4ml.utils.config_from_keras_model(model, + granularity='name', + default_reuse_factor=config_params['reuse_factor'], + default_precision=config_params['precision']) + config['Model']['Strategy'] = config_params['strategy'] + for name in config['LayerName'].keys(): + config['LayerName'][name]['Trace'] = config_params['trace'] + config['LayerName']['input_cat0']['Precision']['result'] = 'ap_uint<4>' + config['LayerName']['input_cat1']['Precision']['result'] = 'ap_uint<4>' + # config['LayerName']['input_cont']['Precision']['result'] = 'ap_fixed<20,10>' + #if 'q_dense' in config['LayerName']: + # config['LayerName']['q_dense']['Precision']['accum'] = 'ap_fixed<32,16>' + # config['LayerName']['q_dense']['Precision']['weight'] = 'ap_fixed<32,16>' + # config['LayerName']['q_dense']['Precision']['bias'] = 'ap_fixed<32,16>' + # config['LayerName']['q_dense_1']['Precision']['accum'] = 'ap_fixed<32,16>' + # config['LayerName']['q_dense_1']['Precision']['weight'] = 'ap_fixed<32,16>' + # config['LayerName']['q_dense_1']['Precision']['bias'] = 'ap_fixed<32,16>' + config['LayerName']['multiply']['n_elem'] = 100 + config['LayerName']['output']['n_filt'] = 2 + # skip optimize_pointwise_conv + # config['SkipOptimizers'] = ['optimize_pointwise_conv'] + # for layer in config['LayerName'].keys(): + # config['LayerName'][layer]['Trace'] = True + + print("-----------------------------------") + print_dict(config) + return config + +def convert_to_hls_model(model, config, ouput_dir, io_type, part, clock_period, project_name): + print("-----------------------------------") + hls_model = hls4ml.converters.convert_from_keras_model(model, + hls_config=config, + io_type=io_type, + output_dir=output_dir, + part=part, + clock_period=clock_period, + project_name=project_name, + ) + hls_model.compile() + return hls_model + +def preprocess_data(file_path, norm_factor): + with h5py.File(file_path, 'r') as f: + # 1000 test events is good enough + X = f['X'][:1000] + y = -f['Y'][:1000] + X_preprocessed = list(preProcessing(X, normFac=norm_factor)) + return [np.ascontiguousarray(x) for x in X_preprocessed], y + + +def plot_metrics(data_to_plot, hls_model, model, output_dir): + met = data_to_plot['met'] + met_pred = data_to_plot['met_pred'] + met_hls = data_to_plot['met_hls'] + met_pup = data_to_plot['met_pup'] + met_pup_x = data_to_plot['met_pup_x'] + met_pup_y = data_to_plot['met_pup_y'] + y_pred = data_to_plot['y_pred'] + y = data_to_plot['y'] + X_pre = data_to_plot['x_pre'] + + + df = pd.DataFrame.from_dict({ + 'Gen MET': met, + 'PUPPI MET': met_pup, + 'QKeras MET': met_pred, + 'hls4ml MET': met_hls, + }) plt.figure() - if layer not in keras_trace: continue - plt.scatter(hls4ml_trace[layer].flatten(), keras_trace[layer].flatten(), s=0.2) - min_x = min(np.amin(hls4ml_trace[layer]), np.amin(keras_trace[layer])) - max_x = max(np.amax(hls4ml_trace[layer]), np.amax(keras_trace[layer])) - plt.plot([min_x, max_x], [min_x, max_x], c='gray') - plt.xlabel(f'hls4ml {layer}') - plt.ylabel(f'QKeras {layer}') - plt.savefig(f'{output_dir}/profiling_{layer}.png', dpi=300) + seaborn.pairplot(df, corner=True) + plt.savefig(f'{output_dir}/profiling_MET.png', dpi=300) + plt.close() + + df = pd.DataFrame.from_dict( + {'Gen MET x': y[:, 0], + 'PUPPI MET x': met_pup_x, + 'QKeras MET x': y_pred[:, 0], + 'hls4ml MET x': y_hls[:, 0], + }) + plt.figure() + seaborn.pairplot(df, corner=True) + plt.savefig(f'{output_dir}/profiling_MET_x.png', dpi=300) + + df = pd.DataFrame.from_dict({ + 'Gen MET y': y[:, 1], + 'PUPPI MET y': met_pup_y, + 'QKeras MET y': y_pred[:, 1], + 'hls4ml MET y': y_hls[:, 1] + }) + plt.figure() + seaborn.pairplot(df, corner=True) + plt.savefig(f'{output_dir}/profiling_MET_y.png', dpi=300) + + response_pup = met_pup / met + response_pred = met_pred / met + response_hls = met_hls / met + bins = np.linspace(0, 2, 25) + plt.figure(figsize=(12, 5)) + plt.subplot(1, 3, 1) + plt.hist(response_pup, bins=bins, label=f'PUPPI, median={np.median(response_pup):0.2f}, IQR={scipy.stats.iqr(response_pup):0.2f}') + plt.legend() + plt.xlabel("MET response $\hat{y}/y$") + plt.ylabel("Events") + plt.subplot(1, 3, 2) + plt.hist(response_pred, bins=bins, label=f'QKeras, median={np.median(response_pred):0.2f}, IQR={scipy.stats.iqr(response_pred):0.2f}') + plt.legend() + plt.xlabel("MET response $\hat{y}/y$") + plt.ylabel("Events") + plt.subplot(1, 3, 3) + plt.hist(response_hls, bins=bins, label=f'hls4ml, median={np.median(response_hls):0.2f}, IQR={scipy.stats.iqr(response_hls):0.2f}') + plt.legend() + plt.xlabel("MET response $\hat{y}/y$") + plt.ylabel("Events") + plt.tight_layout() + plt.savefig(f"{output_dir}/response_MET.png", dpi=300) + + y_hls, hls4ml_trace = hls_model.trace(X_pre) + keras_trace = hls4ml.model.profiling.get_ymodel_keras(model, X_pre) + + for layer in hls4ml_trace.keys(): + plt.figure() + if layer not in keras_trace: continue + plt.scatter(hls4ml_trace[layer].flatten(), keras_trace[layer].flatten(), s=0.2) + min_x = min(np.amin(hls4ml_trace[layer]), np.amin(keras_trace[layer])) + max_x = max(np.amax(hls4ml_trace[layer]), np.amax(keras_trace[layer])) + plt.plot([min_x, max_x], [min_x, max_x], c='gray') + plt.xlabel(f'hls4ml {layer}') + plt.ylabel(f'QKeras {layer}') + plt.savefig(f'{output_dir}/profiling_{layer}.png', dpi=300) + +def main(args): + model_name = args.model_name + + model = load_model('trained_DeepMET') + + config_params = { + 'reuse-factor': 1, + 'strategy': 'Latency', + 'precision': 'ap_fixed<32,16>', + 'trace': True, + } + reuse_factor = 1 + precision = 'ap_fixed<32,16>' + io_type = 'io_parallel' + strategy = 'Latency' + output_dir = 'hls_output_{}_{}_{}_rf{}_{}'.format(model_name ,io_type, strategy, reuse_factor, precision) + batch_size = 1 + synth = False + trace = True + normFac = 1 + + # check everthing works + model.summary() + model.save('{}/model.h5'.format(output_dir)) + + config = configure_hls_model(model, {}) + + hls_model = convert_to_hls_model(model, config, output_dir, io_type, 'xcvu13p-flga2577-2-e', 5, 'L1METML_v1') + + hls4ml.utils.plot_model(hls_model, show_shapes=True, show_precision=True, to_file='{}/model_hls4ml.png'.format(output_dir)) + + if synth: + hls_model.build(synth=synth) + hls4ml.report.read_vivado_report(output_dir) + + + X_pre, y = preprocess_data('data/test_data.h5', norm_factor=1) + + + + y_pred = model.predict(X_pre) + y_hls = hls_model.predict(X_pre) + + met = np.hypot(y[:, 0], y[:, 1]) + met_pred = np.hypot(y_pred[:, 0], y_pred[:, 1]) * normFac + met_hls = np.hypot(y_hls[:, 0], y_hls[:, 1]) * normFac + met_pup_x = np.sum(X[:, :, 1], axis=-1) #does this need to be X_pre? + met_pup_y = np.sum(X[:, :, 2], axis=-1) #does this need to be X_pre? + met_pup = np.hypot(met_pup_x, met_pup_y) + + data_to_plot = { + 'met': met, + 'met_pred': met_pred, + 'met_hls': met_hls, + 'met_pup': met_pup, + 'met_pup_x': met_pup_x, + 'met_pup_y': met_pup_y, + 'y_pred': y_pred, + 'y': y, + 'x_pre': X_pre, + } + + plot_metrics(data_to_plot, hls_model, model, output_dir) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) + + parser.add_argument( + '--model_name', + type=str, + default='trained_DeepMET', + choices = [ + 'trained_DeepMET', + 'trained_quantized_DeepMET', + 'trained_quantized_DeepMET_normfac1000' + ], + help='Model name') + + args = parser.parse_args() + + main(args) + From e714b8e741acfd36cb02aec017e79a3438747fcc Mon Sep 17 00:00:00 2001 From: Daniel Primosch Date: Mon, 4 Nov 2024 17:53:52 -0800 Subject: [PATCH 2/8] substituted X_pre where unpreprocessed X used to be. --- convert_full_model.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/convert_full_model.py b/convert_full_model.py index 3d85275c..ad01e0e1 100644 --- a/convert_full_model.py +++ b/convert_full_model.py @@ -212,8 +212,8 @@ def main(args): met = np.hypot(y[:, 0], y[:, 1]) met_pred = np.hypot(y_pred[:, 0], y_pred[:, 1]) * normFac met_hls = np.hypot(y_hls[:, 0], y_hls[:, 1]) * normFac - met_pup_x = np.sum(X[:, :, 1], axis=-1) #does this need to be X_pre? - met_pup_y = np.sum(X[:, :, 2], axis=-1) #does this need to be X_pre? + met_pup_x = np.sum(X_pre[:, :, 1], axis=-1) #does this need to be X_pre? previously X + met_pup_y = np.sum(X_pre[:, :, 2], axis=-1) #does this need to be X_pre? previously X met_pup = np.hypot(met_pup_x, met_pup_y) data_to_plot = { From 6fca2a32b8d0f96ffb4b3c5e12b1eb6b25bbeb0d Mon Sep 17 00:00:00 2001 From: Daniel Primosch Date: Mon, 4 Nov 2024 18:51:48 -0800 Subject: [PATCH 3/8] added TODOs, wip --- convert_full_model.py | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/convert_full_model.py b/convert_full_model.py index ad01e0e1..e5e76187 100644 --- a/convert_full_model.py +++ b/convert_full_model.py @@ -64,7 +64,7 @@ def configure_hls_model(model, config_params): print_dict(config) return config -def convert_to_hls_model(model, config, ouput_dir, io_type, part, clock_period, project_name): +def convert_to_hls_model(model, config, output_dir, io_type, part, clock_period, project_name): print("-----------------------------------") hls_model = hls4ml.converters.convert_from_keras_model(model, hls_config=config, @@ -169,7 +169,7 @@ def plot_metrics(data_to_plot, hls_model, model, output_dir): def main(args): model_name = args.model_name - model = load_model('trained_DeepMET') + model = load_model(model_name) config_params = { 'reuse-factor': 1, @@ -177,22 +177,25 @@ def main(args): 'precision': 'ap_fixed<32,16>', 'trace': True, } - reuse_factor = 1 - precision = 'ap_fixed<32,16>' io_type = 'io_parallel' - strategy = 'Latency' - output_dir = 'hls_output_{}_{}_{}_rf{}_{}'.format(model_name ,io_type, strategy, reuse_factor, precision) + output_dir = 'hls_output_{}_{}_{}_rf{}_{}'.format( + model_name, + io_type, + config_params['strategy'], + config_params['reuse_factor'], + config_params['precision'] + ) batch_size = 1 synth = False trace = True - normFac = 1 + normFac = 1 #identify where NormFac is used (and how) and if it can be fed via argument # check everthing works model.summary() model.save('{}/model.h5'.format(output_dir)) - config = configure_hls_model(model, {}) - + # create hls model + config = configure_hls_model(model, config_params) hls_model = convert_to_hls_model(model, config, output_dir, io_type, 'xcvu13p-flga2577-2-e', 5, 'L1METML_v1') hls4ml.utils.plot_model(hls_model, show_shapes=True, show_precision=True, to_file='{}/model_hls4ml.png'.format(output_dir)) @@ -201,8 +204,8 @@ def main(args): hls_model.build(synth=synth) hls4ml.report.read_vivado_report(output_dir) - - X_pre, y = preprocess_data('data/test_data.h5', norm_factor=1) + # load and preprocess data + X_pre, y = preprocess_data(args.data_path, norm_factor=1) @@ -244,8 +247,15 @@ def main(args): 'trained_quantized_DeepMET_normfac1000' ], help='Model name') + parser.add_argument( + '--data_path', + type=str, + default='data/test_data.h5', + help='Location of data file (.h5 format)') args = parser.parse_args() - + #TODO: figure what knobs are tuned here by the user and pass them as arguments + #TODO: test if script runs without errors + #TODO: refactor commented part of hls_config, potentially adding args or default values main(args) From e30e2c62a2669afbafb0a3234fdd587f13228b5d Mon Sep 17 00:00:00 2001 From: Daniel Primosch Date: Mon, 4 Nov 2024 21:13:35 -0800 Subject: [PATCH 4/8] fixed bugs --- convert_full_model.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/convert_full_model.py b/convert_full_model.py index e5e76187..ebb3ae7e 100644 --- a/convert_full_model.py +++ b/convert_full_model.py @@ -38,7 +38,7 @@ def load_model(model_name): def configure_hls_model(model, config_params): config = hls4ml.utils.config_from_keras_model(model, granularity='name', - default_reuse_factor=config_params['reuse_factor'], + default_reuse_factor=config_params['reuse-factor'], default_precision=config_params['precision']) config['Model']['Strategy'] = config_params['strategy'] for name in config['LayerName'].keys(): @@ -83,7 +83,7 @@ def preprocess_data(file_path, norm_factor): X = f['X'][:1000] y = -f['Y'][:1000] X_preprocessed = list(preProcessing(X, normFac=norm_factor)) - return [np.ascontiguousarray(x) for x in X_preprocessed], y + return [np.ascontiguousarray(x) for x in X_preprocessed], X, y def plot_metrics(data_to_plot, hls_model, model, output_dir): @@ -94,6 +94,7 @@ def plot_metrics(data_to_plot, hls_model, model, output_dir): met_pup_x = data_to_plot['met_pup_x'] met_pup_y = data_to_plot['met_pup_y'] y_pred = data_to_plot['y_pred'] + y_hls = data_to_plot['y_hls'] y = data_to_plot['y'] X_pre = data_to_plot['x_pre'] @@ -182,7 +183,7 @@ def main(args): model_name, io_type, config_params['strategy'], - config_params['reuse_factor'], + config_params['reuse-factor'], config_params['precision'] ) batch_size = 1 @@ -205,7 +206,7 @@ def main(args): hls4ml.report.read_vivado_report(output_dir) # load and preprocess data - X_pre, y = preprocess_data(args.data_path, norm_factor=1) + X_pre, X, y= preprocess_data(args.data_path, norm_factor=1) @@ -215,8 +216,8 @@ def main(args): met = np.hypot(y[:, 0], y[:, 1]) met_pred = np.hypot(y_pred[:, 0], y_pred[:, 1]) * normFac met_hls = np.hypot(y_hls[:, 0], y_hls[:, 1]) * normFac - met_pup_x = np.sum(X_pre[:, :, 1], axis=-1) #does this need to be X_pre? previously X - met_pup_y = np.sum(X_pre[:, :, 2], axis=-1) #does this need to be X_pre? previously X + met_pup_x = np.sum(X[:, :, 1], axis=-1) #does this need to be X_pre? previously X + met_pup_y = np.sum(X[:, :, 2], axis=-1) #does this need to be X_pre? previously X met_pup = np.hypot(met_pup_x, met_pup_y) data_to_plot = { @@ -227,6 +228,7 @@ def main(args): 'met_pup_x': met_pup_x, 'met_pup_y': met_pup_y, 'y_pred': y_pred, + 'y_hls': y_hls, 'y': y, 'x_pre': X_pre, } @@ -238,7 +240,7 @@ def main(args): parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument( - '--model_name', + '--model-name', type=str, default='trained_DeepMET', choices = [ @@ -248,14 +250,13 @@ def main(args): ], help='Model name') parser.add_argument( - '--data_path', + '--data-path', type=str, default='data/test_data.h5', help='Location of data file (.h5 format)') args = parser.parse_args() #TODO: figure what knobs are tuned here by the user and pass them as arguments - #TODO: test if script runs without errors #TODO: refactor commented part of hls_config, potentially adding args or default values main(args) From 98b60b35704a93dfc22fe3c41620a3131bd281db Mon Sep 17 00:00:00 2001 From: Daniel Primosch Date: Mon, 4 Nov 2024 21:33:48 -0800 Subject: [PATCH 5/8] added hls_config.yaml, to be implemented in convert_full_model.py, wip --- hls_config.yaml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 hls_config.yaml diff --git a/hls_config.yaml b/hls_config.yaml new file mode 100644 index 00000000..849b299b --- /dev/null +++ b/hls_config.yaml @@ -0,0 +1,19 @@ +model_name: "trained_DeepMET" # Choose from available models + +data_path: "~/data/l1_trigger_h5_ntuples/perfNano_TTbar_PU200.110X_set0.h5" # Location of data file (.h5 format) + +output_dir: "hls_output_Nov4" + +config_params: + reuse-factor: 1 + strategy: "Latency" + precision: "ap_fixed<32,16>" + trace: true + +io_type: "io_parallel" +part: "xcvu13p-flga2577-2-e" +clock_period: 5 +project_name: "L1METML_v1" +batch_size: 1 +synth: false +normFac: 1 # Identify where NormFac is used and if it can be fed via argument From ad9b720284876839f338dd4adf887c38bda3e2c2 Mon Sep 17 00:00:00 2001 From: Daniel Primosch Date: Mon, 4 Nov 2024 21:44:31 -0800 Subject: [PATCH 6/8] renamed hls conversion yaml to avoid confusion --- hls_conversion_config.yaml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 hls_conversion_config.yaml diff --git a/hls_conversion_config.yaml b/hls_conversion_config.yaml new file mode 100644 index 00000000..849b299b --- /dev/null +++ b/hls_conversion_config.yaml @@ -0,0 +1,19 @@ +model_name: "trained_DeepMET" # Choose from available models + +data_path: "~/data/l1_trigger_h5_ntuples/perfNano_TTbar_PU200.110X_set0.h5" # Location of data file (.h5 format) + +output_dir: "hls_output_Nov4" + +config_params: + reuse-factor: 1 + strategy: "Latency" + precision: "ap_fixed<32,16>" + trace: true + +io_type: "io_parallel" +part: "xcvu13p-flga2577-2-e" +clock_period: 5 +project_name: "L1METML_v1" +batch_size: 1 +synth: false +normFac: 1 # Identify where NormFac is used and if it can be fed via argument From 837cc6ece8b66402deac88eae6ffd434e4011251 Mon Sep 17 00:00:00 2001 From: Daniel Primosch Date: Sat, 9 Nov 2024 14:32:20 -0800 Subject: [PATCH 7/8] saved conversion --- Write_MET_binned_histogram.py | 16 +- convertNanoToHDF5_L1triggerToDeepMET.py | 2 +- convert_full_model.py | 85 +- hls_config.yaml | 19 - hls_conversion_config.yaml | 6 +- ...arallel_Latency_rf1_ap_fixed<32,16>.tar.gz | Bin 0 -> 2024046 bytes .../L1METML_v1_bridge.cpp | 104 + .../L1METML_v1_test.cpp | 120 + .../build_lib.sh | 17 + .../build_prj.tcl | 250 + .../firmware/L1METML_v1-2Bd4CD9f.so | Bin 0 -> 228448 bytes .../firmware/L1METML_v1-87B65ff2.so | Bin 0 -> 228448 bytes .../firmware/L1METML_v1-8aEF503a.so | Bin 0 -> 228448 bytes .../firmware/L1METML_v1-95715E3e.so | Bin 0 -> 244744 bytes .../firmware/L1METML_v1-B1BDE0dd.so | Bin 0 -> 228448 bytes .../firmware/L1METML_v1-CEB54420.so | Bin 0 -> 228448 bytes .../firmware/L1METML_v1-F1DF32D7.so | Bin 0 -> 228448 bytes .../firmware/L1METML_v1-dDAfeD3b.so | Bin 0 -> 228448 bytes .../firmware/L1METML_v1-ecB7D1bC.so | Bin 0 -> 228448 bytes .../firmware/L1METML_v1.cpp | 117 + .../firmware/L1METML_v1.h | 16 + .../firmware/ap_types/ap_common.h | 376 + .../firmware/ap_types/ap_decl.h | 212 + .../firmware/ap_types/ap_fixed.h | 360 + .../firmware/ap_types/ap_fixed_base.h | 2354 ++++++ .../firmware/ap_types/ap_fixed_ref.h | 718 ++ .../firmware/ap_types/ap_fixed_special.h | 230 + .../firmware/ap_types/ap_int.h | 330 + .../firmware/ap_types/ap_int_base.h | 1885 +++++ .../firmware/ap_types/ap_int_ref.h | 1346 +++ .../firmware/ap_types/ap_int_special.h | 223 + .../firmware/ap_types/ap_shift_reg.h | 138 + .../firmware/ap_types/etc/ap_private.h | 7199 +++++++++++++++++ .../firmware/ap_types/hls_math.h | 27 + .../firmware/ap_types/hls_stream.h | 263 + .../firmware/ap_types/utils/x_hls_utils.h | 80 + .../firmware/defines.h | 67 + .../firmware/nnet_utils/nnet_activation.h | 777 ++ .../nnet_utils/nnet_activation_stream.h | 777 ++ .../firmware/nnet_utils/nnet_array.h | 52 + .../firmware/nnet_utils/nnet_batchnorm.h | 124 + .../nnet_utils/nnet_batchnorm_stream.h | 123 + .../firmware/nnet_utils/nnet_code_gen.h | 1262 +++ .../firmware/nnet_utils/nnet_common.h | 76 + .../firmware/nnet_utils/nnet_conv1d.h | 76 + .../firmware/nnet_utils/nnet_conv1d_latency.h | 439 + .../nnet_utils/nnet_conv1d_resource.h | 103 + .../firmware/nnet_utils/nnet_conv1d_stream.h | 89 + .../firmware/nnet_utils/nnet_conv2d.h | 75 + .../firmware/nnet_utils/nnet_conv2d_latency.h | 89 + .../nnet_utils/nnet_conv2d_resource.h | 105 + .../firmware/nnet_utils/nnet_conv2d_stream.h | 112 + .../firmware/nnet_utils/nnet_conv_stream.h | 394 + .../firmware/nnet_utils/nnet_dense.h | 49 + .../nnet_utils/nnet_dense_compressed.h | 90 + .../firmware/nnet_utils/nnet_dense_latency.h | 72 + .../firmware/nnet_utils/nnet_dense_resource.h | 263 + .../firmware/nnet_utils/nnet_dense_stream.h | 68 + .../firmware/nnet_utils/nnet_embed.h | 45 + .../firmware/nnet_utils/nnet_embed_stream.h | 33 + .../firmware/nnet_utils/nnet_garnet.h | 816 ++ .../firmware/nnet_utils/nnet_helpers.h | 382 + .../firmware/nnet_utils/nnet_image.h | 41 + .../firmware/nnet_utils/nnet_image_stream.h | 66 + .../firmware/nnet_utils/nnet_math.h | 178 + .../firmware/nnet_utils/nnet_merge.h | 257 + .../firmware/nnet_utils/nnet_merge_stream.h | 370 + .../firmware/nnet_utils/nnet_mult.h | 116 + .../firmware/nnet_utils/nnet_padding.h | 145 + .../firmware/nnet_utils/nnet_padding_stream.h | 85 + .../firmware/nnet_utils/nnet_pooling.h | 373 + .../firmware/nnet_utils/nnet_pooling_stream.h | 609 ++ .../nnet_utils/nnet_recr_activations.h | 56 + .../firmware/nnet_utils/nnet_recurrent.h | 571 ++ .../nnet_utils/nnet_sepconv1d_stream.h | 119 + .../nnet_utils/nnet_sepconv2d_stream.h | 143 + .../firmware/nnet_utils/nnet_sepconv_stream.h | 306 + .../firmware/nnet_utils/nnet_stream.h | 207 + .../firmware/nnet_utils/nnet_types.h | 64 + .../firmware/parameters.h | 247 + .../firmware/weights/b22.h | 15 + .../firmware/weights/b22.txt | 1 + .../firmware/weights/b23.h | 15 + .../firmware/weights/b23.txt | 1 + .../firmware/weights/b24.h | 15 + .../firmware/weights/b24.txt | 1 + .../firmware/weights/e3.h | 15 + .../firmware/weights/e3.txt | 1 + .../firmware/weights/e4.h | 15 + .../firmware/weights/e4.txt | 1 + .../firmware/weights/w22.h | 15 + .../firmware/weights/w22.txt | 1 + .../firmware/weights/w23.h | 15 + .../firmware/weights/w23.txt | 1 + .../firmware/weights/w24.h | 15 + .../firmware/weights/w24.txt | 1 + .../hls4ml_config.yml | 119 + .../keras_model.h5 | Bin 0 -> 52632 bytes .../model.h5 | Bin 0 -> 52632 bytes .../model_hls4ml.png | Bin 0 -> 240089 bytes .../profiling_MET.png | Bin 0 -> 467522 bytes .../profiling_MET_x.png | Bin 0 -> 425268 bytes .../profiling_MET_y.png | Bin 0 -> 478068 bytes .../profiling_activation.png | Bin 0 -> 100066 bytes .../profiling_activation_1.png | Bin 0 -> 343551 bytes .../profiling_concatenate.png | Bin 0 -> 73164 bytes .../profiling_concatenate_1.png | Bin 0 -> 84396 bytes .../profiling_dense.png | Bin 0 -> 99223 bytes .../profiling_dense_1.png | Bin 0 -> 90121 bytes .../profiling_embedding0.png | Bin 0 -> 74067 bytes .../profiling_embedding1.png | Bin 0 -> 81542 bytes .../profiling_met_weight.png | Bin 0 -> 141577 bytes .../profiling_multiply.png | Bin 0 -> 80726 bytes .../profiling_output.png | Bin 0 -> 87177 bytes .../project.tcl | 12 + .../response_MET.png | Bin 0 -> 115147 bytes .../vivado_synth.tcl | 6 + l1metml-job2.yml | 35 + loss.py | 17 +- micromamba_setup.sh | 2 + models/quantized-dense-embedding/MET_pt.png | Bin 0 -> 33006 bytes .../MET_response.png | Bin 0 -> 40668 bytes models/quantized-dense-embedding/MET_x.png | Bin 0 -> 32975 bytes models/quantized-dense-embedding/MET_y.png | Bin 0 -> 32212 bytes .../quantized-dense-embedding/Phi_abs_err.png | Bin 0 -> 51072 bytes models/quantized-dense-embedding/PrVSGen.png | Bin 0 -> 81059 bytes .../Pt_abs_error.png | Bin 0 -> 54013 bytes .../TTbar_feature_array_MLMET.npy | Bin 0 -> 2583920 bytes .../TTbar_feature_array_PUMET.npy | Bin 0 -> 2583920 bytes .../TTbar_target_array_MLMET.npy | Bin 0 -> 2583920 bytes .../TTbar_target_array_PUMET.npy | Bin 0 -> 2583920 bytes .../XY_resolution_plots.png | Bin 0 -> 142602 bytes .../loss_history.log | 97 + models/quantized-dense-embedding/model.h5 | Bin 0 -> 94336 bytes .../pt_resolution_plots.png | Bin 0 -> 157878 bytes .../rel_error_opaque.png | Bin 0 -> 47372 bytes models/quantized-dense-embedding/time.txt | 1 + ...tized_dense_model_100pf_500epochs_1_tes.h5 | Bin 0 -> 94336 bytes .../fingerprint.pb | Bin 0 -> 55 bytes .../keras_metadata.pb | 24 + .../saved_model.pb | Bin 0 -> 470833 bytes .../variables/variables.data-00000-of-00001 | Bin 0 -> 25439 bytes .../variables/variables.index | Bin 0 -> 3053 bytes train.py | 2 +- utils.py | 2 +- 145 files changed, 27367 insertions(+), 82 deletions(-) delete mode 100644 hls_config.yaml create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>.tar.gz create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/L1METML_v1_bridge.cpp create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/L1METML_v1_test.cpp create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/build_lib.sh create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/build_prj.tcl create mode 100755 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-2Bd4CD9f.so create mode 100755 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-87B65ff2.so create mode 100755 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-8aEF503a.so create mode 100755 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-95715E3e.so create mode 100755 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-B1BDE0dd.so create mode 100755 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-CEB54420.so create mode 100755 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-F1DF32D7.so create mode 100755 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-dDAfeD3b.so create mode 100755 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-ecB7D1bC.so create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1.cpp create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_common.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_decl.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed_base.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed_ref.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed_special.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int_base.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int_ref.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int_special.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_shift_reg.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/etc/ap_private.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/hls_math.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/hls_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/utils/x_hls_utils.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/defines.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_activation.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_activation_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_array.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_batchnorm.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_batchnorm_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_code_gen.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_common.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d_latency.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d_resource.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d_latency.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d_resource.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_compressed.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_latency.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_resource.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_embed.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_embed_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_garnet.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_helpers.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_image.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_image_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_math.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_merge.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_merge_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_mult.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_padding.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_padding_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_pooling.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_pooling_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_recr_activations.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_recurrent.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_sepconv1d_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_sepconv2d_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_sepconv_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_stream.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_types.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/parameters.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b22.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b22.txt create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b23.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b23.txt create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b24.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b24.txt create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e3.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e3.txt create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e4.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e4.txt create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w22.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w22.txt create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w23.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w23.txt create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w24.h create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w24.txt create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/hls4ml_config.yml create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/keras_model.h5 create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/model.h5 create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/model_hls4ml.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/profiling_MET.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/profiling_MET_x.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/profiling_MET_y.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/profiling_activation.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/profiling_activation_1.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/profiling_concatenate.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/profiling_concatenate_1.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/profiling_dense.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/profiling_dense_1.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/profiling_embedding0.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/profiling_embedding1.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/profiling_met_weight.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/profiling_multiply.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/profiling_output.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/project.tcl create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/response_MET.png create mode 100644 hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/vivado_synth.tcl create mode 100644 l1metml-job2.yml create mode 100644 micromamba_setup.sh create mode 100644 models/quantized-dense-embedding/MET_pt.png create mode 100644 models/quantized-dense-embedding/MET_response.png create mode 100644 models/quantized-dense-embedding/MET_x.png create mode 100644 models/quantized-dense-embedding/MET_y.png create mode 100644 models/quantized-dense-embedding/Phi_abs_err.png create mode 100644 models/quantized-dense-embedding/PrVSGen.png create mode 100644 models/quantized-dense-embedding/Pt_abs_error.png create mode 100644 models/quantized-dense-embedding/TTbar_feature_array_MLMET.npy create mode 100644 models/quantized-dense-embedding/TTbar_feature_array_PUMET.npy create mode 100644 models/quantized-dense-embedding/TTbar_target_array_MLMET.npy create mode 100644 models/quantized-dense-embedding/TTbar_target_array_PUMET.npy create mode 100644 models/quantized-dense-embedding/XY_resolution_plots.png create mode 100644 models/quantized-dense-embedding/loss_history.log create mode 100644 models/quantized-dense-embedding/model.h5 create mode 100644 models/quantized-dense-embedding/pt_resolution_plots.png create mode 100644 models/quantized-dense-embedding/rel_error_opaque.png create mode 100644 models/quantized-dense-embedding/time.txt create mode 100644 models/saved_keras_models/quantized_dense_model_100pf_500epochs_1_tes.h5 create mode 100644 models/saved_keras_models/quantized_dense_model_100pf_500epochs_1_test/fingerprint.pb create mode 100644 models/saved_keras_models/quantized_dense_model_100pf_500epochs_1_test/keras_metadata.pb create mode 100644 models/saved_keras_models/quantized_dense_model_100pf_500epochs_1_test/saved_model.pb create mode 100644 models/saved_keras_models/quantized_dense_model_100pf_500epochs_1_test/variables/variables.data-00000-of-00001 create mode 100644 models/saved_keras_models/quantized_dense_model_100pf_500epochs_1_test/variables/variables.index diff --git a/Write_MET_binned_histogram.py b/Write_MET_binned_histogram.py index d152e838..0f963a94 100644 --- a/Write_MET_binned_histogram.py +++ b/Write_MET_binned_histogram.py @@ -332,8 +332,8 @@ def MET_rel_error_bad(predict_met, gen_met, name='Met_res.pdf'): # for i in range(rel_err.shape[0]): # std += (mean - rel_err[i]) **2 - #std = std/rel_err.shape[0] - #std = math.sqrt(std) + # std = std/rel_err.shape[0] + # std = math.sqrt(std) mean = mean * 1000 mean = int(mean) @@ -467,8 +467,8 @@ def Phi_abs_error(predict_met, gen_met, name='Met_res.pdf'): def Pt_abs_error_opaque(puppi_met, ml_met, gen_met, name='Met_res.pdf'): puppi_err = (puppi_met - gen_met) ml_err = (ml_met - gen_met) - #minErr = min(np.array([rel_err, rel_err2]).flatten()) - #maxErr = max(np.array([rel_err, rel_err2]).flatten()) + # minErr = min(np.array([rel_err, rel_err2]).flatten()) + # maxErr = max(np.array([rel_err, rel_err2]).flatten()) plt.figure() plt.hist(puppi_err, bins=np.linspace(-250, 250, 50+1), alpha=0.5, label='puppi') plt.hist(ml_err, bins=np.linspace(-250, 250, 50+1), alpha=0.5, label='ML') @@ -573,7 +573,7 @@ def MET_binned_predict_mean(predict_met, gen_met, binning, mini, maxi, genMET_cu plt.xlim(mini, maxi) plt.ylim(mini, 700) plt.xlabel('Gen MET mean [GeV]', fontsize=16) - #plt.ylabel('PUPPI MET mean [GeV]', fontsize = 16) + # plt.ylabel('PUPPI MET mean [GeV]', fontsize = 16) plt.ylabel('predicted MET mean [GeV]', fontsize=16) plt.legend() plt.savefig(name) @@ -621,7 +621,7 @@ def MET_binned_predict_mean_opaque(predict_met, predict_met2, gen_met, binning, plt.xlim(mini, maxi) plt.ylim(mini, maxi) plt.xlabel('Gen MET mean [GeV]', fontsize=16) - #plt.ylabel('PUPPI MET mean [GeV]', fontsize = 16) + # plt.ylabel('PUPPI MET mean [GeV]', fontsize = 16) plt.ylabel('predicted MET mean [GeV]', fontsize=16) plt.legend() plt.savefig(name) @@ -673,9 +673,9 @@ def extract_result(feat_array, targ_array, path, name, mode): def histo_2D(predict_pT, gen_pT, min_, max_, name='2D_histo.png'): X_hist = np.arange(0, 500, 20) Y_hist = X_hist # 1.25*X_hist - #Y_hist_1 = 0.75*X_hist + # Y_hist_1 = 0.75*X_hist plt.plot(X_hist, Y_hist, '-r') - #plt.plot(X_hist, Y_hist_1, '-r') + # plt.plot(X_hist, Y_hist_1, '-r') x_bins = np.linspace(min_, max_, 50) y_bins = np.linspace(min_, max_, 50) plt.hist2d(gen_pT, predict_pT, bins=[x_bins, y_bins], cmap=plt.cm.jet) diff --git a/convertNanoToHDF5_L1triggerToDeepMET.py b/convertNanoToHDF5_L1triggerToDeepMET.py index 33a6a21f..7bb9cdc7 100644 --- a/convertNanoToHDF5_L1triggerToDeepMET.py +++ b/convertNanoToHDF5_L1triggerToDeepMET.py @@ -6,7 +6,7 @@ import numpy as np import awkward as ak import h5py -#import progressbar +# import progressbar from tqdm import tqdm import os diff --git a/convert_full_model.py b/convert_full_model.py index ebb3ae7e..6d8b2b13 100644 --- a/convert_full_model.py +++ b/convert_full_model.py @@ -15,9 +15,11 @@ import pandas as pd import matplotlib.pyplot as plt +# TODO: what does this do? co = {} _add_supported_quantized_objects(co) + def print_dict(d, indent=0): align = 20 for key, value in d.items(): @@ -28,6 +30,7 @@ def print_dict(d, indent=0): else: print(':' + ' ' * (20 - len(key) - 2 * indent) + str(value)) + def load_model(model_name): if 'quantized' in model_name: model = tensorflow.keras.models.load_model(f'models/baseline_DeepMET_quantized/{model_name}.h5', compile=False, custom_objects=co) @@ -35,8 +38,10 @@ def load_model(model_name): model = tensorflow.keras.models.load_model(f'models/baseline_DeepMET/{model_name}.h5', compile=False) return model + def configure_hls_model(model, config_params): - config = hls4ml.utils.config_from_keras_model(model, + config = hls4ml.utils.config_from_keras_model( + model, granularity='name', default_reuse_factor=config_params['reuse-factor'], default_precision=config_params['precision']) @@ -46,7 +51,7 @@ def configure_hls_model(model, config_params): config['LayerName']['input_cat0']['Precision']['result'] = 'ap_uint<4>' config['LayerName']['input_cat1']['Precision']['result'] = 'ap_uint<4>' # config['LayerName']['input_cont']['Precision']['result'] = 'ap_fixed<20,10>' - #if 'q_dense' in config['LayerName']: + # if 'q_dense' in config['LayerName']: # config['LayerName']['q_dense']['Precision']['accum'] = 'ap_fixed<32,16>' # config['LayerName']['q_dense']['Precision']['weight'] = 'ap_fixed<32,16>' # config['LayerName']['q_dense']['Precision']['bias'] = 'ap_fixed<32,16>' @@ -64,19 +69,21 @@ def configure_hls_model(model, config_params): print_dict(config) return config + def convert_to_hls_model(model, config, output_dir, io_type, part, clock_period, project_name): print("-----------------------------------") hls_model = hls4ml.converters.convert_from_keras_model(model, - hls_config=config, - io_type=io_type, - output_dir=output_dir, - part=part, - clock_period=clock_period, - project_name=project_name, - ) + hls_config=config, + io_type=io_type, + output_dir=output_dir, + part=part, + clock_period=clock_period, + project_name=project_name, + ) hls_model.compile() return hls_model + def preprocess_data(file_path, norm_factor): with h5py.File(file_path, 'r') as f: # 1000 test events is good enough @@ -97,8 +104,7 @@ def plot_metrics(data_to_plot, hls_model, model, output_dir): y_hls = data_to_plot['y_hls'] y = data_to_plot['y'] X_pre = data_to_plot['x_pre'] - - + df = pd.DataFrame.from_dict({ 'Gen MET': met, 'PUPPI MET': met_pup, @@ -111,19 +117,19 @@ def plot_metrics(data_to_plot, hls_model, model, output_dir): plt.close() df = pd.DataFrame.from_dict( - {'Gen MET x': y[:, 0], - 'PUPPI MET x': met_pup_x, - 'QKeras MET x': y_pred[:, 0], - 'hls4ml MET x': y_hls[:, 0], - }) + {'Gen MET x': y[:, 0], + 'PUPPI MET x': met_pup_x, + 'QKeras MET x': y_pred[:, 0], + 'hls4ml MET x': y_hls[:, 0], + }) plt.figure() seaborn.pairplot(df, corner=True) plt.savefig(f'{output_dir}/profiling_MET_x.png', dpi=300) df = pd.DataFrame.from_dict({ - 'Gen MET y': y[:, 1], - 'PUPPI MET y': met_pup_y, - 'QKeras MET y': y_pred[:, 1], + 'Gen MET y': y[:, 1], + 'PUPPI MET y': met_pup_y, + 'QKeras MET y': y_pred[:, 1], 'hls4ml MET y': y_hls[:, 1] }) plt.figure() @@ -138,17 +144,17 @@ def plot_metrics(data_to_plot, hls_model, model, output_dir): plt.subplot(1, 3, 1) plt.hist(response_pup, bins=bins, label=f'PUPPI, median={np.median(response_pup):0.2f}, IQR={scipy.stats.iqr(response_pup):0.2f}') plt.legend() - plt.xlabel("MET response $\hat{y}/y$") + plt.xlabel("MET response $\\hat{y}/y$") plt.ylabel("Events") plt.subplot(1, 3, 2) plt.hist(response_pred, bins=bins, label=f'QKeras, median={np.median(response_pred):0.2f}, IQR={scipy.stats.iqr(response_pred):0.2f}') plt.legend() - plt.xlabel("MET response $\hat{y}/y$") + plt.xlabel("MET response $\\hat{y}/y$") plt.ylabel("Events") plt.subplot(1, 3, 3) plt.hist(response_hls, bins=bins, label=f'hls4ml, median={np.median(response_hls):0.2f}, IQR={scipy.stats.iqr(response_hls):0.2f}') plt.legend() - plt.xlabel("MET response $\hat{y}/y$") + plt.xlabel("MET response $\\hat{y}/y$") plt.ylabel("Events") plt.tight_layout() plt.savefig(f"{output_dir}/response_MET.png", dpi=300) @@ -158,7 +164,8 @@ def plot_metrics(data_to_plot, hls_model, model, output_dir): for layer in hls4ml_trace.keys(): plt.figure() - if layer not in keras_trace: continue + if layer not in keras_trace: + continue plt.scatter(hls4ml_trace[layer].flatten(), keras_trace[layer].flatten(), s=0.2) min_x = min(np.amin(hls4ml_trace[layer]), np.amin(keras_trace[layer])) max_x = max(np.amax(hls4ml_trace[layer]), np.amax(keras_trace[layer])) @@ -167,29 +174,30 @@ def plot_metrics(data_to_plot, hls_model, model, output_dir): plt.ylabel(f'QKeras {layer}') plt.savefig(f'{output_dir}/profiling_{layer}.png', dpi=300) + def main(args): model_name = args.model_name model = load_model(model_name) config_params = { - 'reuse-factor': 1, - 'strategy': 'Latency', - 'precision': 'ap_fixed<32,16>', + 'reuse-factor': 1, + 'strategy': 'Latency', + 'precision': 'ap_fixed<32,16>', 'trace': True, } io_type = 'io_parallel' output_dir = 'hls_output_{}_{}_{}_rf{}_{}'.format( model_name, - io_type, - config_params['strategy'], - config_params['reuse-factor'], + io_type, + config_params['strategy'], + config_params['reuse-factor'], config_params['precision'] ) batch_size = 1 synth = False trace = True - normFac = 1 #identify where NormFac is used (and how) and if it can be fed via argument + normFac = 1 # identify where NormFac is used (and how) and if it can be fed via argument # check everthing works model.summary() @@ -206,9 +214,7 @@ def main(args): hls4ml.report.read_vivado_report(output_dir) # load and preprocess data - X_pre, X, y= preprocess_data(args.data_path, norm_factor=1) - - + X_pre, X, y = preprocess_data(args.data_path, norm_factor=1) y_pred = model.predict(X_pre) y_hls = hls_model.predict(X_pre) @@ -216,8 +222,8 @@ def main(args): met = np.hypot(y[:, 0], y[:, 1]) met_pred = np.hypot(y_pred[:, 0], y_pred[:, 1]) * normFac met_hls = np.hypot(y_hls[:, 0], y_hls[:, 1]) * normFac - met_pup_x = np.sum(X[:, :, 1], axis=-1) #does this need to be X_pre? previously X - met_pup_y = np.sum(X[:, :, 2], axis=-1) #does this need to be X_pre? previously X + met_pup_x = np.sum(X[:, :, 1], axis=-1) # does this need to be X_pre? previously X + met_pup_y = np.sum(X[:, :, 2], axis=-1) # does this need to be X_pre? previously X met_pup = np.hypot(met_pup_x, met_pup_y) data_to_plot = { @@ -238,12 +244,12 @@ def main(args): if __name__ == "__main__": parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) - + parser.add_argument( '--model-name', type=str, default='trained_DeepMET', - choices = [ + choices=[ 'trained_DeepMET', 'trained_quantized_DeepMET', 'trained_quantized_DeepMET_normfac1000' @@ -256,7 +262,6 @@ def main(args): help='Location of data file (.h5 format)') args = parser.parse_args() - #TODO: figure what knobs are tuned here by the user and pass them as arguments - #TODO: refactor commented part of hls_config, potentially adding args or default values + # TODO: figure what knobs are tuned here by the user and pass them as arguments + # TODO: refactor commented part of hls_config, potentially adding args or default values main(args) - diff --git a/hls_config.yaml b/hls_config.yaml deleted file mode 100644 index 849b299b..00000000 --- a/hls_config.yaml +++ /dev/null @@ -1,19 +0,0 @@ -model_name: "trained_DeepMET" # Choose from available models - -data_path: "~/data/l1_trigger_h5_ntuples/perfNano_TTbar_PU200.110X_set0.h5" # Location of data file (.h5 format) - -output_dir: "hls_output_Nov4" - -config_params: - reuse-factor: 1 - strategy: "Latency" - precision: "ap_fixed<32,16>" - trace: true - -io_type: "io_parallel" -part: "xcvu13p-flga2577-2-e" -clock_period: 5 -project_name: "L1METML_v1" -batch_size: 1 -synth: false -normFac: 1 # Identify where NormFac is used and if it can be fed via argument diff --git a/hls_conversion_config.yaml b/hls_conversion_config.yaml index 849b299b..203884c3 100644 --- a/hls_conversion_config.yaml +++ b/hls_conversion_config.yaml @@ -1,15 +1,15 @@ model_name: "trained_DeepMET" # Choose from available models -data_path: "~/data/l1_trigger_h5_ntuples/perfNano_TTbar_PU200.110X_set0.h5" # Location of data file (.h5 format) - -output_dir: "hls_output_Nov4" +# not implemented yet +# HLS config parameters config_params: reuse-factor: 1 strategy: "Latency" precision: "ap_fixed<32,16>" trace: true + io_type: "io_parallel" part: "xcvu13p-flga2577-2-e" clock_period: 5 diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>.tar.gz b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..68bcd4a21e3528d840389eefec260d67d1722098 GIT binary patch literal 2024046 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

RP??$avia0E@-l3C%mx} zu@(Zx+uE5e4RF`L;PZCRL-fl!x`y{?p7U;aUee+`NsdpnJ4V(0F%0LOaEdhg8f=X_ z{0F0all??4?8*65-iEV50k!D@prL%F-9-m&^WW-c=7@|>o0*S=r|!G;gz)K{6Y ztyLjEN1KreOBO8y?VGH<%r*bYY{OK|u9C`=stygcnwBPOcrz;sOJZkosvE#19a8HW z5L>yv(4>*A#^AZLb{^@tN~w99_5tFySVZWj>eAC+%wCRzRegH_9jwRc0(p?tbO9V> zQiEfW{t!7QJDHOnRxKAf8p8OFb7se0^l(y@k}g0WQ(!_GyTt2Fh8!qPENq|bdk86= zK+O#;8}w=~CRbU@e=mJn_TJT!pmK8FpBvWx=4^f#u$q}~_HeDb+CJ%Onwescvj@8& zzB-{RQldFHocPCHO8M}u@ph_?S2d3_Hg+j!+Z&!f+kBw{eLF2-0zPeGeEd1S>}kK6 zzuFaDM6;ne4_fuw?Y~c}V7jL)~;q2{J@}%6;?c@A) zuYK>D{~9YHcCQHNqM$g}Lz#ufRc18%`tM_2hrbAl!^xY=>-}k)oJWHX;qXv^I5RI&#M{hSvNy zd|a?3Ug)UjJE^gtS-I++hNVny@j=j@N-vo|tw{^2eF2$f;1Ug6i}P3}E?M+McG*k% zcW(Ny-N)9*v+%_of=u`;Aatbowo^*Kw)dYzfrViuWxw@yg}6`+s~|_kSxjzy#Sk4c zE~ws|8RreRVdXg7sQuCewWuf78qD}woQ+*;C;BFg)6&aua6;o#zIlGn7O4!+Cl5VK zOI;W9FNN%!yCZblJlE;k%&7Eso@UklL9}Ul$cXXRIEC7h7q)E9&c&D=Q|lV-lfj&7 z4MCiPlo8(=hqdA1H})fL%Z0pXhlLMKDhw&Bx<%fKi8m{$< zGFRL5lzPEv9Eyx>bieFu2j_P$XIM{`s_dNQ!L~}&`#aAbElxyF^NodWiBz0^VVd~% zP`#p?ay(h@edJ~V=YNJQWkesuxnkS@fr&x9TLze*?HvPWVunJ{7n1oZW|Tw1yZ``$ zvd#ecm%OYH`}fz!%0W_I6sz-Nn2%mpfVwz*e<)N$5V&h$SF7?TpB1>qGZb}tyj>sy zZoqX|Pg*GKMp95wuM7Ea9YE`sj0pN3LJ4s;%1f240C?!a*5%}d&fy}JJ2SY2$S!Mq zn&DDFRNeD6PMA`>!u&^0JKOJeLy;dW;yDxBmCcBH^$$_^8x&rPH|>gW0HjP#W@~r` zUqRRlg1nLn64;oJ<;X2F=$Etf?stDk0Ku11ze^L;bt=1ya?1iRlCVnW17mj4Mw=MOb^eCxMdOwrqQ6C#ypZc;)=b!W znCLH%pds_(4d^q?Mr`{~^XRRuAecG91j#b>Dlo8b$%pS)VQmf+^{n~@&8(U4&y*4F z$9APN1b(DChY3;4L@JTXpT5rIYmZhaYu_sWMJzAv;)I2<$mlg%7mH_&oneE3ib1W! ziu0sj{k!;E=~p<8(DRk%EV!so6BRrmN!o2IvuM7r3anyl4?g#k=hyoqU!J`ZRn#1V za-FEuf>xu<>c#(b;2T}R*-P)m#pi+p_{`^}r)jkGfQ72!vWRr*-$lv?6?i{fI>L@V z%%p!>vO`G-u{+9K^9ucU2W+amTFUY{C@CY46>fwz?5%%$MIO1r-0&%T*(TyZrhTdQ zy0Lfk6(g_0r*pbSivvCim5cQ?wC=qR{W}(MW>7yNuQ;$7+aa|<0hU+d;E!LhMAdva zHo5d3XA)6fl>b(q1O6EfwF>`ko-VlUqh#Ox@2@!zvnvY<+jB!t_d=lM8atzgOO9@` z#rH=N`}gwvGDXl)xkxt{&V^%sO2W#>S*}_SXz)OLR|&(#zE6tq_&1DNQZ%|bE{{`s zjGI<=#&PSs8Wm3%7klaW?=jMgClf3UcBL0?ezOXgNyeOM)>z5N8iIAcZfc>D)JeDu zd#Z_sn09Gt=M0cM0DLf|;(e>m_6JjBF+4E~wV3I#=`Y zEmwa$#LktELQNvp`<@?!Od2qPvFTTExUy#7^77BPlWk+J7(Ax@b8YR!a^e~P%4+%N z>%_mUyOC@@#c;`;y`t`saNA{Y^wY*tDW{kqW0mzspLfO+#^2dIYuJsxioJ|!s%Wx^ zZ>b>aH@C{cZs9+I1n?|<1mB_Ali)O8`_e=(Nb}~1!lSEHuh-MpSY@}LeKK?~uI^c! zIu~7#Vv5~*%VMaoB)z{ReXr}k?B!L)LA|q~Hg8+`^I7ieh3)$7WUh8MO?TGG^oS_) zo!{`V;%K8wJ)55TeBNh@XXg&AWSlzmagQQ5-?~+GoZT?`9M?iljPo^;3hX8o$^AGQ zENHltrg3OhqZLuplVY}btU?Y=>5~=_#RTwOIojc`KKOkTv@p2v$pGUd=kBe>e5cgF zy9XuW-4j%t;Kt^Cf&V0=D1WRHyhUhab$in}uM*V_YGm!D>5%_KX>vltq*jWUj-Rb? zj^+XchN>E3bD~1};j7}D-?HqY9YZea1SM5;#+62Py~^5D zTwMumMafNrD$d#lg}F-7ph*gHMLio_{aD7!H|MMtMRC7l6b3QbIjEK(E`H7zsO|{V zoU~FARYQR}s?{Zbtts;KPVzTAw(pbeDQ`P;{5&jLptoUHuuu5J{&w*Awi#Z_OtI9n zUp*x{<+}wrdMJ9kArr=AA^=#qUhQ#it1q<-+&UGo_}}A*^@hL@l3ZhCv5yxHHfa=7 zgD#0T$hYnPx=DqcF|&RA9+Lzor^3gpE|Cu!wKE~7JW12gA1*pf!EzPt-^kJS;}t6G2##h7mv42=L!Z8!gQyvRBAAFU-ET>wrhjaQX5- z*b3Z+9MGxjX0x3O&{||3fhBX}^)K#)Q#wegwBM+@ru4$O)r>e_;@Fz7Qom|xap@w*OWo5)LF9v3Su6 z-o^7r*tvtUhqZDeR({sVW#`bt^;g(d>skUZU5uWma6ID&?5>3TzTR~_mr zK1RCxUhu`GQzLxD4KC>d<9IDT3eGi^?!!K$>Dyt-P zRlfeVx3FPHFFbwKrYW#V*DCDe$xo5|5PLZdaQ*AVq)@%qO3M{;#Yx#EG?l6>%8h%zPUPAe%Fu)Sx(vw(S3TFrg@X+GpSPPWB0{QLwl? zSV~0))C2w*jxJ3NalMuxQ~W>-R7&_RP?%KhYPksyPD)qkDX9y4cb*e`>vHG-nB3YY z>^R7l~&keZPhN5bU#-@Zz~HmtwKZ zm2lJ``Wa3BKq3yFR2$h;?aBp0Ag(3>tSseZyPQ0t2I>5LnNj;V`et9|`ciQMfJ@vc z^@%UkCNs_I*c+BM*rszA^u#;;G_T(5DDq#MlDTZqtEan{K$+Yn*WeeC^u*9e{*S0EF+f zmmdf+nrJy|x?g?9`!cHrrxE~j5MF+eF(lO|Y7k$W_rDWar}Ssq<~-<24}(G`_ALEI zCr?xU&rcaM3rhl!S}HsGGIQ+%YYqefgabhkN`oORH{AP$WIKVr%*BIaM(>XYf*YP_ zXw+bn7fHc-IV8f6+j&AClK8#W1nm=?Kfm2vo#;Rx*>xN(5oBe*APNq^xLz%-_f|Xb zR$FZJZ8#y;BF$^=Ty|pNY5#boS7BTH!Fn7g6DCSi6iLm^@SOeV&Ac85{tv+jFc6#G zfZKVxd#kRJ5)misaeLo$d=4mlR}((I$|H$2%W|`u*ak8$>`2}W!09v(f{XnFMmsMi zGFil}9EIn4zX!ZpD3y3gwAUUj$u~3WzSa5m{c*;2HER{05m>B*@}IwVvY_|voDpb& z@YrKxJ=EyYO#oUf#3s?&`L5!4A@74x>`lVZM~f-10{#H@(*8ajXJqe47h$4@Xq7QK zrm7?!eh{4=g`v(f8KdzNbyIQP56)!cN#v^)%cAL+ugC{(F~9;A)4*D*nobG*8WN}d zgd^-p)A&Z^Fef?!^X0Yx(nOD8-oj|+Dn%=hsSKUmzUWpNSf_%=)Ydh(_45@trn zf*jw!8ZBd6ws&431gcx_4TOelwDJ4=naB^_u+;~F++(NlRk~?ZVQ04w=M{*&B(h>CR$?u>2;AJ z!d!$lZPS@~`vzf)S%Prti%}3Yx~Uc`V}6<0yaf7_z~_}+yqi>(B5CSAHI^zLsJbp}soSZr3JXY%oFuiac0b%B<4P!SgdY~w+(BGWZI)-L z9(#fP{WC5VGTwc0Ld{ypZ{{lOrbB7>+2i1*cRXyn|IXVENFtG!l#z^%)z?9Ms_ z?5=V8Y8sgUPl-2%!8z+_1eOkZu9?Mv&&x^Z^+IINKX@S8ap4=kLkT?4j68xS#i|e{ zCAW^w$|S@u75qW^@(WnY<=XdV3ZnZTEN4` zMX}lbKW|W?$bVR!X^A3)EDYXnc$nw7%Y?-JPMz#z5#`8ag-BSmQm%+E2Xlsk*=>}t zwIA&GKXL+3Z(^6yYjcBt4!&ky!URewKS*i6D0?9zq;bSfI6HC_jd~q?ZUd#-4|!(`wZw9xO4qw9tW?4y~Ad@Ph9LW3a=U$GplSJ`e=-OWuy7Ir*FJBXkX~$ zN3ut8r{u4e7R;uXukK+?S*NnTe%{=~GGxQu*D?|b_~j3}>AUK7&SSLE9M_G2Oi!kL zGB+(TZ{+btnP0s@Xq2zwztfnqC)LP2jl3E(!Wro%&2_S`(3EpA=;>%*2;uy4O((z% zH2AfoyUMO|&gF8|gzrj{FMaie$1k;++Pbp{kBOR43!aQE-}yoD-sVtU5BWL{f_L5T zdG8D*1w1@9K?trvUpq{sIxxcM*;6QUr7@O!qVnj=lMMJ@}nhw3j zxXIPuH}qfBEhouK4<3Hxy9=JR&p@i!OPSq1Jy1;e#~J0eZOM7c@_W2iZbW>Ez3-9z;DPU~fkihu^U3Qj^vME(CB+GFTWO{Y!ab|!fnQ>H+Gz~ndQsuIK- zQ4$J#Z}r}mpI0U`V!CD?*+dRd51u|O5pht8mfb|XhDO1j%d^a%UhRMIp`bS^2f)^; zPIP|^x78Z9-x{#{=GlN^q=Gi6S0%3@HL?*JZy?vQr^BE>OA{6~bM|wUT*tWt0RbIH zB|l|*oBeMlir#cE`}X+!=Ku+il)(2zjKKM;76Q*Pq3BV^fb7&U*b_c9cJu1g3jA{` zuvTdIN4HExiOlYIy>=eizg0GQ1MO3>&3+t}UwaJyo4ycUaw&G@T~!3wHLc@*OuLY) zmwO-Sb}7#ZPVpe*n$7C37)_da{|P7g`2`!aakqt{$8hy!S4E>f7BTYgX(+wxf$THk z<&xtmLFJe_D=z>UVzn$d_7EFn`l0@%CC`Tu)_2DdhV}LU;B}0=q_e%Tv&I*ncuJVs zkFkMfnH9{Am;n{j#kqA^8noX10DqcmI9;+}-!>hh)r^_1x!$u zrLMqHfEcYyn%X}S_TYfDryK|2^bd6Z#S5y$7kzL78KSPh#xfyXqwuQ8|(; zy&0v&R!T-WdA%8c-A6fTO+H4`?Xk6eA?uXkVzzdv{HLIaUQ#9uV^N&1U=bmg+XR{V zOWq-xOz^0Iw$8KH5rFX5&WGV;GlFIBn>saZ-LA3R{yWAspOiZBODE^FRFaV| zuJu}LJ=<`2!ceUec#(CCAE)rvr|%~FEls8T&s$0NP!Hd_2$f&%TU&x48e@R}=%-Xr zT(&?i`JhC=^TE@HRJO5))yxKB| zRI%+Vkzn&h76y@{oC!8+OfS_?mDNHP+bo!n6LLJLcj;SXp7Bj(_!P&YD9?4;YzChZ zEQOE`Us)EQZe2Zo+S5IF<19Vuz~p4dkUAkfDBBU*@R@#vTJs1!p@mWZ2X+w4C+L_W zs(5S?60!ItuP>aENm7kNehiF9_63pvgcy-f)#-c4TO?hhq>aFUy~3ucn-RM~wIxR0 zBr=MwU$7B+MOM+&BOrXS!jDbE`n&rMGx!nKW!NL)pKhsRkJ~x&X^>yy9>9UQ>UDDY z6T(@S_0s)X{DX;bFsL-mDNmm=!SVBWNgAH9`6(XiUPZ{$=r{1a>Cg{W_}wS;vazoH z>+;|aT6$#H0rj?j*L3;FI$l!uB;wgW*YNpVQ8DT|f75u!13L%Y3)*q{u6C@nUMDg6 z-%?=1PJC#E2`p5u$7I3Hq+&rq>Pq?M`=ReA7{XWPXDH1IolPRKN}X0tFZ05BTylV+qfVpYBZ zd{f)oHs@$RJ!sHSLyL7q%e82St^7&C@*M=Uc(8iqejd2t)8Ytud#arMeNHda6=_4; zx{096iu###f>&mH&UdR>zn1mnnSF1%_fV*20_VyL4JugRmTXeBO9!YktFd*CmC>B0>l4HFpTO@u7Bvp) zi3teiJvimzcu1Rh@7l3Ac)2{J4gNIR-eSZmN(0!HRP>z2*Y^B??^$t1Sc~)6*2E5h z1$PYZk}M?1(ym;ZepHFiB=}_IwTKc@CrQil|7@10`dlfk6g?jK8mr1r$Vm=h3*6XW zIXTHg8GKlN_BwatF6+tk<=TU)s(!zL-e~rj{{%glC3l+~d2H&(OjZm#iuE>Eu3rnU z5iFkmwG$H_E@q3@Wu?Z)_wLzMMM7t>pXA2ZZhVCfx-UiHJ|SkEIQS(^Kx~D*nyiVR z`u&vDo>bmXxpS#>S$8DrOSYAZQHqtztCZ}$^~Vx=hulsa4}KQiaW3)s_!?X?Jv$6L zn3awCN7@%(Jij86Y@7u*%t7fXuk`95frjy!IxhaDNwiYmGZ5Uyey&x9bm&D&uj;1^2hReVVK<-h7P*9(3&*+#U! zE+HD+P0d_0!-wDg49Sxo=F=*$844i1v1=6F-J==bJh3~rm%aZt6 zvDin)i7|sy)nRE5v6;!?UcoU4UaO@<^bgXx<`zQ3*F%UFM~62g z`mh+S#~!c+0!P~Ue%-D!Q##X*u_OJQISpg|K+dr|C2bl`d#KGa|y1rM_Jv*UEn(VIiwW3jilo< zcr0bAx&72DkDIwhdgR+vKjwI*shj+;mwwF3pG`EPKe@e(l6@cH_;wT1>NvbwiHP&j zwe}Mc3eWQjgIVQnjU2_Y>HiQg*tIN(XEOx2_^-BfuJtUu%FTL?7QcG%syK5Cw{S$BgQG>OsUAn4L81)Vw4+u4TSGZ9xsI(z(7Jq<37aUBpf<>kd+mjO20$?uG1fT6KFE;lo2dU-Pl))lpu~ zfJMlN3Xf6jW}-ZkD|KR3pW~c2WdBhfURI!4D+Ly5NBPVWC%^5UF4ZwO@geJ@)x91W zry`LaN_Oa{Sb}ATd4!<~`bOZ`)zkyQO|NW|;rE*Vp*>;bA=MEqMftwVB>nV;G^0NI z=kxbBHa=`}I@SoYgU;U<+M(w?7|WHj+YcLJb4?+JC7vFpzM*>_IA2Dek6_NWKfpNE zs++}}MUI+4<6UDmTf!!l7A<)FyKpDP4-7b*%z6!HP?sksPL0ER_KxL}y%Q3dm-5d% zdhaY12nWaeX?5D49|9S+sjt|289m&-HEi&^?x3fw^>irb@B0fF(hCo=G^7h=QhIv8 z@%T@dHJJC14KjrN(yy1=ah=o;*^J;l{4e!TVO?oiXL%&<3t%}`!t6l)n!Nx-Mzkm6L1~V&b|2u|nP`M{{xCQAg zFBW)H`A%KXc=htp8bW|1psJHUn9OxdEn^K!fYSpG%BJoloh{$W^@Y7ZD8uIsw!tzc zj-Omzy3Xfx+5r!4+Eb~H1Y$jY|FgqkyLmiqf+kzd#9oKpq1o@rQaaUU{@v>9s`OR; zh>tk7)kA+dIV6N9i~Bsyg&v$zji>BY-ne4gY9eW_#+VxkQ2LMe_u-1}`)3FKV9K(z z6@|}FC$h_rQOdKXZp@}nUD-%@+MXmw9RzXajBVVWe)*-w$N!zh_;;>9(~zV$tJvAK z&BXrhB+rA>USZ*ce(BjNba9qRlxdK9=pU8T6KG2{DiZtA1~1j=iOp*PMIBUE`YhE^ z4T#lVs^z3Hg!jTos1HCE>Pl^{zMGEm73tWhSgovSot5zI1P_-WM_RlA$iTv9?te8Z z!t`JcDm-IzlSSE#1wSfa4|&bJ-!83%6+ zP$e*+diozxsV%Cp$qs$qFn>6b!G*8GQEJ80X5OY#Kt$O73U%pn|(VQ zOshQS)3S}*8zvh?W3vy&_VUn2aRpaFKE4oR~%;n7dxG)cCdQ7MED2(x$O1gCqKjAWa zO-t^ykX?xGNukKlIy5gw3o;daNiqo8KkI5;u)sUeo&(-(cmw{Ly0|C1+c35hB43AY zj%tZ~zroo+lAa^_1|hL?uD@EAe3;34WY|Kd%oj=egBD~Wm}7Qv&xJU56xj^sZlF~x zEcGP@@{)I*;oiFwKeQ(_|am zA?@x9pJv_g?m@m$1FmfmMBjLH!1|icQMSf3Spn`2-d!10nfO?)q%t8Q+}h_luf99% z0e6?V(ca@~%@HgWRWi8Cs4~p$tncFjx-#1c{QdrR!#j`C>MY)aUq?UZHu%qKbMs7Z zzLY^a%sX?A7&w|-an)qp#*bW===uUbxzy|inYzqw z_aJ1sijhmjpKY$BxcYZn+$G18@k~-!nf>KcMO=*Z71vF(kq$><*~$?!lT=n-f647J z1IOX2mnR|FjN;vW$*AMXIX)E4E3&(sZExjly9StJ4paHtWeugyH5$l`mgp5CCL7$t zx!CrK5!M;EO*7I>Gj78W?6C+_vSCu*#bJTUez}q6%%jfBCrB(ENL;>juVzP&9}aLh z&Aoq1J>l}ad%R@AmoM)dXJ0(Y`Y(o^&D6tP_`;{UyoWN`YF=|bUZ0*^w4Qbx4wlk~RIl?=J>sHQ7vZR#!bkC_|GL{Y^CHK< zus}3nIr1a9OTGZ5pG?*Ed3PP#BqJ}6Pf{InW&`ib*XBjx(>EqgX58z08>nU1FG8m+ zEZSFH^$^g#Zlw`UDpI@Grsx>tv<`gTBx9Txm`l-qHEqF<#Tv|6RDKw3T&T)1d2)S0 zCGSg$y@+sLv63KFZ0^gNj_X%Ln_%Npo77$Lc=9jZl`zm$m7TPwg_kkBO*Wf5%R6mO zY;=dRoRacN|A}zXQx=omnTIvMD8}U$VI{3l$ZpEjiQWq6>WaA^zburCkg$8NnY9lF zsTmQr!Z&`|Bzi!6!r@V)Pa8Fe*#zRzAYEvoLz~$47q^{CE=G7G(BdmF6{afm=R5>@ z)YlOHx(eNfhAD-=eu8Z{y?U0bg$Nl3`xt?T|G^4TKBNkx-0cs!UXM)sZ>6bSE>SE9&gmCjVjI&x|Ew8^n>e?HKu9`b?j{fp^W3Mcdq)Z~nT zeK$F<^l5cY)e8cpL7Nseyfv6QBW0(kG6rOicm;1lpp_0A7Fs{D+AN83(eGUt>2Y1v zzA-*WQ${(Rt&_d~T89Q!a|Tq~)R;GQVY*&>1#AYQdWpV{)Wg}QWBB1*P)^fR!NRFN zk;Og|Z(LerWRm1U^B?51lB`QsS67~5Q2U8A5h#oY8H~U@*!_F9Y@Hy%V6tnsaqX{uefivpXCw82(zFd#RQ-N>>5$SirsX6wpROJz4OLDPYc$)gcnxEIp|U+;$P5~wojs~KPG8z^P+;@F3v ziR7S})a{bkpyl4l506U%ft!#qYA*TNN#Ne*BDxL!|1{8(AZN9vL#lVv0|Y>#*ka{0 zI-gMm6pbXDH&N^Ce@O?Zg0-eooxnmCqN&cEXD=|d#hgQDSxU>j2$U_?3@3)`Qv2Sb1c}&@g;XM#v_wl$N6L+$$Br4U&8Bq-xJ5Hv;chHPMzWN5i41JM=X z;bTOHPR7h|K&Axi(4m|aL_Z^R@X*JKFBP+fP?8$vbml_Z^MNw(sh9{Wd%bDM4k zvvYWk1WITa=@i}~ku-SdZ^f61iAQ{1x|akPJ{b(?l&DR?93vJ5huHsZ}Cr_)y)dZ)0$6_z;Y+1q@d@g?CCYhRm1nO~uSOg=b3OGcb>>RHTO25K%@M z_2W?3|9j254>pr_gqyvVDStnYNZQmQl^*yWw@=M+c_L=kooa^%M+X+oP4fPhUlk#; zR$B$O&5w!l;xk@khI>0FZU=7Oj9`^$_G*&c^e?zQ{$yw{itHKtrF8GegQJ@gH z%o3!0(d9PQ70?JXA2y%%8_}DSoIidz?lV>MAUPx_q%*d$-wmQT&R0nyYenXUEPZNR zXu|3iDcdV1C5MEh+i1?QHDSR;%G!5Nv?3APH{1;$kAhyz@s`Azr7gL0Q~z-`oT?!w z6P@ReRmLH(5YR1m!v|EvRO6xy!DtB56#`Cb1UZN;sm)F3D{7HH7;Q|cmmDga-DEg5 zk}MT1oIw8CtE^Gr?r5@3HR)(%1#!89gmBUysQ_d0<6UTWJL(7RoI6~8c18=iU6@Q{ z)kRJ?tUSbVT_R77!@TQ!Q;Fx_Q8nBFva^*%;FuqKnZyWp`nN`U%dGHRTK$V`U&Ugo zx;wt>>3G+V5!|-W=JWu0iLYTCRgvkrexxjRVko-{E&rf`O3F%K`zjTyR1-(|@}p}+ z09|;rRIxj?W{(s;Y`t5+6PmiKd5qpkvYBtVM!Z|px$LmwZIoC!20d;~_?f6c&Dbqn z`Gr2|rInqyo$_;#74^E`ujCWq9P&F`nJ`Xj{)#0#QLwXeW+h0xKZ)j7Tvv#~ptrwX zrW5X0j-!72da;Kb0r^`3suAH`+E)II6dzDiz^Js{h-gSsJ703hL||N}vDCkipS$Hz z!GF!p&>7?vadIuIIJpv?MuE)%oXMPbHm1yT5YW(UV{|4nq^D#TPTC&uCtF?xO3`-X zjiNFRHkm1Hj*d~63U|?P;6|7ZD3J%=Vd>1%jyd&8y-*WtMufLnmxH7@UHTojX@JDS z1E^5qGD^^38wCw?qSuG?`goY{7Y&o&S|eBE6M*_5?esAbBAW+2C!IF6$yS?KdV+dj zKPF!J1kMz2j`B`~Y&cA1rN)fcpMB;+75~{(UYkfJIEB8=_074B{{xN|W)F*yR^;P2(L(s2URKEA2t@>$e2a5`t!(6yNlu6d1#w~XCUowDhD z^iC1twkfx3-;?rw$>a_nJB<^S9XTlp-AR6;AAd8(3DT}aRWIC1cZ>0&asXsACjam=h8NfA@QveSLg6V|gb2?CP>m5!&^hazMYWo9z~l25=~a`p?Mn8L zbDi`v5n{9m(SHv5U-CG;j=~qRdj1)-Sr=7UV=`WBx1$B#piPV~(;SNEJUW>)SCb-o z_(QO}4;D&$NPav>7C8=InqmHq;MMaYqWxB%sLEn;AL z2WuKNN^*#1s9A4eFVVj#IF}Rwk9ypR^1P_5;#oMWYyOL{lX&~6gF1HQto1}=j;=mO zuTui-5Poyo32Y{H@T)xRcf|-Efd|qve^HqM-wv{(x}Hx-ftn=(r_1glOtGHM+2X^& z|6{De>0rgU;tG&nstn%Zlo zz92qVTQKSwr&C)#A2Ld8>Y55BpP1Fy_qTT)^i?w~IN*a3MQpt1k*;_?Zm?K1UR$<9W7V7ewb@L&;lOaCblZ?+r0JAqNZDxD{X0d&Nq~_HA3yI7 zwTqYMon~Mk+@*6LNSw@8k_;dElL+fvv_oY|w9#-85 zEuTMuq`21{aXzX~)M1;9wHtOLcYb1Sf}J=|V&S{XGcqGE@uj|Tyw=;Rbmp4p&|MuL z%hy>%-tgWbVS)8BUa1!^EDbE^KP5HIbrEb@TYky+5Fd?|CPKobH0IZG?-T}ES7;!e ztaM^Cb5GO2d~TlybT8V{vC>YTi|UQy_uSlOw4ER6DwIyoEfx>NvFV*;)Kxm~B_Acp zP@LVUlD3X{TGmOi_;j+wFC{tXLwp^^pJISzRUlr6l4bQ%TT{4%z~;}R64~>kNTssQ z=~U+Z?=1oA6WC@2rK#Q*9S#2L!0Y%%oIYy@fcWYSsIwI*4@*p%?DwUp7&M{1+3IF< z^no@?GWb>2@qJx- ze(!4lkp6DgHcT!H%?6O+e5`0g(Tbai6qRKC=A1?M@B7V8qs*TU z)gX=oLT=xqUx`22+g|r=US|lrodr=I_+IEtUR*Szkx5r6<9!qAY2nqI&Hk&sD%a`L z&96_OL<{q`vFPHx)5E9RWArD$Z*&K+I-8SUbV;~a4l65b4{uwo3%yxIz7llsC?mWu zYdHN?-z_VyHc|BMA=Kl@7kqUVJuFWKChj^gIrU_9F(0_;;P*xL=eX|E zEmCCn<=xTzbaR(39@^F{=a{0qheQ)cQNW^nHIS{lss7QdI~ng!n*7gu z4n+do=#Ap0k#=;fS>ETHZAM%tjzDqjbq!>XuwJ~q(Bb=AvEs<2U+BffZS&?$Ym$Sj z-YWE}zPUD@DNOlDm;;?H?LyY+VU?5hd^1ca;qxK0@d??ib~Bu{x#P!BRefvEb(j2R zC!bk9Pj`dHviynucemCjnC!foMIB1~!k<7(v+its(+&KLwvNhqYtfeYwf!cFBBrqj zdb7wtOm(bu6p1AYtxyd(HACyYDSH>Y(!T0+@an5Vpi!@mXh@)pi38_e#&B^UQQ)v& z=;lt=iL_5WGJxpXN0fY*1ycU5Am6q?Ah*TS$}}j4#T`@$L5I`NZi~K#FRXD#2U|#4 z@!|Et1DB#v=reKo{tWRd&&(21vxyCY3k8cNT#7h!=jY|FwyML0W?`F~a$+7TW8PE= zKTF>570LO(ceRRrEIORIK;tBkF{(l|`L#CV3<=TsRVd0)T5-0?yoS`L%F5b^D;C^| za}ISg+Z&jfZPYahsp#dIJSo(goe>va>EW0gG8$UvYYt~B*kgr&Mw{0~&)lv`o)WY= zceWpH4X;gF^>|Ok))n%^Lo3STk6ZKfg=J1!>qnI0c5dgmb?#QpQcTjGy8dp0#Cx1i zL64_yMCX^)E+l%+(VEvAYSF6ge}?QfBQK5frX)9wCMOS26nBeCyv|4lzP*nVbfpbY zYSe`)elS<=UmJVwF4}tkxhbGIwg*x!Qm)7A^s7YHpFp(8?YHN%{XPP(ixu);h8fBw zH6G9sN3VSWe`BqWBx?q8k{zXPUjB#5PXgAe0!1%0n?H;RM>%Eck7ve%48fHY*BPZ1KCz zkwYhrTNAktKd=9iAgLxXX3z1gV)(t-`A#mHZ9`9hn=&=dX-NLCNY0Jtw1#em_?Lbx z!%uls8E(6SPOiG?HZC_MI$T02I=4}`?dr>Qp?H37@T@(@k&#wID=6Yq%1g#P_p>La z{1>#gvB1lLx!*_0mAFS-2zLY$b zzBy{?&piBNf-W^F;P#mn##(C5-A=l?Sp2~~IX=&b+@=$m22ac%N*7w1Iq}^yX-d^sru}Dur8?G_8iH7^p zdt*(30#_EXFGjNrn&Kv%$F6fYs1=&bBht7kh3`e{a4eci)!S5eUOY4aYZ4=$V%p<5m+4`f)#b)}b|4 z6_)mLUZ$g^xJl z)FrF7@)jJ6EY3;Hc8%=kdTG6gL(A_qQeUSbmkwadJwG8`^`PpDoW*_BD}kcUI6fIC zY&>5DLv(ZkH6Evxxt5hRdsuy(w3?_)W#jZu6C-| z>gWg(-?!>bxo9}tD2u9@T$aN@_ZC^A8jVbPw2WMemOsqgE-e+h@$$g-zhx}%Q%x^r1+Dm8-}R@JAYhi_M%8lDF_ znxhzow*^}Qjh6>6UmyvLYw3oC2E$L6oJ<-<#9uN0JRNb_@fm32(j)s|n(pN@IM?($ zrDQm5W94j14S1u_2qb^T$Z-9}ndrSQJB}1=l_o(2&r%P=E1W~TmqZN0@7EN{dVe_Y zd)-YoYO`@RF<+`Qny=KJRAuohWBJijZ%31uv7u+b?ZrpMm@X1**!%o+R#Q=*aoLJG zty>g{l=%WmqdF{!yPqC0=b((Y@A{%X2ep5NmQK4#7iY8$CY`uzR`g=>LwkdB(#_{^FZqjt zGH0KK!BxW2qaRf+{iw5?eHS9Wgn;(d=JL>U|0AmnEx!7*B8~PO+`(Z``EKfDq5t_d z`eLX-8@l;BXfG|X#mX1=;X;1mkjTGlckA_#t;ba2U2wAna`Wc9-x5}!qiObqxa~8flhzFsSj}hmC>_~;4n6DR(mUHG z!o3>x--Lp#j`Q={7hJCgZ02qzPaJ2-%VfQBn(fWGhuw{kzTKIq7zCsFovPJXY5iP;F;7*$VuR z$#K+X8SZqxApOvcYUwDcOf7OT5Gvw=d!JU5!@@_I(~eCMOY%JO=0I(ZI=J{(bb-pVw2ytbOSv<(%E z+7OJMnJkUZi!M`^jAxO}iM!c+H!iNKPw&HQv%DvBmfmb|Y~19eKQohBBThz2*Sp0- z3fiho!nA4rEO*y*eCGWwK_i4dYjQSj9^5#Wnimt#of7AX8$AY_pXKf@A9Y2{E**^* zr4G7R>q#v69ORfT9gWf!gC`Ou)0P@<@RfiW-A7d03#_~^GqsjB0>*=+1|&!Q(SDR z?^9kB@C~HTQkxgz1vkg7GJ>1a-E!0xsgEPm`o^l*WBWXJG?TV*t=GUo;kmm@0TOdc ztOLwdQ5V7L%C|-et*DRds_;4e+J+PH(0y;bO z12XN1glraeLzYMPs@PLb`H6c@GUP>ZuGiF?&Els~^H;BTRqd{LZfRa^AG_7O8`n;Z z5)gjkruL*iO{O6*UvG8A#(eS^#>UmQQ6kTA<|;>XruzEQq=G^lgWetYsEDA+N4FlJ zKQ+Q5-23@m2;ujpzX-qDbhT|W)1laY%FG&6lv`AALq3(<3^mV5qSfz#YJ$Tb&rVM& zQii_>@hQ-)dqzC%6Y6N94PMEG$QYksBWZ#P?o%|*@@h@QKAXR<{$smObr+RUQM2h$ z35UeLgK;2ca@alCA9X5DY=i0{;tWF#=}v1{&V#slj_HRPqE5b?666vy14x-F2J&k( z@K4|vmoG1JU+{7)eUYY<@eMb5@MX#x9y3Fd;H=!+sjz_b57n^mTL4K*>HMa@nwza* zjT&q(Z(>TDn8+U|C?Ic^*ZG8Xq?E|I<2dAK0BxK%-l^p}qQJ-qw)#=QPcM*Jrv$$Y zSjpMD(qH5Y;mxWqmkeA}m(y!0oRy2u=Lq_$Sx%`MTe z2dc_~>HIVDMLyE-*mH;E6uKIw?u*$mcPankPQin!&U1m89F;~<9@R6k3`(?g6n|c9 z+Ihj+hoQa{ToP(GtyP-v*CMCpBt(lH%KOc&`j9NWRr>m`esc3CwEa0F(xri}6q}sj zE>yDD+3c{jFQW4%CV$OsaGix?!uOM$gE9RD@(s>#N!0P?Maw+Rg{_@FQXlv0P@bwK zXRT3vNS^PYHhqF`HKhBPijKy>)z8*E=>&3TKaiJ-u;IjfIq6$zGmCxOGx28BfGaFi ze->^%?-{Y8r|vLWT-Cq2CJjC)?_;KD*{R@axR5kz=qruibYEE;+wX5$T7#Cwi(^I; z!3Ww|vhU+R{uq@nfL>@i49mYVdS7MrzRDl$9hj+7*tap!;egV>F~a*wp&JWtfuGm(s`@Mot7=!*P8OA=y}Zw@BpSR9;#YDYn9;J~(NnJj zy_L04sfLSWhZZUS`aZe*s>P)>Dyh@kS%I1kRz=WeQ-@&`y8xmpb$Joh*K8?|^Ex0s zIezc2hdJHfHEG*!UCth*-ZgO;ZZEN0Sv&Embk1seB%kBu9jI*{0!YyO`$N@aUVB;9 z>W6RLUfxYXkfpT~W+J#6M6z4;UJC8|rt+I#?+IEP8Z;o=*u zg9lCW!=ts!=k0wAcq(*F5- zpQ=zs__3GxvB?5}dBer8G=o1s?@OJw@Bd-!*at}UXra7s<5xdUN9%wePrWbPtDALh z@J9-(`Lx_Bt6cnaJ%F8eV53oXUr@;(ZH$I}!3Q_8&V}NV%Y4ZCM`ZRR4~1<;708qK@V0cIy~izuHn0Q|0TXXXVFmF;SMy`K09 z8aZ6QDld$aDucp@vtFY|eJy~U zRof~bz+7)?-|#igsnKbJx zX#0fvH7-vA*O)B;JYDpWRRf*|Ha4pQH`MHYH85p!Zr>bW;5N7Kh1YC$e;>G6^{z4i z!cU@Ceeqo14U7MWp7Q(v8zP@`4m?fU>M{O?UNyoG#th5fJ&N|bQU=xDf*NK*Ersyn zQA-!$O>}Xk%nffMddo>X2ZP298lb0P`NwXLEm4|V4qnq4ze^hh)@AcS!|?_4U0uct z1;10QT;^M)Amy@&}33Cf|UU{QhX?UwdH_J@cY< zWq`26?c{|^H~B6z`CZuw#ui@DU56H?qV!uRi}^i9X8R^VKe0Hbqx(+fz3k-vCCNg& z$tkPOn5F7wr5>n_y#z~;A>%rqSV*FLVrjcL`_}mn{#=>wf>&}&jYI>AuR%=%Q*Dwn zULHzTV&N#4?ZsP^$#Lh-MD5tV z7QM8Ltak0+`2{6EdrrzGKE|PDH?Hz31!J9!@pljEJY4E44?&P*wG^bx+7 z@Ii4ed5_9Qw8Uk|_XK5-*WF-(6x65JO3QxhJ+RrJb6**hKQ81%=cVAiUeAlANcCM+bZG&Aole6>KSY@elz|O>MKz5~`$S8MN$GWqgS*p|bp7{Io zj;D^{hEv;5M&F>e?m;Q+FW8UF+Bye^7SkP4VLwuFUAz%8F1V64OVG5{!svxSEaM7a z_LS#D4V#fzLp+H^-)-N}>6sc9TJ(-;L`+b6?ad2aN9q&XcTBI@iu95@Ov$*eJE)!> zrUaylA0fGqIOWG>8U$_z9&!2Bm5~UAo;Q7ykEYs_k`Ixl8Oe4bC=K$4%#ilc)&{24 zvYzLs#wwiKH;+Y6Om+Scc8_`FZf5q7IWF|8;X>CIA#~Gj78KAqHZ;3}Yh;vnd(}2L zw33d4GrEOB4;pTaoNW{4kYhiSd7Cw)F^UHLg3)RFgSUlk?D(Mlm;bFzimx zI=po3dgw2V%C_Z}OuC!z{583+y{&g_QmU)qLmuqA9_`77jlstKvg@gksbLy#zwE86 z-R8czsYePm<|ah}PdephLibE`Yvz^W?+&?qKMCM@Y&=ZLf1}9E*y_gl;p?sGhNQsZ z=sp&Zr{vz-rL(5Z$8vu0FSgnr{kBpL)w;F1^N}zuH`NLRd>2Kol0Pts>15QZj-;ck4Fv-f%Ik5w0${S1>CX&|`v0ncH(d z^PIXlk;0IfowAk?8_#II;KJwSCoaca*E*)ZGMDoDM=PTX14MDr*K|bm4c5gufb;F* z^*es1GCh8zPHWGxRxKBjvgEg5LKN}T67>>tzE=KyAJ)E82e3ZqR9zlr*?ftMws8v? zgd<0f*WP_K@`*Q&3cNrxX7lblkQZ^@aNGKVZ7U##D77B$P%}=3NOEq(624*aYUq-6 z(JA#d+1}Eu{ghOH0}=5OJipzq$?~cJJzQkDK)lw2J5C$uj|po2Zl|>2;Bq!DEaoFb zx=lmcn6Ox92F6a!=OkT?Pd4we_Y8)P%+2ghFffAJX=860yi&yOeED+MZtMBx$9~_D z(x~drUyVNzChsKtB*V{kb=}qO^~i5N$!z+t{4z*rtqwBc>2qNdq2znGRZN-6LaG}R zW{q``?um#Hc$m?BU&O{RlV`OuiAA3THslpiWCZRNyw#Pz*zqAQpQt!*^+V;Vzsm4o z{2A}T*7?Hsnlpa6_h|ulV$TM;+C@YCFTfkeS-EbJCcSbHw=)73F7DJIsbRjc)$8r+ z(DI#!WzS%$*_}LMlaM3Pst=AOX$;8*i)3-P;=@MzP+JnsxJMeV!l?WGnI>^|&$rl~ zGVaG@K4X!iJxg?$t0yTteqQE_7&%ka*n%faDQ|ad-uIcEIiku=F_k{;aJqQIZS3S= zG^XIu7tN){Ebt1X>)AaG@7XyiDt>=2u6CTC9CeLB$g9=B3Wm?lWLWhJvE45>vk^6A8MIhEb?=e$l@Vg$Yd2Ij5 zKRbu=%`FCBhDkLFjYN+=GuzJF4~p)WC}}!4(!N93mHGjG-|BqSzi1qY_!z|-rp0Ca zZSL{B9m51yR=KY)+<`Lyeuvas#*k!gQQ*dd{tknli!PPBPxQ(SUq|jpCT6~WnY|Tr zmL0gaqtY1J)ojMB&&!aON|#pumg!J&z2&`Baplix{fLIKSL3dqJuRdy-72t_bmNuA z=GAua)Cem(&&`~7Sq)sSJFqsEnE}VS=n0^W5$d8teRcoZ0TKWco!! zV7liH8e(Ped(w#}&;Bqy<2VZAz6qRHpPxn^s+j9*9tnz@|PJy7`k;`71Yg z6m*E~_GHKQV5Qi(1co$hR!&3Z5lAH)VP*b(@du;_c-G?PDe%K zY&v`&k-TodSW5*jcApg`OeJOxVtBHA*1Xnz7E4oc@#aE@^8Oosz9|+$t9qFYmf3%< z3oE4M0!jC#!Mnq(!>6Nh6|?=`}>Ak9{uS4 z!bEB2I`jZt8&#Ub1Dxw9B4Zq?z&NlN7>HCbd z^ch#%=o|gA*QNTSXxuUdeD<#t36$q?@rwC~e(?8tM=da6%phHw1>reuN||+%axk$=p%xJ5 zC)A>!!hrZpOLNFm`YO5@ftG^{U9-M@hFg7h_46&wG?(0YzoGDNe5AY9v)x4Ln}ZvZ zH_9CHQmyJQk|)1JZYmTVX*e;wij5RfCIG(kLX+kNce!UOMvIDm?!{0vb`)+AkkuoW zFrrF1`D%xOycymmhLLeOTZnY2UPT$qPkL3#VvY|xrZXpRO}1>ZzS$Ukcq;31T6uif z7?4Umj#+g)eJ+10(XncHR%Bt%xDcBx64Rt|TyoRBN2<@aH1>Pg)7is$Hn+DpYcs|2yt{jRt{sbM-Head0?6l;*xG4oD_}Wa%;aC)TyuH7;+?vGB&5MHRy8}cFh7&5!wThRjG?!g1 zv%;5G+8Qf|4aH_%t*uKRiT}i|wPDe=z4%r_OhY~U!WU%5V4aygI>rd1b$=s;I+w_+ z7Ch@ZO7ZeB#O(RFfViU8iYt8^c85JFe`7&pBZVbb$*Z;phCK>!TZ}_xlo=8lmb}a} zG_#|ZhBzfW-2)7@Oe$Abl+~ZcD^|Ur(}kV7D^~Q>7oGV$r)No^hrz7T@Yh)-I*8hp zQTA1Znjt84N_)Fw?eh%0)zI?bI0p0j@Zr8(3q#l*>4?{cz8mlo<-Q%L8~DW67EL2Lb;wYvuWG<219V4^ruTSql*&gj>W3-2ly8+X$73W|H|?9} zFzrbMHLxy(_4v`354<531Fvbs?kGYd)SR`SWyi)##|12UsXSA3VbV9wZ8=QyJrsy~ zt@u6PIjMr`Nq*+1kN2OV!Irj^Z^kQBD1I%Qi9pS4sao~BWA4A~l<|aH+|m-TaQK;U zyp_lKn7_J5=0i%)7_FpA#ZQsd7}LsC#mDJ9DW>*0rFQV2Qhd>veF4w@rFT6asY^fr zlSY6^qxs`-fMg-(vDU&-lzE=KA}i1YLqNSpl~kmCjpI}XbtDJ`Gncgqt~+?!&bj|XQGQeX0DpeZMV+Dg?3aH zQ%G85-*msygBPL-Iz+||Y#BCqJxC94`G)&Pox%L0s3rp=l`1|xxXm@v#X@NouD#$&<= zk5jgJL5+xogFCGV01=ZewRoq2C50i)jwUdC_DQ2!JW-7xBh~00q z2DybO#Tc;lv7$}F=tLAUm0-KX?w8rZDQ4IezTAX)Q|EP(fL!c@Ux=$IYKssk7tpij zr(L#2(zBM{V_+LPd!rO%#AeT`Osm-QK%qwwHcBi^%eKIV4hZ(yyGADb@QraW2unO* z6TGAX`$$|t!j{5;z7brfsi6IYZ9@U}i@0Lw(m*_DmBRWGn;0uvHF)I6flOFqH=4NO zI-3{+YYjWvJ8UEbBu!yWt8lh26Y;M2SS4&E6y#3|It5wFD>5p;LW$jpSxad_1`kj$ zkQ&9zyUQ~YikS+qL}K?FY`O&KGP!;>Dg2lNg>}azcQUp<4)nD!I#pQoCHD(SvVp>5 zm76E{EBc#|>5qT8VnA9~(NB7X*#Dy55mw$E){W=-Kh>k-X3Z`D#59ftIgx_Si7S}d z2tn2aiq2PIzdRYO(-&wdtf>^8#T1-XVC%#c1Z>{yXu)8K9sYUP2>BNeW=efy%XbPIi28HA+=_m>_b(R*+Uv^9 zn{+E>m|)mD$KZEwKvfjhf{Hy#u;WYHai9nvI3Q>q1DhWSsEN4Z7F!A%+9S;PGAIYf z5#dvTS3*>=SX5z;1ML?^rvM`*uApG`yN0I5bJQWO7`;?M%~r#KCJP&h1T|cmfy8;j zQeOm7upO|XEeX(aVI%P%BG3%0BI6ZU#g!RNyb6!QB8BWDaMcCk_iWNsP z_hewP8Gc0)de%NRv~O5lFsOytor0CD-vdUUZuKSi&qaThM|%FxtCx72^76L+|Kh!R z`B$)1M?e@PMPB=*foPBxg*Ck*zZ#7C(spEl1o{v!=u-}~DS@)QVzCxPY71L3w08E5=Ofq?J_S(jb5W>H*IgAowBgV@L} zqZjP~miXo3*wMlSX!kIQ5D+)T%q_)CLf9}dY;zdknW+L}BS1@rNyLL_LDqC^f>+QJ zlkTvzbgP($D7w%f;kGGSn;$}L@Bgb$EUc=~h>w_oH=z5Zpem5Hm|~9#%$Hc0g>~ah zAmZpUUVCxHJvvrD3Ts|PekIsEam5wZi+-F3jO8b=X0a-)nh+KgW*iS9Ag;K~CUyl) zeZ@NE?*Z!5{UG9q4euuAuo0)=kqFQ!#mpr|MrD}NrS0v>SFj?y_J2vh>MJvUf})C8 z*fv-q0<=gmb48Ja1FaG~a={t#uH?AYcrUtQiPnZRNSNl_n*ZcK`>`P0o)ej{+TT^Q z6kshK0F(f8D92yUqh(8BM~j3R$AS1R&C~)etj5RT|12;ss6d{0IWs`kRhO;#6rI&z zOvDvbY~GjAUEC6AFZ?W7;)>x*736FO9O%no5-?E2rI~)_MbNO*-#tis6UOlO`cg41 zOeU+;3q*Y??zxr%)Vx4TRcu#=Y(AorO{;+qkAWsTwX2l*NnA24> zIex{zgeV_s1|*;N_Y&h7?*Tjhdk$Jx1p9o%JC|H>O;lk`33g8Geu<5Y9nBW(Gt9v_ zqxN?PDi;MG3FH0#Klg}n;csj-FMqG(cXLia&e&jp`C0rFY!u%tn)8h(~I$=MbN(9u`XI(RuW9#s_g32Xj#{toMPFa~ufC#lLyl78)4!*m-2E;#*TKK%AI)X=hQGV-V7#3z z1z!pO;y(M!+fx5ac^OobM6doY`sKvEf{Ej;*~gB4dwGUYF;fk8lUO(gL<<~Lf{ja$ zTb1{sBLS^|@(Kf8prl zQRvG(mWuJGb(3iuOgXhk<8pCfr?$O^z&&YH{x0AFA{Crx^=LTpt&H*3GefEK(Hh(? zK-{@KmqWUXP?)SacS*d$J4%q^F~|e_O!%?2cKO8lzUGyXk6%O@z62=D%5>bq2qZ%ot;-+zeX;PzceG>hL!(+}|Zxlq3!R8haJ(GGun zK*7)^7_UBZi$q{PXE7_fC3fUU*tFE*7LST`lzzPcxvebUcs5sQFluh#D+*veT<%nwTa`veIFbi_tQR#jun!M zWAwG?%mY5&nEeAxMJeFp2mh|3=PAK_$^P|S?Zv=-vu3imj zt(Rnz4m9DM|kD!8KzatO{2Wh zK?1_CxY%?$Wi@pT63TBHy`*^`yt?^BPCMP*Z7^|ZJW}_lR0`OrRA}wcAk-0fSF16Vj~Wa!Rg0{Bn!c z59x|neTcMt@4p!>5*?#hduus`4eLRGy@6;TSboZZHASqdA@|kAgTV}MT{(UP9+io3 z^ln#)-h`zbD(Te{Eg!IB<=&q*TuZ~M=8nbVrF|c=0m3k;B0s1@NS5O`u-6gNk>G;2 z8xMYD;i7wzJkOkU&U3j=e+(vf%I$&IY2Neg1}-h7Sl zLUAq_v(%4$Rs$hz_g*>{?C^GjA4AH9l|)F#gK6Ko(k%;K!LI&_Q3KZPVKx;cm$gXiR?-t6 zyaBe8B4@&8TyR!#^Mb43u7a4}`#*Zskk{0QW5KfO!_i>i4H5Jh0W~DGLhW;1duyqn zn*7}#ls?ME5V-4ojLS9THwU|?-1QSGco_#3YHu!kb6}YfW6|K#x32OSCIw`uI)r#B zXqG;WZRKb*y+x_}H$??N&W4aC0;3>`_8AGQ7Knyma0?+aT75XoeN!yPzt(2lKY?_( zLCk#f_p2tSmi^LRbqEjVeIq7$Gb+f7LMis42KC`kaFfCzEi}obe9n*d|91cRx_jE= zRbc%RrSASe>o=*_k}t{OzV!5Q4L7JmE-jPYULs?|K1WDLf!p71NMN!QkcsM$8_T)` z7K4K#gTsK`RU%T7IINo(LRYbL=9_JF%lUm>#m_yOqTz>*biO&Rutuv8_#r)=@8{-|&JfJs%5zUtyEOO^*jX(4NX45>=p=sz-4s}GZdhvm4c(mDY;QdTS>0ag{^ zPrNL~hP6kGMS;iQu0)u1Wu%3|@VS2){W>r?MoA0xXR?htgmKAIoTI83KRHVoX+Ve^ zREH4$Bf*sZky-E!_8-`N>9h*`%J?0Da0lg>~>Mob8!bSfH>{)0{zkg z2lfhLRTasMSXDuORIepjPT|1bct3WA5=k5f46q)a@&YhG^q;`|abDn zgCFaPNUZul5)1Jk8TBXsC(mPhUO~>Bd#iKphGE8=|Hyy&Kz;k}#Q)~|?PakTy;_?9 zKYhkh$n2{ohKN<{jK>slY; zdJTgO0T;nt1u**@SU&`V0+Lj{mSRcnFsz5z2N2+M?)< zN{CcahtMs@v15f1(s5w!w;P<8EJfs?!tilj&l6y>&c|G?eqi!%_a>+I{Zg#@A*S7S zNU46JmH7BU%v(Ki<&Lti#K$BtZz0da0`91GIE=ajf_cJSnK8XYNKMOJewQZygZcg+ zBKCi>2N03~+lxvVrJDz$m+-A?XoxEZMixl=xA@FbL9VOU5-fYOV+G%v9enCp!^@DK z`?2$n0)UWYU?*m{2|IqWE<2W&0PBd54h1{FU5S_b*s#8TQc4{{vBaGDmYzF4rzB0} z%QzkIo?{=tptFAB6Y7TtR$Xh!cYa)tY+?y4vOMn$bjKzZe-?|E6)|HUwfAWbP%l6*Czpm$p zFJSt}T)S`o;(J_u&jBw!@BUf)J6!10T-zmf5LeAN?@alLUmk9_UN@n050e$7Zcio) z`2PD3eXD=^K8HEUL>(`{|6TV3we24OlkHJIb}atb9gvU!87G{^WC%p=#w85XgC9(a z$QJc~lv9Ls2$&nbaSM}0h@>a)&@KX0PogzVh=%REvX?@r+?z69ATm6)?Ol>rEn;l- zTGS7~N}Q)RVr=`rs(aI_RytU7`acCI|5Q^Y4`|n*JnA4-}54hen_hZ#RT~E%KY~uQFT|Xhlet&^k-t4~V3rT*UWNHBR{J!s+ z0N)snusg88S8ZTl>Q@kFS*BsN5XbDZS_okTRFHP+wT#P8FJUKe@U(z=zr!^xn{VUH z7#BrkuX-)@(#4#E2w%B5kjP|+F~|2~Z@>+3S8~j{3Nlc=mSvfY75fk&eHF}tG_t2l z0TLWvQAxn<@Qtf~%9J|f_HrL9)&#+zi1buA6ju^4tH3k6hF}o;VWEu7w*>+Kh*0|B zhE71>wtZKTQb;0TcV~q3p+VZQ@qhGURn4IT`W5^`1@a^+9N`>r=iAqKCSGOQ71M>c6*rvK4TS~1pTMGmTNfheu@M)1iL;{uph!x zjfH~!N&njpy-db|eT)T^e|uluD0!wqES|4%0dj5;SslQsWGTKunv3`n_^ zJ$ou3p;;{0i4=UUUdxOxjRY7MWn{!#SE_#$pKqJp#S3@|0cRD2xYA8K|YQbF!$qN57`j_|b0W^wbcLg)mv9_%=$xQ6aJK9 zxowe_W%+Nb)wM}@+6F#SfD`uHkPSvmmKyS=x_Au!Xw6GK+)xMv7_jkwhHq3ii8wWz zZ|2YViQ}J#@4Mawq7lfjs8#HfKhJ^F06SI&kwFfI1ew`S;Wfb@3kd$TKCoh$)N5}q z53yUw|G+|1dlrQ7=Lq1u{lA}I^Koz82;ctO0L+rz5g_=t0l0aR5?~WzzA4zUzaawL z?iWK+r~M%GrT@!~e)-}kV`rV{-|l!eIN%Q;u>#8AwY$CaFBJm@CTGLmL5#(K%|bTH z8s^RD?;wxO=zss46HxydL;oVnb`ViE+348Q>D&B{PLC~f@6DHpY-`VLJPYa2lizgN zMaoRnkinl!GB8FToh^m<_Ul!r@|AOlR&j_flH^R$-$*(H)tSxsh;2UcfCzx){}%5SFLw^;w+q)=oaHX_-@2H|3R~GpU$jxbQ;lv~$8A@{1pw;1Qw+~tZ$t~&d+f%lxSHNF>zQ+}T3)oP zdYf9jG0!q`BxwE0rRPbP_}Vxp;c%a}9eb6uc;q)7>wJ&q>A5??b-MPSrx+Z8LGjo$ z@2yy{D`jX#pZ2c+n`;1>#W(Hh0FKZM^pyR*#2mM}It>!R2-ALXk$Mdh*E{#G9jVd) zRK3>ugw60?9qU(BX@zjNIgdoTar4@Q(k!<{_aeGUnc9R3py^peHxp2s@FmNQ_Eizx z{FT~-+AOz*dP9;g87QJR!=}-p@yS_Pzp=nY#%)EEwr5=RVejfO>K^A3o*+|-rz1H;hu|LO=P|dGRJF&;>hc)E_sqebGhp-F2Hr?qnnYPGyU*^#R=V^F|J}|$_1}h97#J*S6*~J%CF)*030VH(@oE73(E#|=mHW?u zq{eSO_GMOaB@tP&!p*G=Iqr~ zzkP7ui&R4#Xi(eNg=Zcucb~m6&2M=gJ=>uYr76;rq-k!i$(07c1i&bOdH}uvjsaW) z;ClZfWqg``xhRK08s$khM0$+5s6PUXbTfu^|@pbntmF|dlYx;6HyKv&c8S@dYZPuNgb@ba5jDR z7KE~@Mq~_}lAfDO-!`& zn6kozCvrp}NjZT(NjZ~7lid-(G5|iHF9N_EXr}=%0Wb=n9)K@^W16H6xeKZ2a-Br= zkT(giF+~luO)lq5^&?7NJgNZHKB6ove?&R@JeO171%MMUj(-N=x-n1W13XN5A{i?m zQ99yL6Rd0si1J$_68x5OnUf2nqKU{zQYYtyTk5k1B9u=wB1zs-(sOc&C~MljOX}d^ zg$wJm&xR?>^;soQ#0_x%JGHenZQ)78(44E9X#0jP@*18VaEY6Ae4WCWIW#G?j4H2`id%tK8?Vv;&7FWgn1T^6D2_xS%% z8=-thJyJV?GL4-}L`Ty$JgI}97Y^cuODeK&pS@w8me66}MJUs#M}}!c@+VMEyEQ6A zjyNYNuZd~0YXHz?;DSE@00uw}^yvWz0&Q&o`~aK*m;;buQ0JUf)j)hz)j+#^;GC&= zOu7A=Co&0-Q2=8+kxxc=BG<|vQx?_$s0PM?XFma41(v&whYJsU_N#>GVmP^f9zW+!!A;f3Ghg{$bZpHVaNP?(W$QTUT^!4Y&x z9f4>2x2An`*!$>!AQw(j#@O&g7Q=Em6DX84(9}vAocF^M)Sm*xYXCt#K(J%Y6FJuo zgfT!g69*s?Kr9f(x0N&y`~a~pi8_KkJfR~FnD7gj@Dkv71mGty={g#SXJ8_RPDx|# z5x_McAnFB(OaX!~iImH%To?^aMD$yAaplQK%d9@>^2DHHjPMaKwTjGRWxnWlR8Lv;U@a*Y)KuAyl`KA_L~Uh?|{EGBDWx~ z-zz&;0GhF5TXFFG%uV?pFInqj0Btx*ny1;qos+6Pg0lXg0h;BGa*-D-fl;{bOv0`3L~>H&hC8N9n61MUW5JPtr4fLNtS=c%%D zVs0l&-q;VE`ZQ`92pM3a3NVognDiOo`m+rPcwk~-{0B}-U@`^-5DCX6bmRh@bpWDt zfanWA^p6Cm`u|(k{#$~pbH<`9I5P7z{w2}%|9gUO8b190X#4K4rn2pA5fv2$f&~So zgeD+lEC|wq5Rf8WdWm%Dy+aU12~7-DK#KIn0)Xxe92{Kog22JSJCk^3p7W z;OYfeJGe&WfrHBf2TunMt^yn!==jUk53WHD;NTp(i~ zbNC+s)6#yq7J0(m zH_qYDQm;a7_f~~kIxw9jlwLvFNJ5Ae6XYrb%>!5TN;skjG&E{Zp>7HW4QLdkS>W-Z zQa6NHAuixj5R$5+Q;<%%3hFdL$5qhj6zJq!2T(swXHf>iItI`{1TP|#d{Abh`p6}nlRfcu}jsj4IQXc{S4VD5B z8=r8gGk?IP^Fz}}vy4knH@RXEm-SdMLBCoIZ)Dq}cx*cW76S?vLkcWL=nB*yEXMy- zH2A&W58$%?h>fun1=RF2S9$)v4qvqUBe;OlKsg|LSbC@)i$A~!9hV4gbj7d$$X|+Y z{{81Sl3y!=(Y=!qTRW-$Y#fL(^gP(30V%^!&$6+0ip!+X{E`uW3zKElVlO`6^Fi4a z=zs8%lh98Rp+L1p0B1D7$p&EmeestYet%R+|Do1V6hs~w@a=?PNBWkA0oMiC0j(C5 zF?tf-2uPN`GBg?N$coVM|A^9mrD5Mh=X`zuQyHl9BzT~MtgEVf^1+`Ug0c zr`X%T6yT}w-!{r2q`<)^Pls}OCyx+g1GDZ`~3WOSW{ohOkHq@^~`u~Pn?15h(ILMPXH?+;L zpM_=M7`640a*{_aEJMq8Z!uC2pYTtkge5C>#c-a!8~xxysVhZ#rwq56 zR$(Xo?Vzh?sc&^8Q9n2x!6}(_<M;DH-Rmcs<-jSiY4_pwq`IEnj-FzN%pB5EA` z$6dZov?@6w^3@|~@Q(@%MQZ$IVqmWr2 zG)@dbV1({cVMx%8iF{CTDvUn5@i3z95ajGbbkGgNTP7$4y72%4!AD7et|h`Q|M#s5 zqPcc~i8}p9^6z%~Ze^7h#;t=Un(W6nAM{mG1T7O(jtXOfmLf-_oPu^9qH6N;rSezz zf}o|y5Gg01od+R>VhDFeXf+i^1T6(e80~{zJ`6c~AAL+5A;}26hHkuoFggakOaZZT zWxh-Td4EtG$#RAOeGOFg2rKm)P}Or7^)WBZ9iYV@iEI$}>DdrLS%2H`Cu0DS$M%sEOALOhr`q&M`BPJ*_6@(69 zbP{?QXwDDK&j>w11<^f>lMn+&x8DmxH52G7iex!JfHI9>rM_Da!2A4Egyw^K@%l<7 z&HXvl-*q{RNFjlC9)_6RM_(03XfZ-_NB-6d84*T@p_h+A&ibJH7@^7gFr%s`pwd~e z{eQuA0pJ1}I_iZ{1h~YIEGG%j=ip%;Vx_(-0+7F3|C26%h%)$~aQr2v(423^2mW*q zeN_w*!w7Aq!kk7+0reb*c2YoQ@1Y&V5HA^_YG^4+L`pB+-&&w3f{hXS@;873#EWAD zsQw5#rzU~wQYKdF3{K(=P~Rah%wNRd!5;jIXln7#5r3u2pYcL8ZyK!cBz% zFz65|=b@b>kXc`};|)X(6^0%y1w*7zLOUrTXYZkpi6I^_LTjlo5Hz}#4x@x_JcBSg z2mJ)Xp(w&}49x9^mEs3TfWj!eFtz|FaH(?y=wC$D5Pt#*Q<2pAPh0(DfUhE(ZwG!3 z%;x8s+6PTig0IwdQo9e=*E2rBP!_S1CXANrUm;t&&5d>`hq zm9JFHT%hQ;;qVV*JlH{_xz7vp)7uEPasN!<#e4tD%?5!gi=dKL|LGJUnv)_@AkfYO z5VJ?<5>bQ}6V!?d3M$MYv=lQU{I{rw4%5!Vj^I)HmBv3CXYjwr2LzrG8cc;@LrYyjq#T5H9{o@2 zyVsZ<1%dv7_m{&v%ZGz#n9HCitHmxxT21QQ3)usR;3faDA7=3js7hIe=og0yH2P&=a6501cp3Uq#D{ z->?5km#-oZ=AtD7F{8}6pAGO+g^m0zDf}h?-fIl?6iWeAF9>*+7_#oL7lax24+}HE zk)Fd0e6eT<0V)X`=@$!tXErh+0)BU;eGoHW^wk@P7^Yw3x$ewA;e$syXruwF*pHK- zPK1R5@^oM(kOf4+*L0AZhnR|Pt$$Mw0>F>Dd{+dvhws+^F$)lVZ?D=1wMnIhMrC4w zX_7)ak3eScqcxbI!c-VNv=jp(h2du>$g1CCI`wl{=wUAm0?Y#<23T!>02FNgPyqA? zq9i`3w-$J@m+{k9KN;Yw2q+oM34-1)Yl?BzmYS(Z=Zh!(oD4$Vvx2B_gaDNWXaK*U z#z}+%wM~E-zgG{EHY{KPej;*XF6x#->*Req;*Wd&8Q%YOg3RXoH@*F}9END!Ia##M z^DnypN^$`%5FgGGpiKZ5;1`zxE}$il$uI)X|2@$Hfc(AspLF>u@?Z`rZ4uRkNH8MTwii7{|8%eITZm) z{v1~HceiQ?-r+YU`_#F>i@w-KF>u=YUvIb#iPK_8BPQHmZhz-kBnXrpgh@H;i+TO{ z#Q#ljN29GFV3He1BTPB02qYx~6aR->BOS(LiWKkf3zMBQ{4W)a`U^8XJTvKasX_#Q1zq7&!`q|mN{DM17WDXNhxre~nNV0-#6 z;c)`=NB#aw1oCTN#`~}OKd1VxgNaTwb@?`yemN(8lPdfLjoJL3Ds%)uK*&B%fX)Jp zfCUNwj6g{sx%MN`QgCC)dEZ9!?q6*GqoF{y3rz7-KKP#peG-KAZU9w<{I6`u#=x;i z3DC10G);g>9l}Xm28tV73^e*)J;>V}oB658mAPn(Tx`O<`>(_OwA=s5xp*xE0_Dp9 zjO*Vy&}e`NP$o8j2&f69Qf`4K2X1zP0R67Wef#_MKk4#SG=e?{7enWOQ`>(`@v9l9 z`QX20g@3$PIE|Ai0?GmTn2R>x(?W+abgD=easpHnAO&>lFJgccILY6ORyY0}@mIS1 z$ubx__gus#1i$#x&l5C%jq?A>>W+L%Hd+8@x(2WTHG!OrC3q6xXmkWX7_u6<1ep+K1+T%rEq~Aiv%ZeG!do@ z&i>%V$VpLT%02=Vyh7plk!S?1Q%nqUP>B&qletMef8kP32RpYSvnuu-Oia$-IJ@wX z!Y8CG`DmxQSD(jQvzqN!XVY<_?Z0V{r)dY+@L*H7D(lOaR06Z3%w>aea}>$E!e07K z%ML%rQ*))LCJi7W{9DhDJ477mBy>yqJ>2D5fQ3BiTTm0JbmrC0-2RPg>?D^D_OroV z(o`qP?(G@JDS7toWt7&I1fgZNv~_7rlu&!a;(AH(IdlCb3s<@Rln@Sx$CY=^R!^2` zN9UJn$1Ho_nDss~E0Ytfmn7qD+&gp8xcKeeP($N|5oK~OeU)>mg&uf>!&vO6L@V&0 zx5LGAI`#Umnntub`?ff!RW2VDjD4Q!C?=bMGe~try~XD}?SErZR?v6K*!!)HM`HM7 z7tF+50eNQ7`sqCGc-Msf;?l7$r8QmpWG{8f;d9$r?lZ~@*-L(?ws~&VrA>#*3#kwD z=d<||>;%jna9fU@R%cD>D)CW=x!r%N-F(`Rc$aH&V69tTMWA$WF@-~I@g$erY`6Su zD#vaKmvz{-nT-c)*>lw5(nfqL#YTYYP~?ZU)8LoUiIOn+DkO=R2fp%#MDi1A$i|SNu^ci$tsx2_RIG2I(@ci&Q6+Dt-yvW z$8A61w!i$W>`Ej)&GD0img^HWhTBI^f^Xqpmm*rE9~>+lG>htq;&AfY17Gs;zNGvT zFF90zIZ7E{x^y?@kUF<=_6zOelWb*Y-eZ-58y%unD z*^dj&XAPXHGcZ;CAGrb@8tH=cH`#m>49d*t1Y?^eQi`=W6HXm;>b>z;iCmzuJtK28 zHz1Ry9qZ3{X;C$wJ0h?8rR53sLyNNg285?j-Ie1eE&iY81M{`x@tP}h^DHeBrJbb7 zxj9MUJrQR~Q(wmRAAgZo-*-#pqG4(zY+}Q1_gtoZeu8nmZ-s5*&e|!b)Jy@+{0(Sk z=N!ALGns~(oYcI!Tmhwnz5<>-HF7+3l5}t;DonmiokmZS<{2uw9;T}WuYI>9c6x)@ zbZ-?|Hps%SzxkD_46R)0NK5SoSThp4%^&+fKxvPX@0bL3Vj zXl9mN8>>C?fTzp6P zR5i(q7tA@eKYyU^S0FB!oInh52NKVMDP5Ol#22! zKm8B~@Y&>5X{EflZRtWv+epO0kG+!D*_V3XqPVn|F0PlO=WH-8yTQV#nKh}T_Hsj; z56kwZP&a^}ceGu>d~W#>Nmfn0%x>=Xo8rCry`kzot#c9Sks}Ok&Mg zXGWIB=x<-^mL;px?1V8 zw2=1gFWuDDP<9nXZk~yKSv8QAfBl{5bcDvn>6%9K=SxyNrR>U!I?}}02QI~l*vb#9 zG$#fdZ+0%&W=2Lp6!Dn~lN{;TIgT>dG2}WWyiKHkWOOs@Hl0(Qen)kqO|(;m!uig^ zD;K);46+Sxa&?;ohNUILoJI#$BjwAp?_5K!R*2*5W(OB)%a;05!dA|4b{{GdU7A>%%?*yA~PJp569mqY+^d!C)=I)LSBpWJmGdggsE(Vun(UZEwA&8 z;OPR*h0k{{>4j%^FxMCk&W~uqrV?Cl3OM#T_$RoRh47t3+LS%xz&_@iLMj>R{T4>M z#*_RyB*r#Fs$4=9PyTi?mW7CQFMeZE`^>|Rc29l zq#IRqhUpnY_Hy3!PrfEnQCl_FtnZ{3#PTLqPNP$w?GlD}H%!|vEMAFI)srCI+TFRL z)PVOXs6O@?vl&W#=qhu^O&uw$sII@#04#0g&`{#V7|T&f_25!*lT&yeL-x`u30qR9 zSJ;QIXM0}>+~d#7k9oa!p_}LixAA-zVJItmYuIr<5B0RQua-|~*F=+1+i02I2}Amj zeZ8BZAWYeTIC1(cT??A7p|~%Magppv^CNYM4gQ}9_dP4x)@hZh_1qzuIDjFAG%NV-Vve3a({2y{`zD z%D{}>J=vw{IiVxgMQ1FQHL`NTuT9~ID(MCXly!wqu-cNffm$m~^-fa$K(jivQ@q;T zhnx?yh05ukkMW1h8BUIJdvJ_YrO1Rc+RRz21zU-PX1bgZj7fT@uA!T_pLSA$7B8{m zn`QT~==cU-L;+W<0u`NQILsutDxROUb|IWUGQJ%rA2J&^Fv&am-kv~HrX0K@n2ia` zk?f>VvnnsHpDL)IQp_E;-mYa&QtN3cU9EIh;*#LDbm)F-vKXy`RXI`z5HYIft_I_pTeW*XQ}O$&IuQLuoaeBdtHl zR^BzYJ@tm~^!7m;7sr@g^m&I??jh~S+JQu$8e{7J9L4}`X!|x$W@n)0ht2LoYh0LL*rIVg7u>@svyq@xY&UH2@LxBCUg%@1m z>ZHpj0aE4y!Ibk~yIUqfg5fd^m#8GQPUHU zFXNQI({WQ%EIKu=?r`ZjXa2aIS2I+L-VW%h{gvYp?c)dXug`v%N~k}TF8C_YZ58#o zcHK?(x~&>4qPdHQI{eZ?qJhRt{=$bQ(OvPC95l^|e!i~P&0!UU1f7-vY3H;1<&Ukh z#f?&Jt{&J*w~W$RsSm98tkFy#L-tPy<68IbiFbJ$=30_0)0{@5o)6e2PQBH0))LWc z?kVP#!4oUZs!ik`jQ5xIn{v!66=&mUhUqjtx;e_;tz`#;Uz6YdP!O`q`nFVH@xV(K z$8KD^$|2w|*y7pF+l@2@Vj_V_#|7U_CB$%>@iDHj87j?Q%Jt9I>2+T;7oR+mT5bMjHV3A#mP4_8 zzPIOQ=4UIfZU@WI-7@KG)gz^j!vQX{%gtez2niz1Qw+3f*UI%gn~@s$`5&6nnr6#QuV!0% zXfEk37Vio!(!~l#Ia?K~)CM{>lC;%$Moyj>v%BxT713ojKX#LDy(sQ{?Lz|(GLO2Y zr(16yE2otC^1VEsMA=Atjs8NBgo*j%Pnq<+*7S6zE8VuqVz756TYOR`)u}mx3-UoY?FRklRE2#hv8-SdEqn9wZE`o zv3Jd)m=4naFm`TNbiuyGPp?u3MZUgYfq2{{qS@o|xkMGmu5AOXX)ve4M1)zP&|r4U z7TsV?ksO0rkynTa1xN3i&?;%ob{{v~);&Ll!F6VQt%WkEz{#@Sd;8`T8IK3UB-xUy zcUFtj;`WTaEJd%L)_WqSR+l}6OlmOY4NZ}CEmB`Aik}6 zup@c|erYev8$P=83WF)0AX^=Yy$t`{*>Qc1^f6QZ&Z{fTNErNc&uH2jsX6LnK*$}` ztKaPNc3$bA&hLha#6aP{MIkwePeadx|w>+ph9;?63m_K4~lX^0TJ*m$o7Qza~X+{mJ4pr5$n0EKrr zD=un!BlR*@61m`t>6(*s(>mvuml;l0_a)nSs^EQ2qe_$%u*p+odwopKrW-fZQH<_X z(_|t`>LH)f&*u$$CL$i zV@2=pN@JX*dPg~Ps4aqlpTL=as+alV55>SnddG#P5Z1t_h> z`~3u&bJc1{JLOh2(9z6RizDie0Q_@%8|9GOD`7a*Zu1wV)y@N@wV+_Dr1KtbDry@q z+2EhI_GWip{oeYwI0pXqomZr$1DeIkSj&Kuug8b&13ubw&HIrB12>gLz1qo&VR$hw z4WWhC%JdB{F=MZ4cem|XDS!oiFl^pVaCb{RKMWq|e2i*mf}>Ma{_^SSzTVA(T`hv# z1XB$U)_!#{_)D>mJb6_NuJ{AK)cP(J+mmV3{y%F z+FtM_ik5op?UL-cUE>g-vmSVs@Vt;)DzCTWB$=AI+I#rioa^+i63&45d4Z1?7&Lq! zBN_wlx(s$7$)1Zeii`Qe`jo!2kq-L+kus$DeTGZhY8B`sW(L4ADa9M4cttR1k3 zW5B-O5$!EjapF&KJ?+HL;HkD?-^7sKNGY`Ot{()ogzFZlJ2TNBzR?J`tdTmz@5bOs z*4C`?J`MCrYouoF2}o38K(66-!6HL6!`95%aE7fOhP0PDNRbCTy`%9Yc%Rp%L=Ny^ zUK%qmZQQJZL&4%>L44abyAHqekq!s%Cs`$BPTE0=xM1-<1CK$l9NF6q$NR(% zv_&)AwFJ(Tv#{lk_gOXlBUpyPU+>&ouK|v?MGDkLws%zm^^sCx4G(@DOb_qF>n$LQ z`pB0HJTLFApgJm%U?zu3{OCg5+7WGE9$F(cR#2EG149uPc0>nMmhe8C+Qjl{GBx6B zX86Z#8z`KrT_M=Jjo~WZN84NQcNK%+3OY>3G5jVU&G2He*B*7pc@5aC2~n?=(nvM1 zV~awq(K`7Yd%l&L;I>^i6s}0HC^bFLnScAU1&D*H#m$AB>J5Up-Xxmsj`7jks6<}| zs}HNAAb#1X`w!!Fi-Eyyb39|%k}h^XDLrRxZE?C1-;}S2dX=u(L!OZ8?$o}TNyMeUmPTT}-=A9($q+;N9pgf#rvYb#6c!FVzo#p=RK(a=VW%7H`6@uif&!vhm=@{k!sz{hxY2|tB&X~+TPW#Txpk>kF! zd?ay@dx>K|_6dK@9^8{U?XY9aNgr?oatNGRKIocq_^yp5ah=>w_bC4tAolGVIw{Q1?UFJ36-)3YeaUx^!^tR|FLcTY%x$HwWVa4T0de^5&abgd9 zRTpVV;^J7t*3Q(IzfZ;B?rja$d_JP2YcAADS|V7MC5fSznws^owPTIg5mgQ|MSbM; z-rRZhwgG`+e1P>O0ZjkI+rCkQCdzv@LX(R>?nJg4V+ED@Kjas^^4sRXVnY1&EK3Q1m-X4JuRY+ zdv>&9uQOfh)Qk3F;a!HXws-1?@`&@8>@}C5Wn=%nhsPzGhJ-^6m*N}yZyV^3-W{|k zef~jfu)%R--no&)?y z-AQY+Wso`ky;#@Wx6Y|)HZIGT)zDPNm0Z+nGBmsON39CD2!ZP{dr5`;$u+Jsdhd}t zt8lmB4T~NeO&8q_Z@b)0yko)}LZHtl$Jy+8&yrmU^<*f+Bm2X7;UR2K{o;hw#$E1u zJA3*yvY5I13q`BQ$Yz=)oyTzzV)1e6I{|wp1ERrcq_9mAiwUb<*IP-}V~`%V=eyI@ zZ$cC*K56y9s_t!)+X&08l<7DP6CPZBy>Nw*K_@e{zI!x(bB?lyYxlK>*UM!N7!&`=GvtpA=W$1*Zkgkv**j@O?7KaWY* z+08cUsnOyhsDC`t6m)2R=ipjcgT<~tP)YiV3!M`GLS%!>8c^ zx9hv8@4Rr6zPP)iAy&q7E<;E)#rtWVHArwDBg`QSYBac?W!Bt{yzL>r&q9Eul(Na~@`Wwc9PfsTk=hqSJBV%?G^6t-Tsmn63?qVqX16RQ#uplq%PMga9yIshW z@=T`_8b@Eg8jV$CX-K`eLA^}z`RVe&)oK?BFIcA+NtJ}@iT;&vn!AzX%V!46O3bcd zW3JK9VC|G@xXD^0!<4P!@lWDzR;4{i-8l&J6Vdl;3KVb*?}_#jLv2I2p4Qxc!&W0D z#$6z0xwlPX5?JebS3>}2Hyn_pyr-Nd-r!2|vBWa*{;`4kCGb9E-F9u&70+BFe5lhS zGW<1VaoXcMSIK4)ka^ifbJ-e}GMDDA5N|wRRU6MbI+u@scf#vIX{yutDj(hW*{ck$ z(dld9WWhT=ROCB3&CC)p87a9M>^7FElR^FVqW$c>!@<>4!Z7{hvpw1 zdn~)$8+v2m@(iZa++#otZ-5OnoQH-p-RC}M=zj8M$j2F&|6ZuLnsXCtZ>~(z%SyF( z-MF{810xkhS;~#(g<>QTC2Av|%nQM<1|_4LFNV%oojs09GE`rKUEB&oHeBsin=pw} zs~ke26b{r^2j>O7y4{fDS#%gvIs@x$HCKmdgsM7Xu-&mT^=mD>b5Q$`hcDUPuSv91 z_Bd+}r-VgRMhvU-$;M1mPLZk~n7P{ioYT)M{HEGNcAS&&hrIK>y@)odd_HXpyckNi zF?i?2#h_(9|MzCIWjL2XlbCGSkak(eDqhCj1)bXKIm3Ld(9u~%;o!)lRT&Hq!-@=s zg29|QaLFTJc!8Ggn0=L6RHb_?kOj_P%|Gcjbz@Hk<82z}qig0M!Db%26*p^z^KdN< z%iD%$v*&20_1>S6Gv|9{=+Z$Suixs?c+QSCK3d#sF_mUjwu3EnCGA@I%|okMai1>p z`loNEv9)u@a1ZBk^GD4wprrF~O{tOB9v98lS--?Z!eqE(NyDd)+K=JVXTz~3Qx8i7 z8|s$OCnHBbT6ElC8U@zpPb)ja;hzXaHKLLb~{PF>tqp;C)J;jy{WwE!=F*c`Fzn`NrX!w zYquw#{?bhN@oUY;)pAEkWx6=xk&PjjCc>aFRo4PfpTRC^rK+k^AstQTJYKuaxFpk-X(*rw=8F>eclnCyRr0I!-w% z9)q^Rv(#M@C)^D_dul1Q(D&S6zDV2N={n$&@M)K_S<46uy{{|7UM$+~EOFds+d1-c ze7?5q(8rg9zOpg%t@r&x-|&U|Wx)xr?FFJI?3C$VRM)L?Do~!Q$cz6JcjFI^wOu377}cF}zrGKk;WmnAc3+9D@Wt*ye8=U-JcWbf3( z-5WkQ(W(~q%=x$Q<`BC;Id;6_QTO9HlWqGHo$ZFp11(v*lhQlq1-50XAlX7saXC_y z0e-J@5;gFNyn(I@vDr2C6yRInS83F3%A9U*niI{YoEGFg zsfv2%GaDWT<$aFQn$tL2J=Z;bvu%l^TLfhU?R6*d$ejmy?1M!te!^u0)}aiIfb> z*TeCjXL}J!115v0(u{n^zRfMK-M5m0ET4!5mB|ya;kRfPt%LIim$2?5R>@q5CEHQ< z$=5GT2A9?%+}XX&BgY>cjKSJZYKFhR=Gj|+aEP@=-8I5>47?*TZhyMosZE`ICGzsP zbFr&kbWuG8UW#HZnaZP~?7{%Qo#Jwlw})4i^9J!VqwAh5MYwFKnIWcg?n4uMmKZ8< znzL#3P$li@z23nEDZMo2S&_2aXOEkdeZF`jqJgBTJL$8kdTYkH57HtO`TOd!_j9nu zc@0HO2RG4QU%D25&-7@CdQ&&aWJq_r;Y3 z81|VK6Ol8T;`3Yv?qf-JQ2~;8qG`-=AWA@IFjL5|8}3T#q{#bTrEtNSejn9c$RPOd~iWfp|U5cPwqulfG+#Ceuc2%;xdw>yj3e; zuD73ILk?-S=C*S^d2qc(NYu|JYhyI4SHk0Zo3mfy$j$Xyk(gIfYj^wiI?kr<-KOWt zaxB{3mAGh-wi&4>^uT&Ed;jEPnYDgF&JD_%@Pyc+3?J2}h>)YjL#tV7Z>q>Q!t&Lf zq!f6kTBuK-Dr`(|dzba@J@p*)T9fKj!PRZ6_9fYh(rv60 z8&0^%y~BGes|#Z9_?~vtA@7<#cDQ94r!0Nrpv^^*Sbn0{B#E}uV?Bp)J37gGZECSq z#a1fuxjEzV)4k>?BYQ&}kJMCX-`w$77?C#3+Km?YK8sa-OzlZOTJa5XKCzePgUoITRFG~yCJIk|<$tW!o#cWrHDgd*y^VCh4fc?Rqy(W>*MvRT3IxyoLGS(BAA zoQ8w)a-8FztA!%$CbiZVGl(m?@y#+ha5ObR>HJr{N$5lji| zWQy(0;Ay=etkE3Jx@j6M-Y0{L6KcUS{9Kh<+h%Xnd1 zE8tGgef=3zy5gmE#jyAXt_Rq7?ceE+Gca;W2S4I@@j1LpmvmH@^b_6WY%V?NC+!Hq z?HJ9a+Kl$=WpVVe^wF9A&J!D=nwh4^M);u(ZdY|X-1f}&jHYX6FFlf`a4L>B>1t?$Ju87mCiwc)5@ml)*wy$O@*L`) z6%!SF&hF>%DlkJzHHY2icqh7WRzQIomDr(Q+m=M?rWdUNX=E-(&qKzK74l z@-e(V3U)tQm*h(2{?wS8-PV=qZrCy2c89u}X%9K4mY3AhW~jCSeT*n|MRMZ) za@TIyY1`u`FSVCNy2C46vNKfV^HB=O>RNSSp3q|x2e6%#;gq*xs~yijJ?G};eD@T& z=#_ZHY;A6+0cF5@X5_QtmU3(@x0B(lZR%qIUaxC%j{7GCdW4oY0p8C?J-4A`Qvw$ilM*p62Uz@z?rmWOa>f#yGszmFS_T=d-iDs#Vwtb9^&{tVv<{ z`AesVt)(e!Qa*v*b*edPw}dI^T+d04t^n>9_Pbhki>pT#OFogcDF*kd?{+49dSTcD z3s@)L^nPB`Pps*gaYWA8;I?)icW;arNvH2NjpwZde_9=|a7%bopS_!QWTl!Qw|eRE zeD*teN`~ZNhn?ec8k#Qp1v;`a5$veuV)1ek{+*-o&yv0Go;`AwV{YFwh5pSG%Y}F4 zifX*ycE`V0oe;lokH0z`Z!r1RnJ%^p0VLez5$v!| z;#Ctd`bZHa6TWINHri+PD8wZrj!AV%H8#We zg!0(yRfW`-PtseCy?i&mK(RsIQ&=GEKFtDKC>7LT9>2-jB$w;;UWou*Ip;e+ENr#;P0jXZJ7qk()EY~QnCZ2g9cL*|E#gNcV78)a|h7sy3w z^btdvHOWw+*&)~C(#mDI8%oHvU6*$m88kkr>YhGSS zxiz9Xw-tJptA05sH)T}3Pe>R$;k~vMnmo8SN{=)+9z%~@Jst$Z8;#?(LW%n0vXa)Z z^vKJ?SR;4OCQ$Wt682!&b>4qfQX6|VvGU1Z!cJfYtKLTKc+SEdJeywA5vL!+Dh%TU zuyrLG(#A72$*;MLgpyR(i?UGaW!Xm99>Q)FW`uE4J^YUz} z(Ve`8oxsgG1jF1SLSPlEv~HeFZ+OGxwXHMHAnh9>z;c1-J(DL)Tw(1knw&RtYnc^3 z8!iWycz<3>{BYL3)GjN{Q*C=^`|4w4W$7;*4d0$vZ9mg?#~87C`Hjs$c~kYyd|m|S zP4Ialzr5#h264E_G3Ch?66NQ)LBl9{+0vXlEhL%t$V8(G=O8a`g9M5}bo8S5^V}WM z%p&%WY1%q9Wa7#C8m8Eo2+0Qq?@Cbg%|#YNHzVq0N;gmUQ{+(9%&zfs`NH)3 z*RYNdS>j7?)%v=_Hos`!Dx(xL_j4SG2Vb{9q$~5C!+Qfwh9oBp%JtueP zNR@k+y9&DBMJg@EnCyu>nA>b-$=q179r&m)yT5zH;>jFO%M)|r!)5c5+`fyCUp^7Z zhI7TjG#{Uvb%@yZX=OAC_ZBmLXNYutXjggXo8nU)!Mz7&Gzo0@MKVeG=Ze|7{eYq8&OA*!xNa`Zd8cg>A=hG zx@df4+ACWxYH7%L9w8JjN2AT79(g&x#`8Wl@8UTaaaX40eT0(&t*2RnWs>ejUx>gB zW8vdOO$k9J|F}DJ8^#gsAw~RU+4YYm-`bu+M%sjWnU|N#W@&Tl9eK}0dFt?0?UAX$ zZn(nnrwWq=Sd-{39ezbrxYRM*No36jGD3jdc87`8iG|BE2~i<=Q}(8Xd-#?(ODjU` zwe?5Q>vr?j{fwF->pVzKq1&jE66*(rQrtBf4E%w*$Saf^6kGlD<8+Bn+LCddZ(uEy zolK`YC^b%h9&IjFNrFD1Hp`)=;A!6pnilT69N5ngXf?=_{^)t#Qz+`4OKzR^>Rdzr zLoK!W&8wwz<%;2z*o1?hI80iQt-}qGMLgC4*tsj$;_4Z$3k*b^>p9b-D7N61Z8YZ+ z9FcS(T*CVC8Igy(vic`fX2RmL)V)FidWaP@TN37x0WR=5hIr4yk|mGY$nrqB4TG-t zpPIu&2z~)3=#pEn@}h;9U&;H;s?3>_4Y2h?3a+Ov9Ok$l_S$f~`|UCJPI?X3N4ibN zyoPy2?0IBRD7`vDJ8WgoLEh_9t6T8tEL=45GsJ7k6hFT5 zblW|3AOo*{))7XFkYCI-Vol%ZoQ!#qk0~LIbH8PRa4aCRq^6|p5d6enbi_Zjn=U;^lA+P-zH|RJvC6K zbHfT5-}j(wGDlO&)S`+%Az?zWzK_g#Fqu8m)>ED?aL2lVEO}f<_bT(XD0GD~& z_5Q)dvxJ+Ksr~sy`#wq#s)fViB1|X^Q!v`>CDsKSlwPtw=~N# zF!pj%uQnw5wr0XbowOVawkQVG`8n7Kw$lwKDGNPHrtU15#kX2v21a7Ikt=MQKJRHO zs<}JM%1=#O+Q^doWmXHz$;G|y9zl(n+h}-H!d{gX`|{b9>?<`f&)%@Z@3SzMk>KJ~ z;?nYI&Obp~r?Yr`p6n1$dL_A)&pHpOC3)TH0jCjd*RX+BsKB$+%gzoIHoYPrdUNi` zb?NuybzAcu`e4zrIW~#Zxph2dhH$D^N5N`fy{);{9eB!WO#dp%Y}mcW084%}chLM| z;@aNByX+xNi$?brlar+PihTDkUv7wS4yA2~I2~)`=EsK#oy_pqcI6%99SmqeWJ__= zAAiqsfX>tPN*FYExwOM?QZ;kCE0r(@Wk97v5*KK=&(H7oX4QJxE7-L~Y2}Um@Il)w zf%!Z^!@zFzb#f@G*U!ymTTM$7(ckK>a6L2?Il$VlVzd(sVJP(r1ym;ch zfk=dCi{70UWSUvAcO&QHYSkRfbcJL^)uS5cz8k+)l@JmYbD&&4Z9L~ zY#ASsZYj7K=UN`gZ8tN{?43P57+3*+mTQ_bnSH)=qW4i@aO3#F$;FI$?-y%QRwMo{ zW?sh9y-b$WlanLt(v@}5Msbhl6i*)wOn$PZU!b?l(KA2Uz(h<-t=qgE56R%bFog6K zUI}Hbb*LaTt9bY0sfG2Y0zEw^ghSSv1{_-~dbKE|BRyNXNh0ZZj1EfPt|?;9S#^B( ztXC#+sMAR1Ua8EKTaDE+R(QCF z*F0%@sCY)Ds0w){uzULs?aqrx)xD2$gzY|}<^u*xed0`^_LC30XOo@z6ELv~A*1&% z=kAEdXGZJGV#CRtv^6oY{kt!uDCPq0T6&J5ymYTH*kQk%R}Z`>yM}hw>|d9;8MOC2FM2K{tgAyNa4Vgs z?taqYb;f9owZ>YxS>PnKQ!y?s|T zk&9PUwl9+|+Iy17yk)mYux0DId~m?{=!HvqYYD4^<442og(AmPUR)a!sR)XHn_VNv z<3Gx_yyto(wg^$R__%YCeBu*d;Gslcl)AQbUMEfS;?m}cnt)2(HGx!WcadzK7vlWq zb_%(LlZ04LHN$JFHHlqUK8#aQvOkznU#(Xd=7O&)w6mzMjkHqlap5Y(bQPElUL#;-`Wf?=ld)CU{D@7XT!|eOnm6miU^S=Ff!=3x*5Yn7$lE~fG()4;y^#yiiF~Szx!};#y5_h|!$Mt>3mlMx=K44vKYobe;c86R+I1S3T zzog#^lvjVAEax8Y-oAW0U1!-6onH1Hs$O2Ib5gnO$Rg=zWP=5L${Rhe?t&10H~oQw zvU0VnMW4tfG_&0=KMJwSL8W@i*|j>oGywlyTJ4_1z(tWhPSwY1FQ`?LyplHR_HqbA zQ52(l1%x4A`u0JEtnmRHWp1J@>aq^8BiKLxqXehgS`)?bMoU>qfCvo zbTZB+F_gD&%7+F#1wwus72ktMyQ`K>r0|9hi6I!r+?^0`xd4ymqgFv_KGF*~2Ker(@-tljFq_N$ueeh1aJ8%`zCw6_|c ze}Ev0KaiIbA~By9!mMUo)HYV`C1XBtwv}*)*eT@JTkqHGi!WzZ<3S1W4#@XUyX@Se8Fg2ZF#qtVOoa3jq4e!VTrC! z^zJCIn|0>hAl+7q?JK_%+xO!R%hJyZoBR!xAsO4aM-zu8W9$oE-fhi!_Up}Fp|?T&GZ zI`53mJTOUV3Gcfr&|qlND|G9sV93H(?R<5~QV(1x^!GWO1AwD^viTX~$(GD2yS-ga_6l_l7lVo_NVHBz3Gw1RpG>*jL3DAR-y^v?Esb zvc8q(%h`7XQ;Rj`<*j)JJ|A8f!Z8moqeS;>FH|*2)xmInH4uk>%c+KV&ugWf2_>Q) z;m^7IV|d0n`TK8SZ)y<&d2D{4e-hDE} z@LOTEDwnAO87zUv95j<87Kr(ER`*1;e_eD%_ax_sIsHGJpH==iE5$VuZnDwXKHcZx zm80fYkGz%40%=uy!i!tIcos6%s}_DOG4WhKpz(>hiC@nxK(-8Qxc24ar?L79%)VYP zest|YWV=!EXXwMeq>?X%YPcg|Zt)m|wplm-KvL3C_YY~Ex`3-a+I%jQYa~kT~VJ2fNpc6 zPd6HS*9QYHojSaD4)uJ1VZv|T1vs57RV{(}c)^tFxcz5Fx8o=-QShg3!Opb}yn>@M zdB0>*WQC_C{#NPxhhrGE0dMswzO@6AFp<26HgWDvqsrl-<2(}M> z3LGpt)ynY1iKV<&(e}$9C%)pcyMqCSSyEHkl2x}obHutOf5qiHw%$wJ&dDt2#PjS4 ziH*D9Y`1mDTKc2mO2NzW>K-G-w!&H$BOLKRR0W(Jx3(@Sh%g2d@-uyf-0z%MP!%l( zCU&Mji8>pX|Cte*t`->IxPr@;9>0Ud-NK@j z*VS_-8(tdF+TJ-UV?0?oz+djPo)qYhL#y^)xG;SD_BUZGN=v(14!17r{4F}|P-8

d98Ou}#WH>-i7o>ByUhj)W} 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%0AG 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

(}IV58w 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

8|!%Di&w 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�=9LJhm|zX8ppog3N+KF}N5 zEWqfCfXr3!4n9)Q-VN5&Z7jD-GIbjU2wL?ZE37HexG~$i>Ehb}5Ce!!^n>$(H8@^)dKvW%_WLgt;sPv~c1F^meFy zv`m6~|MLi(sOsz6$%O%kEI(|q(Wc_TwBWw#os5IR`X%BK7($I5{cihL(Ob&C0JrgHUV=S-K6ux9lWrCf1F{NRd+??CVg48smUj$Z z69n`a_wS?`?~^d!o`LDFzaN3atOWUBON0-^>;GeJsK+$#~%&;aLZ*G5YQpGC}N(&Gm3i^EG)brQo?N7mWsizs) z{-i-XNT`t<#qu7A-Nb&BN3r(3ya!}CV=hRv0{jTT$td(~W{1d7`X$=f%^4bdKCvJ0 z!pTEd9F-k@1dtf$iR;T!34Yz7@TsgtdmN#%39+LV{XQ|>6-K{27Q}WTI4Au`3&zjP zr4m6uP~q_WZO|RutB`Ks142oy!uH4$Gi=cli>IDMy4E0Jd<<<`vsAk+2?1#z2ULbO zHEAJKLYkio`ge$-`Axul7mAI10>FgJOF7_FBtw4(w; zADOS-%^qG=Ww0u4;YZg*R3i!3Ya%4+LB@EQV6PpX-GFN9fUVa29-c~2B*~w2^U@>w z5|5vdJ0m-r*g~is2Z7EhAccLP+>Zx|lvCOk%$|DyH+_|Bih_0E8w0!)2tLl&*baP# zfOOgP{$;g$x^flhbE3#n^`iq~6I~VWr@9AlwR^-(kr=b(2fo_v0z>yz3j)kd{pXN} z;KBGe;qK`|o5U_r;UAW6I_u}*6Nj#szVCURt}Yz-0!AMgs*HPze1bao@{w|<+I-tQ zJbIr1T91Un1vsGS^bA~wmvafm66m>yw{=0kS)7CD8bA1203I2?Q_Yca3YLs0DxS3Y z%-Auk-FF8cI&MA~8XCJP?R|2p#IzJ-(g0E|aKcQSLVA6U=Rx z;|ISP%VE0;6(}5(@j~LuR_N0~sm_1xJ$QZQ{k*!M$i56)Jp7xs;do9(>)&bayE`~CZ9o9^Y)VLOq?T?e68~Ul)V9{vV zhDX*gq`Wq>hX_I|kDaGNt;dk-5`4oG8K%+XusBUIn)mDhAB*X}{swVPYjjiYHNr z^Cupg|4bv&X%&#dr-Sm??o+|kC{~Wu+C~3pv@FD| zUHs5T%Woq*Y~IXB*t^#<7n5Thnwwt+Vrki^lwcn?FnPCkkI3X+EK~tHJR6<$_r`DD zYeq8y&r~Cb-j5yddinhX(aCpR=(Zw{6N}oLGjdgK_}z1;;4~9j@UA}dw5V&XVw1yV zZNXE?l2y$r(+Ci2)eCsi$v`jvvOvK)h318_|BDx_GVJjRnGMgdpY8q#6Fig(Whwk9 zGWD*{{vGgdo zT3hoa1zwLxLL$IY&$92<13`9*QlRh z$3I+hnMCZ0L%hWdAB}I0*uD(DbHIql3y==a}zeGoa{1>s!LFVjbI~DtwqGDf>xgi6|C6#TFXW=(lV?*4h_e7}%psIbBNCg2x7>E6YTZ zoV?pvNoz9E*jP>3M!bq4U#468aJ4CT8lLD^CB&h7euxQnw2wM&rx$SyEWvkpKlU!| znn^KEx^Ftpr0Dv~prt>*`@J}oZrKm3*@($RK6$U=l}WNjg*M4)%O~R6Fpo}} zWc@%*>h<#{u?%;5j&t!?RO_h3q)2C6V`Ke0aVzg*JWXxp$qHFgRBVKv>NRQwk5_Al z59VnLs>bsMv{tpYb{5gW$t$+PkH3v@pX8I2bg^t#)8pfR0$ZD8nwcchj1xlO!woxD zB5d$$)xmhcpru2p&Y)Mq7?|hxQqd20HYu>be#a9-`0$!`BbNG2-}1*ya={UnK?h{{ zUK5n1Pg?ulJ}1->`X@>uXuDTaDX(qi5O(TiLnNA1lGoALMWeQuR`tqhzDOcteyOz% zf5GSNU9BohPXB^kJ`7FYAlz}Fki<@;fwH)eF@gP%#DZ@F5s&@wYu?S>nu@Y%XV|&c ztH}s_b0&i3NUmOckCze8s(s6Q;jRwiAAO0ClaSB0&nPgOn>dl|oIE|=1H8-fG8@g5 zq`ojeno&ehA!9z0gr;;DY-n&ZFW;;;Ic9=!qwc97m+O(yg?;|{rC4fp8WGKj1~VdO zJA%EuA`NW7fyN75WF@Hv`;h9R+MzEL_F^36CIPRqI2BU4H4GJiKujb8O+@268ITfcX+%p=mn{Hq`o6f?9pos5@;T zg9r!%by)e!&JT_aE91+I^xqA?7wx=a;xIsxS7yjKpGm-3=?}|dzFj*QbwKAklxWD` zm}XFLer7MH7s*chYWs!k#NgO>X7Bqj4rJ!#$HQ_{0Y(SCh~cjS8uOV)T>6#SNzgzX zM5SgLO{al(88!9~M^W9R!1Wh`vR0G2n#0K@&I-q;Ei5RlrAj+xO=S$f`@4|99p0h` zKLqsgX)c9$_$R3=pNE{*d(|R*5FD~!4ZkFOX<;s(nZ0s#;a5Xnu)o8B_P}!N)t~NK zPSvO)Vp>k_lWbg0Ac4p3uHH2EXunvajM+qosq`wZ)k|UA39_zEED=tz^I~!TTlo4H6O+}Yp$7(U&rRVrRH*eaDI(8suObUl5yAY%Du_wD=lV&b_TN+(~lk_+Jgz}D&Wq)cn!%B*79n- z+?+(Hdq@0b+hu;^YNC|RKe!Pk%KO>t2M&`xrw@EwrfWJ8QQl5!57lxf7rL&bm4#6| zE8+1@?W|VO*nHJ++VAj`I)!ZJ`JWE*`}N2px8y2vst1K2e#u$VCntUpov$Uym}baY zQZ83TB;$09&(&&|Vwu^buS-PdA5_P-;~js{_hUK!P36dKX#|lEBLV^D{DgSD}e-3c_N=1?OjYOAy|o+{xy`3@a=Hl49iw%^%zGvl6E?pf zacoZ+`8qDrc)f6~e4fus(j>d0xoqLJl%tVUnr$Jzt%bZ1_I*y%Xcd&uO=*S2Fx{!% zY!0Hd!|NnChr65I*;JbLE<_!DffA0oXKf$la zIL%Kwv0_g4cSX(&* zVV7^d>7EtWMnq=(cp`fd<;Oy+M;@^S3)V8Pc_l zK8sFx*y(4H3$*gj${{Y5Ax6#wZEmBsZsTL+(tD9dR)@0T?pd&{f)p) zKB9P&vR85%9Le#?Lc& z8E2Nc=b!pcNc8)A;kQeknoXZK(YQV+dd6w5e>#8A97;T%8=(_lvP&Z(M~T}QC7>;o zZ@@m36*Bih#@t}}P)cZRLe&Qn6_~akuMOwcZ|FxTKw?jGBalgIO)?=b#C&g*#(pCp zZ%gCW)v0)V&|as1)AOa`R_^uXlR%d`=;T%ktVeVH>NzR4m>HL&g$1_LTnjT z4<45bN5iKYvftj79c@*hzpXD9QgrekTnK^eIC(RXoi9vUHI(Deqfu>scSfz=U-=Sg zj=5kzhmxnIb@l^4hOE~O%Q@PCIl)+Rsq*?2($t-Jc7J6D0bip2Oo40f%rp-C3bwOp z<})JUhWNTm!^N=4Ba#NNY%DK$V64GTwrxuBn!z-0)D6evnxLPr+#0WhYCoiIvf);e z&+v!$L{l?s0?kE>93R;oK@tkMg4f^R?)~6SFH!o0)2eL_>G{_Fd?{@jSS$G=^|+b9 z?`k_|UtvCgD}QYC9T6l!3op~zR1@#^z@RWJ{}iZ$?QZtP4I}#6UoZvEwG3?7Pi}JB zXC*j?FUz_c(X($?{hZw{&zCNfj_g|>3v*v#=xi&=JD)syujKAQsdD*#q`jDI1dMyy z7+inox@A2ObJ?)@6){G_LIg6O>R6QU`HHwrge4c7*V$4REsdfa-vJuz*+ECJ829{G zmfWkp^V8M&Nl$}ItQWyK-etwA`KbR(j+uxk(22-AG1$?ZPa6rhgiKHt+cojra_0GQ zaFt=55@+Ih1L+(cQ={lw?Ft{ib9)g^>zo5;p)C1Ag42X(HI#qE5MQS>8PoDhT2td{ zRhm#$EL{?9@%vk|@cjsGPc?lDA|y>w!(7osL{ z!@7QLS)8!mI{3KCqxcEZ_0rAT@7}LkH|@U*wq91ft5fg)&VF^VE=gv89Bxfp{bF%O z@5s`#Ou}}Lp#c|xAk62vcvGRPQbB&|#{H*Bfk7fz>g@e^{X@s+MFRem58oa%*6PWe z0!t%RU|FJAoYw(2J0cPIZx6C88Pb|BJ}x<{9&*ymif}IYcs5m-Bl0XZeA!3ezKt`A z?3$Xjxo<=05l5fhLan__cApnL$J06eT4EI5IKxPRhXiV{0EK)qtxtH<8nCf$I@Ck| zsNV}?`crQ_)!|C5L<7(FZk6J9n>Dr;ikcFZ_{p;0zeKI^q7Ba8|74=7!y>8hK5&JQ zDG#3OTgAxjU+`oVz~HQo?sGXLl4cEVsW`ePeqwffZj}-1W1bkha<7#O-AuNIFk!h1zpW~)=7*4_X2;BX?$z+|MzE;BL4Jfa zYZ!F4k!6AKs>RO2nDXE~7cNVq*W44m_^EX+uajDlc|<}^zs^ovlEjYzVXqwF2XJgW_e6#!C?+Mc zv0OiW@2WtcEa7gAM{)h2@fbZh@k{MaY-%L>Nx`wz1I%en$zf}~(W>0ulPmp%V2H{F?X+aQtdK7)4wn=a|prZt_v zXtaS-8TKOl=3`je*D`hfwFbI-zLC@myJ?ghC$9KUO9g3_5}~tstDE?T$?UHxC>?XG zm*Ygq^PgC;SUZ8y?$dw1uiK2*to>S`bRf5S&(-W7vD&#{eE4QNb0$uJ6eDtsIt$Be za_^-{sOS3KH;XPU_=-!vNLxgmtF!$o{bk69qz|`5JK~Z`8cOIK=5OE3Djk1R^j;oa zr}964^+UH2zP07LtA{LpI+^Zu7lN*w@K{Y2QOC0exhgBzOg7IhWyUbkyL;3NcoT6Q zRXN{d@J30Z2paqiA}ymjHHKxB`%KjW)o!djvOoXm2`^UCwhs*atO$O0?Q_wbRj<2K zr^-wls!{!+9)WbMuVWlD@Sfg=$2C~aWY%0))rhd}MX{2HDs^fN`Lafee7^-9)^a@; z@9v|AXc);wf`{8K%>GtdK_&NAI%3K&yAM=pmcn{!Z77$t_GITF8vXRzxnpDX5-lEl z$aK9}*SKc04V%4{<{cnd&^dwMW4f+00eXWK-&5Wupd2#c0sYrC8vJd5<$Fq4%tb;9 z?%ykef%ZKF9(zo#Cc%>r(SgPfvA5Dr^G6V8@9q!}NAF<6n!O(8g&bSMyBoxf9&VSo znnnskUVB6O)QC+UZOH%c8CH8wIjG6^x6iQkhv<#uv3p7$n$P!?nUkgWlyO|97YY3J zzf27PTDGWD`YP#=Za9$3iJM7>`~PF^Q=8FW)`nP*b!J7PQ zPE^y^57F2v0P^D*9X)l2i(BazLN|yqhuqbasP)^35aXe7lW9Xxw|M1CKCFi%-C{qM z^@uaH4>6&GxDh`5jQXwt3qLJ$1!3kmQc8h-q|FB(RcV+<%7ioXCjBzljd|!H)S0|p zQzasKGcU+_UYxfY@&>>U+;irLd@ftj&&{LT%F>8EY+ka$W!^9+<(k9N&)0yfUcjIo zHx`PY?V*--bk5>)?ps|vb46kOKtnhy>K78Z??_Cl;BRY*n$*~ z8-HHi5MjR+9W>Y^Bk)SzwpUKOE~eMvT(n)&t(+0Bo9sVS+Dp?>2_Ugsn_u-&=dogG z=GdirRYs0{^Wo{(T*b>!fjTWup*)W?MB*|YRMWJdC8sE6g7gU)HRE4Zmpr*&J34>P zxS6(9nD;KulXEbda>*ZM{&8J;r`K(Jv?NEl82N?D>-&m*->OHIE~Yq_?x(O_%ZSQz zjfl@}lW)r4ugs50=NQMB5od{YD|jl(oQ-?jRME(l91*xnL6)Xk*gk1wcRuDRB<}5T z-HxEd-n;ja>7hXh1B>|92<`qbC#TjUII|M`tVCMaxf~eMsydDJ3Txi?5W*8(fwU zw!qSOB5VahCdc;x3UAxTl*);i(SHi56lg()K&O8 zzkKkpjUY(vSX3RG1Bh0@=5{&pmnjEQB-65!c zicHNdwq7CUqu&N6b8vf80-gPC7rb_bjt$UMZ;Z9k#Ny1R3sdV# zPch*@4)1}n2dO85b1#A=emDQ)A)r} z-1_&zkmXQ}!@<#JFRzc&gTc@7ieG=d_dqYisPFS4etx|KN<6kNEbYIGCaFwHGc4+) zo}XtJm#uQ~?LI0Ez8zZ#kMcAt>Kncq(^Cbd+268{XJ42il+8Y-zY-YhBXf?A^MtrX z=-;?$j7RCTyN=8-isl$)i*@Ah(V2g-zYzo=OL%=E5-B)F7vN{t`K zP=~ds`4c_bvy!8>UYs&H?e0s#rqV!bg-SUwEzOzpkBS^i3GdFKvlG|X6ti321`foy z)*81ws?Kq0-y^FN57O}jC(qu`JhH{%zWhS7DrpUcWWnb^3B2%aksH2YX5JJ~ba z!`7qWu1?Z38}n*MCZz6O9Lhy%UHOFPu*ZNL6*HaveddgBhybbCo@U6KS7LOzce~e! zEMf~jM7Yr(^Pj~(nlOwy#n2YcZ>|k+eruJbZ?9grzJW_MDabN006+W_yr!-d%#$OO z+(^<33qip$nLF#vsYf-OaXiTL6u%4qSZ8YQVNk^MDEJxqY!;%H1 zwD)z!;qVQqRpo=Dze~)t&C_+f*{~yg{#o%G-o5_!TFOqz&1YpUnJq4vS^Aj~_+4+5 znAX3!;bV@ER^_C2h&poJ8gRg7>cka0w?)r;HAVK5;n=XTvT|U%pN_M7Q{P=g3dBO%RJRY&koR8Gr5+<2M;xc;<6mWy?h40Fp*;w6eRiJEq{627Zfe(qzUkSx6L4B+*(sRgk5vmMyfcQU zvmO!ndX!QfA>cFxRp26iihlbGee~VF{v>W^ z)Ljmp$)SX`loBDUpGiBn!sHVelV=DAdGl;HP%12p-0^3w~w8SL6h7XERu-XXD`#+bE$kXc}XAHMHSO5yAqekB0;)J0;4$>n`Z{B$J%#p6C>hxp3WqAHyDl z?pi0UHl@DkJT|*kcvMYub+gZJ4tmxm+yC6SO-Uw~&X+!+)h&fFw#H$OAgy9vb+M0g z4&VG%4Q3<^)tGiR0aJ;1?)tq>n=N;%`#!qCZ8dE;doQ(N!uN{y2+TFw`*c3t1=)_m zht7fT(Y``f-p~`7XzUuMEc0})UWcq90UkA_t%2k=3X#VM1N|yFxApdYu8x}@;@0z2 zp3ATb4hbsUbMsggI2?JKk-rULJXa2my-g&Bpfh+sP2Gaf^J3wwzEunsIYj5X5rOJp zgmAqy0Id!)Lb|Iy);|hop12AhBQ{Ex?ZilD6BNGv#P)bJ!)!F;n||FzWBaykuALyU zsVd5M*{$!r$Chza=YR-DTXH)*xgt)1N;!Dy|L zHn=loJRtd0nyoy9d*uub-}uQgg9ojdxE7qBGN3-#o$%ki5rmD^-{pFHP$#wiNXFZv zJ4C$Rb8zT63L135P<>|kju7dX-z&;t1s$F< z5;bRQ;5F>3-#Yt$9q|!!bE@Cu7@%42`$Y4KfJm=qo#k899JMM)Ilhwxte{?5QZpFo zyx?LfT$?GMu}%^N%60R=m|aypb!%SMC7COU{ROY0t6PZ*ta@yqhK?u`diamgrAL3$KE_%ka^exDhzcqDQ+ zhe!NIuPt*9?NE9ccjbMwkks95RH@FvRaA*r7Rll3`Jifx?4P%{QCM9A&}S=~UBPPK z5)2EGsn;)Yc8=3hqleEq`TXDz$~+oUw3%z;gKp7JJntVb@!HOX?>I2jqzcLGJ@_$* z>!I6ImL1-@FAT;A9pdu@UDhWj^JUBqK7G-80EZ|kh|2n{hq>gSx%)`hpLH>^o@r%z z{6Nr^t5G3rn8Y z&kHo~=befaF+a$UEp1NJ_4JbaWH3ymsF24fFbmf(g=9x8S(CfQGlEyLHa@XIgs?B7 zOG#=YEOm`e7F1ywL$Qn}r%~5zYY!F3)!rp}Ow$ra6;2!4M#gHBwfNsVpZX<=jBrd*L$AG=SKP$-b-3q8G-M0-8}JBe%~sDvCxKU?0k6uZlfqF+J;7 ze=gjyUWZPYP(|XmJfg&$Gd)PE|51caz5vc&+0$pp3T5Z|%?iX);k6=e_$yi3W$Uit zT$Venrv8mH87J=8jVNr+}G;ttNQwX{|VR??z3E1O?xW^7pj$Za3Z3 zNun|M-q+w*XOCBTx_Av?n6T z!)xuHCD6$O$>L3h7e>1B_RAs=BFByU`0MQBhosJ`hoC!59j&OA3zy@w%G9BZNoTm7 zEp^z|_L+RH&u$v(S64Gayo?i9;Qyz%;=T7-dwz=fMMo^<-KqsT{^pZZ{LQmWzd@Ud zn~frg6UY68mr9^Ib- zTte{bHBKZK&Zv_Nzp5Szr6J%8%kGnov5RH4Q@)+32grv1KWIV!AB_WsWCP5%Q39et?;@d#UW!Opem06?N!vzxS3)Y7OvY)QG&EK921z zU(u^3m7480uhP|zuot{qG2oW-Q(%mmdGJf49?bpXUH8$tswgf}#H&S~FwmoIX_b3z z@#@Pq_nH=>EukH4Of;7W_Q+LIR|me+$Wq+hceRes*)}Cu?iUtMiaq%1#yLNN{cny5 z!S`1cWM91Qs`3(iQa5q7ZAC52NheR;vP{nEPMJUghh0$@gkz^kp8t=pZ;Gy@i?)u< zj(LJk$4)xw4m-AO+jcru$F^b;%4P{pC!J~@OT_s*- zuFCl*yOZJvJd$pMUT;ccwYnY^XQ}!hcN~=fk2>i(uW53|rXJ}eGUK=0xt!XKa@I5E z(w3*3#*}E+8dkzbcMX7G0F>#N4hQOX^q_j|q;CMd>Fd@@r*| zi%V2RUqhdGhEyEpC~L8UaewdrkUyKwKOflIZYUKJf;WeWu&8|BW2)} z4K3%bR)$5bBh^zUxf)lJetkwEkwd!piq2aFSt4=-;;45t9HAw)Y`<2j<1uSnYQ^~PZ30Tueh12RQ+tEmw^k3cGG3ZbXY#w3_xdyh$VXyLXFwinGvX*bN zWj~5yUnGbsmK48IRYsZVI1V=y0Cmp75omBjiOu8AOE#k>Q#0#GyWVTqsHk-@((mQs-%;E*3%ruuBHi>`Y7?>b#~teXFq}y-6j+>+8Z;f zZBA}M=LRR|8qK)mdKPQNm~xM1OIJ}%&2u{Z1wg$o;$6?iv+{H8)9j5BnEp9%#}Sr| zZxp>9e$RcdSom73&hq^mTKnb*0SaGYp9maZ9=ebU(;K-+cb@^F6W1?%sC_sDSqwKp zeE5A*ghg@}p)}NevS3e)(BCzxaQOrSQV5FAQn|cGGr>TwDPcRT6lg<=6zKhF4Kxkr z>?jIf{ulPb~7+~rAMQYtbVh87v3`EKEXq4r_YZ?=_hv%6h0*w z-62)6O!FL1jz>J1{PB+WN9LuKbV=SnXbRywKJH*IZutG;P%@bj_1U3=ZPzZPF6D>z zbv)W@TL`J+nAhxm_(gy}m-o=s=$pq-zC6n)r5&-3iTBXHm_?_!4h10|spA(N6RU$c zYbSP{BH^ujd{%nyBEO-ky}9>K_CVQZI1^ZL6<9O4(%3YlsQf2f~Hz2^0h2tF(PMc4{ zewe+)PX0-?llCe60`o233&FEzEv80(8pR@MXSM*e_ENoL_mhtdF_=H0E-Il_pK+@l z3QXoG6#hwuU&aaq2#?;(XkX1eTY6{xhjdj=G~~BvQ9NybcadUxZVNz}ZFGYggJe}9 z1prvY8RXx#!-xCxori)nY8CoEU=z1wb_hlE6lsL1{lQ&G`|VmDGiGtmTZAaqWHrbK zz|W&sKCZPRff;)l2MIBUxn*N!kwjsmJ?F2Xv-#hcx?Kz1V^ zJ%>RAaH;qk6ZAbY?2k3z3wr9V)7TBdnY=2fbW;A|SEX|>ILL+CL@+d;2F%*)9JZxy z?3dn84r=@$IJw&)-P&C^b_2`k^3?QaqA)w$__a|-ct2BwR(`Mt$v(3{K);~8U;k{_V^gc=>DBor54O2D;aJ zD&i?yfXi~sg^n`TqMpSW&4wi35nOU*WOe9=WW(B;;Z&Jif9Yt?KBr0tVPv?qZzGH7 zl{E(c)^lYaN*9~Fsx#(kc(@uvv3tC?4>5%bqZa1c0kMB{6`Ds6cS)1UW1U$X8_T6W zZ|$K8fW^fUJa_lRMGM)xh=4O&H*V^&e8xKwgLE1V8Cay-tgcA2kDc{sbPA!yIk&o(5vqb_g z2XlPbY52uJ)a&L#)UazS&5e>H3EhD7(dn@7YqvxkLNCv-ZpmkX!FotM;lN=0ftM!) z`e^uti(;QfEbz#^E!0IX$K%sjgPAR17cch9zDIi(zHb+Hd98Wxm`9ViXKC=Hdvu6? z=dkPVk1QX7Kz#t->R?Sq?n$lwl<;hCRDuWow*eE(8O(iG3LUzEO%ab;1b_MgYSEVh zgx08AK1@=KeMQU|8QkM27Mb92iY&^33z0UJ;MRy+Jxq{VuzcjLD5f3WzBdIg*+3x$ zaXQ5Wo?#k7qA0g`@M?rZIf6abemBKOH9{`-eiX$P)4;QchhVU{C^wsG67v8H=C>$^ z7=&7^eI?ADZv)<oPkfN%6KB_p;xD{_9Ih!BZ&6X7v*D)x9(9|sk%0Uv z>NgL6QF$*7qK6;EYudd!np=BD_4a}+(SB*)HaEu= z6xl1Gx%+r`h`Qcb_M#w6O5k4~>**R{csBv1yS4k_APe5ON?(aR$2UghYkYWHw7}eT zO#T-ObN4hJ^yLR2_91ohobP~A)TdY6rz@OmYHn1Y{6LuZz&yeuQT&4!6L5;zt1wjR zJ+w=6(8zayEaHY2UzwGMMm>l0nGYs;57htc9Z%frGd(lm-b617MEGd&0X1S64;i`OG`k|*JwH(&N8h|B2O}7Ew092pbp?b#BJcMfe8*yhQO_v? zt1pylhB>nbxTBO5AVdEl-n|2i*i;j5ks%_q`xhTWj4qVB(*jq+)7R06huX-GNjMKL zPx*0b3;}|LQtzosSV&%9XSCiNCZrvlzJE$con3o&=z5)-Uey2{Gfxm-*n4CI$nrj( z^ci66+Yo#4PVM^jCd_PJ09h2ehID-KdHQe_*D%c%AbIM4PSXJbvqsA4b48x+{?yI| zkCBnummNPM;&}A~$(W+}z!gDfADKQwokt($_aDcf5%*$?=Kw;+lVpM1+2a8SzZvnj zZVKOHEM8;JSb_>{?(34=i_`H)R->NjlRGx!y;Wlm{!ewF&(UXgZq&;IRsm>$jPys! zHTa?4h40>HX!o2FBnh~)kH)z_a{KfcjwxJBeF+C&ar2`engK89$oYGo;`#T875{Pb zr=Ly+c6}*&^s8=dpo?pAbJR;yskq<4vE3YR%V{0$Q z9ZBg6=caTF@CfQ>ZZjT&XJ-HXYas*rzjtCxe`k{WTByDT(bE*;v*kp{i*(1I++N-J zn>;h1dBuU8pAhM-%P-sONT?&n{~mLf5jgv#VJ?7q2N&xkfOYIu6RWR3=BV|=XnzA^ z82hF#(t0rw$heo|zBF4;P=AcFSdmrOL?0~!1 z)JV{eZ@~D+BkA*plgTrX54|j}z7T0I{H3i5= zSC0gxa|f&l*JKEu-lPexj>ctb>(y~^$px=?yoMnhU%+5~i)4}f_bZUWG^{{aJn~7( zA|EBfW1y2CpJvo(9IBYMC@V z9t(oE(him@fyN1B7ew|t4$Yi$#flr3!{ZT}PgIV#vl+?B6bMP0!MU z9nG}6^>{vq^=|HsEO|HeOm{ zyhd%|6o-gPeiS6>e(kfRfhJ7KhKk1-rk~s|7YUb~2^nLsHj=dTGgLIJk+Gf0w(d1k z3+3Z-cO6d9(XP?5k@=-bpkk`n&d15s+ScS@>iA=wqiTNrIl6YiDYc4@Nk?r6iBUtf zr=!d0d?5`=*l@n0z;w8BGRojg?Fct1sfHnt?i4rWgo&P3H$gu^TSKqI%GJ(qm{9oF zd1OOE0kB{oEh)GS<|n4h;l#n#hiWD8W{gowv*$0`;DYKaeWVjIy;@Zp^uI*yu~Cq# zq_guW!&F*sa%M9bmUaS-jL4Ra+8mqn-{tql4I&FF$0 z*HWdLIZoqiT$_`rqNkB3XyUlV-?ZS{i5Awa;fGrP!hxyU*jvkG*4AYfcUqO&Wr5LI zt3ED{QHX}-ii(7nc1<%&D@;Xm!yZ~19@uEUyld{oqj~NU_Q%SWN=(cau<8;vip?o8 z75lU{6uE3*>%wmfceI}8_*L2f>3Ap2dAk6}!88#mt*-3EK+oq}v;E!r>0r1Wku^dG zNek ziW*mDp|~)-(zt| z?1ziR^*jVuQfkH+^_4-j24g)GfVXfgApw0QWDrqDy;f+f6=4hlAxn{xPH2-4%DYAYK}!l#6o9V zy;dx2I_K}EBs0%4YBg85;J7rZ%M~SHjW)j5r-T(PGNLzd%S$i?8A+*CIx~}lTTC~U zqN*JoOKG){;Z5h(6c}b8sUlTv4dMRCGpXFVWLr&Z(G9h6N@5bT@b?TghyxluyQ?Vt zRmsQZ5-7%a_(<%`rW%g5j1@-5^}9PPR6Va3J`TRz(4s}d(5f`SQCYTEW1LFf4G@3+ z370gMlvdQksU4cKp=U9qO}`Estye`hPV=pEW6*&jfkGC%n+Q}Dr5AjjSP`ua9@XUX zo)MQwE|J+@Fr8cNF}sc})+JKIuBM^s6edBmK8P)E{+iXi(ooh_HPk9`-`&MZ8)!sx zks(^%9<|_V-f4#a1 z5!iEB>v;iQhJQJ&hKYkf_>E0<2i=G*T7w}Sua&@_vA)dUC!6={iRt%<8<&WadDDKQ zJQ^65|9$Tkuy?yY>V7+qdGlicK8*RPf8PT>ESJ5JzoX&}8URBzgVN3eHK&{W-=>jxs7%RV_%%XM*~L~NZ;k?z7?ZL~w!DQGForPz8*SJw}E{9Qttt#rkRzS=57 zSpQ~DP=C7dd;iw}F0Q*npm&CA;6(uMS&?+*n{wG7AyWh}XUElBR$3o;nExZah4}Xr zXh2t;VGwWFInQwvv2b19=24Qmg-7RjrBvq_?rSl7_@|IXpjgi?{5tZ>Heqc?vz;c) z!igPNxlGEX1-X#P##crui%T%hcunZ%hs|E#ihJVdGwFi?{v+EM4erl9O^cGwSWGxW zLw?m zGzxA)4Uv%ysC=5h#5l;1W5b`VBBY-Va#S$ML|1MMule2BzK-ukd+4uk0V(MJDopnm zZfxyL*g6;49*#+sJF0u45!nap>s{3J+8DgLtuXyKTy-WF2VRJ%cgntk?6~viO@mDt z-^351tUTBu)**8h`vjPeTk`?!%TfDnUi?pQ+mWlEfquF__mAJcDwz72b*O8Uqvb&4IH_rTV~CXiU4`H@Ct8Q8K=~3G7zjFPj-vCDR9tW#`|VGK-Pkk04!=FJ8>_ww4+w%&PJhU^`X{EshYxZ4e)Wy` zr?Vrx+)ifVGyTzNufz*5!~g8&1N^b+e=+$6Bn|!e<7fKT{^_mud3qqXTU+Jr54_h0 z!8>+>^WHzD{DmRk)mQk0UTJSo|AOA%cC8)5SMA z%jd6hiywOFbHEcFVKf5Ad?J~C4cfwr;9}QWMZXE}I1R9XY`H(91@K1Wng94yAeRM{ zud2UojF}4#QQa44;Ro9-r-I&r_x|tdy;9Y+ACA>;Pu)de2PhD@xMPug1LyJRbgaVQ zed1$P&G&qkNdTPcKV}c^t^Ygu&JDZ=GZpRr^L_wVtLpD;#^-|9Yk{v|e=_EewBDj# zFu3V67A|+~YEpj6^%h|Hc>EdY-~Aa|{<851HV;UwV*UhypAjFAcfoWcAVBqd4mh=p z`FKvC@vk)hn?Tjm@n@m`_L2OWz|kStU+Zz1FJSkU+TK4|AH1vaFIZ?RGnh4b_X-5| zKS=)<3>_@F1m>cD{dkWB_ifg$gF*}Zj-y;a@wxaxZ@bGolin)en7g#sX?s5Nv$5s0Ra|cG;oYv+mqrHq zSM5#;{M%KtSbNXBj%v9NgSd(@$i8ZjSYKb?|4HV(sMpKb*Z45%?XA(vxO(2B19Eni zu(|X?ziy*63#`lihW=5PsA{+Ho_n^Nx>L6ZaMx|QLTof{R8T-qZ6fd1S;(O@M%fxe z74p%0+4I)LO=ZNz|L_#vt0=t+_y2Wl{xDkTc5!yKYJTPQe%|o0V%M#4h%UF6|71*Ef|#f`S9O8vX4MEONVkmyv2fJ_@plo@qtn}IMW_^rA1rn+ z$)Y80{!R_w>HVI@crFY`w1JHm8*!3}bJ}WtvF@(oN`U}dJ=;9*-M)|rU*Dj1+Ql|+ zmj3%Rckc+;X18prK#GVSxq75fEmG^3Xm1>3?HUh@n?agTegl>4f32Dp(N)E?g~-e- z|7X~9+^1=M(UWDWX3r6It(DGrCu1UAT)n=x%;+%-x%D$pI~P`GHN>yEn51n=&xRvP zJsPeLlXl(=dWdnX%lQ=M#D|o{6}9lO8Lps7jHY@TTAHG{B|xGYQ;8iCDuNC(@=l9V zsv1k{!dXc9NN8vUu^y%jM%Wn03VJi%mv&!!^pe70l7FS11YG5I^YFit$Q&#-ZWlJL zFhvHW2govpT9$-$@%ri~0)1t}p9i;Zp5zV2R#J|i#k{ZHs|l!9wNmyD1`AH6TQn*s zkTTh@V%DY$zEyD$PfqF5+Zx&*Mr2c_dj#d*_uFEj)R%6iTyaMIJS)aOQA#&efYuNO zxK{KsowwP|JL*=p^Rttznim)gV>YAdvYDnxiB zL3tGV^#~3Vh~M(ndsN)J)BH-y+gS5m)82kcW+vLli7*CYlU01=Ych@0fnC~Vp)#3W z9F`_DKXWn{b}|=CGH0IPiH=b*=6m|rr^c`Kx#^F&(=wOljTqW?5w2gPv8n2FY2`+A zQ5O+0xzfnoyzNT-O2$4JB(L4JzqQHMaRhP^S_y1p1VYjE_q;c4TQE#cyBeEmIa{m` zm2_3AlQN7f6jv|q#++9=Bo^6mOyyWdClOr98L0P5%36PPeI5BOD*ff{3*^`Qc(DwQ zij|9mipLHrzg%nJ$?KF!_3Hh2Bq`k{;T`sOQ?s@M4c#RJXTqP^2-O!k0$HhXYh@N8 z&~QQ{3aFSiabJ@qmrL^M&DhT~2qV_HV56Ho(~}Za$V=N?rvEmqpfsElHk@aSl-y4S zigl^R-KN4wB&u>k6*v4<9=&TVldHPg0_O(li#%m01A+oO0-d@T0m7*)2g0tE1 zlE%ihI`Yo8KBR=QY@!n_Q;uCji?j+8(#WB}j@6zbZ*sobTCJ!|J3PVa6*@SC42+L|@mI$;Frn<96R3~sz95pB-)rWUwJO75}AuDQz6$>WB*#Q8z?I~7q} z6q3Iz308(+H6_4bEF~WPeK+Wn*%0il=3NKoTLaq}gFBl}{aZfKcdGdsFZ~}&AEW=R zDXjzh}VT^ClE~aVY?^J zuV-rF7b^-1f80j5%Y7UfM6*lLoJC*Lqv|3MOSL--5wK1?RQq+!NxA|Kdju<2gQM|? z9?c)|W-FVUNAB@19{(LR{LHod48x=88(dC$1z(;oPCWund8@$9rLzW){vG|RU~~Pt zQuGUO(1(8h~4EjDPNt zy=!}4%6g7K2cm-J3}LfZHx#(bVAspn-b2@{+OQPKv~Deb^_Q_iYV`gTJ_~n5{dW9f z0Qz0YRL}mim}a4tu_!~`SH1YkdA82GQJcN3x_m&r;~5kRvx&!I+TCQngVO<>(=36T zj@z+l>Qc<_z_hv>7!)usRE#N_3jX$7JuA~#mIPU}f2tzKhK_D`M@PlaV25RNCbjo2 zi#D&djZJ}{+qDo21q-XfT>_}ooE^E zb3G0&D;ol)qtrGxFK0OE1beHHn|yCEpEa%z6;nES_)Uj;u~3(gdFSMu`(-h8a=NR6 zkn+nfJjCrJwWqFm)`L;?&if6>;GoIu3NbsDTOs0Q42*vkIXzsr6l_Kz<9>$1l^sOK z*PBl}cbQzH;#aFz8m$Hb;#7jBEmcT~v9$S|vi}hpeZBzNZ_!~{OBg1|#u{`mSyb2|=36;iacdb< zL?K@Wqf%!45#--XfFkz(YG)X{t=eHYmHy>r-Os0&V&uZ}h8J8ON(EB4?u>cr^|gyZ zWwfhh(60*%uxjUTl6@Sn!Z)~1mp8tq-w(pA5HPSa3Gyc9Hdf`QxIIy%XIygBx5+s) zD!zecyO)02E)$nsLy@ATLm5>F`n^UkzF57fe+H^4yKmj>_P0|@Ujl=+4LMcopa8{b zuk~l==b&-TP+KWuK_ujek5VpS*C-PIHO9tY9*Ra?8u6sbYlov%;jz+2Ccp|ppVZLE z&z~cF(4I7rK;a>P5p*0E*^fV#IAXf9qjC`q_(&MAB-2!t2D?0^*U0olO9+aexUQxPc4RSvr-MTX_&y)(v3@($WJ%R8G6`z^7z>Rq zS@XcUy<~UwP)*2)onG=+(oJ)xXQJvt;Wg8~miF0EAy^yBRzt}v{U2P0nZ3bswKa08 zwr7=uCq@=aN|RA7Dm|OKpSl5VEO34FtFKYbDXlRx4$AX>rRwVFn%yfJ@*KAft}A}4 zUan6apO2fZ@6=a=E14?<^egL6-zxjYDOYb9!E9%+m| zWgTL(9f6-|=E6sJ7`)K$KR*as1awLxUe=9sjn+Oz&7IKNS==U88>p{H*(7(UXmK3+ zykE7}$zHi=j1n9$rJwE^Y%wC77`Zzu!|`uy4ULHpf8jy@U?o-9FM|zZz4~X{y8QNb z>0!_8-x@ed*r5aK?ZJ)v(*NW}e)Xk@OyzG)I9K8>8v0wXKD?aCrHcu&*e_@1VEI4U z7`T@m@tYB68Pc(a7__{Cp*zDEvu@WIBX966&tA_(s1{i*e#o63ErXF7bt;fMzh(c9 zGD5kzef&++Z5Mn(cK`+z5);Saqf3Mwb=wsxSrB`E)_EbGu1ouG-5fm8Kin2^k$QD! zS{WjEH)6~zu%L(RgncT6>u_5ij2jaH3@}&ti8ztx3LW7`m~5PV&e^isWW#<_`jy6b zV8@029F`(^-g`mSt;M(>?=!4+Vumuv_qjbNA?-_QgplKt;OsJf*-YFXJlI)xw||zt z+rZ-5p3=-u2)Dt?E78i{y;wz1W+|js_i5gwTaz#xS301Lwm&E*bAFq=V|nI8@xVA< zn(#pPoheUxYq>#ZcKTb?3ulMSzWe7jlX;YbwHoRtGCAv{jQLkG0sYru7GQX}ZJM<} zpFv*}!4F6?roE0YQwDo9qcFs+k{{)Jw#Mgd-IQXg)V6()z4F6X0Xz_rD<`~77&Mz2 zi9N@8kC;@3PJfxb0z8IGP4V4W&D?^ms8>q#L1lF6aW&HIg$gFcXU0Z%|H__AJKlE( z50@}4CL=k>Ilz2&E)*cnI3iWZa1~A_x-nXP6l<36X29ZOO_Yzs?HwD|s^9d$FFcKE zJ>k*iW!t5B?n8bQShdgwFV~}SjL$!J3?F#*L!sBOl0G_+dt|7k=W#Xghmr;lqZ`j< z$X-gG1AZUz<+=3oQZ}ZhU;8jhP}J3wxSxEsNcS?n=)PVOtNpG(t$7mJ(LIU1__%Ag z5dH9Z{o1oHLt+zNS=e;XQTb-JY~1uLgwyk$X* zvQJX?SwQeX1s7^!)%|7BkvEV$Kw0iI!BL&g$j8#&P>xK+t8K6Jx)u_+YRGFpQA7mz zv$qz!2`^)Nw4mJVNNsoM28fA{I-9e)4n~Nf&|pJpm5{F-`TFArKfm=MQmNLT_mkLx zqyc`d&|5dnyCGPS9>&HSDJwH-{bDE##EZyXZnAzu_9{q;E-6?Ht>THxA(BT<76Mqd z`uwrxu7`Ymvsymn;-hz&t}migPHnU-7*llVNIxAq4`Z}>Ns|ed=H?pp&fqU(o)$Q! z+Fm5lDm{dUjlb_&AY(RgX2(zZ+yw2)H{W=-K@L6Jc!$|mafNjJu=}U=Pz^OSdcQ-0 zjDkQoGsIH`dDGMTn4`ky^$afWVr{6?7r-D8Ekj1Y+el9X}sHN~gKL0NsRrG4he9d11%593~ zoMIvtCXP6w&LeuT-jlR+F(ww7?^io|!`(4kijgY|KXJ%qnD0z-o0Z;6QVofn}tq9 zXovm)&Aai+=XS2^KpJWbIf&>xJ)P8@L)2!J14#sx`S5OnI#lU&x8|I$QlVDah#(#F z!(TBN{`XV90JH6M?gf^_G|@EK_k+?!LK7Q9B-`SOh8*G?5$XV*`aj#noG}t{%Lyl-1P;3B9$mWiF$`zwQIFHbjvGH+Jy0_=VjmrY1!{#u>c;V4>SY? zfwe5VUyD1wug7<1lgzFtK-(Jk0^)7qZw{e~64IE2(vx*eD9mpT4~G%o75vqa_RADp42b=s;naNIniN?sZv5X<_?jyY8&BPA zeKcw>GA6ed3!i05Ed{qjoHUS?HxNAZ(3!_Ij1x^HwIWb!Be;5W2dKr!Thz zml0=Bv;7jrUoky9fjH!)a+=jH4r76;gRBo^ zsSyzL0Iz}s4C2Tl`^Yo+4i9ir#>LI2)Y2{>kNTnf!J))koI+p4PPl(s{ow-m=>0bm zLA&z*f&HgF@aI3mQ7f3sy(H@dWbgZF*=_gk&-MK;I%xNQh5#1$M*ZD8O!CJ5(Iwv8 zev%41Vab8#EjumyHpFZF`z9QfezxiPeoAFYqgr`JS>SF4@WYzMyOqDKgJ~iY^~U{u`R$i z)Jnw>kly{fR3T%lN`!%Oe+;>b#>(;CT1V?GSkPWXO)i66>|J_8fqMH-zWbz(_|3!C z8Qcr3cfs6ne7(akql2X4n@9Lh>AYWi6A^$+Hb=cXt4tS~9|wfb-E^(=&eTRIj4<~< zkdpu0LE*z)a@kxbpC}@`@bmq>`BK*UMP3d|-cMdWn7$Zvz^(Y8OSul^pR}KD*_2iF z@qSczsNzApmvHE^6b>J$u90Ec6&zBen$kip6z@-*n$BNxLs(Gt!i$sJis|+8ieT{MN zou=VqeNBHsc}MxzwsofrcqMR|OPsnm0iH(vXj{v~6;t^^Lmi3QWk{z(mj%bAiTz!5 zmj;_Q+CJw zdHrAmo+foMyt%zlf3IE2KpKR3L29ZlU22k3dGF546IJL;QlmI#RFW#q0Fibuml^P> zrj6fZ)JR_$UGgVB*N+6}V?_sH!#$wF@ow|ck3wUwD%uZ2q}$8d4JwuHcGDu`b3vy~ zL9+M@K;CSRUvH+3)vU3Fc%-v!XyDjcX1iLev9Qn+F=MTj!%S4wz?n5kg@hnSr z_XO_6Ymq#M0|^cJA7IO`4ZG6&CJCcV#mN$$(gTu(0U**4teeC~6~mI?#VMyS`Fw`< zLfJmzb}acpNhficZr*mR*_rd>7%`kA3Sz)Td4Z}>n}KjZG$vK*;yDLph6?;^2A|W-Uy&wP!S)z2JVr824trgt^}lNkov*P-}){Ycmryo8Tm3|5rjOgMAd3U5nQ z+Z(-DTmd|7y1+w)N%@aWKl1#Z+STc$t|6;8t;7aK(*@QcOSzWBSD|wevm-xr@lsCNgbFg$F_><5`00_ z4F3-P|5IT0dN4g!*Es}+z<1&L@w0f@dq*FJDG%6F_{hDMjt&SskgD5+dv_;fmMj!? zo1s0ly2mBJz&pA1tY&uR%;@W?(wwedQH5RO(UbGf!w{zWHeg)Fqf0ukdU1A1(Tvq1 zuZ(@>imD^}HcO3@;0WyPk6&Fb9zRVy@q~Vi)>tKdi8Vs^u__ObU#jEp#V}v(U(ZpD z*YA!O0I>T9=f~?Qk;U5^4Bo_6?AoxxDg_v&ajsrkE{DJ8(W@+-aXe5uP_n9_-nYbY zIuPa+ia8tUbNn^m>_T1)QD$R2l%+^4qdSvxp=8^J{^E0chiksujiogunxtw%8f1F5 zZ=yvtmiQGhmrYU^5!1qT`CB}lU4t~8Yl0qTMJ93RnFW7#^N-x%FpIM>D1rVAVK-3gWjJnpawaVWg?Kw* zrNBScgo#MHOzc0XeY+laBEPYRF$ECHebNT&>rJYy;spdUnc4}*-|@a+pfksPLlzdA z7fB#<1VyBHGW)>@h6by} z0P1t+$nZm?b2-rOQ((l}`@8sZc_$z2jZaBTY2(3F2NTbZV*O?ah2hQROVQZjW4C;N zG)1Y8!Uy=*mxPMDIIjcv*idRed`#dFJH1^F!}#F-y6My?HfV;aK;X#n;_}PLBKNKC zhu}!(WS1X(lmUs08*=cxy` z+Zf1bTZTja#(xOK`IO^%Xnle=+ldS8QML=)T%ehqI<+qsdYuH?ei0NF?GGCx(M|^F zdTrN8{}Rb2uNZ&R8y(cfS5hAFmwc{oG7DMw6LcYz2&j|CFAm3DGmWei=3xbDCW1QE zQ|A~~8@zaVe(xF=Li7XIw939q$KBRjxsPU;k9dwaq_?`V3ZV-vGwOy*NJy;4rz#Ri za}_n`7x6|#3H@R`)od$bRs06a7UPy1f_;C;1}n?2lwd90uCDt#Ls^vmRZA)>x1h$E zH@ZPtKykYAYAT2|x5JsYwa3}Ue%`+J?!#v@{7%=J*L?Z<6Z`DJa;bn_>3WgQY6Sh~ zTse)Cd~)7%u%_Sn-0GTpN*lrfu)G=Q@o!W zFQhbUBkq-kMDn#p@5D=K@KNdVZLO-Kj!8%%<%M@+(!Xk>`*0&Fg{TM$`7ZOE-A1Dm z)$>bt5>XWyY;SDp>sySMt$U0w)eRi$J_1x*^L;GWP?swmyq$cB-4HLjDaWu zPtw0l_O&O5i6nsdM?&Z7gg~3*FIAeWbUZ~bEc@R*GimD)KMuzL29baUs(sr_q+##= zlcLAagZe(1i+ehjJFx(8{{=9Z0nyzgo;Fe^VX?5o3T-a;lz)Bjvo`EqfBap4Hs>F( z1UY~&_Cc#x*ZvWegzeA0gcn57=0q!>wXPm7|1^qVk-X>oCE6Jl$SouV&K0?IbXo*{+GInVH+wb>-=DAo%S!H?n++XrN@%nMpQ`d=3X9fAEI#IIcoTgZQ4axHPi)eCZV^Y6y zWEKkr6Hm=_lfRvond?XpS~ICGCz&pDp9V9u67tMAjB;>^m?v_(k^ralLqW^`n*5!k zz<6Fg&8t^)k-C`_lqAKgS^hcd8kdKSy)O!)dd#v05W8#-UK$rKW!Y@Jy9gQ<7^G{~ zEkv0d4zs%}p7;2xmdIFAFdAEhvR9gX&#@dv)FyJ%+y5AfUZhe|E?-FcDZt9Yt4PRM zOD%;Z{3twS7E4N=aLG!)GWyAH8ha2To?Th4F@^}}R_><nOSg&{l20~G~Io#PMq(B{r zCZEjwgLoN&bCHwHHHkCBIjI`YC>_%5`-$a+NTv5WZQ`~d=N#uR{+hDWCQd3nd4DZ7 zu79*8?AXY{B(=?VXiH~mueJd1_%%%o;5@~ zP3)i9Lz`2r1sO|U=YcTWTOqItqIHQW1JKEN9TZ}UUAz`!T&S;7KLk*IJ8q~~oJ5L< z`Cmy=M69Y^DRl7<560ZOV%*%diOlVvXKvd^eTf`<7HpUHSU{wuSekqxAx>Y5{O6jR zp9lAlhtkbJFb%b$Rjf_f_ZRLVOHTQ>$>pO_CYMFry6etM_G5Msx@q2W7Q|C0KQ@zswzb}cCxSmgZF^l1~}_Xe$`0l?5K=; zukRyd`j(}lDYMy-B?LtNE~ozu5@Sj!C5XBg0s>_E1;Xfq&0HGi z30&g$U?>!{uRmV)1S5l=G6@Lv92s$1!VV0a5xx6*CYiRaR4RIHs4@gCr%_LY@89OI-u@+VOCQ!d45TZP2$^uYX%l2Dd|zH7qHv^W;kugpGB8; zz#YNvH$72fuE=b#z_Bgb9ndGJL|NC@amPMYd{WdLZS5d5sHcTL=|a#kFlw6N7WRVn z)^t3ZvBb)(w6Yzz%gzvm@Z!|mxj62V6Ai+UX+hGRwpVm@No8`m7lOl-38-fNYuXZ% znf}No?LRTQ3VZcCWLjy%Y-X(C3i`(Ak7UUR=2Ol% zMo!#KLs46~hT65CS*uO7A2`~J01gG#2(9r1A)z)dNTkh8oAb}xPY1+aNcc#2X>CiY z<*6Z|KNaEW*a8^$DghCtiU_6ky<6clTSkPE1zE6Ygit!hV;wuNO0n0cd-q(WwG)vn zMXnu~-7Z33k3weQG11pVfASdpvHRh>mnwqSQ(HBZh_eA^B<>>F$#XFfy<5+x)~WcI zf7g>U%Blw9Osza~roEnt!Xam6oLNnMMKEBjr)&CDY->j>>-*ItTMNq}{gW-*MBo~q z_i>biDcIQf)BDM|LdYp&B6?FruT%EeRaDz$k&S}1@EqD2;q*@7}K^=N2XPR5RF6nq0=@4 zTbhu~GEdTg^3zw=M(e;h@GSh-*P>B!DfG1q&uvT5Fbq?cas>|#_o6!OeE8&v?i8~7 z+gd&dR%9X|f@!=eHW!n?H`0|w(h?+s&N;0L-n@Bd^AtF@*15I>MvTjaO38Esxg))6 zk(R#WSyNlOOys-Khvd!>Ys;Fh@O|8a7AJ=W-0LL68GP@U=CaTr4Eq36@$(Tlt&Yf& zye3Gb>t!*~m8sg)`tATr26*^>l?+GseUZXNOn8_mMDNiWmoDPVzd} z?lVMb3F9zglRCt|-mK4mQ5$9}f_L`De~kRyMFeB|Q!CngHD`0XMy*oTQwf_1Kp0ME zQ2VXR8?_-%kIlqC7V&k{ge+>)K1TlvPxRXA;}h+w@lnf|4-4;o?s@d{CLW;|t^M(A zb(>8Xn`>Q~`5+AbVZ^zUe0qkevx6fTCCi#M)_=RYq1EGCzJ~a10oKd-{{x9YcE5T$ z&S+)~N#yq7;0>Ea1q{hyW6Ve3E4H)*`{1SVQdyc(^68OD)Q?INnm+aut*D&MenVP@ zOVclgM}dNQ`kNo@drh#;_4@u*+v%bJryGOZf38QCY5FY-iJ$#flkC%cafOw};8_Kh z)RYovNtkxG493z~S~~)Zw@3K4X4Z_~p2iiZ*D{Wf$P=l(8H!B-ze&jdV*NpyYmRtZ zR_2yEzw@WYRY$VP>N+ZVlTEEfmb_=L_Ah8&FIMUrc(EK2aq(?cQ*~H9Na5I|<4&SS zdM<0+z?Vfc8V(=DH=$`TsI9gbHoa%*WO^6o>p(rxfseMDMCUk}KQJD-ghnZ&rpy;8 zq_W0_G#^fUi>EF!d8)LP!SFvAT-JZZ9_;{JlgVOq|1Q3!GRM^H-G4RB$Qzi}kp|>2 zI3s=*WmBdQmq15T(~{?dx2F#Q*byQspI|@Lxp`|zX3UZw@?Ut z(V(58$s9RB=nA`WsC1YpuP6la#h7l>b<0X<)oYeTTUonmWy>gS^y2-}ufz9CWSA}^ zE<3-L%>h=w?j{rm6bpt*CM?*bdp>@340IpB27+IP>Rh^=zX;8lvV=oDT`!wZ9?VAc zdQIaZds`x$N+J=&X3Mg&M=}OUBAkH9587>zEbj#jEYc3c?m+0$8gx{q2nUh#7dKQ< z9%$I(3q?c+u^6@Bz3UD__U*y($s0b_U7s#+;$*^$klF95e<>j>G_K<6-o-2|xpC<@!K6mH$hTd0y3S3ATxTIPA#&eLXx=jGM*2o; z#=v)z`zL)z*XHl&=i7MRE@qxh9K`*n)%)AU(_0Ml^)malJ2*jx$UNb z;@bQM&G9{=s3v!b*IQG@Eqia!o*+$IO@%FtDT0hwM#U73S1IuxSD7+ulBJ9-CzZ=+mx3RP0m934;`aoo8MQLn0G`##(ys~dQ)*%!@D=w4(f&N+lK+gK~bPB*I2SI1xD-H!cl-_n&3aq$p{ zvz1d+;R)s1>fkAURCOJA`gL`Ql7RST_elQ^h-g^F3P*sCem1-ncrFUPZ0(+ABFn+4 z3zY*$*c9PQ^_vuenfTQVv|>z9A;tq5N(1|mbEM9g?{-g);9OKBd{Osz@NK)bzrWv> zy+Xq=-Try}SRnEUkD`ff^OA_o0Kh5YL41Ld8?U7yKdm#;7(nk#O6v+-VjMJS4AIp> zkq2K1DzL|_cKxhp{v95cEW1^fDeZ@Xd57>F-dnQ=M_hKH!G#vpv&`FXSvTOebhDhe zRU@x8X@vd#*Sn}m-h+1lr77Ba{5a#_^2k=?qPjL!xoce0F_4jpc1<&``;hDUd)uQc zylguIa^#JX#rOdSvfl^d2Ic|$K4|C`Mx@b>sF7klBIeNjnq(!_ifQ@~m~2}Em~OV< zT-j_2{4Kjjx>bkEv9DN#T#(aDU&NW5^p9e*1CqU%u5LFkY9$Pgq=qkQq-+YFLJD(q zHgl{av&VlGe_~#04eQongBB_5N^3%h4y7Wh}hLK{;;(& z)1>N_QBiBml5ECXbcIGpX|Hu^^CviUi|Q$7j)u{&=I)Cp)l$+4D_yrt zR^EY+mo`U{H=ua#7!}pUoFKGe$uvgt%iO3NQhL@j?NPA{XG>wU&rF_jJ4`5M=+ua) z03FJ|NOLO^It-~I7w`DfG8>27;LAf#nksh;1ceZk8G~Xe0kaDKq~#3kCuT9u46v}M z6eEm+(%u6D%q*ms-567d;Ym~y8k;SvP`1`4E)%O~Om$DJsF`0S6JJ`uJ|vD=S-Ki^ z?;(2^jtr5q$1?P@5`q$(vAQiqRg=bSxmp_CU=XW~;zNd}cVg&<67pN~6pg!_ri!W- zvJSY$ZpK73sq;zr(N5C%e6*aBHDyog=qE>7YfR{QCJbDrCI*Owb)6nY6*xS7SuISj zK#EsKIr5u?iFWR%h+pi|BliMJg`yEVsb8`5Bp6D>L^%{V|MlELIWTpJq(;I9($`x~ zo*IUKEeX{@LiIAU;w9AuU9oS>yGgYsT4`g}?YlkT+;oLaidH7&TEjbSz^ofR?sbIM z0nz45ks|0CD2QpgU)A?%>53yoWY5{8le(?_`IuCSqK<>EvQqQG7~Lq`?3U7WN*^ar zzgpV1W}=2^R{hc>?NY98X$sAfu2<4^NEs@m3=Pr@`lGG1Dk-{#JVny2bvr_IWNMts z`C6t}V8jZoJWWx`hCG&@r1&Y!sOB|Llt)X z_qmnU=axF3`7}P6`koAJ&)w*Hl%}U}D@D)8^rJm)9MqAT-S0F0U0(H}7TO&rjJ6k{ zP%s@fQ!=)q&gj&Q_`L~JO+*<0tWECL!^ddOZup-9(}?q6ei zE7_iS&- z<16<3J_;zkUGxGLZh4fghzIv0AHJCQYByp=x2l)oTQq)KD_7J7v22|0GD~85CLI7X zVFL}#%d{=a`w9wFv%?s)K*rXjz-}>lNjh15f)KXia@i-6lvd|!rpMLB{`zFfbDQka0%gB}JPOsg5rFalebRukuXy8Ld38%F<^TrL*S;n8$+j zHiD;tNy}Oks~D0u>`<&r5*l>{=K!OURq7NwTkMd4uiu=$`U3*Lv?mCe}{`KYj8E1zekgZH{7*?(#8b+pP zOFFaJ+XtKZTC{ikDsD;m*eU+!t&^%F-U6+xsHtixU1I7SpYF9--#ZT+^h2@f5_UwQ zZ46n|X-nc5+Y!+Qj~yJRR+!=LkzC00uAml8K^3R;%B*0Cz*1>inU9^_1CI3iQN+#fp#wn0gvL4>h z#`@GaVbKJvv4l0A0od4t#&7S#5JkrL$een7HRj2wF&AG2ZH1M{uecvvo(zSlY<*>@ zoEll{}P6h~{y^Qf00i730VWbSB$-tA@U?9}#UHofVkhKb9jAiCVSR(``%o zX>eLaAdb~GnHH*r{D?NnNuQMBQeeqTKouE^h2Md?iMLZC-Z84e1BXi}Jlnz~4ZT6t zj=U$~8IfIZzV-Q)p=t+4Bszq(50>OV;Muh(I}rzT?(^4_6x#5`xWf=5QJ;@{Js2ksGeN>s7srT1=s=tt@z!8qQ%@M2WcwxF1=Oz< zbyC$!xjN;|Bm_)VhC>_EqLjKE55)aJUYY7{O+a=q2YQ1Xg!t7B4D;fMYaHZYS5FP5 z{p9`d2@m%P4>9mRd>_acadZK$*r9`^98i4+SQdN6(6uIt7`a3W#({M&r>+@RT|~XU zW!jA}%A(3AYP2yB6EKlR5!xV8%Hvd(QoBDzS5x5&SIMbw8UdS^GJ=^~bf*Vhx1+wp z`p};+5Me~uct*xvj$h|G^I!4RZ%{JS2z;|-uEcbBS^PrG&qS~e)0dyxGJJ4&yn80b zlz)F%glAcVZ?Ot9K_Fak<*0L zJz3)81k;H&ja3^{c8{1fdiN+S^Hhj9^45pp5sW48uW;)+J9P zkwAz`mnl)nf?^A+3CLvGLZ-qYtFqRjnqXaj_#{HFiSa;~8F||GYBhFUxPHFT-dHEU zg|w-aF{esd=9MJE8BnZ4jA>x8qIu4M(PHt@=b4^(L=sI!SWK}Pj?)`TnvzoLhM9F! ztJ3yL>sp{7uu^n^9k$)99qcV4w;aiJswy|DKv98Hx zY!jQlP^j3NhJ7u$TI}Ig)kbaA(bpY@(WmGZ-jzpARpe#U83#DY;BaQ%7Q|sm*=F;jRJ!Ak z(2Q>K2wwgEhe5Ry_5X&T0uMN}BX+y--VTsj)BI!gbH`fj4;&RM^{)>Pm7hpdii@I4=~uJ=I=*y?>6 zFibtq$7?HdA0tJ*cC)%70NJUC-qm-E6ss#TJ@r9Dq**O$x91*-bU-p8w7NW_is?6Q zRk6~?WHd%-xlHAL{88pB;ORMs-7`#sHZSBe~J#Iai^t7 z$I3R-O9Z)Au^vA}WckB}K7|BLWDk)b5(N53!}p@B4U%|Me>t{ZmUQoGZQS?Td&h6y z?w+;qjNR7P8kcOw zJ$ouTkTQudNih9cIkX@d1wKlIvKiQ$lDZ-$m%`6Xf5(I$n{5STH^&ta*j|c9?FFfA_rG`KOjJHQ5K!@Kar_0ZLJwOnl&lL;m9(W-_#I4}akId`SU4|~*dY@ptlTv~Dh8lHSBJdaHZ3;C%P$4Wv14O6r)V7vo z8IAn-ZTn^GsJ(koJiQr|*-3O$nl&in`volFRxI(U7W3&an{mAd0>nxQAW1QS*+Le7 zy_>iZPzsEB{@%~Daey9v`K8!8xKWw)FGC@A%jN(C@B(q$Vsrn!FX(qWpe6VOq9SOR zv-1Lzj_!=z4l~-F#uH$r%trk&87Je1l`_oZq5bqRkj=mFI_A?KQ=k4xJuTQrAbz#0 zu+RgLHnDe4F*LrI+okzvbnhp2#)U^@voF8gDNfB-cQvtpV7Hwhd)jrx8sZ{XoIVa)^G%q14`dT&PmNGtCR>llp8+^Fg=P$ zC{xLBmn*z);tX$$cyLJ!FrC$AB&!k00>P)te}apT() zNMyCbid}caRWc0yaW8pb1=&HPbEQcu(DruG3QUJvn@KFuNbp1G>%ZOsj)&`h5(*Q^qfUiw$sj9=37dF+Id#N<@b| zAb}M@E0`2N%Z#}cM}9E|Zn;^cg|gC2^gFyvPfZ{QfXRR3U|TZKRxz$!GV92|RdJZof@ihhi6KLn91KbDsj|o-dY?{fZMwkM@E7pL;g_6+0+41a)65Dj)*l9 zJTPn);3iL2rZ*9bkMm5yF@vnAm8XdwNk|L#_C($)!ZQsy!!J~EUS_P?^L$ihmHAU~ ztlT7`Dnr;zh@E=esd9=Xc4}4@0jZC8Kx&-Df+)tU7$bLzVqdWe{Msa*j}yloVdA(S zOh*!ZjsY^Mj!9Ng+#SS4r=7uRz5Ns&GqKI>m`Q_a2AVI~)eMDfa|$LQyVv@;G5YAG(Cy{UPp1lNRRJqsQET8 zr7PC57x!uW8R@=IY-bw+LiIj`aMY>2Ks!akN|7w~U9irdN8^lxvAD4lAP`$MXsDW2dNI{j&zNo=a;Y;Tr0W)qRh30L-b5|T>V z&yMY93IB?{zMJ{62twf%R80g=%f`*-bZi_;{<+vVZe~h0p4i?3*f>UNPBtbae`;)u zz5di}JT0N<%FbZq1YQWJRqxEHWADw|`8_)B!m(rF&K;J6hhfwr--mg|{{5^uhg1Ev zH8-vIdK`xIjO3|KsO;lbo_~f^@f@H6=%7)$wfBg9RfGJmxX=x9_s_6%x{`Su%cZn?IX7)@$qcj`jNy{Fc{$H`yEi1Gi;6frtPv;)tUC z3=;>!alT`_c#wSM8Gqtbxp+1NK<6lVy@Nz{ zMMa7~eqT)Ht)t)~KO|!9sCXEnnWfzb*S5%`aJN7{r%NGZ&fOayuzhp-a>-o9=fRYe z)MbIxd>gyP&}WKG-~`HTqp>H8XvFhF_ksuQrV5gJ_hbwTx0T3*ySc&BPX)#l1-jb| zsq3W{N|H1i!epz-HwmV^4ZmTV4-+w;Fb^~EQ_Mgl_)l)?O;U-^!+8>)iQFfw787~T zNSTommu`W4+4@v`8DF7~rGsKHb>B`L$Oled^+YWOfyR}XooSL zYKvuTjqY>u?$3sEvxu(3#Y~Vh20u?LFdmqF28jVfO>QkSvOIT%!7+R7-F_L3=gpy? zHff5lJ+&y7C>`#hA3p%%AM*q9IfjD_G58V3uaxBLIXWvgYS2+cPuKmQiHJlF8;p5q zJvgF!BhG<%GZ-I@0>3-%pnoknkat`=1I(?4K$AI$prm2e9Qe$XEKKWgnI!kbjd852 z#XIHki?!xrNj=4``L);TUYGOBuazZwkD;GXzNGnPyvDdg1jX{s;NuG~sY<%*h8|bv z7f40h&*jc&xd>`l7W%ZnP!vpS!HuRwcf0GRmD;hCC9{6`G=!gw$OP)#r#Y4E%!7FP z36Szr%P8SRN~x8nx?E?~8@d;k)R-r&p>hh3^U@o}8VhOc`&B zVE&O_>Gz3B!Z7UTR60&#HRK6oQ;Q$PHyK9(7ItX=2q%cZ9R+Ua4kK}ismFs~ig=nH zzr1weVZMOC>3Y|~L+b>;%gFnWH>z^ms#18$keK~3bj`ug&HR>g z*TW>8c$UGk2)4}J>yA6(euiDQgI=^{4(|#h!my#Qs)ytk>vpS*+UmMJhc0N*e%K#J zqcQcBtHjK{ihE=|`IdJ%qz*X4SeI*22y3W!q7Jlv;0GMw&>vO=(%6B4gDG~2rX7HK z?qXPCm_HQ#2D|(OK|Ntka53h0(6a)SQN9E*YA`$bH#6EXrytB=Dat4=xVUGPa9qaA zrXqT4=nYn76xV9h>9eKczxV+IrF^6itfH+(soKHsut!GK=SxLmmrjOt?fK;oxg19P@bnk@sm*2@}Sf=Qo&p&!K`P15tDo~?d`{cmFT&t zUq9s6%UyN_k|OX&G@8a8PV#id11T|Q-?<2R3@VZ?F%apKKXOFkhW?dv6Q5yaWH6WY z0*695f-Io2R~nEjhcc-WCeXlcKlICbEaMpN2<9j1;b2npTeL9{!II8-==aBwOmgg; z`yT{%W~a!G{UyZ3Ml6L`ZpGjk`(yok_D9xY-?J`!;_3?D^#bfi7XK^$eoPj4S7~Vl zYDR%~@$Q%qnC>p6NUD*RRl8(OAq6;=Wn!hFuBYEe5q0%B7SGAr6NBG!TvQZhNa>m) zHgX2x#6ux&6_V1gu5m8Dh^v^FY86&XRc#Vo(H-ZUNjYXoNRG(}RD1~A*#jK@?atrP`XuI!Mc z$)SmATm%`0Ew30`7)THAW1^&@93APj0{(9GP~1?oK8J(=tdXRz9XV0tqJoP@Fy|2o zF@8D}$4!k12Gx6b8z_={vP9Av=8@vC<&er-cPCpQ`719dYB`G2Vra-C2-df z<~_$)g%w^cW#mN};7|6|1UAUk*KTH3t{`lH;OLC>QGGLK$wn!O;?k(LM2V92Uc6wh z-D|$}0f7rLHNY+DU&mg+vxM`J8LG@FRg)w2vxC@d#37!=ChGO!Dc{~|X)7uH(#;S? zDx@5iS`O~z1#I7Bf-1wx@sYZm=DSrb6jBbnnk%b*!c91`mThm=S!r-S2*IWA-D{oSXWK_5Q@QD9?mZ-`P~5S)fdU7rF4 zKbA2^KL?fl;Fm$fcUh^PMWPceK6!R@ za{9hzMHQFrmf|uhemE4yn*#WT0)yk}8ljq^t4lf0imh9 z2UCeY6vuZruVa>A_$l@-UPBD(z1KvOTjvc$=w z0M~11y1?(vj7F4((s;@J5b5dGLdg}AX@UQC(m>-Jpd+-HA z+)$Sav0VcmSIKgef|M|Me3Tr}cPt(xNo3C(8GTFerd5gS_$n3iaVa*w5UZMRzsKlY z$jXn!oK3uMl2S|B8!R4ihN0pP{Jyf2F(I)$w_Y*lAuqKje(0kiD&*>nX5NN zIP!gh%I3@aE39=QVV*SP3qeKI4&5|qrnJDkV4PM@)xq&4xEd`|C=v64c!XoG5K@i= z+?K}^*a>nh)s|#d%>z%Gf+*!EWzK*iiw+#iR%fIn=YUW31!rComxIJXGV9WL^7`Ae?e(w#$9UYUZ& zjM2)hS&M55E?HTzM@6UkE)eqx1aeHla&~Ay^s4{boD~BE3j0pVBslvqb~5wSobw7 zGfF5czk-~-U}qO;>J(d9IY=I#sN3<)(kMBz& z5n^eKLfzb5C<4rJil@l+?og#C7j8&d!j~`OHo=YKFip{{s>MWIE{>9IHMPjV@K>qW zCCsHgM|j9lHypku)R9~Bcp10LtgK|Xl6{Pwc=9HwCg&ARVv(EZtU=}HE8f+ub7nTo2}fPNOvN6tDNe_{(QIeHftVHdrQm6r*pO8X8%oIXb8 z{1w@RuSL?$5XcD%Qj zVI%l-Q(fs|0l&wIK*-kH@nZZfgglV3&*d!;i|=o*73^gMihz~1TlT*`w{g% z-b(W_>NhV()}J1-7k`ak`5Ws_0Lh!!%dRda=BX%)@6+^>L0MZ7q}1RzH|d6fy=$cv zG~O7;x<+29VpQ6~ouynq(FnD@O`VYvOFR-@hBA`!m`rGsWxy(H4eiOq7CW2n1+RNH zugkF3=38%AzMXMdFu9C1#}7ETg3(v>(wq}?v8!(mykR`N$x)8w440QG>D9oyMpkd} z6F|u0br=ZU!SIW4eY*#gw)YtN+d6yQZXKPqPY;UxQJL+v&%S%RUuNb7#xgs>$ECc` zs?&4LltEQB_k%eTVNcGIx4Ef$!gEUNSm`u)XXKYgVoV(vQUyQcG%m9F{wC(|oz_b( zjv>kin|W>W+`3)*YaTbgYIip0Qf!ghjZ^%-H`BH!`E(X0Ws7Fj#d7On8FsNeyI8he zEaz&_7QnpI@o$D#QW_@{3$sQ2J#g=R;$Ds4%J*O{5YHRjI|HjG*c_g1r3m1Y{X;_l z^WRwlxb%}{VKYcE?`829Aml_(AB5be&r>)qDpT5+;iPFXm! znEW#LfMl;^ieL*^%x){6@|gM-f+|l|#oeDnTuop`JONL`j|*bK1u@=&*lj^fwjkD8 z5JOGJMiY;wHuD@Fwt<0kF(!HCW$O%jhOpD*R?1;^CFZjtRxZIORWGwqe;k(b>Q=Jr z4!ohLoKbf_TOY6!`R=cGMH7j%1T%Nn;>fALS&t3D!xoiGu-kO}5a%$(++}@s0^Ojs> zpY)pfz09q)n%f z>$HvF_Ftuz)k09HyHlwJjc65AG#i2N(hnlB9=86l-xj|o!_KIf-4d+9T5mo`OnF1q*lvr1-28RRV99u*&60T&a5RGD||WT=A=Y*^(L|WWWNDvqPjeZa_Bi0VM!Em!62#g_3GD({O@2Z_Rd+u#wy&t&DkxS^ zjXcTNmrz&Fq<6l1!%0s5oyppyd#`$4s7{eB6xvUGE<6|!GxY0I&a4RMTa=-I-Bm z(GrW@UlDlsjGaBiQ}gQkl#tc)NWnW2hc+J~CTW}qPb0srb)u*_DW+fuLNWcwy&^0* z8LunSSd;O7Sr}w8UaxYSOUB#B(z=oH{>KUL|D@h$Xp(q2>U#P*u(DIiep$(Txt#ZM zHSgu)yq7=bz5LUT(bLpI)Y+81_znl0^5#+In`Y*V%qrWNFHGE%CFqjTiOW@1PG56G z*OJG7!kYlbzH4WPUjUFP?C&5NC|`9NRjo;Aru2!g^%=c>^yz#3==1lw`N=!I{rUU+ z=|_6|^N;lQC+~Fg^Y{7Fk91QT>6A-m9o&E5fBZswS`ldEp!MzktM<#?)BX1Ac3Tw1 z`$x+a))|fPv+%{k-!1>DtJT%tymhW$yH3{)?xu|z|I7NU)z;SI@A$l4Yt$QGuZ(0W|*$9skC2Hi*1|yHkJGc(GA`R)6ulTB|>Q{$lOf!|eJ6{9X3LHcx5SjsgcQ z*X>uXJ9@K!*7kf%Q{(jeZohp9>(;Py(++y|wlYw!HOlpk=4#Ii23JntuEGm6_k^oz zQ3>2$^^)fH#yZUL_4V~<&$Lha+j!bo-}s`w{;c-&+0%{nryE~@JXmYgzF@UaIsdz( zz#I5sC#&3~_dn4;?i;b^k8T2T1ZdRi^$Ps+f_>}tz2SA4wT2yZ3czBAUdJ6`f<8Re z1r)hqcjR>7L%b=oZ-iSxqgrD{EU+YAQN)a8cH@sJKpI9(7>6RQO%G!^iTsShlcDc9 z6iy9Kf>GQ6xhH%lVEE^egSiHw!ste3EfWP9`BreJ3C1p?XtcSydUbVGbqL|AA6%^V zdC_q7u(h{;bh=*wq(!B#hkeX{u5$XE-@s0ZV#(nis_$G;LdT0hgk}URt^zNjxN@Q2 zi*Pz1m@Zx&_s++WK{JUW^jt4MVV>C1?kQ`XE-~2nv`)(i1dq(eU!SpeyC)~RM`x}5 zQ+9m9_KuHUwa!|{NAT-_?H+x{e%CsBRc5Y7aU)Ze9S{3AYSUW1q`+8QDF#18GE9*Wv(Piynp{T@UL%Jr|*QJ z%x+0>%0o)%6}o+whd4nD&Rw1$(}9;h%#47i<}1Q55-b3YSq4i)mVW$Fa%bsN971HS zs2=8y#U%ia2|yVl%$w7__BZ<{g)c{eb1`tFTT&6`0nMyUw*ItH$A20nNhC&21Xz8} z!wQh4M=KK#k-)z{W&q}c3^CUQ4(hts7$j>1$0V<_X(VJ89kDVitLL-j7wE}w9h-zg z5f@4Pg6`@Z4e^M+mpJuOv$qPLh~1N;*3oZ^q5_5pFSDftR8w8c4%mBy-G!LvfWXn{6=a^Hqnnh?bt4*Ap-0Ln#%K@kf~O7A{bQj z4#FrE< zdc@8YITMgIHRqIa-W5sq*dJMRxqahtf@oUF%4oWuat2LLhI%dZ)r z2?+31^W}v(q}&A!wb9HJoE9%lmbABEsT?Hc;Hi0K&tzm{@sKsVInt?-kWN`7o&myK zG@sm!nLDy*uAhPJ?`ZKg`Y#})bFlQAy2V;-al*pZ_=)_XNR!*O+jefj+;P8nBV~D* zc+i-O67%uSoJXE{R>iyNc239b#X;pwY{7$^tNz=1NBat9`|f zDQr`vXiGHBF`ZvcCSXx+K$(fcf>x)ZS;|)hA>kAH_`*X7bMtLzctp*m))$eTeM(fR zhY8o?GW+2aVYes6Yd+z+^boC=rC0}A{j{bXwQKqb7161RVEVIunasG9hl<-BDUJcirE^!XFa^0_sILz|Jo`b{4G?SApq?%8g8LiCRJ={%LRcqm{(znymRDxs=XId%GehxFQ8 z)7;<6v}y9xJ95|9msZV7`2|{`ltS;5CeC?p9v-yu_*l=Y ze(Cgk+D0g|97PezMTGnIm(+EujB;|;!+gIWmnez|Br>8_=}6Fl4W0)F0CXDa_@Otb zPCIw`$waeDW!P2Kbd3fhFjSBM$=i(H&MG*myI zPe3Z2CSA3jLD{9D^~q)uohUi6tFgL=5=mb=q44OGu25wzVy--N4UW{7PWOXCbeJdh zXA?Z2^7zhpt5IVLVLiu;N|zx&6{cI1E6OJnS3e!nF2Zqb!Gcjy7VRE%I@5G)i}wqf zO6<+)8I-k7CftFh=fFuOqIhSd(#NSDRwvt!(pOR2?laAHLETTyKQWHD4OetLXO0F? z6k!?^g8I12hj(*1|Jin(8T%!WcvLhZ2sGw&jkpjc_@CmNokdV_lC9pxojtV+6a4biU9IQ66EF`330HRAOEFu+i8H(O8R`0Y zE(^@frL){6Fb5!eA3o&}#OPP=_HsfFaejJN6mHd-*)J;O^T70=relhsu!dR3t_FIEgET_KpFjfC=dG}#DANBe7MwwpfQ!wS!i^gYW$$BO?&U?Kf z$%|SGcYb*yp8@Lz@6FxA`*1tLj@lqSK`cM`>_Z`tPaX0S_Q#8f_DA!Ch%h3*J%+Y6 z*0s9|DOjeX^V!h0QOz+xTEVYBH^RUR6pF{Qk{E1mYQEp5-#+#MKP}`1aPG!coDsjo zV52~ScHkqU8FZq$bt}q|O0ZoHlE&{)bOlZ}xl*5Z05TO8*!Y5J4hx^3xn zCI%4aa%!{6Ic*Uwj#Wn|G&x>alNoc>xYF~v=5^YBK|8Q~@Vzbz0ntf5NQ?H@nsjMN z@6Tl%p-F&bU#W)`^=yUJ*{1qcQ6=EHXmPf?Pnz>63%bzT#^+oO1yVs*kZ*B!t|s+U z-NX{@rryO;`=W>2SQBnz&2`OY=KEN=_pXerXUSB%{CAvg*VMC=?kWMxw7FNBQ@Wuq zD*x2`g430Wj8PFkTazg0G!_~4SU7sfNr44HX2f$|i|+@v$%3cx+g81zfx)tJA^ zx2FAV`5rkupI0s3x;3xryuUU1y2=Bu-VeDt$3114=IYMmDuw7n9u~X?khf-p^}t_0 zLs>W%uX3KW^7J(%Ye`m{nZGhNbf@u-E^{Y`^)q&X&3FS?D88`R9Nx;=l@=1zXy zyjJJ0x-);(NBLDnIeHk@?uGTi>F>j_P5| zk?hjOB}pnj0Ux>mDOjlWhyAwrJ!LBywI{R*GDNFGzou+2rRIdTP%WfY;XkKrEw%21 z_N4Yps~11YZ&zxuQmcw)jhuCgeKB8M+KU)??kRD`{MeskwV5VE=Y2mVP6*|z9Ih60 zN}RaGS@dq^7seC$`CljOPVVe9rtLuHIY>S5#OFWtOvhjOf+AB+)Mt|s4?J=>C=b&j}Q4DAM!u`yz)PuzTMwz?H*?3fYe`qraX}8c^f-n)b;$P^`!5eYl$2g z;P_@gb{erfc?Qn#hJmOVcAcOrl1GNfEUfEx`oJ!LTNuG(;A4a)TB_oAty!EI?sc<( zw`oG)WEY)h*bmB;XFI-Xb2e)7tddOBqIB#y-`UymtK&`f28aM7{5Q@KND>hdZf|9! zUSGw3*P(E|%8y3KQTjxJ^V_fjtuOg2_W zwe|YbpjN$%27Q3psImd@7YB?UQGQTBp0T?{*s@c;c|c6bRY>$_TMj=u2eZGq0nS61 zgjkYzGv*KUonvP{%;)a7!}|*)N5K(BWmOC(Bo3Jg3PUgb8CD5k`oFjgj&NQFq0vgm zC^R2VG9H1i%3k|d7;%QS62O^b$VwLS;7KAu`VQ<{;r*w?yBb6|G7RCX;y8h6` z3tGS@Fa$(k0K#z{oMTei@vsv~d8>uENK(uRs>5l8XMI{b)7)a*QZsSW0O=v z6CM3@_dY|usQH+pIY~tAZlZf$9Ddsl0zM50kZ@aCRrtw=PDBIeuAZC-t9AZsFP1m7 zwZKr5PH-_6910~~*=*sGkS5Ln;&z?LfjN7{BV~VZ0*^KTj6ie01elK!`3*M#uu+B| zJXn;VOcAq^w%@ctO z=qls2>+4Z7fuQ6ve2JL-%^+&~Z&mtYP!=B27fxOtq%~GWp?frLcWY~h1s3-jL$o_- zDOh<^TXYjhE6rO-DUC1mWDh#*iBPA&L2o^+-C42ZVQ8Tm`M6771&WDS%%X8*2z(^+ zXi#Cv$VOp&XcY#=*yRz{Xy0%0!Yu6WI{{k3WA0|1E!Kh7>hvMmd`si=ZQ2n%wqqf3 ztRv~EuXj@Tq-$NFiIAV$mWx^`aCW=hcma$2v~E{3QC!(E=Vk)Q6%ES?_^k0?r{i;2 zwmWewO}XgLfL3J^T9xV1ddh#j0g>yCXu(dh#rciF6zNDUPeN)rWki>!NA#Ik9z5L2 z&5!2lBs5o3&|IAYO);%3oU%D?qSVcpE-6wtIdP;cPRt)Akf);gi+B#D_iLVxtW4dL zmF%vp%-olH-I{<_kJL1rr%#os`&7y9Q)Tu(t)C!tu-jefN>maMd zQ$5i+jV+C;Vx?TMs#+vdydF$Ps;5c$u@FM7PC+QGUgytD+bfk>McX57C5t=%KYQQa z*T&5(+`su03eVfb24k=xB<12BLP*2!5XcLp?Q`13?_w{ot?hMp*Ib?^=d-^vqsvOW z+KVp`(&GLa>|JRz8jVJy(P##`C}LLu89KjPikv|afJ#J4Qpb_wu*}XfM1mvfoh)J_ z=rHiEfHoUk`BB64W+ zpFBLyeDV-E^NGQkIx$z|JB>3x(~4}EoRxQq-95!Pp!j>Zs5}J!kCoN6wEsu*(f{K< zK2~>(=E}?OR$o54V?6qQOzi(b2eI1x&-VXluCBrSH~l|W8;|}UkNzKz{vUrE|BwB{ z)3n!ze5m9hWdBFbRM9e-H=akEqmBnvp(CJ!QPATvg=TQePZIV|1P?1X)^ewhGiT^ySMI5mD}UtcW|nVs@Xl1YX0u&(Q$<*hyOK& ziJs>@=JPA*-b8g}?sNJfvy#(~M5c0jmdanwOUeY~W*PIbNG)y_(I3iW;ARQqsh%@j zK9KprdFTjyIwu2Rimct71cHE^9G~Md+`-sZBroN-sEi55?RACYJ8c*=QN$x+UW{n( ziz&DnG$Oum-)P~?+^uKGH6AN7R4s;*<#P(dp4o_~8CR~+ufI$u7wN3Iz=U@p&y!2h zn8^i_TQUT~{yE}2bcI(jZA}x{WaZ)J6T-~WqYLCFm&jR%{|oX8z?nDb#w(bStaacI zmed=CU?G0iebMxYiq{G{l`}CScfT^^Qb7Jnp<=|cwF1oTUko{`qo3yz;a0gla%T2{ z4|4iXY$F(D8VN*1+yX0sC{@BtFdENJFiLHUr?eD|?slI&x>HNU=+3tBrP{euYr*J# z%>|yA7IjrS(p$;SvG{xLop(Z3atpEhhat--JKm_G#f+0 zh+7h*prXCZ1qx0+6A~{*;tl@g7f_$@_uYySYy$nLSw+4&`S;1`-n-rQTXbS&$*22= zy9Xa$@4c>8W#*W$gU(yP4Cu1~lfFxS9md7^Uf??2+c+eKH^9pCD0pte4ti_>5cdYa zg!RjL9+<)>?ic;hQ{!ZqH;fcX0;LLk>G%N_UF?6G%8$ID=S`~@ZDi_w>b`fLeW)VeH`_=lGpSoEhJlckdfH&A1Z?obBMMb zFX)VVAjYXO+S6*RKO$N0cK*Qn?+kUp)GMKl*=9ENB{3f|L;ft@4u1%H}q)F z?gXyhWH^oAZOp$oHnnVMcX83sE@_0h-bnn)!}k%}&WrFq**@&{(1Ka^mlzC6X0*X* z3TpgPPxdLFan;|@XBXJgvr_++R_?(7QwCaO;65%?uutv|60lV~JE5d_y^+qmDC}E#iUt@r{ ztNKt$^!?I0Y?&FcUr9KH=kqTZGOY`q`A6GER-NVCtI zb7O$BdlHNi@N|q{CJ;^nZrE_tjc+zIEkG=o83x!4^cw30_%*Hgp|!RYX3c!el7Mv7 zR+|N=t=dq_99m25Jj_bNS(^%rwXv|kZ9UFZT4Q={L{pXQ#5^!Z@4_|$$JQc-9JiKa@N#0e6#g%CV<&|-YM zIcIn3u$PtxB!cz{#~$h8L60}t=gDBpkum1F6}mk*fJLh5w*3tetTE2ajfXJ$UHy}c zkdAp3xc?G29$UPeM9vK&8`{kl6j0^dAy|_ql4FbP1xAv2DI3_>Kz?M$Zp8T#VQ@g% zt#Lx;H<#PMvex-zMX2;{=jTca-IvuYh?H#|RIQG%5#o?tdtFeAd6x8_HcKBVi(x&c z2Dr`J9gO7X2x}4F|WzN2*1C^2?iY(FraZqJmK) z_GwEj0ttd|Y>-Zizc$MONRVFuz+WW+qy|IcfImyZNDYmEK|f2vFa}E0haY8op%0tv zf!{4z+ZaSq8;8=YPEwgiBBwJ(xd3V&yc7j+CR-=59--H=jCgIk8%)erk%zuK_!)d) zpDH%5yY1bhckg#j_i?}47O&$I)0ItGLxho)4U4n)Wp1MpO^<(TisLs6Cn&^49sJG? zsf63^WY~%0T#CQX&RqwzW1a!v^wNz(j?3uIf%+D5P1(`o>7(TbeqITCoD3L27SKwgng#Qg{ng+*j%6N46T_)@cm(^p;ZoFobA0rU5|yD2RAVO;-}{92 zFP1Ax`T&#Cl=g%dP6#IOWTxWe`^*f*$%6LG#K}^b8HrQi@-h);Le0-WoUE3ac{me( zcE;gkm7Gk&nb7kx3@0m<$SiEBQkYR#bKz1I=W>0pNMPb5CUzz(Aa`M+)E&Tfk=F;- zweu@EZpD%&Tg!+l+(it%Q#TV*DUw1-_x93}qMCI(1|loQ(2UiJV)fPj=?Or8b8xhC z3QFoBXrTQ2-p}t*-QG;0j5UJ$jU%+gP`IR;HZYTx6A;7kdIvuUjbsDl{VAJJomH(htExIw#($SY zsaN|uCz+UVdMP7U-x+W)@TC}w6%7&5VOr{!g=+;`X%3x39-bB1Was#B|L}(j;keBz z2^Yyqj4x8BN)AjM5sX%tc5|6`c!X+bgWNra(nib;v-2@Np-Wb^F4~J4^~@fIVj$_A zLFKq_=sCl=po%a6!V*!9UgJwn9rl#1+`KsFpHYv80?Jo z!P-llJ)~xY&B;;*c)bDYjI1G=(JHpgdfJ;UV@@^oQYrYX)e`t_szQk_N$7%j#%RXS zmKvMd8qUX?eA^wOyvm`54c||LTlI?v04Ih?H!o znz6tX8G`H*Q-=D@7MZV)KHxIJ$5;HAP-ybT?n-K!xJ@oL;|}M_O;IdEa2iybTykn) zW*|B>lplud)JZ*^@H|&SbUG<&5d2=nsL3&pa`b`7QLYGk$n!8c{}3s{zGNf~F1TlW zE5>FWi2Sx;q?sx}Si+D}bnQ2Z4qkSxgM_S9XNpGtb>Jith=a-=kF8Xy1*l9FSS*3- zxR-^E1zlg8#)7r6K@W~I{KvIZEBZwJp&%3uR%&mAcKdAP^&)RTjEHrmAAP-EuS!3lP>kU&<1gvVnQ*L^AcO2O za+`l%5r|fq%=Ht7UD;~$47IWfI>awjD^H_pjp?we&|6riS8B{SxXfS-WS?VL*NJ;} z-jh0m6?VV-F3lF4I^&P&tUDKU@2qpNJ>y|59aCKy~48I< z(w4OQ3A%P~>V6&t?#)#8wUK7J=t!A!_v<9Zbb*x8#K=+SxV)(1d00N@$Z!W6?86V= ztu)DQ*6F!U(7TNiu?7-A@ zK2C)7H47XS3M>=ENTHGgW0V7fyJrCa`eLciy~6C3g{K14=HD#U`HQqPSmxeqUAKcd zu)T8aGB*ONiqeu{AOi}xFz`lcfQlG2Rwgn3d`hZc8EPWFyZD;{fMrKeAsC;e4w zY<}p69%soBMP{V^!F=kp&*traY*u`jy@;GjI z+LdyoD%VM4jLKJTq)yJbR_%t07CLiHMGR3*Fv%opv~eJq7*6oPiW3 zw%sO~P2zbaOurKJi5t=E#n3YtAOh<7p25Tq_U21FtEJCV@HjBeYjI14Fj@XTQ6h zhz;1V=X6}!Xd-!f?s=5K3cY{;5rGD2!VDB)1{z_)OYdBI$k=EjHQmv`JHMsPJn64C z@0qmEM6W%J4~*H?78`6@%LPWcR*O}nv>v2}2w{H08k@@XCH9q(B*1Fg^}Q_1$CnsD zicOUgCv`*vT#yy_Je3ysd@s1#Hx9r zw{0$*hEZya6_Ce1>C@mLiEqtjsmo_=(CjPboyGr^z9>wKw|+$P1&^F|-d9d;`&Bl< z=hsq)Kx2W+vlTPIv;5(F;&>S9$|%y4ea1dKE_t+!UN-?S5$yQ94&#phv$m2NqrI?Q zO+H#oKUzvZT24Ruc3a(c)Srufz4D@K6c@Zx8z?_&%nxep#t&xOMH^eUci;Z^M6CTa zu(f{eM65PXL|Bq$wKg_e8<$V;j*#~sjN}mZod{NT5nTM2(Qkm=Jo^{UrFr$B4r^!v z+{2!9EX^iQQ>;yoKiMCDv~xYa6P*7Zwk4PbVbBRkV%N|J%D>*x35b=o78lhjtR8Jw zjI(nUovqr)TyygqSz1apvNS;>f^dEqWl`>K2*+ohI^L&XNy7U{#`VCE9y(3Y9-6*v z&F~J6>d*ufPkLjIix~{Wc$h7Xi5VZF4+9MS=%_X8ju?835lLIl5<7gZ+J`){=b6iX zYOSv^f6%+F*XwNHlA+%1{87(rT~TIZgW}u7B&=AKJ1bQyD^<{LQ!IbzN38OsdWQ$2 z64@tZO^kBkuEe8Ug{={c`-Y~5&e%51uV%nrhBBQ*{07)N_~r-CLgsXkqE9B_kN-`K zQFefYKyZEC(3=e(ZhhoVXj54U+>pZTP%IV-sg0Xov_Wtb2Honc=SV?@$?~+>+R9Nq z=<=*kJahsItMy^#tzla8RnW2c25q(z1`98_i_@ldP4EzJ3Ce4RRA5P!P$MFH(rQ)0 z%c_3U)LssHEXtM1)j1R~*oG45!k9T#`wIG8Und;@*IYlv0X-`d(PDIOm5O0ivbsn{Mz zLQFt0LmHTdNxXTVJ>QGnIg1cODtz@rsf|#kke_}G^GTI6hETEe7(M{Gox!!`eDf1B zdwYDrHv_zlk(vN+9I)vG_THZ(r{_htG&;v_k0K{Jz5CbzWKqi418$eU-)33WwC$pH zLvRXoo=k<#lS&ey>eLu*&4NB#Ga^rGCZpAw)o8V5g3XMO*_sJ$wk)@xUwIKt-}g=s ziL@hkX0%NRsn`@jXQN1xw;sPxao|glMNuS=kB^QkZ^@BE9&*3+D&Kai;&}Va9}T+r z8?Oy;Xw~@|LF1u-HWRQ8d>z(-UkvNOH(|xbuZ&(*P{?u|pf@%r1BYjSjC_i@G2|mR zaC!QOVc=sBWjz_Lhzc|*J$1(TdZ|jiXm^}2+S2C20w;GhP4B`fXI_1aUnH)*<jsn$Dli*Zh{5R)=ivRsS#N(?wYMQTWYKKupGV(-2qZ9xqwh8c%C zZ!tk65x~f4!bz{67o}8rW#Rh#)=N;SKeWtp<5q7i!3pe_-&n=GH#71EUH2yK(#W4{ z{oRR>=sXvm&%+d<7u=b9>x0_*?&Ou$aVrvMSC<_$8?rpQWmE`bWe&bGW z_O9^8&_gr38_ zlO=U(5vxzT~t|Wd^o7q*o{1oyUEd*`PLzIu>-pz?uZB= zku_eu03sstYcOtvnP0z1r~>+SqW@qW-b{y+J8(R@t4x%x&n05SD*~*q*$J?|mLR}^ zYCfabgC>vBq7|UYzF3I4)pV(M6Z&(s6y}k+3l_yfB>jjf33#1xVE8(xf zp57_%<{&#`=FRpny zN&6ak_EBSaFr5B1DGep?Yt(YWQfD!1R`JPswE&G7Gh@P|8i=+`LvPh|zuEVpGCgvzl6Gy(3r1`tE-&CNA zWYc}J*lZ=!7nVze89DZwmiQvhRs5j(`{^$F`|08K z_v2mk_hYI4uC^?(i?co5T=TGy?=}FebP`0X#n#2O5TP%)u=O*po^DI19X+v5;ex zn|$i0tH;^G9SrPv&2jiU7V4 zeitWZzXdCMu=b52KlJ*``1d++hV`h^WAl~&^B2mU&((U|OtV_=;P*;(Ud4xwdP}muEIx+(X_1k3^J^#$< z@v-#$kjigt>;wIPInM%rba9F9sTfpj3*JY8>-1ZSCD7mT!|BoPZU&QBq^_GE9-sH4^PY1Nvh#DGIKAxnqo_^~`8tB^0B@gaZ!cqS zWuJlt-DphESm(Z1U4QT_Vw57AiBLM42VerC--)szzAOTmiOP!d@0TG;!p%9!I5cBy z!#9gj^^&8Ck*|yw-k^9?bF%|$11iK3{GkyWU=SqngEL0fu;b5j&+Xy#^9FL*<Hzd*Sn$YhcTG#WYw6ioL_R)rm8{XD_p>7XTn;{hl?}0m2GjLVSz_ zpGjL7r$9>C8t)_35-j8mO0ZDsbu2RGaP1OI5poZ9N2Gw)Py$grimAf@XADv)+cAJ zbnNGHS42c4>I`@j^tKQ`8#(^c_%mp~m{7UR2c{E!NnuHwyJfOHc}f`s&Y~)>zNK z@H+alPnKsN)w8s0YfdBF9%b93Y@2*;`osE^(f99qZZ<2+HP-d6s`{gEVJ7Na)jr~T8n?f0k075s7ZzB;iuQqur{wNL;3eoqrc#x|rVA%?8K5YKy#TP1$u zwXaf{~ z?Ry=^k|Mm+IGQ|R71J^8?_eAek{CurU~?)Fs3zlLHT7tzYL`p{ez%y?HRB$eB$Z06 zKBGMvh*O?08oJ5H4If=!x-zZ7*0s}mhB$QrsTN(9i|}m}j0PQ5riJ%a#gFy1mQ@zL zIXK!m71F52c4=^{Q|m>o(xV}`mp7bZUGX?q{*+?fvE)w~730{AP`6O5y_vIiPa}M0 zCVB30)Mh4dwBgSbHDf7;n%dK^c^Z4m3z49n^h(MFGw`{7 z`F*aOMK$muaC&zjVI3{y+koN_P{I|Zv(~Nha{n+XEo+JG18g_bLUd-cFEInB*!zv6 zzGZ&m9TUyeUo{6ds|+tGhtsn$XUACK@pPW@$J6U`odpeW-%3f^1fh8hE>N+}=NFW17Id*Y?8N`7_nQ z{0sJy>cC5t&A}nO^n*xrY5#xr+TwQ!=ovM0+VTc^dHPkN9ZRj8HgH3y73V)ov|_E7 z(~jIcYIWjA+3i7@QD!yKoR&FKuPYy0z}n1V^`!VYdAtASw6p-4aQ&FUYLS^d%d(>y zN8B6PQS&mq6)5sDB9I`~c*gKR7+;$_2l@AyOQJ4wcvbP#n0{kcAWUk4o=&_fc@9i! zf)8SoFK?;rNt4PQbx(W3hsb%Y*58@)c+Rkx^Dvjz-Eban>FzmCt;Y$0SG3wDis!Dk z$+9ID(L|M^wJ=e^(>SFx_rV@;fVp7w`vW4YFoq{EX~yQTdV3FBWTgz5 zn=DqOb|%Z`>Yd5LMG`#)yo92f*+!{lAX&Re&&_PDaNS7OELM>-+bXftB?+WXF34F>d&ycnO>BF~hGJA-ow!W>$ynV;!-VKGoqk z+K*~yaGrBdB%aZUc!8dfr7s8?j-xDOAF>$iT%ZRSWm|<@Z>zO6QLR?l70zsHqFUP% z)p}B5K{P64tcFIJqNUI%oVyMhC5sk86KshU&YxAJ9MK=ver4oZR-ScQ0HsWot?I^hT|4_2SMcg>p3| zSsUok$SYT>(%GAB-l4_leyOYI(x{cQMo+33aJna{tK8>xD*t_`I~(5Rj-th^`%mLt zNtYtleR#Z^&=!(Xw^c1DuvJu`wOt6Ju*7y@i6`6kl_ybd&g%cC0+vqg@|Sk^t0`YU z+`na>>g!A5@y_87d&=+cxP+5*KBG5uPH&XIMOMn{-w@o{xMOdz@%+US0pwyNpJq)` z8+KD)AIsW!s%)gN6>3yVcx%tpq41GWvR1@b6gb_&tzXNw%j@4 z;v{(wR(qAY539XP-l)}HCGPWSZ{)SU^qbT*TkYMaoOd5{-nC$_kB5r3cUxQXoy`r4 z%FGqsC(Jx4;%%q{lIoY9dwJ7*t8yPmZlx$(AI`@g3FF3IOLFR%C0?=>*_JzZB7r4i`De}U)-+RUo2(4 zSjc*@ob}?{tQSwSUVO@W@iFT~tCjU;Yim365F?hMg$ET@GY@Zp8;z@9Xy%qSsFzVI zCp@{Zs|w?&k@Y0n)-(ABDLN-S(Xgv)r3avlvX-)AScn`y%URN-2PT&y3HIOSGcWP< ziS=pA`p{Z*%la^5rz|J(gWn#%+CQCSb9@Ku{q#E@HG}VHvr@2K$;wWXXW=WeVQG}w ztK5xF_XS2-8^yxVH^rlD3`)5{p0)KNXW<#!bdkL=#ffa)mf{QhrWD^;x1{*Owjssm zw(TfBw{J%A&8N&aA2Z+Bx1snZe-jENrr3fa{4crzo$2;-tj%YU@G80WY?QaFJapYD zUwDkU<;)jDlWjOB-D}QzyE)U%=1jMm_KhY<%JlAx zDCKh4EH>#I44&LG;ql}#*%})D9F-|0L|9eF!n+mIv2n8qtwb#|X zgmCC~yz^U(c11yuBVUv*6R^cQXDikn>h96u?#^VJ)a*%NrUFS!j8qbljGcj=TO^)L ztF1AoZQ+(zBn$z__AOCEW+?$wr#I5$eX;l%sWuCuNyL54oRB`B%l*I^&kTHC@EGwh5w7pmK~o9v@~e zcco@ZzS-ao8JlzSw81q^JA@F|R#Sv{XSYU(msW#>cxSUoh*vhVgm`7QOo*4C@?L(- zducaOh?n_R3SMXmLxpH%TwBHCf;j61G5`2~oGoujS<$FX0C193^j**$fOPUu5ryv2%wZw%JjLghoEM&)6|!=B^<#cMi$2+DW}4ZU2&5Mdq7@ z%s0!KZ@$fZ^EC6#r_47WGvC+@dP;}Lw&@8CLIiW2!n!Bg8pFUhE6F%3fmmd(y6V>R!i(ZhJPm6LypUbIai17ihsnWvDnmFY|l&!iQ1rDBrwO_mL@ZH{N+wQk#S85(ej3kL*VmihG}d0MJb&?geeL=BH!G`aD~;7}*vfs*|L!pG`hM8SDp&OW zEB!1l;6d!JKfDb*%q!hoX*8DLpYPbuUe6oc)Y$%@gNLA)ZHrpA60Des&06;{Cl^WxQfmC}>l`XknNZW-pg9)Xq?U3wuq_j)dKZ#wRf5?iAM zx#u~9j>`{@qqqS&HvYGO;h#kgW+;aW!&^)ot`%fXB#_3>WfToJmY1)uuj>vWT=#>E zs9OsDi zb>LwRrWyeN8)ocHxhCon}JNj_S ze%d)c-Z?zo-#cMP#|$*P*ZZgYM~Cq14cj^VH~a7X!`C(DdUR6l-V6im0icNqtvt6& zq&sn41BG*+qr?xoy$*D3a4~W&Tz27uiansLQf|=qLLAi)x8ew<=k-0FA1h4vi|3lt z5>*Rj@_6qJ>5_8Oo_dk4Ld7YA9h*NI^l%Wk?5SUpRe%c`_|XB%oneNSPH)r&T6SU7 zIuTTWkpVUffJM4)eO{Rt{$*8zc|*I4i#RlD>}h-nF6Y)uQk95l=jTKs`HZyO|B@B; zMD5bTfzu8*FW!J>8Uu0Z1|Vf!N_9VVW*HcR={KdVxj1*dw$;Mq-tJ)37un6J@-f?H zNz)*1kT&P$m}u%L>z`dUHs$Xo{cci$*hMjJW-_}f6sn31=LWS`!F33~RBP0p{Ea)! z&zWsYjGmZjIwx;$t#39~X@o?s% z>eh98E{LBRNDk0f+#V=K?XxQm05lm;nU&HZ(;F9Z|1?J7F;}g`q|cx7Im@r9)U0Y6 z&sy^3T5AR*5DWFG_=~Lw;9raclWHJ_OY{^9$e8_@bvF`sdGD_ynLUx;_sw3>)tNur zeO&kP$^Tug%_WvsKYn|p0XkeApLNeO2(zyURFhb!_C#9-;ZiinQDHe9t3<)Cf=FV^ znO4NhP)Wlpk6x&RMt)nPSEc%uaF9(xOwT`R>E#+tf?EWR*%#}N>f0gdcnAG!sKG3ml8Etf-2#i4uue z+Z`v2wsK{4tKu}P6RmV}md!~)@ACHFL}~7IB&nTO`VPsQjbTL)*J(abie35W($mZJ zhW$dM%V*F`tIR{@&qABhBdKRg>T%gynS=b{vyk8u2&~^K?i)HS>A6;C| z717lnR-A;v>Ol{tKdjDR2b0w+OF)3)RWqyjgwvz|hXT@NZNo}UgIR2U^BG2Nlh*R| zmh!vgtRWc#!c@YnxI1Has9=1@uppEg@_XDHY|X`CRSPA`G&{}&SIlfDTgWSOdgRy= zLUX!KCOKu!xD>!S#vHV1cJW`Ho5op>8}dl{z&gF67@i+jWO)Aaa$x=(yRPLJ=$ z7+)S7A;y}Je(P}wao}g*`qo=I@E7B=<`6x2Dw)<>WdvepS8Q7tesr|XuIdB=0N0?= zir`l1p^+WADu&E^CX7WzXb9W!%3YnpYv=vV3VApb9@k$rD&!imDQ{){h{xfH)ACTA zmdgT(^YR)rSpP8v#E@!vz;ZkQ0CYov7URY%=CZ!VL07)lWq68TWRrftUKPB@4V}O< z_N)*6vfcddt{v!87hSpocI}c&9gx}!Ttmaerg6`RXVW?PwB2)ZC&2-g-=EUq zGd`hVg{ocmM*h5%Kj+wRbOvLxVGov`Y1NLi;1~{I*d#f8;TKreM6>ire21r(+Eej8 z?Hm^4AbYd`D+ph*F8QBcqTvOj&7RiMWgdLq$MUUc+MBA>szBQ%8_zyRNgtzRB~lmC z0XRm9>Kv(nc%xJh*eTRZIWK^Xc~p}=q*(_3{x5!=Jdx#F@cw`OHJ9a(b?pa#EI9#1 zwCFjpQx=DWP8KP5Ea5D5ed%>BS=SwcI^l-s-bxUoD@`avmHo#j*Xr-o1uSs@WH^CoTdkBIST18>L`dEH3qG8QGIfQ?hOpqA2&co%eSJ~MS*YW4s^*!H=1F#^rUAHh28biJFo83~+B z|6x<+YnayUJDfzg%d(WojZK-i{jmz-yCw-;>`AQITs-3#-Gd8cJ|(rclQ=^uU#KhH zT`b88)JRIBzccR0$$BwKADiVmdFDm;*Tu|mxKnr}StfA2>B{bbvaFlENmMYf;jKAZ3kT@GZo42DPMA_DBITlUR`5-3= z_r!f4r|U6VCEYx~6q{sw!F^$V8OK%atC*05`@2Un&yLKGY@O#OnCw$-LZ(vwm(xEbmUOuslby=AT$Tqp1DDI3Zco$I zNgOW6Vx+MgE;H9~BTVdeIcqQv)mm^^(DR3UgHr5QbmBi3n6%{f~$%9$*LV74@exqW;q_NByU>q5jh^K>d$1 zqW;G(NBxhpq5j7b)X#FTAIHD`?tKq!1Rle|ylHhXpV)JP9I8vXO6&a*)mdv>f@I&T zhfC_&B5SY>^=nC$fakUrBOm)}Z;^bVDr1g8s$a_YNw{@pv?Ys8-ymJHhQ>_iQll|` zVmPy&$reXBO`0xXQ@1VM#l!%judKCMJQN`*JbfcX~q8OSV|j=YbYhl$Mb1JcW>9qUwRjpMuncLU^IXpZ<@y- zV&Y$K!j~u81Y?seE_x_P{^gxpqRtKj=c4bhw+AQCbl~@Tu?wG|G%k%v^1>!m5!VyK z@N~_eLs}e#o}A*p0>>jdkwS-1P^~A~p<=1~|Bs`wH2` z2GQ?C*$`hA0n9{YMR^ZNKP1=+e75Bu(#LNW!|El6wbiPaFT6qVu;y=`v=J4;1OD*) zZLHOjKhU6=?au*71@#URO!!9%LV1G{gi5`RX9iw)e5L#UeTi$1!pi+{FF6VXXLZG~ zYrE4Zz1ln6l|9yuMdKL<;3cm&cD0L)-K>j@vZeF|L%xb{vz4lOgHeJl0GM@eF$O!v z#l^ff)h$3|wDb+YJe5FFWs~HPu493qnhxAu#DS0R6(VjeQU37gbdRs*qmY+Ba})bX z{HOlF0>cYFDHjz!(>`J$KN&@mf#J2=e3M`0`_;zirS9$(+_cN?#T1w89`DoL_kFsY z+ijUF*M9T9=mP2FY!|a07i#@s8_EF#!oQoPnP^PL6|Laq)9G%8{u+meDSb;3$ysz! z5zA!XRm8W2*A=1A+yvHk%h-)~6EE-50-1twH@!0XX@ zUtGxT+T)Fwskp}?77O=eb8LdoWZX6Bg_H?agS+WA`}^LR$+Y6gBjQ9@>}~Xut*hwN zv%BOnE+S7Xi0Ew?zPJ+{j-_Eu0_9GkJsXjV?7f#o{@3P#g|T(E%k{ztKn~Tu=lHM< z<%U=`0&-(h*viN7VzMW;10?1f^MJzq%KYX`{fJWSt!!pH3kilLZv`VP^0gOTA}Q)~ zY+)*|1*pG_j!5pGBd6y@x8w{ExVXdf2TnZ5VO<^H9PhnpAMYKskKXgcfc?YM3jbYW zyKOufFcaOLG^@5#jUqpZv5rV=e91UcB?2V-!4ll|cx6i)u-4vyk=B_ouuUn+EJ zj2Z7&-X54={wg|FVl(=DnbFMf2GPdyE=Q9bBXHovU;v2CacTB-4nRz^+Bi&G;1`%V zn%cl5lEXJ8?d4cJzyUCK>Dmsyk$l%^l^uYwG0Qz+s7ch!T;*aWnG+;mp2^*Kqnu!y zy*wk2+IQ#}2a7Q4;aWwG6m9?yoB?~jva&+!ahO`mQKaePlV>=g=5dZAFlTHTDwVzTG))gLZ|E0ei2lWi@vg zs)8z=wV>fSLq)R@pi!0G_@BMD_+1P;qhfYTz>r#T`c>SDrBZeac=)K5=0A(uuvW`% zMSAaORpLjPt;xetYc0{(4CY*O>^ZkR$xL`M)=X#?&xGa}Goe{_CN#&G3C%HQLUZDo z&>UkXG$)z~&9P=ebHbU>oMdO*6@~2Zf&k+*a>aZHtZ#Hl@5EAY~90NK34_FXrf3HDQKx! zA+ZC<)k_N6%vVqBl?$|#f)7fj>fC)>l1wuf@fG9Jp6s46FLe1f26aQvt~n>h^X#=?v~sJXCx;Ci?34x%}A z>0KMycZ-KD9)v(U9eLMceEX$6J8V&X4CA6yAI4x{VH{!9V31%?kcvn&7z`l&N2>7? z5DHW0p?83*)kUKz{Tg&bpt8(?8u2^K6cq~9ErQX5QE&rb`Vg2SgyF+b6$8MfPlxp( zt6&HjDB%ZP_!qRbuv&+jbD7tXMa$67%re^JPpLvZ_dHtSG5FequOv>lj^XjKI4*-9P59Al>D|P6dLU1-00668dtKyH40C{aX8m&= z^JgLbVxiZCRm=p^lt7xrK&ayyloPM-!I1TCY@K6_CsDWc+qP}nwr$(CHErA7(>AAV z+s3qQ+xp*m?(^lo$y?c#oYcokDtn(gYyDP~e*A8pQCj8!?iM%1eMw&t_1W*Q#njvl z!g|8({*d>{ELvLl0br8Izc@=Vz_z=3nXpQn}RxMEr-VGt0JKCbbHUcg`>?4G5Q9 z;IQxYsoSviXqKgr9~;?PS%>V>Mx+;b<*S#;JR&aK`5L?9JgO^{hV<+ya`c5zEBA_V zN5hfjG9vs;sUXYH?X($8CEyPO7V83o5B8R7Ey0koRGJ~y?1 z>-zv|cR!{BpIV~zeXFTqF3CdOi*3E@kcY4K9kXuEYnsl}CJ9H$uH>X%v#J4W73d$N z=11K-8D7-QwK)bIk0C1aMl!(764+K)Ar7{-x{21Vll<@!2gyT#RX7hRtT$ofHf~s} zniac(UwP*SN@BWn`1?hvQ@G(***F`TP6q5l+I1(c#TpVI(-te77Ce`-6G-fe<=JJ? z4oyiUJZ%5gp&pu#XriDB43Y$==dl{6a6=j$$M4SW{(8BDnx}Ps?z2fitiPWPP25j3 z%div$i5V5`6~-N1(m`@&#yalmPe2-_i=X)FYXeteu*loWy|*^89G_X=t}zjgIS=+m zPvE%BD863i4v?ywr;pOHouo|R5Qw9e*UVTGiN_sjbN*&!Hzi9M!uFZ(Xv##8TF15U zaLO_+neJ$*Aah-bR9W$>ze)3&*7{`u>BM{ZBkDAZSh>Pj$;9NLY+SXRtzVn}EclFr zW<9T{Ti`)6ZU1qcc3U|ePn6943YrB+R~>V^lM!34TrVXDkR4oF?YrxgI(M<+u6F#2 zpq*Q{X$$~y58^P?v43plo~e4iqqj)ls2%(Ju1vDs^KJj}o4v;GF!*XA>y=9p;PKeZ z{DaprOBd5p{%6N2AxpG)S>tD6@eOf*hgZj(A`3S8cx-=1!u#giQcL*sgiax3;?p6W zx@d>a4x%V z&0^c%#lNb(m6VRJyE$dsstG%qyoz(L+Jl>7VH!17(&{~&$+rrMBOhea9i=1K0gJup~5Dqk-yqntFY_j z%jOuyyvx9Hih`LzPtvhR%pZ7GY|<{ZJh*ohpt;1s595#j^VCjTm-kFD0kCOsu;??s zJ+^D|q3hMwTtCb+MEsNcX;GH{;qvRfZ-jd>Mb^e#}G>cJN@Zsae<52vu>v=S0 z)RXa&cII!!ZcT5_=gGY*ApaA~BWL;2)^_*LpPHH;ufp$AMbny&kFV^}jhM7k#=N>Z zenWtTIr?tEkj9Pck7q>C>g$k#Mn}=B;kl(Zup`s$$B?dnVN=JV72SZ~ZbN=g9%p-H z!?!S`Be!V-Xx$+K(>@bT3h?&HHZ~9b8|lvS-3bK^%^z(;V{|$uMuQpCqepO$%LJ(g z>^I~ShLghKIp&^Z-zDdWOj;Z_ws|6c$Q16yxJxRBz#CnFZvWjJ$)489UFgP7he0BD zk`RtyhBDihmO*cCZ!K@A(>5YQx^K5tyI*}@m#0@_8<%~58R&k{2?67!i5ak@#{bGQ-!d>V-r=+!7H|v!3P*s*!z>T?y6iQ973GAyfBLFa@5+I%k-zSSu8t$U=M)Z6PvoIdpr ze;wxSQO2~|2wS)mQv#NNTB8TjIPZM+#tsx9_4?@(`_=jvy14eV4MovsM_V>n$%nU~ z^Kt*l$`dn5=%p8II#By#b}v0B5!)@dV2VL{4kk%nYxVl+-%t*zi{b@`7dtN|>!tYH zdgdU<$x+9(T@@xMLLcsK?k6i{vxcj~^V4n31PEKgaCswV2p)oogO}guSM$IQFtU*y zV8|O-8f18&a7SOyjxGIumz`>>;_({gAz2{IXq8|ytVuFr>Pj>u)fwOb)z z&b|*68A5Hz3($|b?`OXM;KDa1FZ*hz{j%XLqC26RwY#8_S(K#&`+;NuRx|o>&0H)t z5W6A_rn}Z78P4F+NFrXphZxE7gW zs-l8XKZ6EJKI2zo4R06`m5l{SYR0U-3f&mzn#@ufitW#IFA{tb#vooVXka=)Bpd-D zS^tku40q8>e^AIBFY}GadfOFp2#QP#T&alfg>Mo#c|xdu)&l}cx|B+Q@YyHb0olD| zKV*&{4@L;NM0u64{cH!659EmQ00b%C762Ez_--{HRpR$|(7fdQIP|`LZsA;uPABW~ z*&_GA@~&>~lBS**~8apr$G{;k-89{P{K^?;?^@dGfd=pVLEgoVB)d7L*ao6oSG?{Qm9(Bc(mH-dF z2NQ3!KZYHuI3Zxr!1c+CZ(zh|~>nx(j8;t4w+=IgCw ze#fXJRZLl*<(^HN?kn+R-bhU_leEIXib|nk&CHX?ljWnf_2^Wg6hpQSS!a-%x09}nB&`df zO2MbJ7*Zu4!?aNOmWwIGT{@s9%wdzK$P>|0sDqR_>d>P%Vy#V(d(NRr!JTY&sHpX# z4|Ydf$9C$Zc^b7kDPz|4weh+b<0MQj$bCx6_Q-ze&}^5NUJ200?Ut)=PV;x=0(a4) zy+~zj06(PX9P2=?tMDzT<}R%*R?wu6jfnjPn?S3BJeGRqqvy8}sW?UnUA%Djx6BGw zGnLIUY5vV{BZNu2Tuzf%_}EoCj*SLfAyz`>j>nBKbwwvi#+AG?LBbJ?0D22!)il6P zPzo|4C>`<})%wfj70q?aAbIWCDeIs$!qM_9>=ld^!?5`|FJIDvy|CLnyN;n0i%;ie#Ao)JQmzfBtrDqNhVdDwH|$I5>Pnd`9(= zbQf}W4hfRm-c~+aB8K_h-2isyNQom1Y_|hnq+7M=S}Pj%b@`pL9g_R)={x3Z*lF-D z5k4_Ch>yfgOYs9k2vmRfIDrwwGSJ?oJy^hud7#O#AF0!k;0e@%p~}m>b?g^GPT~@f zb6G0u!CT@BH$vVYFa5vmnBk;1?t#5%mfhOYywR)lo4xlR#R9I5Mi&xaXoAtny>Q7` zxNwTpcVK=AJ)7Lyyb!rpq1Skab*sL1r(?O_A-S56zLSE+r+4gs#c#n{U7h-OuKc*T z_$&8eUmkx3e)i|Cu6OQtssm^r@{~H(;({(r@7FR4M_>H?1G+sy3}1G81lM+b^+hcs zQkHU;5X&XU0O4c*W%UsL2(=jg;xdnrEWa`WZ2z3^*n0SwwM%y!GnI8Y?w`)m3Z0`} z5E9@&2=5B|xxyK}>|EpLsgOFpC?Xb`zd-aB3yyr|9xi=vBSP|yU42I!zDiR1W=B8M z%v2R{!!q8pA#(4-u?8>xRy+P!M2C}l43bkivk8j73iiA=B2+Ymyb+)40y@7~sfRjs zeZtc9I>P0uCjHTe{PKgJB{VfGXw~+kBnwrB+>QX`U`C$t*yfD z8+inwaydly@s~gL;V8tpGJ?o4`1Sc-Kl@afBbVnbO_0fO@d$b@gzxSBcEM93sOIjT zvJ4Uou9R(Y4lh`sI$OLaK*9x`Iy^peTJBIwMet%>HTf8Xpazq68x`FHz1EY&!UZeW z<6(N&13Gf6<8v!MfE-i%oo}-=Kl%921F9q=c1Hf{Zvg^yzuiQaM`7ARZl6qVzj$? z-hp8B&v;2kz*pRfV^cV~B-U8Vd-dMtRU}t@32r$nPK8aD-ar9&L%x^bLu9%DPbo5o zN7?zu7|~hG*JSiZ0LB4YEAob*R!8YBiMRa$Bw(HrLy^e^vnH_~q;Pi;DDJYE%v;j| zv47^a=uk_Nt+AMx!?31FUrEtVFCdZjN_}K&`}@Y_5KIZQQGhJ z_GW}WTdoA}21>`)^@Lz` zk-2f6G}C{cl;+`+y7HS@kDy^v4v%1+?%xfEPq1!>N1&ZFRD6Ex)d+}pFj=TcJnSJv zAxKzR-4f_ES}MkOn;N2na!B9{ra~v47A_#eH=(Qlmcs7w6b=tEGA2Ir_ltkX+M<3m zT*0L}(u}hA!U3Hpay=C_(Y$Gws(|i;*``JrMwJ@G(779ZPrPOYHLW$W;+=3d*5xAw zUr^k<##yREsN}4B-N_$xs<&_5NOe$wK(NA%%PpQSvi8~veJHE05@sODUrGogep!UZ z7}vqU)TPj*I>wh?RqY9EWdhg+#X^lhvUl^CS5N{MzH7TEYV)+8(3W)bQC3;*R|syf zSZ9*yUQ*Xnq8$>*22jf~Bb0h*#uT38{@9TN+cl1e*V$|}?m&Z_zF;EWo}ip{`t{G% z2+Wnv`{TUYWuw0sGjPlVocFHH?u#MHr<+oefhvIoA@B#ITXDfKN_V*Ol%N-|Y#f(w zA#~lYR=d#`tHe|{ks$kTWZXhL zSF1X__!LnwXI0M}*Ax9wU}@>F5haA4pT3RN^_ckC4L7Cl*N1B|EfZVh>~lZ#*zp*) zc9Dt;RaoD~6-2^Y!}3~GZyAJ~6pu0DhLn4PrW6slyP%_uCew46Vn9{{g7fTlfm+58wm5OO6A^J^_X|u5GUX zWu$(@hJopB001RD`{dB)u`L;}QGc2T=<{m$@oP!y1OWVw|8>f|SpeZJKyU}pclimp zO?VC1;@+0s{a!UJV8wP~*JcU>77!%PT}!)f_*1zNh~M!K>j!5SMJiTl^nCVTisFE#OOYt$DySZ9 zL(?Zm4}B_T74bJ}IX|e7LK-Hha2R=IEg^U~#HMlyVX^JQ*<-H8!4g@@L(5{=eeGU4 zc3>EF;}vkfT&c)bk1mxCk6ghj^ zI?fKGb|XO=v-N3nWnH~jCFUZum6Rr#%j_!`Lm0tWQ$`%SekBUf_6urHl4o{Bf)8K4 ztasrbq&h(&#ljV*JikyO5u|a4wSrr}jU$633i2KKjTl?W5DdX@p^Ka|Vq}%#u~LD( zC3~e1BF(=BiV2p58G3cbmoh??;58O zzDUT7QRD+j2Xc|dY=RYAvZ;%(b@;mP=6jsx56K1MQH$%%!NLP3@rtc|c$zrw_-Gsk z{{td@LBZl^W6G5KYL>z3d_h3ROU0~lSxGuupc>}Hd}vzVO-jW4kr?n zR7k=FSLwP94cH_9K!k+M#Off?A<5j`Fj{nu%2{THI>VK~vquaVMgj@t7-YJ^*>`@n zLc(t+BfrlJ7=Nc>d6VJtbRHF%d~9bFUF+s`W7|D-!DQ$7r{2PpjkeY5|AnPQskUz} zqz>(EsXQeXp=~C&-vW+1j?@#c7YxaG5qrJ8Tob9G;h>?h)8BhPgWI|D(x{LYKf>03 zoN)_U`yGgogOq@FJLTTL5uAm+p~hsJ_%PA~C2kc%h#+`%@cW)aS9IWgr_UqgwX0+w zmK>e^`hV#}fm+uJw}NSDH0u5&GHM&w`}Io>htF-pqI;Q$VC8GR2^xV4UVzGEq%#msG{xL7pu)p}h zbW&^$h@CxCAIa-gzWOmnBO z+ZutzSir}uCVhFE{^m~aNXg=Vc_+n3wIVo2FW9XA2&^4eiW!;ci-~SU|0WqS&q>+kx|f1BPr{As99H*Le;==<7h5)8?{dY!{W{ z%vu^tLRkpw%BTGTFCIQ(c9(ey6r)~$l-@EP-iWR0r7O*6ROQa=q*+k#XY0z_WQs;3JyZ<2^iL06z4RwU0abn zTkU1J6mI`CU|_-n?uIWa2(YVpsA1F~(2@wNQ+>k)``cDCyh4KxbpuL5iqR`0Oig3>wC8r zh9+5A_zM_lnRRrQYHh2`LLhKhq$k7MPK1}5Eon3whjiG`TZeR5P_Ne?yl?3&Lbz^g zEJmNg+DhY7{4ny-Y9{)gyh47BQpQ&=MZK{P)_MYiL?nE5_X5Ufi`gdl>kQL;q*e|C zZ1lM+bbI<69CY57D0AEU7Uc%pIxAb}xr(z5%8Hs1PKgm$-;u7o4IA%^PAtC;`IdjV zAoHGi`qY8qw-gNp_u55+sL9v`4_G*_G0$Gf2Yfgby$xa6?rxn z#$HR>3>MC$1!#s)bV~NC$%!r?@K6s3kSzacEDu_h>|s5i)NMeK0rF2`_a9oxW6r{Z znZzJ5Q19#Du~Cye%FrUME# zfX~S%BpV40e^QjFzylShB+COTFUq=Lm(`VJ){|@4@q289tZjVm@$Z^dM}7%mFj6eC zEP5xX?@*mOHQg$AdX;6&=AYkXN*n~1j}k)sNzrUwU)3PpbAP<@y+JA4*_9m?qB;aA zP9(uIKQ*R}Q7@n5h7B=DYgv~KPXcR(?Z9MEV#=JCKlGxR5&l(4&@%mho1JEcmX> z6-riWhlki&i8}OtEx)~68)aGY9Y$iX`GK?HZ{ufn1pPR&ne(05IT?ECC)NKl@6`&n zyLg`vFqQu=#74>`=x*gG8a;Bttmp%y-E1M=5ejlgS*GM2bW6V;AbNnJNQJ|1O)PR^3xzm%2 z{9tXtOmwVS8mP$H65j)sR8Q3^0f+Sneo|trS*CVY&DC6s^^Rp#t0L$dRQLile-T0)SJ?D?4B_6Aw;n9b8kWUc;ic3>n574*1i4W)1>(Ec~kPZ!Rx6yIZ zvynz8JtC(TcY~BiHel&&E^(Iz(v?FI$=+wiL*SH`x6gy^6j+yVtwzY}V>%l(#L;1K zhOPgDjyymT8v4u4?y7)Zn!+%9i)t*Lze$PBp~Ku1A+{vZ&R?2M5rW;TXqBk9T5##g zVp!zh3K2}GD~aa^LEIoR@kJ&CcI|C8MchKCGyh$9&#+5>1u1Iuj;%*>&q&f+0OqU{f|0zn9CX#a zi^NHHI2ajX8E2sfJl>QmLFK7TLHM!sbB1NNlfy~t1ijsxXugychFSs#LaO*fEtlkX zjnO?WoUtUQi<7;WCe^Fcq z7Mxop6Fo;s$vo8Pn1`6T`65_)^$27Ei5ItLMUr^4bgWHqZs(xa{S3xMgSU zamNrZc+nH*-cwBk!ngj>DZ9{vO{09Tu~_Y#NoIf6s$Mf7Ow3iSgh8FtB1MtNXN~AT zO;g6+&v*&+$B;!MGmHXXGQ7NtV?L67Lm(Ib!42707|!>crgCwYyPZ1qr@8~n)2WHy zawtM#875N_oib*`xVZ_PDlXm-SuA#MRZQ5xklIhNfD{!s-9<>%r$z1Amz>>C@GV1A&GkqK8ldefV>jHnrXd=UG z``X43lE2?)xIGQzO5#cgFEvQM=lZ=EOV&|Or@8J8W9?WEDTBQG@U|O`9L`@(NP6ywYibJW_~-7V z;cu1l%4TYg9Sc)dL=MOZr7F84_72IsL-$=$G za?FJ^&@$?>iIeqO^EMOK9x3uoxC%|#Y%>o29n|7YxZ+KlmDUjBQa7?ov8c2&I{!pz zbn@V4#4>4qO|**cF?vJ8Bb^*+)H@g0J}axVyI{t4AhWodTkme%i7G%gtYK7bE^YSb0w(}zjJsCVg80ilWs6Z!o^1>-%RYJ zK`u7c0)J`;ZM(OK?n7G%s}fuCpik)pMzZ%!BAbeDAZ@soamp-oy~|b=-*PP_4+$n$ zV<;>cR|>H2JzpRoGthFho(i7rJw15b-zykpu>RFu^YHm6+XubFr`BvYA-4AW1&I-P zpM2yknhY{@Y#+;ad!XP;%m9mxr-;61Qw6Mj0g9+g)*>Mk#g{a#LQIl##w9~5UX8it zaCxf~^&xiyWz+bd`ZyR8sjwJvwR0E!v*ajUAtFq*Hynbz%Gh_iLRsQt`gNwg^T{{R zuqQrtg09tQO-bMVALCFBIO%{1gBx#)M8zH$OKgGYW#fLiHHX{s2mKm?+NGP;={U|h z&Z-Inz5f#@i!PndeIlDo(@j}47VN!=HgGqauC-8%vU3f{qL^5Uw2=M49;=FM5JD}B z@chEA7$?9qrm^)WcEPjYVeGlZEg_FeTv;G3H@U9Y5{11cB}OTYD#mqrGX7pljV4%& z&0B~+?mV+XoBdp?Qfq!lKOn_TFJz>O!v-dJJVAtvAf_GlVx2so@pn0q?WM?KqmxIr z*RVHFEE8jdwQ{7N`38ISJjejT_xQ0h*&SyY%!u1rGdDPd)jc^OC*<4MVKuH4yiAsy zV5h+J;iEF*BVq?W<57nE#}INtzN+La2qOx2c&H(;Vt>Em6Qi@09$Hcqxl_tY?GuHN zZVMH%Snr2o5v2=CQ2Z zec~w(>lq;AAAvhYkn-JfBUizX9_3y0nRgsm@tfL~4;%clwffmC#w_<`W2m(>R3(ST z#I2r@sI+mGkwZX%ZS>gpEnXBI#QvFSfC!)UHMdC^>*QTG3TWO@)N3}AB>&&WStQ{= zAek)sdgX2mx_a90vHXt&q5#+85>rE6ooR7%F@p13r)Lc67c6p17szezU&aNbEBC=8af#-wo^jN=L!`lfv z=IqSCDemlz8A^S6fTTc1+hj#Jf8MD^6jbAJKuUZ}#ruL^*`*k(67X!qxibX)I$f^| zv0P;5YvQTj3FCC~!F{w)9$F~qlUm7K;c)m#Pp^^#PL4M?qd$<4%7N)rvA1{DBDIE6 zCkPLs_~!HgDP9!cL=O2L{mTd%7+i~^o|W>; zJRj&6E+%wNinh!4sg5V1_cI*1{uE;6!)@yHRQl@y0l#Nrb+ zP812pl`UM<`bYnwE@=yh!*tYwPPo=qV!br zJ=K!=Xkt9o$~~Dp82mol2NWAdYV{#MRO#d?nFX5ym_?MkLD)|-zJnq<#GE~Uc%dYc z|GB5ou2wq)gDFFf2HZ;8fvD_j#m;mbsA^+uf!lj7OuOp6H7y3^s;0;dGl>A=Js;ah z+j#vn1s$}l%mvhZ)qpZM?^x$p0NNGc^I)$nj1|lOBihVpN+fhe`*?2uB_At(WBW&S zt7Ab3Y@Mh#P8e+HIxqyv1S#T&J?732|Ku_M=*A~p!6X0yv)%v|5q}l~s5f-|%RVLI zrm|3x@I=s^oT>t0N(S_{Xwg*+mf-HimPGvTeA=KwD^7vqDYkXZlUy)pu1Y~c3Getu zB{S_7tlEr>Y9v`-)|7S`)FwH>9;?pV3-c_wUi7xUl2?R ze91_VUh*-7br|}eC|OndoNZ4kEk}bgHc~=7St~Y(63fGq4PP^s?O3%=TAGM*d8&~} znw28MQj^6hy9Br+z4BBWKwHV#3byMZ0OKIEqCd&^QZV z`#f;`JI8oERMl(Z=0;LHDk>li@Acz881ukIRVST{Y?*>~&!Z#wRzZSXuae=CSQQmI zeR>2)cwrenCRuXmhGOXM^I-T9{(U%$Z`Uw0$|9lG9-`1NGj;}4p#I@lm%QENU^-~k2%K= zXmpUlK!tR=2jOv{LMS?*#17bFk}CmwJ=lwGO!=i>1;<Mx0|7@v69M!b%eL_7_acOP z@+#(S89YL}ktxUW1>12???y|NUYm)G*J*({q=Gw=P zFt|Z+H9-eg{UmuD=Pv!qh*5yh&~iu`nEDq;M1e3z9%h}|OL*O3E?L_S_hz|+aFEOm zKA~M4{S_3&eq%IluH>d};CMc3Y4_M6!Ur>nTw zhMk2e%GIL!;oh1yK@ju8N7^~}pw_)~)LX}g`1w7(Pp}De6pP(n&kKG3LG%^KALHSG zGU#8YN%{u}PLMA2W&zp66o;6kQPHqg{(7jw3G`BjhKBL_7?gB@Lh--c$73kPNe6Al< z*lc6-@D$Y0kVv7p5c04@JfF!IHY%y^n=!yZ1RwxclDqgF_j)pCXk_zEK~JF1S%N2l zQk})4itfloN6tsxhLVLs-Gid&FV-c(781{8<-jsJ4z=ZKT+b$i8DVSec#MmVoFX|; z6Nq#%g$l#?XOf8~=p@#?DxQJrrdrB$IH|x*#Y{FE)4Y8ODgR*g4izzT_y_>F>aq6R zlvt$t((eONiMLlNvQmC|JF$68${_2lYfIv5&7T+qO-c-W z*_`0A98CstbN}x}k0!E55CS#LR-Q^Th!>4gii=l{&vR;cp;c=P162{|{E;qeR)`$v zC?A>+iFD;jenZb%(eMFzQ{(pcTy0@mOQls@{%@YeLRz4*7!R`Fg;OCP$K@fNqg};Fb+8{Z|;}RkD;@<%CAc;w0+V z`Ssqr;#gVNiT6)D2(4yxJnJ!2JRR0=ObPAF=e=7MD7LR3DVHMm1RCZs?NqG!?IXm4 zL=Z|&jD_hwJ=@~uSqRMW#EH0Z7GNByl3Qk1k6Ad>{cLcYKqqnXKB^`(qyc6TFIW2? z_%MPn9tt1Dtlo{4SAI9MK)@sYB@X)0fG)}RbrusxG;g-vo3n`& zr9pkM3AKaYc+YPcto_BcGq7yBaph+eHbxb^zBNB z{pB&ZOjFW5#y?tLHysyVoQjM2fsarl5COv@n<%_40{OwXl(M4Y+3Gu(8Yo;S#_JL4 zin1c}rAbvUPr@Lx1H^E!5b`C)&D-<-VYwh^O#pj?0piDZK>MoQ+g;7={_Zctgz3%p zbe;Brp*{b4)Gbk#BHt~Jui+-sgy=H+YB-`TfW3sH?6~2LAzukqZES zj76|(k~)F(=02Q|?F8+5_HS5Kjb`EboqL9T`NY}E#+(bs{$>jxXJ4mS9XrfR#wnZ4 zD_e+Bk#F~4m!fJ6LR*3jxt*CuR3<#ES(wXo>njh;bn)!xYQsgUT^MO8tmUAUMJKvt z7A(BzO%Q5)532X}sx-a1A<-f}Yowa5k$&71Sc_!CyYQ_vgY38NTOC*M)g zuEwL}it(O-x5~m2;NE>kCZVJ^b4#(X)%IBv)&4NdFGbwuvDC2S2JZw`$~VIV&oURd zqdu3GBX@S(H7gJBEK>Zik8~TR*zW%g7De$1_Y?K(Gv??f3&8CJlzwvI8a5XYYut5U znWh@I17!h_%xj{~8;~9o4tAA|i&&C5##7G4a$TswA@M0Dy5dFn;4sPmy-!5*lf{}ebU9d}u79esxD zmUZh^eDrbfW%HHEzpgup(Kj7Tf}k%<^@Z>AGM(G&MH3%HCmP%^yYl2htxQc8Qh@6W zT|@gLo;)8TOBAJC+->s@EOYpzwv7)(hyfZL-86{CDkWBc@}7j3df2t0Kl)F<-QKa{ zm=q{d&Gn8vXjanr-m-!M7D8dsB`>t5HvqYMUV9$s?njW>kO>D9U0zV6dgkzQKlYYq zOS@z5%u%LlVodDm{-B>Ofb0Fom2`DS8K8xHW8jrP=5NH^%xPhnUwS_~VJSS?2nSJY z-RFvTS9JRWYZ4@Vi7@I1u8la=JiOPRwsA>2%_?v-c_p=Irj zQuxc|-OufzO8WGq?Bm*-hJNxhjmSkY)^%sGIAYQ~{JfrU4$qw(7ef-c%hJ_=c2m{p zXW4@Ex$14=0uAO%sCACGR|M2=(gBgN{(A4~1r(MvCCQp6dXis9bh_dfu)f&%X$+*r zL0$2&nrW~TZ?j#=%}mFoZb#ZOqnz#OXyXtu)Y$>d`0p4?3ve+LqD32j)nx7uToxaD z)_f+vE++I>pe^pzM`(`qWl8m%}=kqXp>VCtC!;E(@8;&5odSH~!Ta70rq z%=H!dv|I{!>v}!B4yKTzr$4R3uSK^^sQfZ5I}3)^t1{ZPTmDyuQE?yH#{aDi)65l* z<-Q!|tZP;~EsoL11aGsuZWpuN*rESh`Kw%C>c2y$uKQ;aUpM^we*d2$S-K7R9N2cB z0>b;V`+dM+gv7b~r~h9C5YyHtQQmp`NMy5mH#s(1cG0cO*RW#Z_6Z7TA$#Y_*tO!{ zYcoyGHLb|hxHf(5u(P5@M_`%&Fgl2w0p#r$H8ODTc>ksez0``y$uU~NHWf-7dWUqB z_xCdjs30SI9>1bM4!KM56|rq)LHtu%+TFs2N3=fgpRenfpL;=rK7aS8GQh#zjH2Rh zA2$!*4PdyrBn2^Rbi_C^L5O4%T~~w2T04Bj4F~m_s2y)@5yf?JQW}GzV|<5Go{1GJ zd(#+;F|X%pN*q(kL&&NgvpX{74Mbpp19-Adlu|UwA3fd!w2E4^8h(Qd+wIJ3PK0;7 zE@i+wogx)KC4Oj*Yjq?0(z&_Glq84?zn9b5=2?l$ZnxOQ8l>m$!nMe9uj#=Wv)m#e zAi$Lx09?@JsVN4Mv!K5jLahw{#FdevPhQx_l#d7Kl z(nE(AmFj85gjxEB!mo=YgH!)UNdTjm@n=950l2lkq?T!K~W>=W0ESNT|&{(QnUNysozvE){$Kn z)Z-q(cCcIU&h9YdJiS3!1os#}`F&>7x>majNAwZSDp*2O3~Hj{*dZHe>Yaw{F>9sgife$BaF|&hqQslP__5K74ErrhZaYJSNc*9_2 zHAC!!rV6a!@E8$!nU>N{qZ4Jkem*55?8J}Mcca$PMGAVd1_@Nuxk;VjZ9>buXit?= ztDz4U>q+%($?h1O^Er8>3rcdPqCKr)Ad=;(bpZn`mL*)ZpIeWkV;0Drw;F6O= z7i+oKC>xScfI)B510i}-pqmoI2}Ck`ML4nv^gnE}?dhX5aG|T@)%tPH4mQOwwZpN} z8ExQ-s}r*+EbSW-#?k5A$r78kK}tLs-x~6#B&A%LZp%VG7wC7dAaU^ zjRxQfh*LXK!7qjm(Co5Z>wgKk%H=qT_0<28$TdFy!SL7=uqaACgXTK9)aw=)MZ<^F z=^c}kSlg=C8Sv$LtK4sG2ey}cvh5=MP-1-Uy7tJf%FUjq_34XD$-c@PI5lA(FE7AC zhbmJZY*WW77qyAi67XGTp-4y8`FqCFYTr}}LPr=sPgMrQz+{J8U92h|TombX0^ym>NILSQFad{_( zx0kTU_%FS!{2=d}x<;7`GY~?qY*t57VWN5B+((ImtK^FBC7-g%*rM%C}V5rPD zi%eA-Nk{4C_v@WX?+!T1*~vyIb(=4=PqYtAr!Jvw6J}ME<^mQVD z_rD#2##CUWmkXzIFnwd~=CO%NzpkmKR7A|@^Z9s!d`Cqf%_k%3ref|Ne^H-lc=kLP zosN-%zEgBL4PPCEVBqP%&xzWkunYHs3Sm#WSKaqLb zhM2|^4+I_q)60d>@m^u}8|x zLW$FZ!5Pmas7WuOXT=X~vRKGXd}zo`JJ~EGl=Q#Czh-6o!U!`C=&ze2#>VFS{ni7X zI{`xr)tFuZ8$MeBkAijit@z-d85YHRqXUpz_Ws8Bf0e>KLb3qu&<7pfdkz|1>hjU7 z8k;dS-Pat#(R6CYLIRD*d>j~#`J;>#%H*O{;7vomW zLJkob#+YDsQ$@tkEm8;XsRolY6KO(6@jwJya*%^zXz(MDeWAGM=zhf{84 zm4uH@L(Jz*r*>0Xpc5_WwpgJu%=0OFpr9)Ro(@gBg6^ufg@japesBHNdtm*!?fNsX z9nmYDPkx(tAL#%)P4B^~G**ai6*2}(reB<9(^+XYT`tWY%uKVZFHWqBR3bjYdARPF-i!PVf6n3Nb7kczi4!3yrFwOu7VbF)}TkQ_^-o@)r{N3Ets}CiG z5s`C{(o=q|IZ~|1J4|bYl}KxDVt{kus?)GcFE~e$dzE++pTT_p{Hu+kc)GN+UE!E! z;JBPFq`B+yn^#9IpLwf^wW}pfTTBIQnVQeoHM`+zcDvOt;+lxY&1NU@2OEmSAC~b* zJabG+@=LZ6x!>52$r|K-Vm@Tkjr)c5RGWYF1Iy$i9_0#cD6T+Ucm)x5=T`UPg+6@Rf1Nvm}Gb5(ij+iS z#twyI-S+lN$NA3AILz`$?rU6G zjXc4y2dcnxDzdXtMgwIr!nUjXHsk~zwgt)vHJ_f~PKQs$#$E16q(=w?!X3xnX0!#- z{&M~ubDcMTYa)iTPFXhmHf1+5W&g2v<-$JXvC_U2#R45qj0&eI*I|lX!K90nGEpm+ z!j^7zJCG-N4<@fg_06KSc-2JHI|^ix!DMvZ5C)=!iu5W)ZF}Gyjz+JN2wj1v9#}17 zFlY=QPqQKzHI@6V2E~wU`fEQG?7+S>wf#z(cC}j9mv*}oz3K;^{>u?i-0~KMxl6i2 zFZk7N>3~*egSXlM-Xe3cI>TJ7E^RJW>*oSvh(P>IPC>xN$snU}(C$hxKwF`=u|Y~; z@zyHM;RWegX=9W{Ga)3g+1Nk_t(ounO(G1VCVg&hHYLL5W^)U$}jkGiL$cAO+ zIFnT9F_vLLDEOGL=9n}k0d=<;$UlT$)pD&cSohCE0oA$alxW~eFJDK;3w48x(f0X4 zitIJY-*L;5*ye3Jf2qtMC-LO9h+8(@@ow)2|7j_W#QbOuFT(;BL5K-DJn1V;5>NsZ z3anU>Y0VtwYpL88xbNwtTMy}|Jkx(Wu<;o?gi#w4@e+eGOq@53%d`fW61t8W(6uS* z6=**+TW?i;xnuQ1oW)hLoH11m3X_Hrf^W`w^~Ws&qH)E`FGS>BYO%qT?3p|aGJrfij)U|KMS0t zH@A(PeeSGmDZ900S}%UM*|U-mSy*@`w7jQk{w7XDY2YpksuA3HIhg%|d}#+e5{U7J zZ}Wn3o|h^tC~n73uO=nu3cY`b`(*q-IT6ZqA9yJ%lhQnX^t9-}jy?RdvIm*VcM;df z8T=vPVYzugdPu@YsMF4FEt>;ZjQN=#Q$y6Tu@+lZV2wB1e!P`VgAd-o1NHKr`|{oa z!Ktuq!Y_lcIIcJ1CxR4^)HwOh-5x1F^UMmra7TzwKdp$YJN{A1-=EntMfDW^)xSuG zJjB0mcbwEc@IKY=Um2iYZkLfmfe>^#En&=OYT7%pch!sN;kGnI)|074*Hcn2tnl`w zZR5{MN#C+rG98_j1r4jo<>-``Sv;w){6YTNjt{=VK>A}#8T?dQt=Ts;CzqW`8a(Di zBQl{PF z%78R!3qPErpk!!+GdO1_A7zj7E;g-ivIX%!H@8AK5LTdR25@@b|5 ze3pXd`zC$DP1P~fr!(50ng?SajVTj$4=kh?5FkY+oIH8-=!2c%$E5Ff`9S z!`%)(OR!$Wh(0cPL?6HSh<;o0h<^LxBU)ebh}OUOh&GlyqKz*;qRl0bX!Em<$T9so zi0|yMwN^<%JF>TS#O{_-)k*)7vm!yb0kEvsk2lxrZ{@xIc5}V1m-o7UbG>eq_quU&y>6EGy17uV zKI02JFgPZds?2P$@^Ji5OXX)XoE+`mb?&wOpcg!pMxEYD)pfb+<*E%?EFKSpAoK

iZZ*H$@FEmgO1e5-Coxe*y#=b3YAYfgIEWNgki8B72*8-{)^ zo^2XavE8Wu;C@T{QJ3`bJPL<#a)xCVa@TgA*tIm3 z47&wWu&X}dl$(!4^3VtOfr`2|rtz)nm(cV$@jrI)F$ciRL7%h*1fZ(!+am7a)8prT za#Mq;;YOW6*Z8Fgw4M2WifI6%2#a!~V0c_2?mRv_57v_D1%9~}$YLXOC#Z)~;XsCyBE<|u)5Bz5!Kv9y&9=JX=%(%XLmfi=7Cyft}Z$LVj}tt;9ZUi0TDh_>wTl~Tqx@*5d2G6lo1t=dcn-E@f!;9G6*{ZzgL zR0D&}KUFZgZ){$?Y_^stnNH-zFG?7{{#48*cK+3xn$NUXMO zH0-r+IdFhG7>7N=fJ*uhW?0fq7X68I5j$rE|3iCcfPBY%B$QA2(%H<+9^9WN?S7um{C z9MijxA8})zaWnf$$zLmHmPGn|A=2jyk$xF^#90;r#@Wnb{$Mfgr*65x?BeRg*<=w# zPO(4A^qc1Y&o~8DD`1)A&le+qz8LuzmH(3X^T?os{Us~{JOnRk7dVTSu?{|)?7vCU zH)8%}Z2^nXJ$LEu$&YZ7*Tv^ZaGUN0SA+Zu(rzN^1yf9F&7G3?)N`Tc-jk{17s^^| z6xV_gM8jz479ntxg*J7k^Oh;FLWs)ljRBp*0g{sMT&&TXw@A6FL%Qj^2ezmntnc(= zhci)oBCzcEC{^2mICWnn67lhk`sks6xk=>;tA7w|i-_75@Z^6LRY3)k=Zos%-|OkIFc&Ty*I#_37o zKvZcA?qb6Cjg43ze26HMi!ppDFO`1&wG~@-Ipc-$C4&FQhGiOWt75;UnX{nS5V0tT z)z*ev0mt{@r`Zz?!33#d9*B|99pDfDBw_M`e*+(yQy};W9~UF!%;-5!aNQ*B<4z&6N1yl;>rxcWK%6?kBkewuyJg;PxBWmJVl(_S9q ze!({K!wJgw3FqK}p28t6(BLwLJtPrG1!$YTa#Hwf2CV>d5?!aTCSYyI)|8tmZWo48 zAk`$wCr-7;uVe@^@s_*vWE8h707Qv1$jU$Hk3NuafZt9&bYPo~2j}=nER#>cmnYZw z8if;sIZ7wA*Ckfou9N?b29qEOU`rlE6dcaS#?y&2{iBT96A2S%{*yA|QAUw!q9qp5 zj;R5!!coW(>Zn5V1PmwVYlS?Mn6DYUPor0nFIYw#b&FeT#Vwj^drVATl=8(COtdD?9!u=D*xiqqBzrESs*F9 zKKvGl0CP&LHD7{5#s+J;QMDf$A&i#1*T!S?l8R*A>T*1*ysrdljW4zS1 zA(}&A_w$Pg&NwTJr7Dqm`d_{7KYI2O_^x$)ebEVyCf6OjOK;bty01^-RG;tP=eMgf zIqmEm;Tc{gQUUB*A}xQJ@3LLLQ>&A9#mferj?Qy=+?>5}292Tj-LjIFc)bn;=DY6( zhs|GP1}fx%$t4_vaJ$9=P@Ui^&5$?r9Nz9wBw`1{2;26nkMh;4%z5*heDgkqS0Z`8 zdOd5(t~weG;}2?9@3!WdP}f!fpS(DH-;(J}IejCVy18*%B+uIRy=xZ^{Q}N`Z1m9M zJ?HmU6AeU5*>D?P6?#2T;Mfbq@Jaux42)es(y{H*RL>mRYq2mU=owcJIhNt_0R+fd zMgBcsj=4IVE>c|=`qnpw{V!qICR~BWXMLyLpoJK;U}Nb4HAfV$V0_1|OPNL8+S4G+ zMQvT^e;arD_L6t^Uz+&Jo16J}-|f%3pZ{TPr!w1{r6D*Q?}Bxu_3j(EB)r=$KD%XZ zp2iDj^Ul#)wc~E$n~VG>^6Q!1wr;n5Pk-}1{n)m6<@wVe-t>=udItYK#!5_7j;Ryi z*H53c>*rm~$=;qYxl=tSQz!dnMO#$y?8J^E{w%S@S;TgX4eIa!VUNm>8golNBj|r9 zIKrBJJlj`rig*55V=7Pv*M!W&%^Xqq1g{%9!Q-C}kNVG!`+|ri-x|sJMB43=53NLi zH3(3qy@ue#x0UeXq$xD|vJw{Nj%x^vKdprp%m~tkD=S|4nqdK~8U&~;R?RnjU!r?t zzbr#^xGm;Snp<3m)iQRwBp3QNdY_6rBGVaC)j#X_7(vitD4pKj_kE=*{$K$T z$Rg$P&8~RvwbtVc*M5EXZpm4)`XqT%Cgg@iWQ*rb?8iJvR*UUf5130VKidG@tOwcZ zy(U=Ne+{R?6w+05@@*;>1NZqCSyNlif8WfyW~A1^fonx-?d^GuNOFsLtUO5bCG9YC zIHJ~8sWkmjT{F0d#_zMKxc?63URaGy<8eoZ`gDSOpbmW6_4$WVd*vf)T-w!tEHCLS z1%vT%qM-_v9MSNqgQBhanwj~kJP3&_==+GnT=x~ts#8{7MX1rov&0`K}U}^i_NylGQY08Yw9)uAwLkpdQsPK21lMf#+;62(sxY;s`&}+nc^W zi6)m(lmwt^pGH}fkjnyl9FPYV?1)K}=eE|1(<8=ZvypX|a5k}S#KfOYjshm;9xN$5 zW()e^pAs_QsBx3%1Siu8JHIPzVc0r|^4@lVy%j!%Y7Lcr#AoQEC3`VjK!=4WhDoZs z_SEfD1K!q_8rQs0q?JE4gnvi|O=S=69Qh}snqG@7!o4L3goEYCgT4PMc`)OG9oY+Z zG~a?XS*RSu>}z7wa7~QnT@#}QYhtvlHF24+ z{=>8PFP;VoY$?U!d|1$pylWBlqgSuq^x4!l$)*F4sQK^$Z5M6BWv;BipJIDSs8*ZK z$UntgTYYyj6X!Fzx8^j~=$@8(Y@D7XmNQj%YcTyl9SMW0!>m$DwSH1#(tZ!mJ@` z6+8M-nq?8)mKl#1nu=M6H|vCaUK*57W6cPa!}(XZ91yp!eE~T1`^#`Xj_Xgx^5xY~ zEjrjWOx;?zol?g#srtJWQ|;oZB{T}SU+%2|Q-{Xw6nCeu%9o0AHPS7k;Y?H1ter99 zgBA?AS#8^|Z8q!X@ypJjkagkqjS^SkSx+^&r*>+WL2!HCW$=yhKhNBJ!C4V}{ii1K zUyJp>N*VLDaq#C6$1`stWhd`i3DKb8?a!#pG#ST|WqW;>U!!s}$AmYX>aSyxzsy4G zH6gim7HYo2%9<^0ef64Ay%hbMT396=et~7R)ah+Dv0r#fXIw@qIt?GZ*=9ShtiWNv zytlY~3pOO|%2S*RSPbxu_$iBn07m6%@C-1Pyx%n$02za0B_pc04FRL~N1*O4>AUrM6OP(pg z+L72PECdE+@@D~%p6O{Spp2%CPC|=~e90ooo%jWCn?+##*Kp=S!0H9tXXd?Si?Xjq zkm<>Aia=VQe%PF8%;aZ=NShOA36{$dYCVUi<{tR66|A{Yxox2$c=H=`mN2K) z%L1?$6>!Vr!_Rnt^W|qTR8QdvSa7bmt*Ji8am#zh#?Ey3s!REwzt*9Dys4po{OX7P z+f5Dqx5CgxHqmG}9YnfD+oE2Sju&W{3;}WMqL^ZsYQ%~ZhUm9TB^!$=ij&4LR!d=| zSvds!0Mlmsx~^y^s?=|Jnq7ICah7p2@D7t=7fM;%X(i*}RzR7zC_VI!lP%fmGFf_` z)ERUtb2i(V-iJFo`6S~EnSK7PWu<0^p5z9J2vp`dpQOhOfm(JXfc>DiCG$rCA_zu! zwS1zIyib!MrjHzq!rZE?X(10R7lWP z<;Xe=XpZ~MgfD&up&@<`@|^enaNafc=UGXv92Orq_Z1(aHkn16~zIPn>Y{#)0=|Q z7{RW88NqJ}mjmO(#+Y6mv%CT~akW+*H8cpPB7c4|y*R-bm{U&o4-%6J6SR7rd(_Q+ z#BLl>k%7^5TfoXCFbbWy?gsB7vu{|9@d!J}WG-Bhsp*p9TXEfTh{0Ak)H-xysx(H60(meim)F-}$4*TJR3M`nV6h>ULqECFXZzSGl9?;STu`4Tf zN=eJ3Ym!YE^Z+;}%vfSi!Fmsv*B4n3GgV_YVU=f@xYLC7!zdohWWQWSCLF?=OCm~F zPSpxTwrl(dc?UpXq#9)-29PE&&HLjis7b+{%{$PRv!2rwc6D;Vi*Z*Z^fjMtY?wt` z<*aWSb8eEiryo1CRlBmD-gy{(gE)OIMyICfe2h+QuWpRdO(H^9+q)}TO#DAB1hMi5 zC95a#7KK1MmaQD~$TE^raC2o6Bz-Xp2}0TrTIPQEFu;Q1En~xc7~I2BE$w18P*Gi+ zzunX`Ub8x>PKF-0Qn*AZ8GBt`o6T%O0Hh-#5^lc@T5%vvb|#T)eEh)qkm|FinONw%UdX2IXtGP0 z6mKS>mnEH-CYhT{Wmh5_(zqyz3sU&gimKj&Tvk1kElij%qEL;!onWij$I2yG!zqWa z<-$aKZb^pNZM?N_i>7zorb@Eul`o#OTcTH7{r`M=H4znl)LIn+nj7v3k%lSvStSJ= zV8FvQBgfKAl0wOeZN1Q(Ww!FkIHEN^PPHjuLB+Zs1P|`lAKcsnpwov)J0UVM9sls` z<>Av{98M-tmUM&QRWiC(W#u@n00X4Lb21Gw;2}*i;(){@H)#7ad9WWP;mIiK$ESNO z-M9^djPtknHIU}J_!N_j^j{o5?!SF{wDR3J3(qb>Sjky}R2arN!hmh+{@=EH_|LYk zAv~U*jN$?A#v+}EDygs^7z2Na{30W^AKYsLdp)=xd@7vqkfxVrbKIfDSaxKo2qFr8 zj$y8_LCY#ODbfxg042i_{7O}A#!W5R5vS(wF9-VL6SRD%61JmtI% zeBu}(^dL`#)JoEc7Mqr7}6;T^W2j)&SX&E-pLE|F`ehDFW zM`f$KjbrHq1+#FifLMigU97-#-J+zlYj0=_s8UKMf(ga!Nl=SPQ3iUDU4#qbhdYx+qx@xuhDyz~4mGsAg+~W&}UK2(RLc>4hQcjd{Y_ zR}wd$occH zZVg_4aoyrFHP(>?))5dIEF!BIVFb$HM3pM*t<16*x{-VsKrHB1JFr%d9Jx_gn0{@L-6h`SP!pZ`-3^g zdA(!#742l)if987&#gNSCT6v@kSW-;x?gjrSjEFE~L17PW#jxKYfx$3??sT|bC=@K0rkR-~{0VsvP?|m=57It>9*iImd6Yd&q${e}^ z`Jqa)lz~qF0cBzg7*P9%D@*XaYVLOx$iAhl9{1@^tA7&a0@b@_1ufh)KH%|{i`*;6 ziA8gQHceL{(4;y?zPxQ0Aj|rfs)YH5@(MLx%L?a4o;LY@Jeua%+@PR0`x_-iTjd02 z#q@9L-FCYTPkR>hir(QUb(7sQ_*~qF$*05kLxEr#C45_jaXO^Nh~=}FRsvN*XjP-j z*tX4<3b1@g7q$xE0>icedIn&oFn^lk$Jux6P&vaPs9QKDE-nFVz9;c>`!Tpvil9~)4PVABc=E4 zK;G1#1a50jBHFgLezi6PwfER<93P~aTYgB<=?4x2l_1m(fz1^>+9(li(S#3J)5zO9 z4;H_)@+euo(nCM;>$HswO|h*a^sE?^OqT~0HDwx5Cn%Y^ z*qXW}>T||E#73$|&)yvOUq3w}YZY|rTH`>s1!aOXwMVRzfd-8>ECYrzbotr`+93d8 zTu&nUhOQhWAYP0HZg?8V^S-#A6%zKA59PAzfDgUn+nfv54%sk^c6s+!x}}HBHK6gn z)fft!HnsYO_V8D4p5l=&IpgV!uHZ~Q;4;rAJgIR$i4svD+mLtfI>#M$n+tTSszc>E zGF172(W+ac3_(3{HEz0hvE|0NPD#i4&JLWz^GKXH$)+TZnUv5N4*b~#R>xqgi3<{b z(lsmUOXC!$9G-ViVG*_Nbnh4mWbx(dzTGr|hi!orHp{0cXivhYZjxFPX~3~X_9gQ; ztSjByUn&PoJ_+Ah-)6-(E6pcqzDhlfQ-|EfB(&wTDyurcN7CW@ zGh<$snV=cohM;5LY;4td3^(e{-YW@ zED~KRH`jmfn~iigS>LLMyiIYEG#>0m2;jz%X%;EsBu3l6=LB_Ewx6hINwTR(2W+FABnciUX#UJvMC*pd~ys@YI@d4Gep$qJ3V!1+Tqej4X z5#{~?lYBarj$32_Nl*Sa8cg80lSdf=;A{HUIE*t{qX^E{;^rFHzqr*sio#*rzqOUm z+ibk%cj97;mGaD>+h1V|Q6-hdRo0e$OI6@U4NmZ90cZi(3R3RbDUeh+Hv@$zx^aS+ zl<50H4{&P8DGekGMgd@ORH*!#$#oe4wc;*JQb?1imMZ!uAicx!I7LJF9*fC7IUt6e1?49fhA4U1e~XrL=U97pfFX1 zVzgIG#f+wfoX9V&60@fYf5N-qS%~_%s$u&0&8wsG>fke!KO`W`b0k02i1roWKa6^U z)@qu$8lm1qTH?Nw^x+w*Y%BE8ou7HNC7`ys=Jp?@HLT~_3sq%s-VNug!Z_ddIDb|0 zWfYYB#U~VJFBeIS>J7}=rH@zt<-p$SIV%>HFw>USwwTf}u-`mBv>789{ z+y2}sl}#^UndP1~@OWx{E-Pl!Tc<)cJ##B!(?fp+Y*Bj?zfc=I-+PEXB0lv6;tKB- zj#pQ1D_vI$k@iRe5?cY|6g_(mf(j#E@Y+E8j3_S?Guj@Pa&k6`(9ySe*TlhHhLWPj zAY6Y%)C}w+(uE9zhU3$igT~bB(ji=)$AfbQ6;cb-QRs7_V;EOV?6iyx2wQV^el7Yj z0*Z9Fl<_{e>r?&hv;h`4IC4C&RY8*k<`DIjPYo@U?~=2n)zFBDqq>-ZSRiobqt&fi zTA5$p4z{lDom#X)6hm|+6NDJpJRvnwbxB7@MoHJ$bo8=A8;}BBcRoUW5G6g80y+c+ zYl;x&_}6eFwTb>CdA{YeB&ac>vf|ihTWmNcwO(yt zK=aV$P0yWf#d7ncz#vUPFH`gLUyJU?;tV0Vz=*)Xs0G|M33>Qq?d6*EccVvIW0i3( zB<}D)gbFIUnG#6h$!?y7B;$$u-|&=OjnRo$`5@ztf;@{Mi3Ax1Z7%kiQ0S$26`4@v z0rd+*$s-kbAONAJd}kP>(}H!7MrVdBX#LxDf^+l-_Joj!Xf#ri;HP@ABT&_;YAn3T zXjfx(b=d0n>1Dr9uIQ`!@#E)*FMsUc>-XT5ESlL5CzC8bnNFg9ztu|8ejcJK{O_o> zMw=TpU2C^>G?(B4?Yf8>)USpKNV}+}wC5G#|@&W%4p}#-hv4&X|UUML=WE||J zx0g_1UPfnpeM-lgeGJvzH4ZEA+AyY1G9CAg9dB+*6PRjZK-#*4ONE~F_{qr~^gJ^j zJi23L9EneLh(4TzRH(?VQH}Q9;nB-yFMrfIU$#5J+N~V+BRHXuyGr;0}9j4y4efdix6L|^r;DXKlZOf8aJG|5#-Ya)_fp>i0SB~%d*~j<&&5ZBL z9pC$A?6cBH!;MaJH#gqhqzTe#H~4oxHb0>O$;^edO4xq`u_cUnbX6_ z0`N&?8+uG>hSF(Rs&P^()h$v2Bf^eV99S|PjUKK^2MyFg zevii#v@4QG=wu-x%zvFcM-&&V6VQ#IM;YYq{IYeYk>E3FLGuCUP$_ZMkXOZ!gSBU% z@tlHY6pPaHY$|g`Cm^8_C0Gycm4W=eK*c$r-!FsSdoV9}3;u)q7<0b8UE0mo4Bg1N zW!+XOEwhIGQZB7C)I344#04W#ffcfVp}TWD9&z+J$0*oWB2dPp zqYO2!rldcsh4hUc6Z$PU0Li=rc(=}w>l+i*R4x@cz^5D@&UDE_jJ69$L=Fx|1Hu`` zFUq0kT&i(zhW{B+OwKH zVHH861HDJVU$BDi{9lktuzb|p(0Y5yZ^`nhJ~^~L`QZ*8I~0Nnzw-Wc9xNE?svZ;l zfXz`}>}H2K!d4?Fks5&O9gN%PjUfQKjQ; z3yg9G!xuIj<#8u2#EO=1?P_5)q%>7&e~OIgNyuy6leDX0lz?asU`lr@RanpmHBicc zG-*rKnhP!AX<0jk8KUoRtun-wfWRvpY>q!Y&GB(!v88ms#Bna`~z6X%} zrUJ%PAyWZlS_On}q!0xE=44S;>sb0Wsk~X7^eP4M_$GbAP3gvrSF$0+yr1#~n7gnw z>7wKe6)1N&oTy0{tk#br)QBQ!roxDh+|Ig1s%@AIqHgdEJtm$XKT@d_U%>C^GVvj1 zRM#nQTu51!3W5f`nW;17q(aJ<%q=bSE;cva#q;LIMyy32S)Mp|m=qpA|JsVJ6gI{S z1_Q?l_-M%G3_GSh(w9olVexD{}GA67bjSwdG??O}pAeAu|dR2~|hNs6KDwE&LAofr0hA`?D-Cq_n z7xdUc)eUXcjitO(aW8ClXBM6=>(y;LFU6LlBVEZ0dbdWS7G?oUG7BDYmiJlob+7JL zOAd?i=<`P6F$O8Fdl`2D3{)+qv&+vaQG;r_C(*rkvK^iW!WlONzufjD4*GR zs?Btm1;eg(6VJ~_tpxq`DKE6ti);^!FF`}f8Sdtk`dW!dv?D4aIsHV`TNG!4J7H7s z7LX3TB(&dDEyp(G+IrG4(cAC>H0i|_n;G|`-|9D{da5wKxjV6blsz*|m{(1- zO4O=7)%J9rVPyYTQCs;izK5bVI+c2!wPP&_uo`n4`sDpKEeZXWuY~Mt4QA7y?Wh$^z3E- z`KuqFJ?$MjG2pS622RUuQ z7^5ufEQ+Dww(*Y37OYYdCrrO|5$6|J!bhZt`g!^*PTpGZ9WVg=P>;I5Bx@>8i8Uy# zJ;}Lo6et7%9HJxl$SmC@6c#%7-Gl!h2c7!!&^g4@J!N4i2Kxq~M?} zZIQec%)vreyG=3t6fEt(#X_)30ovD+3u8zsONltVy-!+A$=i>WZ-2wL;?CRuiB!oC zha#~sFasPl_)^b}FzOaV6sY_#xzLBhVJvE75J%a%{-J!!n+RF)q(JS?9Z;@?^2UB+ zkvzXJwjGcFn)bo&34fZ>15{540NIL+daeX;{EArL1;UEcApa{M2#Ie0kT{p?>pY}6 zj=R!|qnoA~R@_mCzz9r$y$Y#e1N|mQ4#`j@qpw z4Ha1(r2|S%Fb)SseFiF^Wh0NyoDzFAkPS7z_Uc`y&&>o*>us!mlnz=NPNk3R>nKwN zhsd+Sa))&nF}x(eauG|cI>yAPBuf(e@>Q&GG!UYcP@;O*i6Qax`{ zYP@gIP}IkHDQZi<1RhW?MW0rtC?1>%&6gx<#iJlv7vykIbQMNRV^mf_OVAqKmg|Z8 zq$O6#Jxa+qif|<&b8sLME-~g%QPv@fXeP^LrEvnC|J+$~{&X@9F7x#H-FIb@+DucJ zj`5)IiW*TyI)xSHI-jI6L;J0lUr>=jWv{4zbRqfxm>m-!I(;A45EzpMfHVC zTwBvqe%xxfOG`JIn#mMlc1t^K1*ScsRW;uJB}jjN4&ok0UHnp%uD-8l#P8GYau1iy zruK*nN;ZJEJS)ty?M@DU7jZ)M8D}>)mB0(H40z$yobX%=452A>`}z2p=dP<0lXt4@ zIORBMgN|Au2jm>K;CgenYmvl8o@LT_i6hR!Yil%?HS-vST-vR3z_Wf z{NuZG(@&Y$U^)b!Eof3S3}VF9LeZ&VB$z&nd44f`I+rP*XTi^5ZVOM7e#_u!ji1TU z+XhP?%*4_a{32QUU>27CrScYZc9yP&H#n_6+ zV_kxc*HUhqY}oUec3-zXdW^QOTerPWf5StW*M|FgR-;dyrh)};v_-Wwm$unRC8Ca) zz;w_S!9;YfZXvW?M|0tCRYB+qu%uJULeb?0RlzjonI7}JU71~#6^t(- z*t->=RWz(WfBM6l{_#)G;NQoX; z+U>Q&FgAGl0|=D8*z$?PtZ-YwW*{u(*7*RvWgA-1&2vD3ELH;CyLY|cIO%(RpLi4Y z`aUen-|Gcxr}M1@=Vte<{Mb(I>-*Hs+FJ?CN&H*;ZIcGZcZ`F~5bXQdNf_+=#LXY< z`=&CTu&2TNrLKx=t9oPEF2>9X0k^*|&{Y@8Mw%g#ZrfcI;P1Om#$1f~xwqm4j>rVk z3`Ri^9X?X0OfwJ-b1%s=uuY5jd~GN7J(< zXQ@m?V=7N2qHT}Kh_>QizRGAO0IsnO$Zddg*PD+h7}1(A(kR|V!;q38AHK=s;{2B3I^e5^kT$y`(o|I{j7-@*KYR7L~q zBv3sDnmU=n^-=5=Og zIyM}T|Ig-T+&0cw(%E9Q;Mm_TWO)kQL{Kx^dFwc`-h|7pc}8OH7l-fr?=Z~IuzN}y zr?6*!@@A){hO)}2asSrfW4xe431rfQY_jCU?Z$b#gI1m#m^jxOoL&)SYlb+gjG=55 z%wVgxSm0Nl%j~c06kc=BhLsk(T+pE*Ms{kUKH*Vrjy|4`{kK@IM_b}1~=i04`u$+vE#&>ynpYK!; z?il>Yu2ceFjEfGIuwwRVSIog2E9OkCn6o9Vn1gRCrhLVm*(>I3i7V!;;fgt%cg37F zSTSeLin&WUUM3X&^E%8X!ErQ-29qV6D>U~hCnCxTq%&+3(sH!gq>la+a}JQ_sZ#;2 z4p56jsj)q@b(i8IX!urW9WpwBtgfqFR_dl^=OWe2F{YY%p2Fvn984q-y9C6sq%!5;B{gwg{uu~qtiNy6 z{By9Sb(e7ClXy}waLgTzMkGv=Sthr=5M=&2ZaJ4? z+Z@HlbF<($6t(9Y5aV}q!>UpU{DYfCjk$fGJkraEG3Pi94*R@Am~~aCl*nJ%FsmWgYn#FPb$rfvQ%0`P0c1A`wjbf*?#G5n?bW|?J!hhv73bjQVMkyJV+g z83eayUj}~`#=j9#&BM-Lj)A{Q64%L%FT;~YL&2VZ>LuTd$bT+w{tCtM%sW+?*`RhR z8#KKA8TZ>J<5==U*LV3Bnee7l{dG+8m(gN-O-OE?g_^IhvSv$LU%h5jFGc^R7FJ1z zUtn1+b$Xjk>=&NW8JE!_#Svzg61s9i<*~7Osf2QUWd;~a-tU?Wa^_(!U)homn z_OHfIb8ynv%R?+1svyq#UsEw7e}Cp)kiiiC)xSuG%oBev=n?Qf)$d;!pk7vO3<^qv zV@G&eqL(~Vg0&;DQ&4g@Dxy zw$IFa%NAu{jUdyLUuQlkRTY7>KK-yc)8Ky|kv1pL5-gV^)Orq2%{}mCD_C=*a@#^h z@a8w>EMZQomjz%iD&UsKhs6V&FN9IjT!jBnNw~7aQue1XILp^rr3b3aWM{f8sRG%h zo<-c%Z7d8bFZy+9+A>e1gBE^nxem+nM099)OZ9KxMENAQ-cl*x2|lK#bAC zP^&Z&M#v4LNt9h+)OC!Nr?I##45e5!DVx$4E(G{X7VZ_p3{n{gXBSg?qB_DTUk^52 z$A8|c-{3?*{_iyBg6c5QK?dXpaF<*PEjRPSb7|rIKvn$prD9)~iIgdWJN+Y^JD-H2x3;tt8bYnA^pvcr89`6{D%ldD`_3Dn7LfoO_rkpJef1GP*V}ItaGfv+$ur zk$mfMI9Ru4E~*reDbnLud{U%~$p#kPkQ+qY8J0jVasXA_q4L^!6xl>O4*}EBh=X2> zY=Ob1zyd*<33xF4s*x*DqG4fphojM}B+7{*#QbIvr0zD8^~hYRg!U zce~Apf1^EuBJ=@T7)-*G5vEZ{f1i$# zlEXBKx=dFXXU-`p#$3NFOhj2V=;i_@5DtM+PW>=6(akhR`U98YXu>4;+cx#tF;)Ps z52E#iQ#x?6Cn5xV#L0P3>6gJ1;e94XV6)w zwLVJNAl630WTXTWFsIpcFfr=K!7zb!Mx*PFM($B~ay?3u7{(~3RL=pDz?etLrNgc_ z0Tqt0s1WN_%)7@~5>KW>wH(yiwJO)hk35+SB;0?1LLY)+4}J0UBic04Cc6kO0QEm* zRuC#VekdUk$#JMrmZceG?J#D{;Xj?6Lt}{?sgq?DRP*n#&>+!2|M}iF)@A#{NEv%~ zoqlWu>vw~#j`O0o8EoT=9-Uk5clS1f2lx)or1F2x7yoCoN3G%9X8+Iru6J*9o4UW> z@&3>Ldb_uIkG}p}r{aHw0p9Cjn+KnqTwi5Yo7UZRnDBSFD|DcpBp;?2d3*T0)&8~Z z7ETmtSo{p8(y+8thfml3RM zT7>ww1mzI`yl5|DV61VLo&X15Q>zd(>TGyP>Mu4hg`osTES-bc9}R<(h}Hn^J2)!Z zEJkN3m6?Z^qx90tu`qn(*ze*~%q`S^as0Ud_UVx>VtIHG{u_n}k|KEfcw+;I5K+RM z^YBB&3#QfX&NGz_lO;>x*4o)2vBHzkQuB}HWHuVY+Uoud>oynTpl=4_8PY-T>@X?I z2iYdfDQlq3?yr6iVQx?^(PoP|9fQGC9Gs%7^Kc4G0lUjPSQ2QG5c@Qo%X!B+O-H~R zG64_(L@5~zMwnO+cBa~G!P(-4oE@Y?#q^hWG8~3uu{)xD1Nc8nFEA%k{Chl(hH(h! zg0LK6a-<-i!iq5XJy#5W4BEo^WHR2ld-wA4va4Em)9manZIx%K)Vs#0YoQrxsOp4< zqXFu3Q9n#Dt|2;$vOeS9C)}OQc zUHzQp91#O>W&Who$i$GNVmSpp1112s5nv%fE230wA;dFpXssxpuo^GC8Z-T}g4C8!|MPtyAujyPNw_RSf zm}&0r*%((kP}cnRJj^AulPF4bX<4E9(WIQ<-lnjP^BlO2IuURK5EpO|Jc-WYgif5a z8%kKto(nw#Zc)O5A_z}$1MK}@-qK0HWo&y&QUlXCGVq*S0;=K&t2Rs&B@!QG4|O!f zq%I16^(tgOW1a}s1>e-H+$6f1@ENNm8g8JmcReuvGSZmHB{gYrXKg152sLujhUjIe zJ2Tc|DQXw-kZ9gA+QAu6bgb8dS`ej>fYWk$rJ*61>xjRgj6bs5b|Hm|F*twj6h$&K z1Fb|Z&*3oD+QPH`+Edi`DM?=m%DgX|d(xV1O}Dyo??MhKN9_f0Y4A$iso3`+%67~o zVJ;4JE6`vuubyocp;FW4M*?)WI)7$q2FE`vu0jLwZF+7MyLJn9^RjR!eU+oX?Ma9j@h+{-Q|F zSh1@a_m@=Ua*|>9jepgAEykIgu-=}o@*Cg@=w^M~8~QLceQ_Vm zcg(&0eP80whg&;TX!YPge0IzC)!ts!Tdl4mBNZyYTK29$Cl^&xfKI!?M-TS9R!i8E zP=i1K8@Se$;*7~nu zEn!1iK}C{nFj(h+{QTiOBg-3z1mmw>_kTEg^`Z~>v>x}lypJtS+jZ&MB@=S5KO4VCFVjlQ?F~l@V;p&nHlr7t9mdVI&dkNo>B0_^AXo-`QBF! z#`CpR;N^Q=AI0;jQw`?(YBWTJmpuM=l%Dcmc$RF~h27eIEWlKCPUT=kV?4h#@7Qc< zK5Wn_S9TF?@sAn0wc1)w8*~i3oLd0ogL(wu%c zDIrN%Ka7(>7U3ZqNON)>q>1A=_&Uuer}35k&UYAh)jM4ge1q3VfqJkJSbm@Ip~npr zzOvjB9AiQ)?w}&qq3)Y}K&FVYDg@r|34;OuE9y4)<~SHsPnl=3hLJnqu79@FhcnIA z=4Qj$f)8h(t$O5nx+-z^O&4HOHeLDjL`~O%6ZM*1D{!Jt;t6`#lFe*nqDq&miO;px zp6bLBBxq_DUOzs_r;LnEE0zMKh?LN5PiC%O6=lXrH&$)_Q{%N=Xvj6kEnX0{%1=k} zxVk_&4u+K6NHPfD&rB}UJGnWcQF;~+3N$=SYQ!7WD@8MFnC8I^DND0>ItXU;eiv1rBhx7GcyoXl%e@los^RA%c20{KP zb(t`}Iu<`{Sz5hQ)zaX2da_&^z^3|j(*Wh#AzgMxXyeJ^v-8O&2cx*|yr78Ci^B`o zWxoV~bZ+vy2T~bWqmm>;b_mVabMhs6)=75;y0Lqfz;1>yO0=;$dWCQ1x_)Ol- z0iHjF$q+4HpfH_92`TlIim&%PSxa*-MCWzyM(92+k2hMAy%%9c(i9mCBs zz_74MG&oOi-#{NKI>X^jxN>QEr!M<9dm>&29cFaM(w4Cw;n(Df&2t3PJ-UWbD^E4N z&Cz~5Ir^{0HNIdb0VIjFHLXxVxu!yL#cixz+t_h_c$`J#IZAGu<8Yuo#D&9ZarsR? zi1KEp)73g^IcRXB*Ty2#6Zlv-Kv7@9$rp>UvBo_yU7{p=N!sPMgAmqe<0_>4+GHxp zdCM2b<=URm0Rfo^{ptx2>=^{s?uf6$VOR?KT|abDI8HVopH*yPgCn05EbJES2P*Ch zYduq|T?@St`qdK5@bnZ8?~#KVqW>%rz{r;on5d-~iBLLEFN2FPxfTWY5)JgBVnY)S ztwam3Z?NWyyc7XOI98mu%kvagJ@x<#kRtIe(hrgOSaobnBK7-+_I-STZIB_T1A+y6P^n$q&W!9;Rf?0tP(%DR__!aCy`N$aH5}#!WK0=9 znEOfttJ=PzBw_$f#j>a)v`c5hAg>}>(u)%iz#=w5$Zc|u%Eu}DBoPJ4B}rnyl^nD5 z!UV^Mrz=76mV^aZr7WKDIULi}V3nh+G4HLGJM(R`_XL_E!F>Uw zn}G-5rxhQ?iG*B#GI%CVQn+Q}OYKahC}NXA0|X+($zX&|#&M$QAxYqH%)U7CXwg(k zk6i=nClN?{nkiy-z#;-2g5oL?XD}W1=}PlFMi*qWs8sl zLu}bsQnaGf;4pC1((^2Ga2W2#{emW_7nOgG4NNvoOsp%XlC|pIWmUFl`IdJXli54{ zQFI}MC`(o3Cs1)RP=AD|W}haUp^L7yxsxE{5ZHZtMuLZeHamgT2&}WV$yU9hJBnJ3 zsspK4lNM2@SK~*PUM&p;^C{K7*3}yIsDVa3yXqQj$)FijD|4YxDz9!@b#lWMniF1N z$ao9sZj0ujjtFxQUZ=U%gH`Medzg}jD=r}c2uPhZ^{M=3ja++2m*I7e&ZJv)x~yOS zG>DR*&#S;%#~hc_g{@>JZ5*B3r44L&&1oZH6~--P8v51?EnbBTQe0Dr7O6>mAud+B z^B;0PqdM-<-gIn^ESfBX7Sx{2Bo2Y7Xabe624R+67f0<^UzB)O;)R+ABJjN+LzJd$ zmq9k9d|^`;dzV^}=zl<+Xkjb+)Gf-zyMklO);c-mkyO^vtM)vUDUsdyJXCiMn(usb z!zzENRw<`m9+2!!qoBH%f^*>*`%t{GVSrQ|xX{d2Ytfa*K`|qn(s#P4!o4!PdK-Ln z^_(Rrw`Cgb%2IUCGBsv?#bawhg(EthL(kBSs?`e&$N5b5x^F7VO{pk4ga)-mNeyOR zqKVKhMrk@0aYIZH3}cniLU5wvK%xRoo=t=f!kr5PrqM;*eT> zL+rPkt_ri@B#y7mu}X7MO!n?0V^MmQBvbPsm0Jx1)$W3#;SPb>TyNbTHN$B_W|t~n zH}wG7x#&${uvO^TG)EMtZ)s{kaof()iLr0PU+}Q7aU<`kSGBTMn%z=N0f33^a0frd z*iXUV7^@jw#rZ_7%)2n~({K=v;)x8qG;lnRORBiTK4iT)k0~lxkAfeM(k>Z4l(MlI zxSxp8oW~&OMrk#@vcC+yBw<`?2s+MAFT?o;4Gqdab{Kz%hf$^X4a#i1@(v!QWK&mu zT45ryLcwbiofF!`hv*Wjdid8gOeRDPT1De&HpYl(m3Rs<$c6IS#KF_J$HARMHWzAw z>-=O4Gq>D~{JJuQ!8Y(DfG&OnexMBwrW-Z76Pe`cIT9lo5>b-r#R+JrFjiLk;IZcj zm!0R2I9Y*kEwEGNxZl1bal9X_%61QftzZX)7Ak!BvL#uzVn1I!M1p-z3C&U1> zF{2aJ!-o&o+%887J$8+$MsQ>xI4VPMR77y4cqxF?b#DIkmb)rDYHOqa7VPrxVOj4V zh|^rv^|cDARv7PT>KX|TCgcHRT`j(ce*Q=FgI9B>@MJIepV}@z=}txH+P)pMBVda$ z^hyEtiU2j;_k$izZDu~Ox;TV08eMDY!!J9~DWR5-WnM^!QY@H4GEU~M?HIGwF1QK2 zi#YKNrL~fIOgJNHhUS>LY`INn$vNw^tX~Dh$oFB) zNt^p``^u%OzG^p0KCz$;u5zy=!G)5aVlo6gP9cTA(WIrBv6rf?V#fVb0F=9^-q(Vc zsr0zkp(Erl>l=bdWh-}dIN=PZqty7|BpQSw4Hn@7)voaaxwan`h-|JID_6kc%^`@Olp z*^WM2!7a5L&$0#2v+t{(-k0wCX252n{r(p1_xkWZ8}jq-?rMHY`;}Y!tuM5-A4v>L z9d#RSdoBQXlz_EluY_A)=u zXAm{tB+Z{j(tI)LQYlReGGqopVQBp&ilisniM5;`O!a?)EwqOuxz!fk7Njb(;#(|W1KTP=G>S)7Aa~R7aNcpFPlK}(d67tW*zx3A zo>(F{T8-du0Vs<&?P7i&k82_hK@x(zvghxqfJPE3%;1tv&lEg^JWZ*SMDtT;wPn-C=A9#061a1n;Awo_K92j3;P`r=$r@cC z3H33*KuEk<-lUu587R0%7+hi^YQhXRRva7bO&Opg@#>ZwhxKjt?6gK@WOiZ;Eixn> zm4X&VQE~>Dqv0DzK;kQL?cPbRR<}*I%TBSz#jTYr9L?`QLrnxe3h1y~?W6$x??Df3 zJ1Dmd@DT$(LmSPxOw|3{08UZ92J~%&-gAS1?L_C-NFPjVPWdZ^^TGehOwVK!DmZ{y z_Hw{Eo?2m900d@eC;>*^&} z%?=pUf{mn))H^f=Wf6GMs=TJ(XYxJ#(k*@?4vp~GIxQZ{fHtlG804v}l|5>5`%>qmTI8RM!K^b(!{)4Sek8;5;~J6w!Z{b4E8tfcpi0Z0o_*`meAA$CyW`j z->;P7UV0xdhuZlf)Xo>8_A<^Iw4FxT%*Ty`#dzG_#pmGhv&jPIJH_O%Pp{rImw!g8 zSMm9x6weo;c)l3L7nS9b-t!2TgZ(A2I$GlvkmzSMGNuW$e>O3Glf-Vs;fqM~vuFui zZjhQaNQzSD`ZVOjph{lOlJuSO_H%Cb1}W{)nWJro>hL#k((uOVn5mHf=ckNv29%8Q z$(ntoCL!$yFAm@LgyHBAKSz-sRt?5mMiWa6|6vRWlO z*l?0q6+-lgk|%8TCg)a`hsx^Yik1(}d;;<*OzKWxCMIZJQ-b)TP*g(X<2DMNf7}nu z{NElvnU{165^i~9BYOEG5SU*Y5>JInxMWk|8GBZMG)9+bm_~vL@59PK2UC6qXpdT| z0R8993sA&)sRDF~?b02?N=CG} z)G1-^PYaOZ_@+p4{AEc&YTPF)lQ*Y(d3+vbuoXv{NNu6+x>d&CKMDzzIXBh>^R-$r z6vq9xGKvGPk}Ab2*z%206a6O)OU95~k>ZJR3?oTN)y!GKhm@CCitnxuKaCkXz(~(? zGdQ`d%DSWX;&p)sWXWh>PA|wa#h;Q_v&cr^4~6Ts%fcaR3#8jf>Kl$+d;H31>M%Dv zpH&IIfYS=wa7KJzLGD9&*DR%u8M#2a`w(U7PT8z2Dr?$flDaj3AFWxHy$eOxbRrV} zAVe57wfEEBygIR{Zza_;3XcN42kxDW6AXC53IYAt@ztppMKQw(iW|;2Xw;Z2<1w6p zkZ3Ak@zxtjA8p0lr0%FyK!s*cs2=u%`+@cln2H*-r!gmR!E2TRBz0FvDZpumq&mr1 zwNgi9IGq1)trti$xlMf1pn&-Qgq@gVO3RzTz?~i*L18B*St!9er2yAa=q+~w@SNhG z0GIy3>=TfC z$jN|@V5lMkJ)Kyo_(pJscPr>W`pXy}v4EocTYLb&dMHSJtA5Fci-8d_4LL4O2hQdN z$6<_*w@Y$NvX1@^`|UI>O0DYEgUGpZG+!LiDyRUK!pq#nC_DNsc8n?S>`Wj$I3|nf z$^SI8t3Qj35g7hYtLFCvOWIrG ztIn>OeJcpK{Q$E<6yfmGae9fSt<%lPWh(B^Iyyy%noC^KgTXYT^STInC2&!g$D?cM zk*e>KsS89|UxyP7H;kd}7Qg=9{(3#QSJ$HVz-@BhX;Sduz#B~|UNoGoj&`P1`IV*1 zwf@TD0D5l4aB%$@c|L|+743GS7PVRhoawl<^fgwTnVz1;1B$xiB|w}nSh<)8xP0|@ zb(#~FEt;`5u&3@QJ$nSB-EOsYnOWbrlDL*ID(va7&)X_f?3Td*^5mjagI0_RaQc7T z+wMHL|49KNt>i^GIS1jJg?aa!^0iPqQ;*USVWdUr^qv=KK5=v2%2_%^lNss4Cvj29 zRVqw;YN=J!Lyby2D-sfYM#Zc7dekUu7h-#l5C9kXWnXAwS|PqwmkQVT@8O*7c6{GT z$sJwc#lA2_`IU2tILj`_|A)MLEQ>*f*NT>Zyd~}6Fp$ByajPQN=9XN-He_s)q-49V zUd=rxWpH6Ri=_+)xqRXtx)5#ud9UeeN5ZyzPVL9=aukuDp&JkEwnqj~RUA7di%+LM zU$GY+(#^0US4#$G(dJH;`IZd~bukX0^5bNF-L@@(PPUzbm?)!xurH6H(3~uma)q#Kq-7O(>8DTAC&H}wDhX?`J4|b zH@VN(V_|Rf-Fjg$5oBXCL8Z8`rmD<7BNxZkZZUmTiD?}*Ux%%?gx$2Bn@LhhNbQ;} z%Nl{h*-kAw?N=Qqyl^|F{9@)-%=bDSPx?G5ylA>>=WM<`RSx zyPJsF+|_YY?4**rjERL+4S!ztq!IX$-?=dk_^XiqgU`}rUSgGwA7GA7fV)i%fA{dggoQxRi(X*+AoHD429hw1cW6cy~4;&BG@V)!O~LVrDjOn4VraOc zQI17ZFfpq%Sp$?dXOE<~9JLd3PD=Y(A^w@E*+QT-vCra5?9FwGdLnJ&g`HAbTDv-k zBUUjU!sqUx3?=>9xVeH|V#f`)!G#LEG~f+1Jjv71RAumqF^}q3$IiV{7H-z z+|ukq6}fIB4OPh|TV+t`syTZs<6$LXvOU$#ke%V9L4-{Pl9tg>NGvvxT10i~r~t+= zu*A$}F78fFu{QTL=^biVDJ<>NQF^Hs4mLjknX!G(4y;>MoB(TSHTDLJkWhm0M_D}R zkKzj${~j~s!Oo8Czf~P1J`)T+pCQT{`-C$^u{~4eu5qaNm?lj}-`GkW$dC(kf6em{ zXW(z!unnX^dV(T`tr_wyk-LKvgGO>?=tqTCushjL{Pf|$o4;-Ad2GpMD3$gD>I&X-X)iKU4AaYm zC~z4jxd-iXn~;3QIL7M%O_SGk&P8)JEZ3iovv~134W7e5>))re?i%goryV;!4 z=VHp_YN?p9Sr^z3wG$?t_KzZ}9itLZ(bLWO|8t_W!erRbsEguO8Rsv;E8%XoTg<_c z)U=J0^0sMK+LDYI?SjSEhd>3CqQ#i+3<^N5JV5Ldg0vtPQL?;#V^CAKv6d!<;q6o; zFS$yV-Y0bioysf$pUMnb{oG@bMH|)wVU`uTEvsow%vz>{(nB^Y03rxR7`r~v>E>xd zy7XWK#}#u8TJ{KGm^@fnL0dQ1A+inYfXj-AEAlDZ#cNFZA~p4ZpWOy;c6{h&~-vf4U;Ptk7JdaoJbnkejZb%{Yed;Gn`Y7wKD7 z{tySWLAX+6Mm4N*5SwOF-~XSzH}7gAN!EwwZ$3q}=Zr_#fK|Cw6=3E^yKy(~bz@(k zduC2wTSo?A)FULW78~Db&u4#gsU>T9N~r~GY;k7VP+65rWM)KU#FG*2tx>Y3lQC`B z3;ik`oIbRtUcky%tSf^#(@%jSieLq*SYube>{Jr6_*p%rrqgInI`yjPlr4fk((#o^ z)w4;JyjI}@PPayyPBI~KA@iHnt?ovQps}v?w(aX#Pn!jpv-{ltkrF>Kio^N02BjKm zSEaXFE}zs5%*H8~$SYUe@)o#dO6C7FDmcXK+;Pe-pNAbjoXQO!&dv=RfFDk0h>hj3 z#QDfIg)2UE;))NK!xi&A>)JrS97oI$IG^TP0B}V4MX*ekc$<1+HM1)6D$J+6nBUa! z8p9K2(Z{h%B|lrGnMx&BGDGFEY=bU)PL?W@zKnVKPs3?u+^6PY&D1=cJ~f}L!+PQ9 zou0|vkGHn*0ZdzR=HK2DouuM#%8d8#2h9f?-UDC#hp7Kh^&h7G!_|L; z`cLq{;X2`iP`w(d|Lm*(e6RlVO#SBv^`8UvpXU$aRhE(3Tr|}>Wp-ojJA+jEw|yN? z*<{rSHL6QeMwwc5HV*BARuC->yD+Zlt{iNqtyhMXnND3Uw~|y90G-$JcTE|u;crmg z3{%~^?r20v@8f!0R|@3NK>$ALJmFT`lm57?Gn)@f0MrbjqQeiJ=?o(#MYcvPo7Yv# zaeafK9AtNRHi?s1^ak(bT{?wB*T@mb|ywuGa*B9*a z`5RRB@Rp{nT*IyQ*iJ)iqQM%6bxV)ssTBt_PJNti3FY=jSs;v=|6>d)7x`_-$FE3U0F6i z*AvO7)lJg`lx*h^R6pw0U_Sb*ewN%cO~UcN za^bC$+YF-*-SOFFywhyLYlI!ywsv~l_G7hn-ae?gDWN|N(Wir{pZWrQdsFxAdFP@n z-?YDt8SH~@?(V5tZ_QHX@{EYGDPkR(|G#WA%Q^Cf-FKG;Kcucq#XQ1zdCXq#s!OtG z11WNn5DHb7dUDrsy}wE3vTfh#l~1S&>9Af#qr~#pyt|oAINZCc7Z$uHwbjS)nRM5F zxa{^iUPCR!ey5?n%5BB817^ri^@>d|M#bX0xKy_cSsN*JHxhZH|9PF?4{@bBg|U6Z zNc}v1oFQYfS<_>96sK#q*^4gNjiYwS3AZ=H`qa*)UgO+7pF}#vt`SFO315qoIyRCU z%5GDL_^umIT^2uG8ZUL{qeUKS@z1Hev&=V3Jo8gbL%j^2!l_7QX;G4-!+Bs_m$#d4g9m!zD8SU|eM99CX&HNm&3Y_mFXyB7rq(}Za&6NXcI82ZPMwU<-Urqyo^i~t)b?u4W+9L zjrd#FaY$5!y{zoRP_koLw&+MSN<-bCsSIs5{&?Nd7s1qnQ-33kWcYVdEF^oXn)t4O zoB%V%mL!Q>DNmmKxqBgXJ+Jli$+On42gmBk^|1Z!sx773P~`xYjAhhTz@u%CapJ50 z5H-3#clzhu3q9wto!v~o?!|Ey-1TwNFI_GVsp=ooZK>tFeeYXOh<-xU6a6rQ4%Mao^E#@25zrU+? zm48N!YRkkLYLwp~<_%JMqav(g+?-Nz{l=!BzN#N+NPOJG&A4?`7s=H{igl5!E|Szm z(ihZls?57-2OAAV5alp1UnXj~K1ZaLkjhHZo|!t#ha~$jkHgbDqi(s`^PV0#dIJ^w zX<))z%{0+cn*Umu>O>f%&6s!A3!ST8yLpa7Eq26;h0JYnr~4G{_IRP6#{a68;szex zAw3o!M-A8d?DIM&PfAs2d6+3pnBq*juKPZ?VY~mX^W_dN`Ta0I)D6{_|7~3j&drAW zZ@Q7!+f?}=D}QNKbwuaeycd90hbhfAlD?#E#_gFskXHC_L>Vj%4SCni&CvTsx$D+N z_oj2M&nh#MF4w!V>N55EOFNjKDlyH#r;mcFRjVr zR5d8!l@;t#W1K-%<&Jy-uPbtYjxlFAH4jcvOrSsE$TED!Rc?MFQXQ1?Q zPG$8=Ezx6H&6=C(@CK%CwmKHvKQ4osd012T*7VA(8j_>#49nq;Rkhu;7DryS$T6X` zYL<8e(W?oaK){fl2fgU9%d5(IV6Cs>l+Mv;p^8L#{*qSUY*O4u+k5__1gNk^37EO5 z+_u6^PG^DB7pq@br*jg;eU&ai4SPWrSI-hulLBfqA(;7cJ<}kP`F&V%l!tcuimB44 zICU+K+;z|YSW3_T_zXRNvtZBNn{1dtzNt8M#NDs%Kzj6#sg$5sXEYLePwjm<^{a+< zb?6qcR|d63=4gx*8k_DUipRCP`?TPti3|RCnsldN8#PZCnS&MemrVVteV*Ie>BWjE zHrtg0^NV$07Pp$dK^W7mXpqd2UCvpa$fc^>A{CG#^DJ6FM^<>zug(N7hVGlXCzZSqL-Y0IAZ0FIy)iEsJOn zCoD*e1o3KO1)R6uzSmGHwNA{<#^le-G|rQGQ$#^S6C z8vT)AKU9A-)hfRq+RXrg(yPh{3$d#y!m3KHlvi$hv%hT5BKVKazFg5Bbt)89)05|_k z{PDEVtGybE|LRI^4Ku%k4e;>W+yD=!Zh)OBQ*vip;Nh3Q1s*zWfrm40ftx#$0dMZ> z7I?GJ7I-tq7P$F5QsB*(zXjenZGks#Tfig|iE}s%hH-KhPo)8$j$tW7Sk`K9*}S)6 zV(VbqF>RzKn66TXhZa zy_M*B9=KBh=oGJEUEN}QVmj2`W(TpQs(urg350to%O;@+m`vNAcUjyaOPVHa*;)Us z`&zC$HCuX;eqWCdpXLsr{ClTrrQl6E!-mWcv$>wjG^dxeGD(&;pJympS@tPcd9n$1 z(=G4k8>#Iq$@jKol2cg$(_Q8lUrhJ|DRsPD@F~ZmN|)Oc%_e^*I8piE$6Kh938h;o zxhb9Tm!0xuvL!R(Y8^V~GX`9F z22}5z_Ps{`cbJc=y94z%2lTLR0W&sb?902(GYcu)u2C4J;q>JXFLSq473N+;BI4y` z&gR$I0Jre^NRcl2wNgU56pjN0oQqY_(VXk7;s!yy#17M?wvqHDZ8dJOegkE91`=w? zGvKe&cFvbWnG3M@mO>c&3^7 zqF6x{7bVF|6v;X`)BTQRtTEq(832uQrh5m=T5!G_4}e{s=R(4K`@ayF!cs2Fn&%=6 zA^`@`*)AodH?Ok`K5<{%FD2B}u>`K-GO(G4HuJ>=DeyZx~(M9!>6T^&*~3W?OtXWi_!~d zgkOe#7`lEfAd2G>$<^fp2dtktejCXu$^5Yire%Ex`js06$8y!u`H!jjVW|gb2`%bs zoDtf|uo*>ZD}bacyXZvq;e`Eswr)!vHS>bacsrV{;J)|5-06hBmHIyxEa z&dzu{`F!lX!3UKqCVoHLp4)lOo4$Y9eRrArpqGA-Ye0*UY$K_j3_hqNjNd)gb?kVL zA9vSv?;je@FHea(`D7~NNa9B;OtTX)#ci+9-LE9`PUru765 zHo3xXma)p4neR)k7didezBhHA>ZwwVesHLNH`xQd_oj!%tLf=I^#AEs+(bXm83(Fb zs=0(-)jYU&t{P7o+bCW(FWzTStFnB9MO*h&>Mz+^BkgyYg-OX*T|uG#oub7wMOK{d z;TbMpcR9@&OVvr?yYF-`?#y1Gk12Ulrx({mUJR44OL8>PtuJ7vd=3vU#cZjE~ zqzVjJTbwftU~xmW%{y&=X~vuYY|EdinQ(6lO~4euP)UJVkiO;i?}U(_0Wes@7rtPq z;9?B#)}ew+TOeN_!q7nuEg4%lKcq0__SG0K*Oh2}>NNUg0u7h85|@BVtO}BRKQM~* zQh0H6BB|SBW0nqSb+3*A*Z#Os(5;@^+cgUjRN3FW2mS-u zw>ar_+_h?ZZM;CVwbnbkY!AKmZ+^4+dMEk&k#{{Fs_-KEiMe*VD>r>#KBM`!6c9zd z{MhS1GT~&~dS2UCZ@cd%gUQJ242Of^XzkDEor`Y2t&1kdl?@Kt`5gpR?Vfs^ZB=K7W+0Y16evR?=+^t~Y9WHT9=H6oT2H|BkCl z2ZmnX-u|`SJC$!Kl&(e4Hl%FU5L$JLn*6{qr%l*@sIc#{(G|ks%Syk>! zsAfr-c1!Cieq6^6oYvFbvV&#uf@Lv+yPL0N?SE_D(avAu=3my%kGFlc$xf^tmh3F` zQfd1=%6495`I9N-kEfJxrsaw&+1=7yX1(z6d@y<2>r^o(U7kI+J~9sJm+^uac~{*V zrEVSe$DMbb;mAaUR3{9>$~G7L(JWF$aPPKzy^r4Lx^pIfQvn&%mEIn{o9JMaY8gC} zqRtx(&pSiOC)?v~&0*!j&G7dd-iMCtWv}OTZmxUXv+h{d8%J6+3%!4CM$y+UOz*rs zZtK;j>XN%^Am1JiJEQACUwP22^_Xu=gZ8r4x>xnBW!30LR9z{?U_A@KQN`O2kBXc< zw&@(kdqe(v3>f~hm_`-%Se|lI%K*|*N*0g~kTGEmbr~jUwPpn~At*7$eY74df?cseA2CCm^HQhWq}SOLfi+ zN45qH7+!(erP(R+yYe>JKRG%4F%xa^pVK$PQmFqwbypRNajCtuZ;eW7JFywG=;1QY z8lAq<%hXlu>g1=x=cfzk4Ywjs7CIcxu-<1{>Qhg94P)eO{ks36QReY?WB*wR`MVPG z`t5}diwSo-&i0@KgIj!V7w2n>Gc{9#+&WKf+U^-|rB_bpgL)OU}vc{8`y$a?(SiTdqo(i^XXPaoHRdfl6h(5IVITJ84Dw-uj0 zssHr6`+gmb^)FLe9h}2YAJ%``8@%hDfe!yM_orUtjoY`@r`gWj+pGV$J$&b{SAV*@ z>-y;e(ygq$K7Lx)?0Vg&oAZDAX#P*1%>U_M=Ku8J{Ga|Y|EF(e|Mb{ijMF~PfBM2+ zj4q!pwh(P=!k)u8!Kb_Pf4cY7?c1tW=l}HS{GWbT|7m7bS1&6`udzn@#IT+#Q||l? zFO;?Yw13<>JZY%~aPUL^rT79_`mTaOenrFn_IkkET?Z z|0w@B{<@+mspq8M$ls?oV}D>j#7!t8clwDAIX$(J+$XuGxS8ZKZ~9&G05+H0$F;wh zlpCq=rpT`gPg6!D&6S zZ{ZLMP%Nw(!=s`ftAjo`EM`Wr1vsg7>BK&ARv$Of{gJGvN+I_*rkN?GCp2=h7~#y* zvJ+Kqh@!^7Tm!{wg^X)@SY8>^SBQIHICxz1r+P7nwQ7o{^Lo>*;U($0b^Z2NN6m>k zPw6`2Ejm=Y%vGt9`6sG&u4)ay`RQ89CSLaJxN*v=SxN{y53ij%#V#ziPzhwRD%Xu> zv^&$+iF~zcZe49Ki4jLdZX5h`3A7_-`f>~Lu)I!Phl<}ixn>>!~jOCKe#Ee)j zdKB9=%Oy{Y0kK^07h@hQ7d%X?aOI*uaM2rFq|A2OzE&<$W;s(-J~-(&G=WNb#p9>z zmCrZ9^GD$M6Y%^m;Q2%F{15Q_4S2q{2MTs~pRQM*3Nvctx$53}`Ppv8v$(~=i&YPw zRz3VK*RNbzLKv!4NTcZQ~ECCfbpV(~Ha5%89z#~sh_ zw9}w9|F?01b2`J-+%YT9@+_w~zwQ9%a*k8`*y$9v@T@L;ep~qLRytnHG%d5A*~*i% z@K#&qEVyv9@?6vt(P1tYKA)A&W-}hk7C)CQd?s7?JciF=YD0e!C$SmNVbhk;l22hv zK7%b;hJKc*aOSHsp1r1V*{LV5+2mbz?kb46@}WXK-K>22sPgHP%BO#+eEP8R=^vF( z-&8)WI7Fz&_y{3ObLUMx=!(;(9(L7PQ;)pjq^ZYVK4503g6*AK;g$0dv)i-_Tyr)ppx7xL~ zGlPD1Pv_Jv^lgIIzs+5*!=xyxo1V=ahGDg{TvW31wa3z3>bOtoe9S%zWijXk16JQw z$jv|QV z&X)u3{hg@UofG&@l&h-lAUS4}+qb5;FI{)9R^Kr`YO4Cay6jiEuU+41BS*ESWnb%Y;HimnQDDxo70FS3Dtw%nn%vZy!pE^W zYQC0@&1%|x0r0W0Y|Z&`V*i?J%zrHM@tZ|HPHb&+eVo|i9Q06oRaWVtc6qHHYQKo} zQ2VV~Jv3LHgC1I0@oajiUBxs#w6ZyOJ=Feux*l5D*erUeU4gqETKH;4Jv6^0izPLB z=)7PSM`=9^R&MFSdT}MxO;o!|*52i4V{u7sdyK=}^|0iD$;wn{ zw?|9*F%i_|!tAI>aCQ*&WHNq!e6*(m@aBSt|Gc!l1#}fj*EI}Lh(U-Ehqw}V7l^x& zga~mVZp4WT@#Mzc-QC??iMtzd&;2?u!_4r^^M3EY{`IX@&~@sZ+Gp3U>Q3FHZ#M?) zLU|%?jPDvn(Cn)~%T1AEF(a`VQCZQ^oRZuWkuVX6h7pb1298E~w(QQR1evaD#rp(7 z2W$})>#*-;VU$6ziGv;4FN(L>9l{iGLGdO;S>{B3oU$WJIvRyD6bZB4#@V-)$A~B^ z2PSq@N(L`V8;?o-=t#E%7fSHJ!2K3eH80Juj){W3OW}LU{6z;mcqp*DCz@_n4(~g^ z%DGB`Mc0aAr}pvsy1K4Qt`oW!Z6Yo|EL~#w9V)vVGKqhdXX-Br0)PH!cT+@o7lrzK zGvSP%m?+0nyh!lbZ0>rx;{@nr;wF2l_ehF#Cp=(owpNb`T?&lNLJS*u%Rk!A=zKUe zSWH%J##u(STxaO>{^S@qbgOIc-y43AD6^# zQd41?6_|O&2WF0o&}+)ubP2z_PpXfrd)2JNX!=YS_({s_D!il?Sf`Yb<-$v_4C{hw z%JlRZVdZ(&#LyJjY8tyD{jxDJKy~$_YVQ4J0X}=eZqhSJ)p@?%TCPtQ4hibJURquH z_^NI2O~hzEUk@ZUoua}JHTJk_wvdXrg*$Hq(aA9B9a1SksW+Cp^z&f%5*{W@Z9dIA zV;85^?j$F4M*C*y)fK5QeA?IdYfOih;3P57wh=A6z@Y?XQx=bF(E2ow3Qq&8;a$D! zwcKvjDQdK1_4%eLIG=?rinNA-sm5{I1GXpZTdh-ZWu~NT+U~h>SNLx8&4o%VlARLi zfdV-X@j%x+!=XGhp`@&%gT;%@4-cXcA7MrC3FuPesA1+pczbU_a1()hHN!4E%2OW0rFUQ?tX}5Qgj-<(6xH z&n@WQ4ueMuui(yp>;y}HccHB1Oh|kGwZ!6L1o&x#tF_~NW5kBfT^Y4m(-gx-a%ky< zwf7+iv_2G9>ps?Z&|SB6UY=k^g)u68XF0-kc&hLM-bAw&4~YnwBWwZR*7NhvmPgEJWP&?HI{)kbUZSH8jO-=ftP*6R+)A z15tvdQjgwZmE-(L`O$#^Bi+04U=P2GNyfNg$=Rc@O0!y}aLOF5V1?M{Y^Qk#@0q~o zX;Y1g%4{>Ti=w_I`%Jesho@N{;gC`kx3FD4H#CyT8?PM#wSXn6(=#;U>rvfLu1! zif$w=rv|+pI`XY*;#Y{NzziWbz}=a8qLVanxMK6bv%@Eh8{9bMdKQOfmGie)i~~--RYehYggt%>SYy@cYC=WOS1R?gZ)Pn|Y~;hrPA)8?lJf9` z33h{vbS2anDvq?xh=LW!zdG1bv2>T+VJzHJ)=($z@6KzPIKPcL>6!i(-8^B$dDz~0 z?6&N2XVu2EM$uqk=a@MobJI%2!4!wGZ%ZdghrlnVM@E{PS0=V|I8K_`myoit?67Xs zD!g-Ei;*xevUcr2J5H(IK<#6_U{5n075idruPc<3pJM52Q?%01;9@z4y)q;0c;!oYl{0ukGVngc}copNC#+q$-@eY-RrHyuu94WHg-dHKIBkJ|qu1N?yJH78L*$_B#cx8gw?=I$-lU*~SK7V|jWJk=9 zv?VU-&y$2$F1*utc&cObED>>iX>jG;c|j1@`^Do#ku#lSoe-k2wOs8vqcpbf=teRvNH{WlztT z_eHN>@PP72Oc{1nGAVAYKNBe5=egqH-(QC7E&2>0mE&};6g`j zGmtIuRrsjg3&kS>8SzeIKe2mD&c+3o<2B%WeX1t&^93#6=fmIoz2pkzTwB^&)0DGS zc0Cqrn!*fRX;7DcF@Cx$accTaoHDEgVt7PnKL=w8d2HSX)d)`lJZz)D;&`W|378`Mmt3&FJ=8 zZSrOOf`BNkn)T4y@bw{ye}X=xa-L{fsCtjl0HtejMYY)KjEdu_V2qH7*iO&(QOo^M zL3mq|*!lQ}ky!cW1|fwVt69hM%MyM{YX_s)iZd#1`5YP~G#{mkpnClUVIv1Uq1b2R z*ixf-6)O60f+_b!oG}!^g@tv-167G~+5;1LC$h61)=}duTscp(Q9m=>lKE^g^vDp$ zQJ$HlZ?<5K=G*938srFyvqw@pRB_NM%nU^sB}?L*GlY|}T@YPK%Sa**#ukhvt?}@b zOP(j;zt{NCW8lw0=he0m^oElf4)>OSG3 z*6ggT8sgJ?sey+Jvs2cJf@#kLw%Uxw#U8vQ%Ck=_N=Z|)6w#8< zxJ9FbwDZ!qko=euDQYTBBneZa;P(TOPq!*8hiqSH)Zfa)?*e};wIpZ21En3s9Ft^o zPEaV9+i%?|Wmy#{NcK2In1;}Q8|i8swOn_Y>N_qXge)lKVHr2h@2VLbAlz>d9(hvg zfntMtmgsOFbfzf!LC%K-Yd->m&wqO~rdV|oH%Gc**XGokY;AD%;Jk9KnPtB`J4NZl zel>I^dslVmt*)S1EVw|QD@4#}jj~)QW%-o_3e6M2&nB$5pxOxE18&YuFgR zEw{UzWy+4KJnyP-Q}>8^LNhxS;=9!@4lf71KD{cu&%x_oRZF+u&235JmXm)pET&2Fo9pdWBDx7p=CPV^ zCR5bEK7OsC(ZTDwMPy90`Z+40%+)ZH5tA4$CDK2WXFjFUW52I}Jex*5`3p+f3xZS@$|bpRFLi$|_Dn(aGJ z_EqayQ=4P{jK=o^uJn|J(h!SC>_KHZX z1cnPalcPtOYeo7F8|UHx)Jo!%;}k7F-KxD;Lr7fl=K`Wp+JoVa^r`SWI!YRwRwKcK zAg09hD&Z zaP@aF*0Ucd5^6#<+TM~!jNw;um)EU!rbmT;#3U`P%aV`96>GF9EYFsgQ0p$cuP#y7 z{HQwRv8$Lvmg%AxM}4`oEi;BoIA`p=U#^QWQ*wR#D#|SeYCdqNTy6iVL|AXAHH!i| z!$mTye>dwIb8s9qCpi|tJ!|BBsO0yg2f-1Jj}BhSVwxQ~^TjiB`r1zoCP{aBDRJ`_ zpUR6Xu01R+R6VEp6|&{JC2%s4<75z(~S&Z%n*^lQbPDhoIeWN`B}02z~D}N~>iJ{YYimb)yX|-Z{UpC1MJOjVA=I z<0tmF&yYDU!@HC&lg!+~C>jx0JgP_Fy2~Ty4YjJSC@Hg0G*0)>FO0aA$ zvLLbCJFc!LRw+sK9m9H8+EaQtiJco>9G1!_ZdO%Q>^9C>-%5&}Y2kWBnjX{4G2SXp+qG8A30&BFI=bu$7&SFk~8Z$lIsM^@A_rbbYvPIv} z*#NOwsK%m1^~8&-#)osn42ql`i#M7cusTC4wX7jU^4(F9>Ljw)^rXkIQSbFcFL!d? z3@I=vhdtB6+QUCC8ReN%0wBM9>law@YA2$z9A9zK?>06mPYzCuMF$DaIcX|*^hsPFl z9l8i++H~y|Ngf1qr+AvbPLfNqsAUH)u3v$DJT`rVV2>jfMW2Bu(+q{cu^DT)%S;QEd8y#nL=Nk$)d$P8Ma%xXTpWm6fj$;Oa zYELT}a5B`mjd1ZAuGh=gtDJ_+m?;y(TTd`w-))$u68E3L@%sW*n4PW9=t?U5JLr>mp zu8v`6=eCL+th~vi0i^}JvC$xG;>yhCK5qY3pZqrC?(hp(W|QY6@irRIRw^B!INjV<&x52s=2yt%j{o;$f!JC;43-_cDqId3h!B1c0@44C;f;rg37#hKQ z^3dfxPWC#pk172#XCTjRlMo9F$0J>(k#Ilpd5-775$YUN#HMMBbp<&_&9`wo8LHjU z4hmU4BX00qG_$$sP53saEXG5BwCuqC?ZZIU#+TfkDYWO23Knyih$I5jeINB-kY;4( z2p_z}_1wwP-%m)0eP&%y@bx^VMtWcAR81prvSMd@II2Kg$33^KiuBpyw!P|AoUX!2 z2HFS@#l+x!NmbIZnVFTGk35?^-xjCjW*(2#7wn=cEbU!u!gII2vGQv|FF!6v`_tR+ zU6b31HFQ(q#-&`JqRmdTnuyIlndK>bcW9GOxmTqUof~s)#H(CXtC+B%Kb%<3gJhBx za6}v8UynYnRa>Qt0v|YB8I8Af1)od>y=$_m>rE=)Aaa#3!=+}2?SiFoDbZVEkaqgE zEnynCpxDqhSeF33@v1PD5w@qGA>C=nxDewD$N5@DgRr~G7rVGg1ddQ8#H~%|1cN;P zNn`Q?Rk)U;vtdV!vAUQn>yNQoS}DP+T3J24h*QqJJGP$h&Hck-79>=HW>K+~jS*2! zq$5#17KWw`!IA9yQ`Qc2=XRscb{P&$WUzbZpr!9`96Ty(nR6*k)Z))nuSME8r#3X< zPuI+t8c5aKls@W&eSnJFAVyp%fb&cmZuxYXHkkt#hb83}wpfsEL7j!2aadWU{TL74 zGA99yK6O0fFMc9`6Z1}&2%CI@pm4G-`qW0Sk4VpV8g@q^N0Za=GMK{*D~`n?9r%tI zK8w=A@io?gIpczGsl7c$TMKAA+y8dDMy5sazT~QLK75BS>@)qG(<~@yi_vC5FI(Ln zN3V|kwX>KDF$bSKoPfxMP^q?>*%&Iz%A10|?N_Q2XHxf9LGxW{gMkMtp!n>d^x-9q z@ZIY0r#7Qg##=ml<&G9vz3`oHp)Z%X5Q ziH+qp$g5IZC?hEw?$3hIED04mcH_QksMJp|!nh+XsB1fxN685+Tg+0v3p#9mZ#(Z9x?h^2)L`y@~lzN|UQvnY~e$X%SR^^u~& z8ouXQ?vvM;ZZvx%dB~g@cGz*Sz!aBp`XY(B#i)xQ0hKdTI8XDv*Vhy$$ zDibw~Yg5;8X(eGWw8=*?B8!a^?$;>v7zpL`DFf?tC4<4|4xJ(C1~toP?1wYgb~)Su z{q*6t8d-z#xDGoqfiZ)ArsVEf{`>NZaqjNvgJm6XCgepF?Svw%1#tBi6FZ5E@7cVl z8|^3-$9ia2w@u?h8dh5>?9x$`BJ&?pnCHl#$wQS(R*@338_H9M+2A^iXeL@GFP>Q8 z9?L5juh1Hu8yQ})0H0A>C06zN(jDgH#|Q6OWiha7Ic)Xb3rw8Fsen+%sKxf;soYPn z1u8tf{XW-}Jh4mVA450DVDz%XMf<>$sn;7@8oIzvj)E{al9&}~g!md>*%ZVt%|tdG zuO7t~Mk=TZ{>Dnr#4@Fy4pzz3%9Vha=qsnq(o%$@b^MseN963cS!9fEr_Q$qCxd50LjHXLYhf~c z=nDFS>=Z9uhsNNH_#hP!U=Pkuo5OLfY9q%J`1Q`}a=C}<_jvUpwJz9Qjym~r^3heVOAS+8lqPOu`KsOI(ic@?7jT1#(1XRw??2cTarjenkZq)87;bb_ zXyg&r4G7nUnW?oT)tpr4Dt9e8s1K*quF2jEk8I=V(7-w;h-v4?Bu{dudt#cjzrJ`g zd&p6O!bg*T+d_z|(@`nX2S@rT&xWBmeL0_|!GD8#X5&UvPQS`U*0OHqy8rHZx_f4& zqdrQ5n!-8y{1FR_D{jr3E&qWkxfzH3<>EV;E4R)W<5gnhf}~ES=xA^PYj3PTURsYr z?l9Z;;Y(}KW}+=D>D_Yjl-So%;M-a%vI`XGer#zCl_alHWGMRkONS(>dpL3CvWXz) zEe_L2g|bKqL?DaOtg93%QE|;&ztQb#TzZjq#af(a5su5K~*DwBxLV_vK7&g9{uuwf8QZItn03tNv`ZyIMCt9X^ zwJACHVw4^|BbpQ=$M8r!FSQ+{yQ4ZZj5)NLj$z67L0C36o|{BF>b2gd^AWlI1`s$3 zK{`eFMNNh`lPK|&${SA~LnlX7Y;@-OwIS2ni~GFEl3qtbFxPaH2bbBrwJJ-g>jYd6 zwfRE+Tlk~zGqa3>>V_&+IflyV8ab+zHoIaw^ z+Bd=EDBOxq)>)6`D#KmCP17De-Y>%$jI^eWD>yv(?w|T4#=kh5UE?(pLq+M8q(C2^ zu|cN}{{4qYHPAuMK(cXE*OKfksp1oF29y!fhbY;=#aqZK%yLY_LiwNz@Oza&!ldZ*d zH1hvALlJ%l3gJNfiq`}#9Q3h=D5z_(jC{Or@#S)y*LlO|wjb&4@!HVmT*Q0wt{AGq zk}jzeM+9Ql6G?UoP_P!k6bVMYmJ&Rb*csnks3N^XowoT5RG)VKF(@Ll;M=>h1LG+} zO5lB5Gepo?Cu8r;UoKjZ%vu&S6!N)A+!@*ThVf}qXH)4?>K8(8(Fk?XXw;M8^J*Kd z#putCu^#EQI>w>*MRggMarZi(=pU$31boH7lgGFSGeu=HO|hGAWoG8ubC<~Na&^&` zXiwjh5noG) z6F-Xq&%`X`9-T#CtVxQc?peFQk z*r*gU-W~1`cq{wIKDy{t4Be08C}XT<+%|pHZ4~DaJEVS>X{PQe_ePyIOG>QnTH0P> zB1qmfqk*!FxOxvmL)Ml-Osr;bWboiv@ zK@9Z`x~n6>g@$bbo1^nM_6NH)ElG@3?Yi%!j&$#o2H=ee^X7_bu0NS(c5wq9ujGv`c9h3LjXVuE z*x{vqgM|i~tTNVOlR}DP!`@4xuNn{v_C--R`mYNo_B-{=z8A_=*OJ?pHdXLud!^s4 zx2p)}=Dmf?mdSoRw>4PQO4X05mr}3ZILZot#Cxcm>@{awTPF-3G%)zw=(W=7>3jH^ zDWw+l#$!$Rt94uW5p>ix^~Pj{3Q4qbn9%!n2KUN4+j366yjhLJJ2}CC6*T9=N@4_ZkOvNJ0`-%&CP|0B9um>-qA7C(lWAMAhW2ws_8I95gi*a-}bfbqC}~g2D5vu%a;Ln zfSaUew4c_K&Wf8YXq6eQ+8%M)npH#*6!9T0FCg;gT zIkD|$Wyz~Wn8#0*w_qjSrFLVu z;b%wXMtGlTT~=Wtt@e#!OJfZ$daeGa92MqA z>o=xNT({MqvcWi%s|5$$^t5JW1&`zs8j-J*BRx%P0#x&y^ci|26%2dJI*So>!g`(0 z-sT6CZ1*S?Gx|c?SPSO4ughE-j9uVyi(}6?`x_a)aSnAJ<*T=fSv$~xIZ(J);=iN- z?{4;jMQ`i+!82Ha>ux7-nQnoxZr_z0FXDjqb#U*M#??bmKiI+2!KoN*rH1uwFED3X zbAmvO*@avzKLKZk*ejp>%LMsb)3sPD+n#9|9t~!Bk&iZpY9mB}?$^WbXZH!zVyI*~ z?bz-yuC=GZ7#=NWmD>F>Ni+s%R-&85UQwhQlv9z(B*g;8%; zm2MUVUAW%bH=VWJZ@cVH+?Rokh>G&#(EC5DR}9^Q5XtZfNs&TV_cywvk#Vy~UU*%L zsNC<{g~JnEwN(N)Tufin?geou`!rRa7N1b_>Y`jbL?&SkBv3W7LTQxVpXX{}N@yg5 zU`vj(1~@cE`$Vs5k_ibLQ`r}L)id~RwZ>inKi+qjIgY*@c%Q8ehq4W>;Q3SATv0tA zG!Z3ZdEQCQq%mJwvL~jCs*&y88x&zg_%vX`?ooQ#`nmMnvmkM#Sqo(z7JnItBms ziimRsf5Az<2oWvvSj<=-*iHLwr7<%=AQI#?-`Rqu~E zPh~&rK-i`^zHw?}T4uHGkliN;=`A}eQYbS9cA7k7_yzBp7Ih(2DhzjB8`qs~3% zttfIVS$|s_cGycij>!e8pBNKAGYsvEEFb<%seEMTTGT%m`iv-ENs#HIDS6V2=;IIM zUnrr!W6M4=&g|eE?Nya&>!a&hUA=P^t#o#B$Y#^Yo!3p$hg0wGxtJKEQPm$)s~0F3 zAh6XU3i5&;&Dszi(9hV+i@9_fY&6UxlH5?ryO-a;3OisZP}=D9Pm!TRT%yi|$QOr= zw#kdY8h#U-NK(AAWnI@tWpZ@^C*gcPf{Ee*&75N9>EcwKjo5F;jgON1P z0}6sP^9aA~JUIv9wXDP&Ty%ES^!l8eYzowc=j)^Ox*NkWRGkF&d{Hpaqt>;Xr(@3y zKuE%t;K>Zo6INSw;+9dX+g%lj=SIMl5~UEqERfYL5qjggS*D&+r;P1$=b~Sou&V*W zaG@~a^_XDmu|}%O#mXeL^iaY`X=@5iigHq{QVy@BhDW3oaIYd4SwI&%W!5OIia}{a z8{hM1T%tWvRqwjAb{#K&;SQA%bu&*_7q9JIL$17m-p9zIT3LhDLI3sic{no)`>y2l z#)14{z*yfvk=+84x-ng~Vu4Q1ZXcET>Opx=p||nmHj%PoEmYq`In9$u+0B$w`!a+Q z!DE8_iZ_Ak+#vPyw{JTKwcc@c-_b*Kk)In0$3HVv@|aRVaK*~nh;t3^ez(?GC2KAm z8yHboyiE!`N!Gs+C_{0nW={=A4+5{WKm>^RhZ9=Y4zH$-7&YGDaaen5Gh9#{pkQI^ zDAx&)oy(S$P}AYgI>lQ{0B`@UQ}~FuBWZg)zGgK!SlA=a%#;l)F0dKtkCd54d01u{ zkY7vF0>4G!{# zGcJ=rZq>QzLsPzB@K;q98;JTFs|FX)?ckli^X-6=br(0@$WGW@lw%Lx=6)RqmyY4~ z9lCxI`|fmuR#9Gn{=uFC@FchrC8ks~$Gg;NO5sUcyS=kA{hTI+v@QzONsMsn-DH+4 zhw40>{sOwm4_Ay^WfoY;C&%T2xJY>3Dy+t#x`^|54gc`L2gRDSCO0* zvbi|{MyeBR6Y2NtY}k&LOlLw<9x_=r%v&1PiybPepP(j@1of%S!>TX;SOTfMz z`=}`XHkgtmyY(6_^OLs<3Wc6=wIh?il3q${psX`?#}4;?1Z6l^8lA-|Pn^RWd5-B# z2LVQnO^wr$uP)1P-PMVT!askpVD$TJFd&7!Lo?5EQkAfy(m3gaOQU>pQ<&3m#cnTK zp{MI+=Dd-WbX62ix~?1NBAPEHa!qcZz?l;?t^MmuUT)e(s_!Po@7?-b`n=<@cYgOsqxk77asQ7I=udWN$z~_|5u45Bd zhmyyxH>c+(u1zMvLvL<8UiaVNUL7}!C}LmlvV)1o)LrjS;u@c4+%DczfG_5gz>SMM z&gWwzeXEuWhadcm^~|E{Z|cYJZI0P$v+&8}NWyrejpQS2i%-SBDM6CRI8Ws?l@=En zMFZbwP*t2T5xdjNO4YHRR1{99QkedF-ZePPv3;+hFK@Lrz7T1+IodeK%w^L(f4Zx| zkRY89uq)1P_3(>WcKa{AJ+DFAU-=~7T7r#KIM4DEK1`J+Y!lXrB{?b)*1s#QAG=O| zhEEZqxw~HsJl^Y!0&ySA-qu3qQQk+F!8T+421=I>%U&OU$U#lSb3w?A^ZNp#c={#q z3xX5z!*{L>R!XcG3pzfn!M*m(m^q?FJ|0#TUlMoFh%0nYF3v0cXB+aGWXx!m*NPOg zU;^B%^bjEEHs7MyDnweRoOOTeA&t;?=8?85AVmH057Cg>qTPpa-!#L+L*_`L?dFi}smL9pfq?CNy zk$RZ~7HA-y4a+)-WjxF9P+mPqXQb=OqcWU+XjXiTt@}X75MuSLs%Bdx<-25Q(%19Z zj~D&-g^np<5Zl%~`;9nXDkxaQIX@Ti)HqPabS|~_eqm6_6T^^8Fd@bLDwpUV{bjp( z+^202)Ei9OxEG|eNW`GDId{L*<{gWPi!fN9v?lZtv5;Mqjq(DWIZq@>DrosMLC2T{U%j!7^o*A~e}A^UmWqQ8sv39IX|lBC8Bb=yqEZj~nf z@MHURSM|*i`=?2MH8OBsovJQ0x@w44TZ$ml_5faR$pM$QjNcjel$kO~CB>^W0$=p9 zr|HsTYc%Q>l=|9=)xemwL^NbG(=RDSwL=8n#T((w#MZ9rxdUsL zUoK|h1;5eu4w`BkzkF_Gl4Btz2ocZh=A72R^X-O-Jcmd{HK zze-3T#W)v$&{cO!;hFl6`x;s>N?BKz7pE#>vcUOy4EPO)hAu9dij_6>6~L=1iuS-k z=dP`a=inh-FzEnCIXJ7b6@;y+3m)17r?=i80s%=Q_pT4yaE(ovZuR%yu#@+g(Skve zoU%idA0Xh9rlqWDK=UOl-?;70`bzPJT;A%eiqWAhRt!APAfTD|Y_V-kn5E<1@yeK- z2vD+(j5fPvHa$phll4p4F*~4&eMIZpNwElRSJsr9RL{lGIAyZ9U|qkIkhgh}^KL|n zX*t3uAhkj{Hi0UmBFky0HfzT~*oGlzVWpsPNYh*`NNqS2ggumQ%d@YyQGr+#JA2R} z-eelPn+7-ZQNr^BTfu5l7#i8yJ*k+s*|;RRLbPzm|gl)1Wt`89oY0cc

2 ztnYCmxvQ2{w0FD(6wDnHoOm5dP z^IH8`=5J#7Q{>@VQ8T;a8}Dz$v=*nze+O`^T= zG~2*p(ogwXr#p&xRaXfvrqHt7(O)4`j&UCEqk8d^1%me3ApNXzW!VT5=8nw8H`v*q zixZ4V=Q|7e!c#TK_$wHEn>ZaE)`v?hhGL5bh!57(%W4f1(XMPmlPC#nk$cc&>U=l+ zqt)6i-_E^RsUi4?;rBsC69f9(`MZ?O+IQR@WGzcUg*94FBgN1*)GMI&Hr*d5)AzwD zp|Ff5I1opo2jOJClX;6IhpK7m8I6NX1Z&7|`5ZsYo%p~5_5g^_w+v61<#B}0UHz(nJ`CJ|Z_M>=?iH0imf z$xQ@H7=jbPZ%GT&)51ywixPsqD6z?`bE7sC=utoU;k-B>t#Tc$+{^Ueo;1D8WbgDv4n~S!Te_#%pV7yDni(v z&-kCkS}&vVP#CFSRG?p!@VBC`xWi$TfvopOkwK#jWV)eH#KKT08LiIt2X(#$kdtyj zolJ^kZ;fO zplA&?n=qi`WeAQZujO;Np1*W{Zl_3r^JDTtaLS+d@Hq=3i2?$9ttBIbdDQ;UNS@bn z_{VHC=SO^0?4_mDjRw)%DPq-zdi*l`MKSd<5PoQDr=Jmu&BppSskIe*=_uEM8PHc0 zjWu0+{zK(IWzA{Mm)BIJh*u^*!tHTW2294^in(5fXLTsy-&=nv3<%pULy1WDdkLha z3_7EAUHx#AOKR1%9dQih!c1 zQ@5z!GXU0(1DU1Zhl8hi?Fk**D@tOhQd$0=hm`|c0#g<8*FZN2}da$rijlMV8Yekkw$ zS!(MNveOi?KK@bs=Ot0=63A>hWcF-RAG&3NWP#eZeZi7hKdma14pY*fA=y7!{uTW9 zkevftEkMp+!GGZW3;{Am9|{LO4~Hz3{YN^$JwGqmFF~2{cdWlcfWcdhiIV^1_FD*` zbo*TSf8hNjZDYql2h9E7>HozDNGZ-523htm!~DO33KjhK@dv5=cc#E{@t&7Ns7rWh z%R#qitMzTay?EB|BQQQY4vWQ5;1UU|lkvN|rY@m6PO-dk{~haB zNHj22b%y_e2c!c+HV$l8fT{Ww{0~MCDb0ys^?(WagW#{Y|9_zW(>Rv1LBLG?O7s_@ zxp~P}8A@PL{bS@msR2wq(-eWV@=LW9zyVCZb`^@99mi8(`hi-PDQVEWBu-rdt1XAc zp6x>jF#W9(ldHz%JwVxC*IGHx%qt}Pr`@uzxzKT{-0$;tv1Z~2mN1+ z4i0SLoE|PUfCj%u)YTnl&sziS~CEfBEgIed)${56DsbO*-cKleY4=WS~!unpAuk?0>7|M#qHM!;3;L9~Bl{FCs5 z!v9q7rxxxMRpF8u71D!LwY@PFy)g>?F}i48tXB%2;Tl&G@pru!@Y_X^ktul;#*x8g zddTriU(rkTQV`Tw<-CI#bT3)u-nB4bteh$#OS*yxU6v7I2=5V|7I(9RJ%WGUWbPYa zPLhXn1fSK7b2J|uS~%TBCh5p$F$3>ErY;@N=evx+kD&iti`7HAWdMEUgCg>v?gI*M zG=MUl|BWSV01iMQ2ryU41yF=qagMG=8SKl3H;p8lKpP! z9TUXVJoH9v+QGtR3GxIhPwVVC^uZ;Ebg1UB2)Vb^SU)?d`bcB@?}TFGO1$q^XJ9(#-DeW&;Je`vhhZZH&r`bwJj0jB4HY zP}_||AeFewDe8h}Le;Ps%{|Lw>Lufuv1I@NU-T)>Kd2|Fx^+N+-iC~7c zvu`A|UNX5K8AGj3J?Sh$4$vTc+4PRqr678MtbICwAbx;M=(hOXQtje*i~be|@CoMQ z6`}VJD}*H%xms-KQq%$g%3u4HG!CTO%F8FHUA)PxFc2Md&;4`!_~T=NM|At$k_<|$ z-B=NmTK3a8g2PcBub_~blea)by`VDRM%Y%xWnf(T0)q<6n9Q2|xZ^P*8Il371uvvO zB$hNB^qUOnC0T#q@F0R=H=W(V-4G*`?@)4c1_Jzt-s0wrgJkk9@di{O(qvZl#~mY2 z$$}(#EvzB@(@>;w624dhseB-!EUC=NyCCem%lU%r-40!6Uhz7)K^Fq+gDTie3o)71^ifALxi_C2f=A{{7zsLrSgn_g9Y(xz`7n%30{r-0 zPJgr{0USVI0Ad^g(*(z=Z4n&6{DV8t_W@$Nlwri` z@6o@*FeQ_#L&nCw<_gqaxVcG6gn5qdk@*=QKJ_KDn!~`KO)seRzhwrnfW9kC$vK#o z1I6F5dzgNs-hor51<3w;&i|n9r~UZ^TLec=!pV(KE)|B67?`zIT*eMuD@x7bh~{K+ zpc%p=6ADJ+DMIXvmyE=;2BLr?`>}-I!^o92S+CxeHa}X?{!7F#*p*+yS@MHrM z3|v16?1mrI{a@3qO)&r8()9w={om3}`Tsz7>+f_^DTd|45{mejNZz7Bu#o3IuNIN< zYL@V)fHIYpCpHf+rErUjV1u7CpLxoXQ}RbxkIwto=HUeRFPh*OL8vmqw*ZK2`|G1T zUO5q&FMb+NV?}%Cpx@XLx}X_QkRShaAbYhJK}Zn4#rfF_I^;Rf>`$e zLa7@0-{2nkX+Xz{`V;(2vZlSFnN4UjL2P*H1l3Qk2>XV=7S3l8xwSI-y z{zU&H?GyM9z|Nr=LP^t&vbY)T{gOYH8>JCcA%_7)z??75k0zM+OaD@UEz`q>6j%V; z?{0tFegEAA_8AWwaA1XAnYITPHwXS_Np3!ilU}-(pfbNBL9cEEauZ0lU;Jny1Da5) zT~OdYG(CkbT=ayPx=3k0b0#x)#)tc`*aes+&1b+x0NIAH@fmdCp@7@&4FJWBS`F+? zr$~V+6x@d-UbkIfljiIWT_{!jBRq8W=`Sb0+pZkogae!aG&#`I3t}n@=!pvdAxX<^ zw+=YKF2mmaf+b#pp69)RH6TO-nAY=zC@z#{|LlVHm3UDF; zP5_n-=;;G7wF&gZ`5`%=UFwe=*aP-Yo#Cj=q0y@$9^9tD=Kg2-xy9c_0!~KB>W4l5 zui^`B`uFml@ZmGjpMgI;p3tWMS>y@L)3DrBp<}Ph&kglW=4xsWD!LNp%hVkiM~kW? zS?Z6vb|ssfCyo*uI2~Lrfo~F-4b+>D?4PM*hN6F5sI=n(p469UKeT?L?{V)4_Bpg! zHkFlA;p5EMxHGxCF_^>aGh2LCyJ_1ISe};og26XEb${Qq>FnY8f~R=)(`_!hd%z!} z8)R;oNqp~CY%Vg#uz~M!^mKN;u}MU{PAg&A4z4}CPOzd;tGtGG9ErrJV3}aSa|Go& zt%@9+!;vb4eJN=b0TBu2e1A@25lG4DDPmp<_w3^fs^nII=(($h=H>>VVMRFa_&Eve z3dOUJrTHhi?QbZ%HI1Us+F{H3;8r|lb)g4I_evo);rB{gGZFWJ{{jIMrEFW4)fqYN z&D*FTiKy1Auivc6ahiRB>eB$A%HQz`cs{RYd!|@Ri2zVVk^`#CjBib9QG?}})!;VC zjm9#}lT(2zDFsm7$}HJlLBc%A)M5$q)K%zzE!nEjfwR&s`%sOP2dYrKKy}bd4yYo~ zJXBR=fvPypL-mbYi~y4kl?eWq7y;y4UAgqnxuqhqoC?#7Pjvnii^@p>u4lw$t1jKYb#ITC^LcgVS5E0gix&k!e3y`Ptfr63gzvwJOs2v=eUke!B@w4Bf}E4qT%3ntAS13mtNN zp~&O^c4#6gjnF_*&fSXXrt=|~>j8KkdjUMx;U9Q%bm907$EZBU15zs(#Jz#WeK18I z%tU+h_1JiY2kj1)ZR0s|KMsL^j6gfBl`pFv zQfPDkYdE0F-;a~}gdTSE6aNNpEVm9)y2vZ5R}yeBkcRZ#IKtrqKq~~`MgUp|o&%Kt zpyGl;54&;`!uC9gcZ1gnh&{s8L2Ab}U#pp4AYm0nX_1M25;Q7k9zo)s#)yoQ;kQI4 z0VQNe0Jw7eMg@&h8IfNAJ%yjdK)y!SLGomNZS`v0r{7H)A_g)Al^&KKfb+EM$H{K) zcY}#$8-C6Ji}i7%IX0S&7M}t39j%onDg$gMaKK@JB>@hP^^mCA``z9G-~A`iLpmsa zHAG$esHG(0Nl=EMITf+HHaRkmnBUTSQK&9i0@lbEfJ<0{idYs!%CJLU%$uWSk@4C0`*Z zAx;9;733D=;0Kox0bXdVuMklyjK~bo@qhDgN85wwtb{M@8p!SZDI}enSy&bynJgGM&wWT3%~`1O+?-TG~q>cTYVkmxA;H+Jn>ovC(3uFS`f91IF!V#@Gxa^1}_J@dn%ifE$>BQD6oPff--~gv0`70PznuA>c*^+)n_vC*TIO z-oab#vioZK)*=AkU;9=X=l>A*-eFBHTl=sTEEGkhNL3M}29Vwrl_nq{O`7!HdyR;I zfE0s(NQp?3E*%LFktQG@HFShfq!U65CHcm^-DkVsqrT@ozrC;T53l=~x#yX+=3eWW zXI6-S4w-DQBw@W}BFuZfKD3Kk`AL(bF~4REbwnTYEfXc%XwyIb0k!#n+6h4Ik6@)U zAQ)I+2RFdf;tPg-qiKNZw}A7fK^F+ZPnxQLU4H5bG_fJcf|v;V(bUhiQ7aoZIqvWU z_r&ui)jpY6H~UHn%(ZDN?eH~$DS5$7AP6)dCf_%KFHOJ?C%}Rr(EPZ09I%Ig^FTiq zFx7X>83stRhm0IwlIfEPW)l)t8WZ6b>U#MmYGuAAM;LE#%oAQf^)b_!2*@{SgBWlE zktu=5CxOu*uz2tkn1UD-gBa+582mwp12Z=PeG$+g2E`x-Iv@s|AO@61fy{rw(XC}N2&)nC7pPJzI&f8>kwM_9CdT{J7MLcO-}4QfWo}Ed%v3H9Q773zYA^# z55g4C-Wh~O1Zb}e%$@;VK>MFG)d34qTLfgfGMM8B&E+BsU!h0L&BqbK$^(r~@3|w- zxH~1i2}eKDr(<256gHv)l&8{rZiARN;Vxi0pt}gry#q}5gC@}ZEzq4CcySb%SyT>C*Vb_5xr@(Yaz;ppWZ630XJ_`g71G~&k zkl`0Wv`&K?!9EZE#}X6UA2g8mCdlxMK(~n$xmNJhoJf*W_se;##`@}88WXin~4*_noO9i z{shhYOjbvUV7~-oCacR}$j<=O4zKmeqPk#}r+9Bq06rF=no7OjgGa z{YJf)?&br32bDLv^hrRv83{8NaD(Qsd>gggy{3OrCl1T!@)xnqarWvS&vft;s_V39o0u8#uJZ6Ly5 z9iYDk=tJ_&r{qL~rMr2Lz#=b1yOIQ?n;c`NmtmTtJ}lo1?gVPH0W)BNUx5`E0!ID{ zXuyy<>23h}KBTA17B0+@9D#L6GyMnmh%n`NRR(t0BCcD2$sSVy$-}>C1I8T&K*B2uL5rSM)5|kgEY1P z6mSZp@wkDt%vbwB_p3)>DHo#Gf$mzslcRruAkYGn{0S(~iU>&m6$pVLAaQ>M71VM& zn`*SyD4A~EW6U){(mw_rt!hN*RexqC(}fkbnRxM#k$`uy8LGG#HFNnzqc>Z(OG8*Hi`xX$^hlGExz4FM@F`kA;>v&G(;5mrSSgq z9o8~7O8l+*& zfZ~m24h>+I2b3|BJjG%8Zxq<*FOo2a@Hhz~Fmn*jXZ2I`AbZfcYB*UZmZCYLbTW z0}A*O5x{H(?gEnm${JE;G|DYZeT=z9nn|AMkUZZhIaq)+4D9r#Owr7T1DI(51y)OW zSiTrc(4e(jW8@dIht(IYTUrfAcH0n8_lG3(rCY5`JHQp*(sslic( zlQ-HF=&4A;tYgg70`!an6p$JmVZKpdZ@*0~$7jUU@+g4$M-3CE77%e;-J`_j$Cwi? zM4JXn!)Ol4|D~Y`d;xl%BZB4eM4JLVIej>Z0v*AnOZ0h$(IAm zLDDcTBA6|h9_S1<^g&=5i0KaI0AkV;!4`p2K<9515OWhy&C)OlK!Lk}&R~xp1Wx@< zu?GaCQ&7u&1rYKHaF~dFAgy-%*#Cq_(rWUc^DB@r$2R-`&KWUfgVenVCVMZf2F@s9 zJkfW-YZT=2H>wd(P10&0Ps4bl?}FE;F`!JCvcdTTP&pvm`wBwR)lSK=gO}$|0lY&& z-m-(2=dXYd3;{3CUqLY#0?vSc!XF+K0}oCD;&*TcKpc?%9e`7zGr0FpSOYC^9Q+kf zQp;HbjeiAk)ZiBe|E@vYDLL!o0qH*kmSfBUKx%L-Q37)UsX-#Y;EC=9QnQf!MuB5V zJD`BnR{_Nv-3z2P2NaO{8wE7f1S9?p>>*{UAOWp`{vge*!I8TEhXC#c`u76>8Vmj} z05mQKLw*H7N_Q{>z#kqEgC1b|uRtD#$hXc~T10Xyvxc5&e0xh8NufPcm0UG}b zFw}B?cz^*mfz&^QbD+cmQlA4g($63ka6scFAkosF;`Kz+=8~10~_}3!xyB64rZGdqA!v@xA zLmS}okh~2jY5xjfBentVd<9UBf_L1%1K5xkz)Zgau=_56+kXaMJs94Ic0F`Ro|Wkr z0Lnn{qGRR#HGr+*5()FqipZ}NC}#ew62S&tP}6&>0u*-C-&d8&pv*jb1ok};!IVLX z1kM(J0GJ3ICzO8y9rr<@2#UI20jL*;6zyCQ4F9SizZH^y1>n!GO2@ApaO9_@BjC=b z3)WtS=ZOP_J_;<<_D=7?Ko2z=2xI?EptfGPVRm->2c1o3jrB| z%x`*wkHif{zf+^7_$3MUfGQ1gd5Sw=1_e7gX)wc;vI_^n3@^b9&xWEOfEm7$|K0Sz zwEZU;3U*_=;iJSqHvOkx|Cg2hIs1RA$qkST?n@63f4AyCO@AlJccL0+lgb0dLxEmJ zy}`^t@dhW4~-6WxU1ujvxvDST!(x`q|K_YkvVF(25&6^-n-q{Lphv z3Fc7nI2=>3d;C*Sw0jJmxnutTysqhOa{Mh4H$dc%WC;EkK+-(|+}{RIG6WmIWM2Vn z5}9C=Fb1g@tVa7&XaXE~82$+W=T+XS-}2z6*1vl84_OB*nglykPeBN?Og1SmNWY%~ z$U+k^{O*=t&iCJuIUpTN7cOLfGxl>&{_6aHXYA*ie9cL4c>QkKKlbF` zW&Gwz1P}~tUi`pK5Z`VPfb$>#Ab3_F0RJfo^0Me_B?kgP3g!cwG(QLcNX2dto%0|% zAW^IU`Jc}B-+AH+UR-u48MSZ5e(uTtVP*e?C*UM!3(k_?E&Ja+AyTmW0FEg%z>~lX zK~oSN5)gnoHCjFp03yY|f$RYt_CLm)u0oe#h z;0Yzr1RN`LKy<H+!F`Tjdn@AoaE`_}8+( zGySI~f7`PEG<_y+hzD#rUjZDtD?$C2077zH!S4A_LDB9xcodHR1CR~gp5g9w2Y+Q9 zaQ~3?uPXvsS#A4UR{rf0fPAF^7XBA_3nT!aiL{V_pA&A_|gQC0R^e{SMu*L_H#Eu zKKg=J<{!p>>dF6MWj{CeQ^EScxd9X!cfVWqzj@LR$n!vB5DpulNdyoKq`CkI07#L3 z5P<(@aslj;G+#55CD)KHoy~7U<|w~1VD7Yl7EM>pRb`JerOvM8h;r3y6hi% z@^>x!$DULvTVuy-2*G9qCHql@%=(_LNn1~Th0LBVXNQ%}v^mUn`xty@_pR5$Og>@P zb{jw3wd%=F=#j;p9wgtxRR&pjE+eY@@R+x0oVJ<<$w)tLCi-j!pD%>Q%^@ayT{)Uw*WsMSbxe^A?aC?^J&CNC zR6%xev;v!rBEeirp?ELmuBO`JTZi{+A3WOO6i&&V1k9kXuc$6v>Js-o0_{EyyWPI- zxz6IX!#{#4L=u(}D{!(}`o(<_&XYk#E|@WRb5B|e4s!+f>dH|emD+*flZ83)tmvB* zc%j>rvxQWtnm)C3mmSQpQ{ib{p2bo%Wdw6RT5j@4^4iL`qI>nt1Uhj7o>7Gnj~>LY z^N2{wZEj_?Xtg*wUwR7uWYrtfvL%lwIOXu|m|de7!WleNECKxO!PUZcu1uqF$0vO( z;1`lZ_tqVvkT@s8{N zZKpBhvT7^o>mxc+XmCuj@7jm*F4L}=ft&dzh4*NWE5&+_Bb6D~OmP#o&(cE_hOdU# zbgl34AHTq?k0D&nxKCj%HOa%R%{iMkVMSprHrF)KdCF|e|Cp{yv7^iLkFw!|IPs*S zfiISPdYrJd!F5#K_PQ;fD7{jAed*D2n%*kw68i*?6^qkcZc~+${}4U3A)Lgw=q7lA<{WHIY8<}bX(aCG z`|;LF2yflQoR~y}PjH^{t-+&@_#@+4Ted6$ComWz3PG}pxk}-^xz+t`{wdocrEM_= zEaQZzMNdnJr(ch2J%6@WYkeSo#+RZ$MP;_cQ9a6mWxSI-rqPtn*`88pSR2lHOO}@r zooX0${h@5j>Z0x11*Q3QVHyVdWOzzeJWc00=M~@L+vdn%p9Fj|{giO;-OTVw_eY3$ zUoRVnSSgQ^_ZYsj1#^5}-p{GxRyvniAy`Beqe6!<4SsKJ-$?uPTCt@wWYSMkp?d?f znbG|G$rvX*_>haBk1Vf$`%KKB?hy1va8}?clN*nD?@uq?7^#y@i5gEy4~a~)$ZCl! z$NRWFkUNob>-rrUVqQkB&e@(RKTGwILEQ=lOa|j8Bx#h+z?CVL*Zj@p^T{X66*-2f z?1WRu#v-C*E^+gpJuj3*7O8xlcKu;}4UJ0N!eK!>oZ^SIQV;XXtFMcZ9e>nhw6lP1hVE{fSw<{L z`R+~CwKb1Rk+y9iz4oT2KZi7v8~P_+$SLeDAIpD6CE2{_Kn&TQnqd+ROetf==H$cSU6eaeO_2xG(435H9fOT%7YIE5y|7dy3rh8-&^ z{csVwqlN4E^lgBx2e=z#ly3u|it^n$NC0ajx z#;o-|V+OD3wq@-|p`V~y@iS!G4y3G4U+|^fKvD4YSZz%eE>Xhx`t5L2XC)V{2SwhG zTb28m?>=1Jzj15xaQ_&oh>WiKnMU|h_gjB<;_#9dPZ3Z0+%_%GN18Q<1mV4t77Hnw zhLA!1n%nPprN z_u45VyW33nN6(K8t7b`&5om6|z(rj!E*mAttZa8?O-iMf?S7dD-Nm8 z>}Ni2;1U(?bzawd!D+Bxs-TXysvgPlTHV71G7@((h(mG0L83RM;(Z!V%e*%><3Ec; zW9B4^Du|0YLmpVYLRpZ+BWlCik|dYQL^pz1NeTGgC2^z9h@R3RE=cr(zV1pwY<7f8 zus0?KGbh|u<75emn6ZL9zjGxnRX+NxLkb3oB7N98m?DnDFFa{AGb}K%aTbpt1+V9e z=H`5%&B%(5Dt-jt{iOY;$?nni6%|`~)ZrLYL9w>lux5XO-J*&n;o9R@59sdsSExy9 z9TuT%Br^2VuosMr!7pM;WUcCVFle8bOM;9wv?@_3`g&Ai{&f@2i!6b86+Jnz#bJ-; zuv&Q?!|XRPk{{1#mu|xwEzJGea~BL;rt1cGTjq!A3u)t1BwcV-^BN8YIH?p#0=^}t zrgdk}N%A~H@)HI92^pNHaN8~`*DQKVXpMH$sI0LBx46A$$>yL%rd4HzwtD(yb$HY* zsWr|v>ukEaOALR87df8)Kn4|lJ_{o{V$1y0-hn>-*+-r7n;8a@h+*={uM!*Y(mO3C&5JGsK|<@%*WQKn4?RqqnpR{bROIMImZaP4?K|EH4t(+?>l$+2RKYI6W)=Z9TGW%9LM3 zF?TeThSJ~wdYaiCViaV66)N6%1@ zsgoXzXeJ@I&1yoqbJ+B0&7kh&>ykjZg4ugDuNOO=UU;Ff*XavcChX&!OF{)Z#>3GH zyHk_I!pp_}7EOWBtK7&3S{9yI7BQLat!2TaW8t|DW1i`SGRlEkUaC5`ZNhXPFu%QS z#@ik-hxy{CF#2BSdR%Gv3&Td6Tz!96*Q^Qg!NZgbq_S=nVIg)y5=*(~=F4d3@?7z6 zRqv^;CyBnZ8kHPQG)2xGA&y17nNQq+6MAc}Bu2Rs3~(;kd2PeX!+lQ=-&Jg9Ps&AX zTaW7I_GKA4J}y-&?O4~ExTvX=+nropDM@>H+|oO#0UR`_B@@~^6b${bpQtMyU%t<8 z=&(AzR`I#=+UCZE;roS(*u0ffjsG;!w>98CKI)t9JZPx zV&tOBlwDzEFuySyjvg$2No3eiXFaDxssXD`YUmPkvJze6far%?o0Jk>dh4Gq@m{d=?rPmQUpAo8Gh|E}%SUsgdrF$7wu)+?3$Z+m6?|t#afE zy6Qz;pZ8iu_BpSp#mTK5ds{8>P|oBV?_>BkJJSPea<}wvpOMaJxKq*K=ny)gW?ZRj zeAgjVHKXCReP~zBv7cT3Qy+ZsE2ipZP|Fsb&d5LLY*=iD(yotHJ6*> zDbR?^x5CEMF0~bDghkFh-OtFP2o`HH8Z=~zo0j7g3pO4!mT^o zdD4D4h*#1DSZu>209ThGk}e{WF3sB?fveoj7R%Id4Jbw@7F{y`>nnvspN95xVPL1~nfUhq;7SnmsYiBZn)v=-uWaBE3}SY7z3p75Xfu)9wyl^!*C(Anx+({3 z8)ne`N#}omwWNtMK~^a=S4Cn5H>u!uB9g;@xdP$V7m-AOzQ5tBKmzWwxT80>3*vsgmm8Q;KuPz#;GUxI@!R?U(>H_<#W?uGJd~!Ek=`${R z(`8;{N8i1H3IN?tLHAwIoeR42F0!X-+(1o$ZVc$Y54wv$ckxAb6U`f_YaFkdRXJYq z*@Es0&|P_v{gT!VR4V8$0^OcBT_eW)$RK%>4i zbV)LDducTLG}whou+jCB&2*Z?^zIC91G8`H z=PTTM9>7>u$qB45wry#2yKjm$8pBK2{Q0I)4*j^J zo8A%$^!vqv*`R*uti!GlFzXXiDNCr_O0sKa8!vf{!qX<0Tm9Ly5E^mzi?I>JyRl1n zwYTMWDpc@T#=B;

1Af;ub@~z1pXS)u8m3oyFp=lv1QL*T5W#YnsA)R~d}g7e~Kr zhwt4BYq+27)aIiZ6Ybb!Tu$)ZOw*C;>*7mLVrA@(`-pXz#C%sd(MImLu5MJ2r}#Uq z%J16^%N|o*90up%AUEAt57xO^blgWd#=AKbI`7%AmOD?Lh^)9s6+ND}h^u-rwb-A( zL}YF|x__#hClRmm*s=c3gZLtn#)QXOYqK`%NsXb6J@V;N5vwFgwcN)UM_FPO+X~oY zhwjj2Ok|6=%sOZir3sPVzFc76FaaiRnYvwJpmjRSEw5avSQE z(qrQUTR*olwRgqH<0dm5wtuX-Ok@-rq!s;!_9OY#dcPx12%-oD(TW1jb1-mMB|;chQ&pQpEb07 zFkFe6OG{`Olk7mep1Ap`@ysc6%O0 zNm0RB(fIR5q$^)mRw4=9+>=P=bxMNSTQm|LMyU0~?R5pNoZ8nfbtKDfs(2QPQo-C{qZ+;^fL5H=mWai`&RsdNQCQ!CvphvL-Whk(`Kk{} zkjfx7+Hc>ti`M#p@Q2p zErIb6Mu}05tDy?EBp2qELbmTWPz`~?eY|Y@fW9OCW6UUpzu+-gZiN1}_sFe<(@WK2 zdgB9Xp4^cz6fO46;0W!CIj71lame(n#OS)ChBA4snZu~+3Jg}cp+Y%R4ta&ty0tl- zIxEzaqYi1 zk498TMR-qSPC@*VqQxy8vW)eQFGFY$k+ov@;djuZx%z~0m38$fd@HYhV9#=4QR81EWWYI461BTse1jEnj4 z2eH|maB$ZzAmh+Jm)=GqD2+a0P1bK*c`d}P@d|WeU)u(@NeCIf&GZynb$j(D!8KEHzeLWCTe9doQ0)#F$_kECZM~*=4wK&Mgy-p$qZc3QN*h-qNDa+M zIX6QKvIuZQ3LZM$|9LD@bl+*a^S<*z0Qy8-8nX? z=z5#u)}2E4nxO}CcjlmclJpjDg(MT7$YO8W(g$5HO6uhMbbed~4J}NRi7k=vTH8mF zcb{qRxP>(mw3RsfdSczO^l?JM?Mci^zyx%mhpc;P^~${Kp~76Um$iCGSpMlkM!)s- zEE;}&Z?N~uvZi%!58aVu=zvYPToIw?{_fKZ+uqDPnh$~<#McW%DV0!{2AX@kz+Vjn1HaOa1aYyH8q^lv*OKDLH z$oU6&XCm<{1>U7$@4%-K$yqWtw1zWj4HjhLQZO-6S9Rj3>QNBShum7*_nv$T!tK8$ z|2P`)VHATL-HQTm8Z4@bz@0?sTAG3G(XSy-&O&?56A49w7^F%g;ruK#z0(=rJdbLk zU)_~Ch_rcr(OF1#%FJP=ZzghYvkQ&%+vTHk7mAs(XK5L|4MQX_dt8-YHiwP0Grvug zcm5ZF6v87C378(t*B9E>LmXqxo2JFzUSI8cB+kqIgc=eHPl- zvfa*CePLX4V#Px8DzjZXi5IM$L`TeU>gH9|0Qv6ogF2)9F^Oq6RMuKp5?O6NcB(@+ zU&zy9&n0J}a%?#BS9h8kqF6KLD*P2=EGKpNAyqVU?KLBN2|j*f!BulYi1u|ec?#bGCKbW-59u6GdInFM;p|N|sdt@NT0ssY7_=94gO$ zta%|p*`pA>;6)#wCBarv_+l)-O#Kb3Q-8}I5q^C%5E@Xi8*zgnIAlwMd?{cF4lg)W zD&xtie{I^uRr@9!dH@;uc~3RaUVwD^x(iZr1f}ArXot3*b2k+3v_yNvMhSJ z+S-SVZO*Jf^Pcf1f?v%&7D3qNA1A!1#p`!gATys{OkG=>HiJ$o4|b;IX~v2d+^vW0 zLzRP@2_?c`+}GXop?%DIyAv-$Yp?9%>-W1Y(z~->A<4&r1zW@0Ax|^N9}c@5E0}G5 z!h^M6+xp}WRkaUmmu^KgPF&gD|dmVWGCVo$%#nn-Wh+;pOsl+k@u=^F zUR#W?3igZX_JZZOX z>MVY^b~ZlNHA+pVCGt~Qo~dQ3-ks~hl5mn)D_BQ|p-Pi%MVnkvfuq2)oJ^R8X~Vcl zdF{Z|wVStWiK`KqE-8}i@p0)vH{q;J9*pV(S+;vM9tA1!Ms}JFlGf&v&6rkooh-k5 z*e))uJ!Rb#xth`Rx=h}uAFiEP#cN@f?bIB@rTAoG;W|4fNJBM5D;6PlV#S|)Nd0Z=HjfP+q$a4iLWqV=xFyPmi1lxt7ppn zFiIBO{??-L{N~nXyK8S=;A?w&H|Rc$@8AZekdaw|s+Kl_&`snf6`!yN?o9WlB4S?= z*Ha5GT+b;`e;===fzqj1&NrZE!>NkCj+6YtV)>f7zbM3i-62h%~(3fMq=iU~= z(zLwvS{bL|9iQB(d}#`lwEYIjjn?{RGUBaQ+sBWz(Zkkch5TM#3rSyc2<}U{q4n7= zLs?Guw``*CT1GYBeVm6KV$wS6@9wne;AP zD(wrdh*5N<*kymq!_Z&rUFg}ZNYuB};S2YAJUYMnLW-1L@$#_}rgTGzJVQDpM8Bi^ zfng{DbEVM#P~j&shk(V;8QeL$87eo++*-%&SC+=cmE#%4&xN-!oEXY&#+p@zl;C(C zRqPEunO?JXcc*+f>;Gaa4IOxKolCOAXIG8K_fqs-@6zy^8fa3`-3WX|uWZ@Yj=I~c zUH+;JuAcqIYkVY-@HrpbR4&N@*~&IlLpwewS#3h+tRY>f+><_^xTfz*ksq6U2R`CuE>h9c1u*~ z!hBX1AXj|rrtKT^qzyaE&c)@EtgOw(pgYH1Aga_+vS@lU|MHFbG~tTb)i3dj<#C-} z&->+OQ@LII-Ca0(;|&CFlGd7k)ZXxn)pmExaxkwxPlX}&4bodB^<3Hc;#9afxq`%* z?`w)4r*h>>q=P6_2o)aBbbGh1v#Vv&mSxn;IB{y0mILB3pD6{mulj<%)`2hUHqTOj ze3>vbG}#=%5Tca4C(`e`F-x`#GgsXhhU!EgH75wS7HN-WT3wo3viO z#fA7}aeBL2eU2|Yl87ru$Rn{2l3RmN4(}E(ZD_`p+w<5lMCJsRDBxW0usgG+or0UV zGDKX&`U@!-$LE}3%mpJL}sx&7yTH@J#a%Pc`T+c37u zqDU>eMyG__FgEf~d^)>MNPse@*MHNJjhYT@i%DRk$}Bn#`Fy~7uFa->**tNs*7k;*@WQt1w)@?d zl|2EC{4o5$t8nQmlejRkM8m_yl-jWN&X`3=xEAi(8Wh%uTR3$%GOlrGctS$!Ht!3r zA>}rIC1J&=bMX(e6S^1Q(hFs$uOc@j__{eemuHe|@P*7Zfo?^j5*^6-f>+NkUa5Jk z_C8D{+z@=Y%Ccsp%E6s78g-{WE<#{&+)BR`<^AQdb&QS#`pWQ|)c4Qh-x}95%s)a@ zjZZK5(~dVKTKh8=6{CuXDspR=avTuz!yB68{tM@#M$aCD4{k&2tY@KnH>41C+XxJS z(Pj@S8NI7QwawU~T_l2spId4o818NpLZVV?2g)T2;x?}qBVVi5Z`dd;_7kzDwdh#- z^yh`fcDGI+GBRzN{&5x1`o-Rb+5`}LEwY;g!{`TA54_)$4AtKzkP~p)og$F z+{%Ha#HgQ#aq9g0`4L*?f%BauqFT6%$7VM97*!>E!$X3m6m z89Qzp@kbnt)hXmAKHKd)z0!#;pU2a1wnYV{w>VYhX0Klsrsz1;cx(_~h z>}wGkIihFm1d|mPA2Q-4Y}c+dU*bnafR_=Hqt*oVBZ*e?>0W)0CqLuurY!Vy zuu3hr1l8aaBz1N9^J2$rtwH-@x4eMAz$nfjI8 z!f$?_PRp+ksai2DO3o?WYb0kKo@+V36WH**~!mMUdN=uYToAf#EvV+TG141wOYro?^ASRt#flVy~*FV zC_)gvg%HJ%$`aIC4Smt=_ScWjkLsQz_Keu{NlvdXgv;iK#kx>;6|Ge;5jy&^D4ht?FSTc)J5DOtQ%+01E0<@jV>ymlh` zSlpUs-P|=d5rR|2yLbdv3VI8R9A21|%3YB>fdAA%*z=i^ikUdNCp)*af*fk4C*W?3 zL*b9gQ9XswBjW*zHiftSy?2s^4|jYpQ7`07BdAzt;UC2r8e~iQCb-|TJG9~&NOMzh zi!nSe&2dvnAnBrbWY4tlSi56YZxX)&OVLYCV?UR5N&c|NrnZ(4Q+G;(3q?MD16!uT zezeFpGlSk7ZNXe>cYIzbSvo#n(Mw-V6poQ*AeMPCdDglj+)duur0)c&{5?M-Zb`^^ z<PMIS>Yz`>zQ-7xrHwA%|5*fVk#f{kM=$SX`}at zs~)iCN`A3Q-gTv|7%Fnn=o3gzQ$%{;S+-8zpB!jM7+ww0(!y9e$Xgt~^?J zxb7B5b~g`06qc1&im&g^DPa-&A)?_VTA`yKdy<~XKHwSi-|4|wuJj&wTG^TFE$dxz z%O#_x`h$w&opIra2M*#%4Fl0csaVIcXksf=cJmh@SlwrTfW>4zxNX6GmLV!$qlP2+TvdtL#jRvYz9$cPEYGJJ)9 zH><>q!hop6BMl8%3lE+>!OCXg=CtbgOk)M-WIG>nm7XhR&~@!XeykL{|NC9kFZR8mI>hN880g((CsW<0kjItmp(4;fP~A<_{a zGUgXmdfMC7VjH(p(-Yo;Fn3)MQ17T%UY$DcO|7A!oPV!N{gZ3$YgQ$crkg%IK5ulO z2BB!@5byb^I_-w-nfNMAQ#-RtcGC~m$*&7eXz|IhqLfkTxzbdye24vMzTT?Y51KxH zvE`+MDG?FxJ@8Le54d?_1mP`PPPd#~iBINFf@EN>cLkrnT2@$sDEYff$Nr}GsK zN?v!GC#7`m;#EVN7HOQet+1FQ3Q8B{*wB2Txn;TVEO+vZY~47r!k?=zx%yteAgVxF zt^7(|0&8pY@X*AW1MuL_&Npj&Tt=}=e3}yVuhcPJ^Kg_F@&2)mPu3a5ddJ0Xb1SUY z6;xH_7R=1vW8_eR3U^z#7#4FVuu@s+Thzccb%W0;6fAGD31~xq~5D~IT69WdsAaGN<$YJ7q%05ZiRguUa;mjcW<*mxh7W~ioajk zc%@`|PG{&$j;}66>;#`wQ`2Zo`MqhD4Kj_*zMg$E;m^r03`}y{!|4gIGC}YB=Acz7 zhAymXZjPSQrOC<)ANZRpU0t8**FKx(Q?+=fQnyPQQccoB{E-dDTvGMU`u3P}K4a_} z+~sXs-ch^5g?Ns*FZ>+2?KNr_nne_;rfnfd|@x4 z9UJuxpnr#(RG^P8kYv-Bf#HjB3Zqjt5#yPXW4>MsXZ9)0JBA|&%Y}rBfq4SgVgX@m zW1S#~>LVb&&{r+&?}yA2YP1db@w)OQeS}1JEEJl9AOHHb_w~{3LCPB8C zY%wS@k-QUp96i4KZsnweJiWPU?G*LY_`p<~#7Crld8-*>Tm}CE5A&J6=QS&d46RI@ zvUMZ>ba@+-k!+(C(1$%i9YwKYfmQXKjwn}J?}@dvt`g`Fd|TG~`1NjEc~1FMu8LN> za?Ad0uV7&XjPH`&Ryt>AY+T2~=Ml#shn$}&FU=kmt7&*6Pe04HsZ_|fzrWmX*4P+7 zBSEwMvDIW6hHQ=6&XIHC9#x3%Tc6jKLVJB$wimFWA-UKpUt>^)O_+uS@z+ll>fUC3 ztC58G@b1lsc*IiXCZXKJZ z|58pYPPJ#9bG*4*iHpAaS>tfl>wRq$Od)UglXA>W`vQg<#nJmk`m3TNcqdEKDApKe z_gwuZQWmFs6_YmLn`KvQn`hHZML5WWla(COE3BWBPSbI{df-8Ga?7ar`Q_AhoK*Pg zxM!8qjzD#$$$8ti1=y_aVfGsssx*QJ!|s|rzfrhIiZx3pyVB~BoVjeDT~(*ns^Dw8 z*~!CYME*N(-8Hja6=u~2=#%FZ$lla zSnydms*~N)s;Ym}QNOQ^d39lD(AbME$Gk`G0})!tqerSa{92XnC^K<0+E$d{nxr`- z!L*l1HbGrz9?ke9ay*jA3-zFmj{#v{YGjqGeQ9K9HcMeP;rYY_n<)84Dng*eOGwfn zWkkhU!!8o0)gW~E-JI&lv1&*R!sColf$EBB|yy((9NK z^$nTP>(5#ucAq-Vlr)4-x!uSNpI8%j=MYo&C+))v>$z{TJe^Cm;k(^%0(>asaZPi) zHaTU5=X6L*phaMOCp;7Um>qnZyS7?K4|l6M!h`Kf6k&{O8l60qTiCS1o_sZILVl$` zw(+8heMd-7MVjBU*%t80eABgaZxbt~XBM!%Qy;eVKf+4;_`IRz&@|y2i&`;+q27S} z4VN>-4$zd&j@Xod_2u@CdT!h@E=l;-=xzJhwmO4wSv2Ymnlv-f;|`93tCgy{d5|=8 zYa8Y00_8dvZdmeGHw@=o;GQNnGBwmy5KF6lHn8IKfqbpSijx9VjD)l!CVjvak$XybE5glg7z@0MpRom*vo<9_z0I$g7ZLHeZw z{L^3$Bg`aqqhNxu_128T=U2fKu%`2_i3tJzi z_Bxx7m3=}9h2w2#f9KPGtn*^ybIrO%Gc0Cn+W2Zy%Ez>MGu-@qvvp6$!*qI=o29uO zA5Xu@bNqH?-;Ff9&(rXJs}Ixaj-_dMUpK+|MrB|;OxyLthL`ijHk&kIUApiVl+O^OIfJrPG?2In~p*_C{3WcabIGX z9b_uh`ifdn=UTPE)+^I}tCJ3XqVgS@=o@d2G-q$tZG2dB%?H1~hXZ8^-UVb#i|1?e zWj6hF`F{N>%gns%zh9P0*!{-VcT~KF)D2#L7))b1ENThyQQmsuvXkaH8vi(4ow<12 z(uuq}yjE&r_+s#|z_YO#2CL&67HI@61YE#r+gPO{mmiStB< z?K?hYS9*P<*ID~Gg)+Okh^swCeLOzkxw+h1CA-*$O)8iC37?Nx%l?d?k^V|(nd4B-)wx1zGJQY>WiF<@bXuGwIYN5(Q}z zg{>XjQr{bs9OZ)n#&UVyL>u)kosl+lrVfkbf*1dS<2~?5SC{i^kWMC;9c0XNc`KN( z$C$7ecW;%Mu@_~=$>uCvsYHYmHtyW@B56;_m)nO-PLI^D5OxwijPq)IS4&a8s|O45 zVeW*@4g&FU#=IoII2ark!CEo53CBkEjAGC>{+c>h>|La{N~A3k0QSLu2Dy%QY`~Y- zj>J-GLhL5sGHtX7({*o&*fYtx*p&}_ZJ6?@53i|d_8jh1v~8AFTNd>mux!K z^9-Y^db~=sx8#0Sy_bt`WOO5n?E{NEkodw!$N!{)f9RAy3vQ0_$u|5aJOq(GD!dIs zj5hqwG&jJwG?j$&9uEW#6}IYv`0uIkUnHD(06g&k_!RLyrY0{Ab`cwk0>AQ-P9$4E zQI1jxdP(VEHCwluedAzX1nT7YU6XakEDppV7`H?P{#d2-L@hei_d|ARn zarL*g$fy7S;dky^y}(?-K2N!m+ltvAR$+tA=fxpO4`F}ZplMJf<04?B+~!~;8cPq)*e;tWEZamIsI|Ckpde^(Zh>ROL3>}hD@|JB#Gyz14PKfT$ z`}+#d9hJ}5C2Sv7YZLrHw<0*2d`k<$z!G~0k!`CBhK#8FB9F6gA~j7`H#o|16#-ET>mXHPwpsE!!c+u$mf@g~ zp{PaS=MngMx!{+)IQ$Q?EehO(8wA18ZJeNJ5keU?%&y{e#FtHuhL`^~Zt1f{V6+ne zDfQ+d8B_rY^?LUgDz_^f=3pV*l_UWHO_MM*lba{wi_m+bbe3YRUHk}u5TA-%#SIN> zy$4_Pv?`4f2y8rJSlc9l7zs{#oD3oLfr%-zzT`zQQ9JM%Ly^#Ki%;m5Nbzi5IY{Ge z5*DTrV(e>43``nUTp`OjOn#+Fu+nt-lG9vAGd#E!xC0219SPWMtWKO>lxZhi4$#Z$ z7_Xt%1_4c6{ZWslP4)xfi0H2xt-qJkq8Ozf<`X3!sVipEU~GT3V^k+rIVx4m3&%oH zjY^k5h)|s_AfCy|Ez}qCEVV_T@yfQcSdO-YyF}51#_t)_H}DaaHey;8E-SbtQINFB z+^Xux#XRm^=nkCi*%iI;%+R_hSv}II9|F0GhK~NlhJ;h-OqJ*F_LiYF{P8NOz%8Qn z?QK@(jV-wZ^es{r86HQ}S}#|CqjjmnkC$3F(P~&{eDNpaF<-m_0Af*0X|`n5)5OE< z-V*8=U*rxcmmaH$hwW9%SAl>Q#Y-{+{8PCC?@$!ZU{{%q=A0$_4E*f2>&oy{?Uh(v6Y|52Hp1@vUL){s=9 z&9j;uXSo{LyMT-#j1(z8ppZWmqNnh7twis+(W)PVyhx(HO7XarFrX$N`eNFMbUB;v z&?Bi~x=7?}e$W#{yhMtyrP3IbMR4MzK#fl8k#p&^s6d;r#(M0wdlRnVnMSBZbX%2d znr_UZW)`*Ns<_07W9MY*+;&HpPq{nesK@HQM<2^fihLMFTK;83stuV|$i-FcOX`zj ztnjcF8$f$0KdB};#)#_-H6kY6Mwyk|nC&ZhC~_^iRg7~*UoXhLqQmB3VdBU~6$yUP z-f}Xu2u4KtTI_YYOdrFq0PwMnRxjblhInj2eO#J%^?h=`%~=iV))!D_(N%ODSLl z*dF{(Ayz1WR_Gx4iY_5c+=qAZEfpsdP0i!aFUgz5IIA>E?WOQD%V@0P?vaxdL!;QN zqzOE?Jrg6)pU=KUq6}hZJ#yX-R=V3UNieu+K3D9g{d8|05MN+?tJ{mzi z6ZSA#(1cbZ@h46{y%I?zvh`4FALMEuB*;nd&rPm;5{jaSnw{QwGW8}s+{f&uqLDtc zu_O>@w2mZSI@Am^OiWj}Y)ry+b$51(M2Jm?e?g)qf?ujHNiHNQKqt(Gq;AZUYlZDN zk$XRxxi{{=dq~qVIZC83R5O*f#e_tXBU6@Y)=XdWv)2)_WK%+ufnDM6R zb2L$R8QxQfh$VH9jbF>qpcUg*A_1Z_eC_zPeqxjoKpKFbD`nl;EB#2ja;Kq&b)a(m!GFDd3um|{v<6ja2W6Tvy6i%52ikibnJu! z#PwgPBZ0R{&$D&k*s$x)XeWRwllP=g7vKH}Oy~)aijpRjG~p@J1f?V*n{bzuMj}v9 zN+dCgv#ot}uAC{B=h7;J`ORfjbMflv#u?A3mPTV8-0`(m;g@bTje9{1R?b<}npiJ2cvnq=Lv7n>D$=NY1Ubb}#?J(G}@uaPes8=Y%#3g~~<)m(^&J9SJR? zN>U!YAT3sQEOR{9y252LM@*-aLVJ^wJ!g^Mg)n_RB(*nDZF?$7Rlx=NiRE8j3E#=d zf71MVRuMJ5LXMOQ!kt3}!fz*%=3IF>e<%V1?kP#G;1As^yrR?k=o!fG=n zT(xYnPU5prG-ECo@)#Xo9SvBH7Ub#4qg{EuqEuN-Qjmf(LI#2f_k>p+>G*8FD>wo5 zwO0{+*~4D(J>>$jt9>LSq?jooG$8D<8)>ZvM5A|&H`MS)XbA0%u$uV8lQA@;nL!`d z)R5Pvzz!gD-Ce|BA)BIL)ymtsnlMB{9m^#H!xN~mL{nBG7v_)&Rr26!m<~I*!hYdV zRQes~mRYb*m1v?6OI9S3uo2TGj~u~0KV%L2^55eB>U;IQ|MQ`D|0}QwXS$v-Xq|68 z>A$*ZSi#@qxdD%izi9WHtpEKd-G9R{v`KF^JX~iX_@OhJI8(nq+%ntR&CI=V4vm(j zx7uc-t=DzEskfT#lKwo#zfEjA9_prT|3$ZLyVVl@Oa589)v*6!*e%1fOtaC1=a${D znt##sO`iY3Wa{2{em|*Q*86Ar@4wuuG2W-2p2Cj*`u5$2w;w-sf8F{o;yv#~A8-Aa zJMNF>14ny-h~v*dY`dusUxd$J^+wm;)SV4)j)aF-w59mS_2SQNdK3BQY*-(PPeAE# zz1X9XdnrG=bHhBE`?a42{o_*@RIr$jCKzOFTV7lK6E;Pl| zDo~rSx-W=ypHBYo+asE+4kWul;HZ5y^=`Ve`&s2o+rFzY>9#-YO||VSoN!QLhNxKR z3_6E7cln z=lT2lm+rVXec<{Bt#XWC)vtQ)s8SUreezM?nNBen<;B~NAK!o6*RZYj0-wa^MB0I{ z3vxS#M>+SdKMR`zct?U{eecdHh8*lCf(L`I!lKRO&9yVbr)JFb2eOi6{2e0uQq2(%jCDG$;QbC6W8oO_T%y10uN5%%J{_G0-1_n-KI!_|@3^^r5a zo((Hiv`^?ND=6UA%pLRE(Qy-hU?(A{*Vp#NHK;nI<2qAJSxP27b#A;{ht22Gxpv2h zJgnJxfIs^3gKFAj!nIwZVt4*x1T<77#RLX`$zR4gW$1T z{D3%=@+mHq{#M~_I9aSuy}PaptouHA()UJ@CoEmEYW>Qy_B*Y{H1j|+n)*)a*^3*G zr4yF0L4Q8-9Tc!GiFZl7OX6J;ZzRlU-!G~3x~X)ONc+?N*~7#Ma?koR`ZG?s;qc%s zLl(dJ*%cW7DkPP2HJOAp@)d<|33?7Xal&5C>q+I!J&y-(Ip5 z6bq*PI-ZwGHFEC z^d_$ax>ch<-9FN`=||K?>xUoF)zFtXfi79ZR>n2I-@A1%N`fYh#2?J~OClWj_4_ux zhNg|R?a6E!>^KdPz#r1)xnpVP!d9{Ug3jo{r@dFGD{AV&FSG>dfV1>gFAJ|Hj*MYL zBm<=5Br3ps7#Kq0&%78Z_p3li0zEwGLPL&^44{eV$mf=H_V@O*&p=iM`&oKh~Ges2!U*M(2q(FlG+8z1l52k-}UaPu&kdS8M2)%%kP z4&h^A%{y=UtvB`N;{kjI(!4_*UC5^3RXB7xNI(N|bkh1;hRhZnoV4^L zaT|qQ97>=l>BG6fv>@(f zjoc2y18+VW;PI{pearLX`ZV+%P6~e1JrG4#Wd<7}s6DOFpee z$!30D!=`|XCWj$lHgt#R;scu3hc#=xOZ;Fmb^5N41P&=4uv`LOUqMh=_lnKLHS|Xw z=w{ixEs?0DaI=!al@zX|a6cr4TSofKD}gQ}g~sS=AagEDSmRch1c`MyDx7qA4|<+Z zl*gZSLxcAFpMU=J_Drq$P9B)40mrA#2d_w1M;h08F<~(%llWQOyEy(G9z!7SU0C)M zLj(X^U1FkR8g8H2>p=FW6FXR>M}Pvl)bg%(sHtX4AO(|$3V&T=Uy$Xf^RE^J-&RiW zMQk>d2Zq*zrwYa`(dgZs(3Eb>@*Q9Vd43Qoo`r@MMny95w?j4?;)WeDOp$@k={$CJ zq9!Fg?t(#S+ZB!(x$j`}Kje)?!6IlFS!CSa#OIN(F2-`FvD>?Mi=Ifb1-&^czAF2r z3=)I}F;SttU1d1BsFQ4@1l3|L9IOS)dSV=;bLOJ`=^}s?pk)Cbaqvxm1!GWxKOfC1 zL8Juypn$4{tQuJ%re~~C+txS7nedc_X{I5iHJH(FHj;b6*@#fhJWk>lUY1BtSZ$)0 z^wnyX2P~R&o4}#NLh|gm(6QAvBJ5sZ%~HQ#6SW=QIoggzP|92ru^87?jYccsZ0LdI z9aRf&1(%ECdjTAO)cv`tc7jHOqj-3HBGNq53~gbN>rnAY-Ju>ANfy6 z$&+?3Q?Ls9p+@AgfNK7H^6o9PWnq6;rm;!nzLpgQ-Zex-10nJwUVRa=hYkZo zTBM`Ue8tY)ZEtiC*+RaDxQS$@__qvfG7G=o8(+a>V0wSQ`v1l+YT8TMVHH`auG*Y) zm)NewaT94aUy>PTc4WR(EWP5&0c)-w6y3wB**V4QYOPPvpc?2WIPuqP5n z{1QkbO8eqt(#a9whk-R|%;?_Kxu#Q6e83aW%*Xw-UBrpSH<7WK3hArrjwJ?}dQlWv zZ0M@qC02?wtD5o^3ALpY69|5=@FI(1A0}z#vIXXxUiZ`c{tIS>;XSDJU5tVZ8ws!? z$KSc1ObK-Q4)8|r+9cD){52e*D)-u}L(Qye|I`d^AO3$QYzyypP}JRn_kK6Tb-*!DiDyNP!f@9CaU7B)E(Gj3q3d+PF{l>v^=GX77u?0Ed2S;qfu;-5Mo zucfz|t@6B-@qbIj|G784Yo|W^OM3jDZrVm88vkdRRvG`d@%X=!-;RHI+x@jGhyMjn zv!nlBjA;p^n;UN|hXwLjK1E0#tDgjt3u^FE{Umj@iXrh7MXQ;fR@5S>6QrjXAwpR= zyP0#>%{eYM703Rb;+3VyutG#u28^)-=gJR!TgZVD@{Ou_JdhW*%$7>$XzQ&~<@oXBf7td6`QNget*HFp zG)npZvE=_xXCL1l{{{m8UsZa5@b<4s3c+6!H3Ix7ssZ4${PMA;l8=>ETY`Sc7G0EW zsyMpfm8Fz_|E|SkS8}~^kn$-NU;Z8wXv7agb7xqz4@J39&rnWhFE*X5{s-dhK~#6B?zlVk?#?4~x;WtN z$;3Y6v;Ds&B`H+N>rCW!BU6h`@AuP>@87)>Cnro0=EnRls9}TI?#0$*dapqm-T!M! zmRhx9z=ZLyiYexsW-wI-M7)){pe{n>n(FJtf&9Vu@aK2l*++6Pq^(Z{v52vYz&G4b zGZkhdI^;;TtD}WMMpqlfr_5awj#cu8<=->`$MCKT|2$B)`tb4im*0-NSdFRs;rR7` zS9trXs$aS~1v;u1m_tYWYhodw{3~TwdlVLs@!7Aj>mU9wqU_PleWAM0!FU^t5*`wsqS4NLZ8mg*z+wE=n{lrW5~l)u zl_bEQQCBc*P27jDyPrW&aqfGV5T7e_?znPaWgYlhfRmqhPj<|jd4ym6^q@Ioe@-&f z+&RHuLkwrWq0v(Kyx$vZJ?a(J^Jm!D_5HbnZd4koQ;v@TE53M%6R4%2OP*;smowSn z<*X{q@<5ZXfaI_Ho}chFzRCK!mpphc&*;76;d{BppY;;Q$5(m2H?e~n{CG&{#jL>V zhgeTR&MCa%_)PzE!VCoN*qwC&0I-Jc41*nE4D#P|gE*Ca)^@cM_DgPn!HYCMpefxo?~3*ZC^nnAEQEeUXs6cKb(MqU9q)o>(5}+XJ7d(>|ZuWz4 zeH1h?f+mPhVv`3D=J=pvJn_c=vxdthxbBh`Z)PO{2>of70m!TGW!Jm*z_t#N<*O8qH_SgZ2#F zBPSRbaK?&nFa(NSD4v{#*NL1aMv8jClgpluWjg=|`rUA_`jC>r2L(3@~JoeQbI$itT}wZQJQi+{TG?<37HalSzMwZBo~Jg7+daI5$&fAi_& z^!58s-FLsAb>F=G>Gxl%3C@bdO_=#8cDwki+a)h*8iFBwg}>-4h5w@5=jR@&c(M<$ zb9ki_ICvqLXx0e~M7?yd)WIB7b0->n%5L`pt(QWKgmOgOk>3EdA#4Fp)X4L`%_oXe z&T9|@)0tDQ!{J;D!CcdhKXgByzB$rhnqfYm=pYl%C)k8}(E3B3`vOyMfZ9EPfyY>~ z#=T|CFlz$hM%Og`DCnQgAoevJ!dD$KMRLYSE1Y9TyL4w5PxC)>7vp5FNTeIIAnXwn zdo&D_0Of%KNZGS>qrU=%K?^-ClJantdH#B)WHawT~3+~CWBj81IB8JeC0 zq%O#m{|g<#V+S~~8`dbfw*ae2WWUgl6zLFUgs)hKH6R0sA{F{l4EU2~6jGM&0npw# zy<3tB5J?&u_W=`-hyj3adf%9=H{EjtSfr50A3q*{>3%r=cy@Aj^8OSs zVCv#mhjdQZHIU003Wqm`x*C1qnEiJAM@32MfMLTjt1^Nc!AX3Jss8#z8D+5 z|J|pbsuV$y%urTC5eF7AfSF8hP%w^S3OyS!oHQ6x8URL)fpvo4l^nCK;Z;Fonh663 zSfD2Ohnk(p4PG5GcEER^PPx)X{D79qF006$+1khyF?4_6$i(z`GMRe!?hWO1c+QFF zEdbRAs^|GYt)O71IcT6aoRo zJSr)sZ!9@-)oLWVw!(Y)d$C?H(MG-xEdGJ)<`Y>)=qM$-&&2r+8!itTL#K($s1iI+ zsV<-AaL4XyD>^NeQ^*i=o-lW6twP%Hy-#%chB|R4<~zewWe%t#F}H{T{GnqGxiB-y=#$g zK(`oRnlf)JejExiycdC{2g-v#>Vwo10CqP3>#il>Oj=)w`(8^rMq9T4@+M0&6fADAOMq} zTCE1#+p~&ZZ|N;VZ?@Wo(QY>ER>QPyU2m&PZ|}!OXevi&x9G;4Rd$OFP;{RpvT+cF ziJl)O?G?fV;Ts3kaHP%R+ca$RKWdzkmQke*$eGiV;2|#@;Z52b`PxJCLjAXR z|GUQ4icu$V=|;h&>jjs-YZP3&zO^)lEM?PMwLMSn?@;&$BJR&8f4qI8(TN-?|GmiU z65$xy#*px8Saty41t8Aq1C5AOH55N*a#YsGFb1<)k&pS;;nBV!|vFY z-k}x{11}LKE<@AMA}@AX6GoMjBnY!XDv`9*sG0wnFIA^Y&4_m?{eMdTpVI%Q^#56l z|Bo}x5&vyAY`qza|F#>Y|IglhiZU&>LH0|BHSk4TSm#G|(h)8CHn?in@;cu3dGAY!*HyBiS7v!?S z5X11vEH7$7r=*3cY7wNBjK5R~u}RVHVhXEhNAYx4I2=uhM`w;l~2q?j}Ho1i_t*9+n5)wwVgNZFBA5gCQgUZU+F|Ms4i>;jMOzI-~3=;JQBh9PXRsmH$n&8@ec^oSC0x)5H^ie zcJ7YT;Yr@Bp$VdADloN^lf$sRD22vdQ;*-hd;j{F_*{7tXUd#WLF(y^`;LDIEJ7Q( zH||X6kg*NdnRdymEjd+w*pSJ#gwI6Rb`YOQk_#Aq9yowyjRpT@{?JU4-j84w(LES; z(Z6L3BN_C`3mM1aagD(%vOfCFg%n*K;1rX=Uxi4;cm604&^hYTerg;^>Cdp#?=dbk zwkW=A_NQt|@I3d5u#cTXzA*SDUp-N)A`FOe62hX`nFx+T1-`5vtl@M~eFa|493xX` z24y9ibeY&_OC3_0K+sSL+R;=Ut%}mY2)V>X(Rn#v&t_83>P3d*t(j~J8*2`_dXBA) zWPoBiXF`^<99W>}&rI$w9Xpg$Q{zm+uq(tQ^=#IMU+NX*$GRloJrXV&B`&U$s;LvT zD-l+eww)p^OuUkJmBb&FCTr(-o(LmorgGZMH)nIjb55M1BCQ@jCF&hjuWao{X~hR= zwa4f&4v`ohhF(2_R7(twhnlJV@BeD?$GcLwp$NTF2%8ECjcfrEHpy!)X-10`L^$)3 zy{{L?tYt(8Tr0+8rzSY{>ON0{1NX z)|B6pq2zMVtoR4-6?0_%+d)~0_r#vOe5u9TkpAdT5LC8~2ZMK>H`&iqevZbv>_s|_ z<@roDE(C(R5mvS^xb_(Xwz4Z1(D}gPKlJ+F_EXE~2>?@; z&r5M_ld2AgWibr=wG%AtT)r6>*A*)-u>RnNXM(w(*nI!I=*uDSh&a6av~W0xGI=IA z{2QC^CU7{*Q~Rl5H;2t5V)ypb!fqbc^ISv=I^7bt6@mu^&4y9Ck|=$Uc&Y&H*q|gu zOqV3)GoJuyXTey{g|gG>mdLLl>=ZPQiTp=0^8Zt!`uk5zreP6t&js=6bW6lnAU*}n zVGuCP`OXe91@{2__!(3o9)}JBd$xCf3KhYaUwP-yxsShO)PK>NmTg7je@wGk#{X|Eut=9^Jf`D;D3bFF9 zyen3e4QoB$5%n76Z)bvxdVH;Uq--nph+?#l&7EF&cj zrItGskLjP6-fY;tq;-_{waNT)=*Hn%0}b&neC&F91;6yrcC)BbN{aFuQ_X1JyxQn_h9akt7mp zg4$hPsNp0;kWnb+1zIl!Xm{B_TO8SD&h)Xc&0I6K=`!5H=DWrc*h$K}U(t?OKSjV! zGU~4w*gYV&Q9S*}DNyp>=pX#^LgZ_E350U)C*Bws3v71wI%!3&DJ_@d$r16nd>1vvfS$rD0SF?a4BI=5ZWC)xF;CN@34}{C|e(Kt( zbKN5qdN~8~NxP{;L~yCT zD~benb$m*YT>Gbn^dUCr?n70?l88dj@h*lvgj(k?!nxxSidMlJR*Dx(UUc27SLCM) z;uXAm#rwp%vF>>G$~Zb=u^`&ZmwAdsOT8(|XK-q%8lsjp0DOX9&~kHq#~qElYqKI( zpgo0HRDVkSW0d7;|P3;~Qmz7oUz zVK2J`vpeom1t_Z_Ud!cc3DfM3oGV%$E~6dMTxdg;4w+YoB3JSMcBUTmiQu`a&@V{` zQjSXk6fxH%2LP)Tr$~z#`y>EGk*vcBj@;OJ>^3(2hMB`RcAt#@wo#75$A_Y2LvUb8 z@0&v-t8XSP5*-|%1`ih)EI@!lD@pX^SQJ@C3n7a-h3aZ>rP#JFgksqc-dX}%Rxzb? z6w5uwWF%V?+`dQYwYg$?J#-k+Tp?x8*=I2(F!LsPc)+DMn|U{RT0SCIF$;4Q22wTo zP#A-Xa34kA3lSQ@voenP%(t=tF^3ITlJfME7R+3E*pd%iGzEBm7DvIiz*IvTyu?hi zhY9Iw_AqH=vgo)1t=z;;gopnTv1X;>gjraeC`u&?h#jjU5`~WYGMiS2EG@I!Tgy<1 zB`Cy(7PusVS=B7_Q>O1*tDsL$34KyX+p{)sqV|`vi*v+(6^jrRV?wuHdy|LXfL8A> zW%1@16}adq!&2pNR9xoAys_vhhU|O`U8#*@v2Dc#pXE!RsxmOpuM4G0%Fw6sKu%Kq zU(iU;kV^v`|mLDo9SgdZZRCU*Tfm=OzB`3!&EURT0jm6!Kb zVUn=^-+f2xX&_ZOQ;mc-%%MM+>kMy25h^q`dFDY+sK|J?&h%>J-E9eBH=nf~Er^IY ztsZH!8^L)+B_PIEj-Tw%#fz)O$9sp+p3nExyCdNl+GVf*4X5RSZ0nADBcggqvpOQ+ zgdPq=z>(iYKsR3-?B-7sc=JV}cfx>3LTvu0d*i_Y{C~+0kN$Xn6viOJH_#qlzYicC zf3bR)voU0#!-&xbbo@u(i#SMByYjH~p3Dgs}2oC}XqBDOxp5HjrFr=IbQkpm6PbECKh!GTgg=3; zba34LX!I>i`W5tldQ`b*rUBBF%`Vm);eRjK5Mb)0J)QqPZ$<$S={RCN6qgrSS8vb- z%%}thYn$W}A^r!u+R0cubH=_$4o)rD2=^L>bbNwa6s=r}Xn5u24B+^TMt;!A&#;BZ zx7YmZS`f*vRq&gEd+Yixv~hh6sDpduLJx2VNCpzt1&G%@a)3v@$pmMBAI`^YIQIs? zSC_^EP{+n2Cjmq=ZOo&xnbbvy1`X*9dpUdm<~=-yNx}bNj5SPQG>TBd=!gz=|xRCM8xdy6qMmhs{ZtrEGif~*&rjtEB?$7V*)QNXjGcJfI7e$r( z@X002^P70mQgKW_hTyTT|~Qc&t?heL3sp3AX@moNkPb3P_l!O-ZcH}ai;>VIH|>1saiBTIF)(H1fU1zGpd6VKZ?n z$QHmhMz`cuXf|f_Tb$mm7HKKi^mo3Nv}=7>F{R)0m3+VE7tX~9eYitlLF7l9T^6WTqD z{MIVcZxKzU^S+(%BD~j=gqf==D$T%uU&Rm!AIstmN)#S|9oZ9;ISE4oG7dn4gE%1x zwCKPJPirnaq3|TGhdkOjOqzS-CW0Lv#DVh&N>B&lgT&mS#~(i)f9ZZW{&;pmknFZM zbupd6;e-+}IN#0;`Si`9E_DJc|8K{cXjuCD8?F&VuS);|{51iNIKt$-3>LRO$2d42 z*PPn%e_;&F&2^Wt`MB4k1ZXn1J9j()+4(-f4V_=;$TvD76!E3n`4W*A;UE1vK;!@Y zUyZ*%I*efAt_r!Us$qolDW1saKeDY~NfAXRum!hxvGacvE$$*NDQq1urfOoM6Ja-Y zcH(`;l0PTRm=N>;n7ayKR#jYQ2Ts~W!b&nGmJ(0_z#dRK&3I4rEur*GoF$?YYD`Rj z2qem}LuJ&dGnn@sjqW;XnnX^$60tMdKZ=r~B%5+9khLM)_7Z7864KuIAc7`=GBOh}YveiJiSF{HA+$&;!b{|iH?aBvHFZ*U>CZ<(q9q0A z;Ns6AA47GL!f>p9Z{$SMDKU?SifYj)9tsE*N2evWVf&CzXx#xV*CX$;H|nlIpjujd zVl{mi5d{tsIuJC7!(`_E+=aKL#1geYfSWH6)uqLNEM|-2shMn)LBNOEOyK)gHXTR& zB_uF~ga+@_O#=sH)efc-+zn}O7$#7Za^(p!ND1mB&8#A`UzXp$ek;p z(NrA3hj=-AHS&5hjU_@`&i)ZKepK>@U{)W+G?EsfnjVg-gAS$ZVXpDPJyX_Te1hF!~@+x7h=QWUjzo>5ZV# zJZmG2-e1Jf=&VJPAb-E4Nw9!vP|~MhsY!H*%xgIV;=+c+oOZihhQ*@m&772A zo`mjp30={NwJ(RVLc5znM) z#`FIw^8XlR{+}Nw|1T97g#5p4RT>~$Z?(*l$oy#ee=_p_HkwAW8O{IGv>IjppGV98 zla&8A_FBjW1Xw|8dv`%`m$Cu9KosLA|3x%^P~W?`@y5y*aiLR#NMH67+J3asxZ zU6PjJNb|^FvCw)tGD)vc3tJym?rZD|EqKfQa~{dDqw-_}9{JYp|-#!@Pyr!|3RcZOF3m7pQ{c^>u= zK$<8Dp+R4~kqKMlgGd$>(w|Ed0%-jAa3-rtbc+`n^BKjCF3@QYt=8tCB4~QSw1-`H z0Pu}Gy%V1@{puws4$jEAp_;jvBsZ7`ZOICHck%HNeMaqlg|2jxjRFbzd3n6nOPUF~ z|4rEJmz1aZUCd(rASBH>b%0aB8h_R9+}RLg<>zD2jR*W{hh1C~`#=aj;!7V!pZqFV zuPPOl{~p zdUNux?#K7PpT7D1gW4`pOJ2yXW~8nrV-C5TauWvt{eCl?|bV$Sv z31I1s+W4HiV#J%^C~0GMe;{v9_LCE&wn8c5~Fd_r^Fg9G_#a%Qzu9aDV#z7 zO_-X)2y9w)zNDaJPTFO46q51<7?}!CBJUmpCnt&vg(G@gGt|%eb z0~9kWCTxHb*NJ5o1Y7@`?5KeVTcL1#1u{StZv`q07CU6_IJXn7y*~5E zHdF}DxnKo6)R`@)%y~Xh8_oL{>bl+XVx%jR?5T>7k?$#118EE-jrSSvmphcnzA2g0 zhcA-dY(y$_6%O~8B61P*;mxOg_zQZx1GU2& z{{yR4qk9&S^J|3qxg%!^GUI5(F0+Z4NR-mcX>Z&gCf)fG<$;u)*-E~G4Ak#e$uxh_ zi~XZYrlSnovTDIBG{Nd5eJJT{JyQUrWV=}m12=4J_(py_Cm5q~`)zWW)+!eU@JH z!^h)aemm~IIX*iE;q>)?hsY!AZVIG%Jd@HvM5{)ND|Fo*IFpFmeNz8nMI4n?kY(XS z!yx&y7%x}Mn01sa^-^g{)a0=dqOANYIl`0Z@z6*N3Q&xh4SyzNLRcX_>xFo{!-TU_+x<9`= zK0AARTAZ1viENUKjxe_rE|y^5O)g}G(5#WA*2H3dHSr{o&uYPuuH|!vP5LL>Ta|U6 zmb-R&hu2U)&9AP2%buX7d*h5}EE)EPp*#AAUtMg3)mh#z$?VYZo?=H&`X}C>rBTD0 z0?Usw_YQcT!{&GX+wmU>i~}Tu8sP86c@gitWCMN14HX3vv!fADv`+|tKjK6b)DukwhrnACz_Wy%`cSQ5BVaC~i7=zld9T^de^3Ny1nNBLNujQ< zTTNGM;@_pc{EUhusp1jhY^sv^J;Z#BL;?o?t2g(ZZ;mtJ06?4vjNJj;JyeCpR%u2x z;s_GNkk33W`Gd`XXJV#!?bO=l++dDO+hBAn>PKD^>bf(Mrg6s>mhj=MU8? zf-H!*2w`HYG(Ip`y>+A#JHiG?%Cb~=hxk~^@Avny zQwoc4w-tn|SQTxdC{Oap%(9^xHZ;~QJnjl?5Rp4Ql*^4bD{}r^-r>*Sc83C9eYsTn zMQyW-#QLqv-)~uGGNr#CtF*K_hqBUXEQixr)V+$ObYGqCSK$woQ_6o@+o>IzC)|`5&CoZ0xfDw%V{%v7VbMm*HU`o zl%6=nOJA1pOZ|h*Mhz# zMf^;{Bb{JQNcAr%;8~({4%v)L$inuSm3xI4NnRnF_MQl@+57~bhy*u>C!*Oc=b!Ln z`XRuV#v5u`6+R)k^@5DXb?pPt=z%+R`m@mk?H>graV_*a!L@gnV8IDkp?Z`5>%Ww|G3?0_5fE@hd1V!HL|zwoCB5V*m28-a@jSlGvnO zWEy!dGQ-QSRqoR>zOghO=f=`_DmRwDkc^$$&12@Q5weD2>Y5t7dDuk$8W;v2DDuqk z6gCf$6gFaA%zKbN$oEJi?|}+FguNF^b@R|oPj>T=oa_b-^5pYXCyEibBta`lk@MB| z1|cIWiVfjS!QuvR5jB24{rLXfyHFU&njaBSGPM1og`k6uqa_5WcrRZUt@O$$0UEKp z60+(E$uyL8>7gnrEgAj=*-pThR1q&@S&0Fk^0>8dEi2<@s?^1$>s_W@b5SZ#K+_lc ziD>#MgX5ieC{O3*73?drx#RhbGj;nk-Lap7)kpjLH}1F+>Jv!aPN1ixn_-X$`Rw@L z2}&ru$|QKIBSJr=r`(+d6MGK9c$wGk%eV`7bw;!Jmj7A00m#OfV4+ zC;ao3s;0JJ`DN|WA)@w)RN0^cD@FR{gs_+o@G#w$K{z5?68Za8bOHEOZOF)AY7v72 z{wI1t&7K~l+&!jVsww=^k8iJkoNZ)_c_!P4G$L<8^XjsDzGA7uc-B{#C98jqtbW1! z$wk<3CJSCA`z@Jn$#hGmyE&#CF>9}Yv6h8I%K9I9>wj4B`X6Rl|6?QdKTLi7^*^Rg zf7VNQUPp|)>TMgTY*8gaOcXC&Bj> z>=5WEH@KKb-lR`#8qZ{(7}PeqRkPlB_}Ke&)*Ju&Ts8^eRdk0U`fNC>XRYc!3H{G# z#PvU`)c-b9|Iylr{zsjq6H7lfLGiOn&F_cP|H!td>witVX|`hZ9~));$4Alse*gIC z-9nqT;4y*l5(8T*dndEAJkEba)infGVf$e-O{4aqC_I!p$0f&l=SC4~fWkWeAA zNSAaNTtp%~u0~#OrrnXt=PtWPWXwnFBZFr~wpSD8)d}Ptt8mTs~x#KG@r6Zs& zWCIR0fzG6jEY`5cvC~)cZ)fWHv1m5hj3kEfp&O@5H`s?w>0VBIH_8+-!bdm*_LOI0 zp_mbo-tR-v{UQ95q9aP*b078T5Sa;bLzh%K4WBc$k90>n;$0l9WZZ&7f*6d5?m-`) zhTe1r<4)w!sZBYvdTZ*=;Vb3V-BPcN{ z0OT4ZA6jqVO=g&iW9r?I$hzJoCLb8N<8OZ8k-w|?-LZ4W&zhjy{J!ntg}%0E}JmHZ{_QJmy-u7gdq1^8{G}+6B?NySp?O$PGxhGx&e@{t}SLamL!! zeB39bun*YlXL=*eZYEI+LpY~{d|!7HFrZK$?vjj6d`8tBXxB!)RHR-hDlo!472b$d=ylZ z&iTPsevi43zA*o)AkkW`&;8{-r#mlrcP;Wc+q;E72UJ*Q^!|dA7g2GU&-)8*97iDW zb0ILFaKfkwQ-P5;^U;jyK?b*MQpnUOg{^Ty%Z!~1cW)k5LTs%`q>hg<4F;QXuT$a= zg%N}<0E;<7;a{(`ilt&eRr)@+FD2<3G+Yb=#1G|^d1R;~%~XvUG%-=8~vb?vw($iOlt1*o+x z$~g4VPW-c2D`=#coph#TKn)K8&=tSB?LF?+`U2Su34b<)j1!<@J26b$2?3-?8&zP1 z$AXkYzF$?WCb8X7Gs~K_vI5Fk{HwKSYin29R;atJN`+$$j6errhbo>O zcbM8j3j0>+!)YlnR;`04>)ttsBzk$OQofdAN2Q`)D*C0O|L0cp7t!(;SMd{!3sRTQ z!5Hu;mVlL;0TK)h!|oal2K{e|9>Tu!KXYf?cNE%pg5xm%f;ida)2i2K5m>iDV0HF@ zrOW|B?&MS>&cRkryA5q9UOctxdWACyd^3 zOqKpl&NdM`d&$xvmCgktWpX4z+;E8%z=o2&H~d@D1;V?sh2?WW1m}-}8fo#xJh@dU zrY~<$ghn4l#rP0aBLyuu%^|2!<4EW#r5@ya6oq!6f0TiCc4{i*%%73r+@+i_IA&iH z6KTlwNbpVkzLg0NQXgVV35>+m()ATQcd8}1(g9l`gHKGa#QcyGvn=uVCD&dL*A9AM z`AdX)3^`bN%GWvgd&!++g%=fNF%}emuBlmBl4x62U(uqLOw~(Gx*o}Zdln|3V0B`joH9-% zpO2X1XO)soYMJ%qGn<&`H^S4F5GRUCH_vM&nSxFPYnDt`_0jPWlY?RW{RBbk5%N`u z#4uOZF@9Dvl2m1gS2^V?VVOyLkO6-N`@B>n7qqhlwjxlL;FStpUa{a44Z`9E)?YsU z9)zj{5n9*N`DOyN;&0f^$$Db9RvD8O@Vq}m^wvtlvU0|T{mG)YmdtiLov+s)YcWmC zQrUC?qtD*Id5@)yh7J%;BtxU#10GKAiu@uSuI1_z#%2f%!%rQ&gPCCE6&FjPO&Zwrd10`KWHdkOs_40$3XK2CV4Kdu9?!@rp3l?5iY@$UN>hq+Q$t z2ca8^i2)n^G{0nF*s$79XK)1a`s)-#yTAz|FD|9~N`U?-drJsls)Yc(17@Q2#siIFnWRCl-LoblWJJ6+80sYW z%7jieAp)`1YTS-vmhaDrBN0^tdRJIg)%B^0_LM!^hWU=vP=r%)_9Hzxf_Kr3C_<@I6l9DT*Sq7N+pTLG<9xWZ|-ZG!E%N75V1F%RV#ta z%KgMD2B=yx{(}~>6Ypa?)@o%H=BD#a1}&{lS6<-Oa#5vpb-L*jRZ)w_GnEQ$sn9+l zg;vmJ7Yqw3RpLL3N}Mm=XDCPf46|Z>h6_ghgfTtCKXFt~smhnCe5uNps(h)+m#X|z zQstM{i#2#9Iej^ux=y3%4`5jnE<4CqbCwWw5W?Ro7qPElgsd+3@6&q z8dyB8M&&R1@5NkSVH%qm|Hq2V`O(61))A8vGQgFGN@-tkZG-r`lmzl=BC zPiG(B9{(1r2AI+=Z*9QD@_!LR5qr;&N@$=c0=Sf6W8h3?!#fvr1u_s!22kG{z{%*3 zl5HJ{Mvet9d;+rs3nde@*DH54>)yG8*)XCL_J=)XHt_-}yXh7Bd8}71IRX5f=}Zvz zCcQy-Tw${0VUPesS)Rvzu-L_h~I09&E4AROm2r|b87BcOEX#RKXs5WnF1 zAT$o(@@wJ73K}EtB_yFtwqO)Az2-WzGS$SBPny;OjIGI7xC%1_qpvka`r->)-c%mv zC^R+e+8D})`N?Ckla(C#bsp!n9n;tWV+dvBJ!0fkMNof@_`Y&P-xP)~j@sg0yWO4kO_JSCiE++N04MC8@sE9q?|q*&R3aO#N6Qp630 zC(tPF2E&|ypNL@i)a5=>903>ocTJk6J8;6S)1$+NhlRMLQwp;@=OI%gH(QbMgbv~k z{h23!aMxv1%0&r$2hCoXC~1?FK%$dZ?sZ5TGUTuD!#E9zcbdQn;|&+%jS>|tvWoD- z_$uO^Drlps(IV6`4hcp-!xu41x<2S}pO4^0Z0y8!tK<;W@qd2z{&UG`2l{gs?oA7Yw*i0^1NQ2hmM`-oe+fnRcbWA06 zyb70;yt3%F!^-3}(Kw{&sapBMqL>NmO1RqG^v!1Zue|>)?|+}t{jZsM|J%}AEwdyM zKi2)PnQ{NyXu-Sa{cqDM?|&cp{@2WT|7))N{?{yY{~Kw5!jiv%dtp<$7mf?m1(d`E zjG067Ski#<7&%vLsh?qpkJ37H>CI-|O~T9Ntx9b9hlk4bukxz7Frf2YK_~USmEH~v&FRgC{g@GtCXHd7fD*>!_Xc5!>_KIWrr8^eOrB~D?EG`!nnyOjXRUCp>yOBl-e67(D>r!ez?rfUNis~DJ1pSEv; zZm*Rd%X1JB=19#6vV1Dcyd+oH_{?jr#H+4Nd3nTv_kBIyALgG!KYAMO9_ABs_b{J{ zyN6l2dpr?+-jMrvYCa@Cphotblr842GE}*%gg8X-u((&tnmt=mS-#T4WkLSDoWG0t zEoKeMn!?s9>_Lh4%ac=*B`&Kl32Mms=bTw52L7wMdEtqye+Rv} z7o>pix??!Fhwv>o_PHliVvzJ9&Xb`BYS33WE4+Asi-*FArR1mp!$`PmDCRk)wO1d0XfV_A+#3 z$;d1m8eCrHcY4_jt6np^PRN5>lwar0JTKp}q$D3!icJLun@SfmNRcriZS-gk*ufkW z<5Pp&hm|smL6C`-`$P^dBs0Fk5t43KS8?#3HF$=B%D{RWH6jJ=uW&nFXaI&%i~7kF1gGKz)}LlXSX^Cqfmwt^fZt^CXt zt3y)kJ}XEH`jr$CKy>~pW{Ou{@dO{q9;pe;OWkiY;cCITXXYf0&Kt*wIM5zujao&o zEEUAEa?RpDg|}`hP^I=eI|nQGWXW>HtO%~&OqG1;j=RptiR8Rr7ne-Bii`8fR6e){ zhF6@k)f8UY!ca%rcIZ%=!UTT0w$9oNPSLCD)#$>vOTJh*FoQ@hvMd%$rxj4VNs4C?i5!bKOTT}h)$SIWNWo&ci1H9L3YG|ERVE&0XDy_-b2T_#jP{`|t_ zIX3O&w1k(_3dH1P#o?mzFq!|t^6&x?GX-Vn70Ajor~2Sx10wPm&H#I{xOkkUc*m?r z#UyAt%PEtepUgBDl*18!3(4VW0`>P0qmv}a4TX|q`(#&g2!aKv>m!*Z)@-AI?K&F* z1cu&d;0q!&iyJ}OGx~&)BY$Y>_)g^4;l;pfZ$6$mQ(ufd!9FH`ggS)q*#AQa1Z2G$9g0e`o)4VO!}s3nZ(eP zp4R=q)4H!@Z1`fCLNacjF*$O8$?w?A+3Y_ft7FqANKY7sb~kj!{3+2W3Y47*0D}qw zu*zROP+Y$`&cq#G2j>P3$c|>n!S&qHysD9FFmh|}Ym*)+{9eMu|?3`8f`;C)L4Q%koyQO6+c<% zpo_7Vza9TkNsPCw0kyn1UqYBDWuf)RLMb19Nz6MTNm2cDDGHlV#{NgF#g|BnFIx#R z7dD{>Gv15;CEDc6Dnzse(|44jTSRoDlt>^HX~LTn2)jl}t^!EIAAb=9yf1-(hwqJ2 z=zG3GpIHihKdR6djQmA8GNs%Aa~%Am)9VjmuUHr=jOyO>uH^!#j1NiA{4Y7~5y^*i z7K*Pc3MxYc&Mzu~lkpoSaYp+5{)obEnUb~q_eA4=bW4%{)hy$GHt|m#iPI_TaF+2u z%g6t)NRF)hua<4b^1oVT{Le=IZOH*ZES4t{@WY=L5Aach@W5A~>}Z!$uQxz1XLdcw zFEWVWMDa+;OaOo+Zd)Xc1weB{iA;n3d?a+)F0L~_ba zk0THCYYP1Z5;Yi!Z%ov1USsc(TVLW1z;q-~kWRHd$$<)35k=Z&KB3u|?_o7u*CuJ|oBv(|hJ*lR2D z+FJ0GXylYk9kj+QeoQ#z(N-e4tsWj~f;YCfK?|LT>{F5dWW;e@ewT=*)vdVqYEjh8 z>9op+Oh>)%ThT>DkfWMl--&J4QPOS^3BkFaOhYMwV9db1y5cT#p{ugc$-(j)jAfA|Y?kh5TWEJd-WFPlEJqglq-t-g#GcY{t-Uz0QLbZKwSw*V++mhK zaqy-~=*x_;w3jcpl-VN1Gp;y`Kg=OXLh2j{y$CYr)H!7&)?+cWsmQx}lwDHg zTQgS?K& z2f?*WK`{t)ibk{1jw4QP>GUdT=tpARnbNlaKQ}?5P62- zEPzm&hXR7KJtf&+ts;Q>YaG;W9DHkswdo2GCR*Cg5>HZ(O zrCTxo4_h}%|BsF5e?9y1;q9kbzSrPs=;rZ?YSH!Kk?^eV&j#>a^pWcwsoX$-VgHO+ zv`g4Nkp=`AJCGjEgw!>sM;db;q2g#L6yplcv{1xIbHJciXWA)?MPS)qPcMSsFKIeW zZ+d=F!N#O&0LtJXgUsgBG5r7@T^w-Pjt-IhDSe;P0bNk=`5}uP0_Hw|T+7 zo@r25XzMg71d57eD)6UT>=ReQfG!sU`kLBJXiW9@z%o0SYzH8gV-n~WuQa_H z$vsLt67DntlLviwq@9wB6Xj>8VX&Tn+resuq@-kdz;SK?9rw3HsQH9ci9|VFtbqY=^nOrur$|8G?P!;&7b>2E(u`k(w%aP#LlAUprVQxLa^-+v?` zK(Gp6=G5-BqpJTQw8ApVz?zOz7Aq^SfbmgESS!NMgN1EcE)sjV=JL`J~Mt=I2ecA3?rnHp5%(W^+F z_&{JFX`hM7bHlhDZq^Bb(hdH^ge&5Y18x!s9vU(P?WY4l`|%)X`8BAvT_4*+^7qG^)ScmOkJsE%c;Zcin!a#&x|g8rBFHcg(TdJ^h=*PI9wTzC5p<mGZ#-lxGK_%s zl6FPJax)#7$b}oHYKCrZUg{Ri2y`+tHmR8`zeEK>(^^h~G0Z$7jMXefm_oGZkaf(RD*|O!{dk<(N{Ac^-0%wL&>&DS{` zjMaQb(u|QP&)hgOh7l3wWG^Suq?6~sDpN`{IS+WaPibddX!VG4jr~mJnsl7qlzpZY zYf7=^`HMC7O2nF#Q9W6>v7fAPV=ILlTP@rKsqba-s|Vzl`V{28okDNd?)%@*KKy?6 z33hP%wEOePyR$BeE^I`WpB zuARjNs6-S+Xgs3JZ5jVp#{UWapGLFQsJBhM*|f~k0kri0Ead;meV|n5ztw0Y#s85r z&-_239r}M7mf8A?)+qfyOZs2Z|4q_=>i^$rz&UJ{^uMJ43(!! zkfs0s2LA2soz8D24=mEyAND4Wc5av#prQQ+I@PXTw;K(^=vXboHf(&_yVvx()oGh% zv!%C<7CwYNE(YJ!S0za9i7*W7}2Cuu_PhU>YetrAtTO#$+8w*m?7%3U7U_+A)#!9AXlEHs z^2|1|cm=d-n@td<>8NHyH>_3@=3#bhi#%&umaVs%4by71^|pyKu^aGh+cH`mqupw; zAsQ_cen3y~WxM_TfNP2?(-=$sU-JKw|CjuK)%<^UKg-Skt%eol|8}E{|J%sFKN0sV z4|~b~Oa7mW|F=v2U-JJY_`g*|{|DX^Hk(!(El5z*})Wjz;WB5{@(^( z+iuywV9hN3-;(uzD^vduT@OtQ=OSAGqHl=}z-+@jTdhW?0djzDbQ&lqH0w>nXc!IM zZWzs`PJ|4@u3PY^V;I0>KrHB>ykphzFMMjFP-4O}Xx9Pp!35#KGC>e(VuuY7Gjy|o zKLKYg-5}3EHUR<0GEDfO)wEII(d~A_0s#l}Xu_n3T-0b;W&>KZtVT!I@tIvW+wBGr zTM%ael1-eS38I(YZUJa*kbEqBMjkcVaDrf#Er2{}X27QCAYy^Q)PljujN5J0+-#89 z8l7gdjh`B@9+*tWXo3*c(g{?sye2H8ZNM;wP9(HW6ME5M3?e_#W-SBLFoGy<7%hX0 z3X1^7(6m~FLAP{#)~egcHDF|zAAq{UV4^ocNYr6junvS%yWY`($Jih$0_@wk8Ft-3 zPGfdVl=uL{NOvtAgf`n~1N`h(yFt2Z7%;mA$ekde8Vv#yyJJ~x*dW+M5Fps7(5MOf zXtn`j2otLg^rYRgnt%`hcdLPGh4}z9f!4IzFl89D4S+K`ddF(%wrN_p)y+DrsoBu2 z7VZJem`cTlZZ`qECIF;KU=9H3bZo#S1K@5NFb$Y&3vmu02eNLbWzda=so8p`-R_vs zSqIk+J=q{}8=V#`tI=75ZKss~O8Kvp|H^-lA^#Py{}>=$#O*(JDgSN6{!>a$rR4Oy zC8v^zm-1gJ|E*H~YootjyOjS*`ENn_&o1QuqqzUmTV?%+$Fu(#-27+NZ36@n5M0_I zpfKxS>|v_)&z7x!c8c{+5usz+Fd1(DOL~tMKvS9&2tto!Pbv9-$^T3KU;g{E^Zz3L zKXBUP_MejfZ|3|*`DS?}O8#H+|35eXZ($r>qvZc3|6hpzJ64hUA0TTQvG^a|Xq5c_ z(e!`3CI~!$%zCqBTAha7Y@t#>Z2)E+??xIe-L|k)P^t~!t>ggoHqHMhG1-)m4?-BH(MPLq^ypO7imVl)4^-7wrw|Tyl*1?<7G)3?^J9U z0==g7x?wascmYMOWLne*yMr#$cB26_879)kW}TL;!!sLJ)Hd4s3TzxD|1bG}oc|jo z|1bIfGW=gu|FiA?c8veqdg=eMk$-;@PFWuGlK+?dKR5r!!&?>rE&2a~{NFC7|2M<@ zPl5igm-_$X>HoH<|AU0k1omwhdb`o?F#X@CqtB*g8_ky9>162tk_*6FJCFV!Emdcq zx8v%+su9)xg~_!$RBkXEHlmsZGE76)%^F>pVRS%n0ixGvbSx6lY?DCarrEKq7L#%e zs|_e=qL-{qn!&SntI;tn9aJUDYFf=&6i!Bqh(0JFS!Ppjb?kO)B?^1V|4aT~^8fPR z)8_w$^nc*{QT}hWnkE0=jQ;;rd1ZMvOa5Q-|Ht9~cFF%s{=YE)zblsi6AiVo{Ga9h z|0C-E?V2W}0JZAKsGGWBn+>BC7yvq$`>WBgTY59Y0pPQo0`zl^6rf@44bwdDL{or7 z-?B8Iy56um&4ytC5*fBmZzx)=mX6m4Mx$++R7Np7upGQZXmr|b%oT>8S}h&q9lc|N zphLwGz0)zve`8hF>y!T8rk%fuXOWVRSg+k{2HpBDQP4fm@KHM^reuLLWLTXh8KGtBmTot#HXJXD=2L4L768ctVGCB!U_gT7*={sV0D;+N zx!80}%VuNVG*kv@1~}b-liBGs447Z1qcfqcY1x*IL9sepgkdyE=qF}~VIaX2ZWaiE zz*da5X|nWexDgGrfvanBXtrz^qzStKQ)d%_ZGr6sAi)&dv{@5I&^spLV1sUrVZ$OZ zGS%qVw#9d=0UKihS2G*DGtf2~7AzHHR-+RRfLq_j%ytI-RPWGhD3FNxM%xz2c1J>j z^`N&ljL`&Hwgd7;$a3ZMvf%s*}w6 zG|HKFhJd&6^3H6+GRT*3B=9ga+f6t(bQU1>0~BEmAn)sB$POZvjc3Meb||ue^w0pD zvPs}_i|$jqVc3ABFr-eRsu4{)9iS$F=6btjG-!0N4r_u_25_|79lm)+6YvEv+J+q< z=LLg(8z7nh9+`TZ?o$h|C!rNyQ(9Da0R;k<0J{d<#IX5+1SA7+0FW9Tw(D)Yo@|+I zjOp&sy@OVO6^3abvbC5#17{uPk9iQu-r?;i00$5m77jh=Je?tMI33tp2X>>$5FGXq zg(|=`I7MVxHk>iQ@DARj+6WP#qm8BxM*=nzF@}QD2J+MZ(qWSra(d2SPyl%cb{;e) zvQj)JKoMXKfFcySK+!OI9wq~QarFz+Gs2lQT0pp(HY0%;{@w1t$e@$i=I9YfC0p9H}i?zwU;Zog{{{5_0`Y$!oy6|{8@g5M|C{(% zs?DX^T&m5b+FYv5rP^Go&C9FJrT$myf6rh4YnAz5O8svM{jW&<2M`;~c>PDC^#6Li z`(M=Lgc=Y=9VP!(6Sb*kTetwWY@`$*wP#)cTk-{Po*EFsC9ic3l0>WwM63b12DUI| zEC@oFZWbhvCQZNFsH33VY8oIkfR14jCp5EeVA5jLfso}eZLNWn(6otq)j>(vXx43# zc-R1ynE1BQpfiwKQ1}714+0(Ou!$9{Ob|IhCU2u?ive*cRe=-=q6_3K|@001C=wMyn2TwvFZmR0A0VOc29N z5OiS)9hShkQ^z7;v2}UsG$O&487Atof4D@h8OS< z+JH=qMg_LFb{$h;qX_^+YEYMHdTCe%C>Nj*ndlTrvuT5H2?`DfouIy19g<#JCo4sj ztAV7CI7Naq48pVx3J3nt;FZ{5$3OyZla$v8F9*ub@J1P{jnm1AE#)J5dwu zA24QHCnh5d6g3gUnlOzvVwc_owUN%&M0*WD(m-cXILsZ)L2aQU3JlRPK~P6!$fyHI z4ZvyGs2191YFev~I$#5l5{{uk{ajlOo~0U7STlHoiq-+VhBE_uYLSH52FwaA4$#PK zkp2O)+Gx4N;8MU8YA7%;`#9no&;V-rvd~Zg)I!U>0_ro)|PL0#1WG$@0b9bvRK?)Y&lKeA}Rj#$mIXK~i~&lh7OfAK*Al z*`VYGj%cf)qovZ|%SV+E(9v$7Euv+!VBikux`4beYLhCiSjG_W6fKiz%b?2#{s5Gr z1&jjJ`6knOTUhM4fjHmN2~`H>1`xB5Xf&Esy9Ww~MlaYOvqcb?$01R3oX5s-yA7#02c{ZHt6QqcIGvJeZ;1 zM#_po)Gf4uqF=Sm6=*bEH4x!AE5MTr2m=HQ^yEg9m^h6(Y&~IoO{~^P5CZeUcN(bw z;-0lz1aNq`;mCFjVwWKJ+rdQapc(_FG!3hb_zQi)L54QORzkKJ_p^a0f%Q<^@)Y4 z2^0@_0)QN_1jrsafk_xF#yd$w1j1$aT-q~ zvS?f>@OOlvfke=Tu?U+1Aa#&}B6(=GTGWn+=7BcyU7)KJx!_xXIGkwMR#g2HFD(0+H@u9(_u-0qAJd)5&5QbjB9Q?Pwnj>7#-6t|l?} zH-H*hwoMS|_2_=^nG2)T~ z20RdpF0|1w+os|S^k8A>fCgGmant^P_PzrkisSqLup;)}Fd`T=ig^7FxZOPz1!BWq z5e_(t(n3)Yj6L>>y#N*zd+*%t*-Nl@jlISmD`?dJye)9I6j701{C{`8Uvtdv?Cg|R zKJU%j8PL*lzz(Q_tRp1=Lm+`BQ6h2c$lw%52iTeb$u0#VZUwzyfJ&j;tb7pD%%nz@ zp~00SrWDiM2%}u;7`mRIyCIS8Zx9Fk%m#r*--*efFLM>S1J|l zQj^f$U+`8c;d=|_SPURWDZmdIjDe$!IkN&zVnAe#w4781g9Pvk7(xk>82p|JAY)i& zP(X*!JSfx*rT{Zb4K$0!k6z!9!v`5?4$)ws$xs2sIyxYkr=|fV$DH)p5fTL~cOaRp zruhUqhKSk`d~86)Qkv@Ez<0zfQK7=lSqw$=mru~ ztAKV@fIWel8TBFsA2~vsGWa}(ek%xc_*g~^AIPv!4p9r5AJkx^s+AxoR0suvqyyLo z$C%JGj5tfCrXd3R0zjUC;NXZ5KIf6N3e0!YBj4fk<1l?IzuzaEZnFZ z!2y6K3)z+`pd|_H0ivcovq-};ybA1quz>_xibhyX&z2k%lNiky%$LfMK1@Z5^cTVb zsBLQ6OjUqpLL-3?g+c{KyC@~}5ia0?1X~12Q>1ojorwe|QZR@L!7-~*Wo(1wiOFj34wc6cdJA|f987!$C(q)37*;Dj8Bg0)4I2-v}sGNb|(5(cNq zVetkwVo@dW5*(PLX3{4OOBY6IXVgP7tju}MU@J6B^#E^q=20e8sZjw zWol5vNRl7}m|oUWfcpTx&O@>V02XZlA_kViS_GUjB!|^`#OTb)oodj2QhLo0p(_9l zz~#t%7E2i5hsFWvG9*0Juxic7O@tZ5z$IW&$(YlBR1oWrp_xLJe}Hm)um~i$FCYB?ktpim|4_ z8vquf3@i|O(Ga={+y9{Vs(>UFjI9B%4OONF`6yu}j2LDalmtKm1#=D+NOGiF;G85l zISED+4IPpku)wWgdKcLhSrB*L?XzB_)x8+*QROEgeF#Dikne8;8=GU5M)xTVv!4*-{(Jr4{FVKKB1kul@N z0b3IhFs-pvG~PtxkL*YY?{EZx4P8Zg9rsf& zQGk2}mu{MZx6jgN(aZVaTI`-5y{EH7sRSH zM{r;xou&d$0%IXd;jmATCeR|4j+&E0lo6V7G2@?x5dwAqC?f>99W? zs)v@%KygT7aRQO{gveLoOPC>6iqBx0kBsdcu5$~J_L}U0f8x(F@boX)+7)HgIJ30216ziuxTK`20<1e zcEtaPL(n`SDnT+B&J*1&t~Tk%6jdoCp3ZB^Ubv z1)vq6ztj>2hswah0T2fPO$x>YMeTP40z?cT7tr$G_J>uFG@hJZ=h1%YOWQS-phXc`qtn!coL_>z)#o`QuSmaq2>X(CIj`{^YddB?^0d%0c0qr0-2Ax1+(vd#% zQV#J-3MRM;qK{w&O9k+sad<-%6%r>Z_>Y=Jp=$7EKy(o8pl8-d6yTedfu$`2ut)pK zL6M@ej=-L@76$7TH5G|;pjC!)AVLVe4g#CN?V#YIRbiPz4(F0e7zGR1&k>v+pq5dG zStB3xW7ct-5_&NO40#ozOc`enAR`G8D_Bm9Lx-koB^@0kfxRx3%sLs8{t(is08gkI zBCP1BDMwIYh*~9%AX5NIf$0uPSHkH&7!rg))DW_XCR5BndZdD3XHL{(uwU3+I3-|h zB1!@X$F9PFuMPfty&-pi zpf^zeV)PQFO3VOBq>vO~M94ufG8#usFV`s{Zk44GL~8)amEeF@DQHxjU`2_Ep9Dm$QXz?o9%fiy3XCiT=n4x~ z^aP?lp`im0r4%|xv#%IVT165Dk-JjGfE*<7rA&+?z#T?F&<+oz=~ReE80-#4Gnzs) z9IV|(>nbtClfjJAz@IUjUpFLL9J$hX5Oh zewqvck||6VK@e|&4@pdi4bswDhVVNYA_c?nvu zyy=+br&7>C!czF)9_$#}+YAN*gcriow4#Up0_OmLg~d-MJQQ65s|?wya15)OF^6IC z6|Al-7qraL0dWXaq=cm<#%;(5x&Y_@GJZMmkjvpMh|016 zfE*z^@Q^|{u^Q|wHoOb;e~An|xz^^;FOoggZJJvqRR=OkPCUWziX@okHe z3@cV(n4X9#T7@UOzVR1_^FAZ5tDKZP6o;WMQ#_6^2qmceO`x*yCbL!p2AfDxT&8|_ z{68$WOr9>`;2Rc|cPgD~aYK~Rf48zl50N}Zw*qKpP82)u1XCm&o9PIG{u z;Gv#qMHI+{Bc1>&2ppwmYVRjWQwT%1B1>T!eG80SczpUK!qA`;(ER%Es?S>~Pa)zT zp~nTS9i;M29?1n7X11?06mh)pr1X<4gK(m83kjcvh7`mvMdf#FOK}4mzIX&+etJ7d zBZ3|KfrCc#+qooL6F#HXXuvIfqsqvDR1X?O58elHiX!IEC=&_YBLa0;IPn_nv{WA0 zMh_n*_=<9NKJ-#bz9-yN;#x;LwO^zqBcT5>Ejw_((YHw!bkFf_z0a7d3Zug68yn6h z)jp=7RyVtClk+7zRemH_6Zzbo4;6OR+1U%u3*Z445`0V)8Dqa76G&rE&0dAL>{5YxaI$$nn9*xQ zkS>}1a6pk!-{eSQGx}=rnYt$Rjdx{1srh`n;V18|P9=rHpXO1qcw*^E=r*sR?^_;| zH=(cTT&H~FsWt(x5vccyUH&04h|bMtItQP90fh9|O)%vHTr@!DjoM?vpTsXc2tb#A z4-||rzmG$}sy_?KI0qL3U%x`Tul{n6txkcBd3A@5jgErl5{`*E9D{&#`=e!O4fp!L z#P9?lA}JeZA29!gJ@7BNV3U_kBiHM1F48D8O^6>~n53ekGNF2ig3*=Z97sZYXj79QuY&^tz*DpSoLT31v#3Tm} zJ=MKr(JEC8^coD}-L*VSOIWBqh7LZT5?4fxlXe%bRTfn!}0ukchj|H)||np6eT>(Q2D6YYs)Sbc;s9yK!nmG|cYa z{PPc9lGFH$mcc1!g@uU~CG5Z~huBcU{Zmr586Mx0rB0m1X73v=G&?LoNid^HXrWWW zih>e)t&(g{eqN1jRAxm~if$Y9Ptt=LX2+$S0sg*_<}yDhc2rMR$m%LA#iv6~cw*Yy z^Rv97$;I^11n+l{nOt0~o(YxGlU#gL3Nl+%Ig8GLDINhHuJN1(d1;ifj@69eD^rjt zh51a&hu`hezF5MM0~&G=-5_Pn&JMRGuJ3;EZogM{`HL)`$COhaFz$#6sS?D$W22zX zO5-!CJ6k$;q?ns}_;(n5$7Hu%mj1W0+zcV3uRX@CM2~T(`xA$5$21}E=EsD{JI?`M=Z8M_gXJsE0j_~ZHRcU`O=8UT~jZc~x?BIqA6O};GeLPk( z&cCP-6NZ{ogsGGL*)}Rza7jQ?F)S)0t)TydHLG~Wzrs7F4PZv0rjTA5UTgg>P*@F9 znTF~eGJDNOy=q${VSqM6IcDllAC-~dbmqgyhSQBy7vIikgS+}$t&CaKu?oGtBd_!; zLmvobn_j-p3Gi0c&9@)2WdJou2g!d^g)=A6A!4oVgs{Wt*ucF@paZ9UcjT-*?*KDz z^j~)f|7`%$dLy!=7LZ4JmNPQPJi|vC2umWdu6j0M$=fcb1hXe4ajAy zL%y?Q`=DA4bT)rC=zK-KfLlxUo6VF^a%ytvgAH*brKfhnGhVqO^ViO3qg5SO8%cl> z)d)jgmykn1oITM}B8|P0hyxp=0Q(neAEl;>p+s`}{-wu|!~Fci_bYr$i%k)z1-`G^ zJ^;Omff8hYP8^$bU+XA!3w{ng_7UA=)DdD3^Y;3Yc01k&upN)yr+nW>@$l7AN=TN(fZ_Snb~l9fB_!PgV;trryk}5; znsO!(zB&mKdtIu_%|p1pq-(q^q_5s8A3%ioDId@wPYxL#^|$IQQC&|IIZcHg&_`tu z*T-hW$-o7jL-0=p9(O0#m<$b!<4ptRyScQQmbRFbBDInKqKhAO80oRJGg52x#OvMJ zIu+-vv(i=owH#h03V_Z(YPJ2S@2n;2*s=ydpa%$rCP?cDQ=6ax#la$0=f_IcGr}T7zI$jWwph<3@vM`wdz$a< z53$xZHh?dVdv@-oE^k;y=xPQI*+@)by7~29slXvWH`dM~tN(=4FhNzTbMi#R4`HHV zIaA4#p1`rL0MDFOP9dnDU%{J4O4pInFZWmyO2U9Tv=QR_^rWX?(&^49zJHvY zzpL8m(gZr;B?A)}n?dvf++-X(Jr}zPDFmsK1VSH&`l)0MSV|n~Xg6;+Q|ajIGzD*fzeduQ*<4`llGka+6KLJ}YzrG2tHx3r;4kv{Ca z=QOLhF%ikVxt=F4F4u|S-Juivw50a)Q2?4H7`lG~*G)D^!y?sVJ}jZ)$}JA|BnjZp z!e*rDtNBPB8wAkb6B8yF^GGe&;jvH|!`d0*CyR>NDe0Lv=y%ay>RPM=f$&)kLep5s zM}c*&4xZs#^!ACY-BTSrS;%FXyRui?lQIr2b{Tq|ZPJ||B@wBhJFTD1#hKEb7#E%R z&|;n}3E7O@s6Apyx_v~+wCofAEdvEtw8y%P05KrE$R2xT4NXyv4+W6?)arbkXH;iy6T@z#=78Th4 zG-sv!{mSpzlkwC83>q*(=HDoNz6ZuzvrW4iXqs@Z^lE*}HfUU<(`iV2`yVU?m^43&t8bgIRGy`!oX(q z^kQLe1Xuyb2lFdD{${AE{(%vb<+0M8xCfFS%%7b6xP~?VZWtNuhm9{Q=5r<~x-t>w zVZu`$Y$@ZjyUZz*e7~=bjXJV0P0aPX*Y527&g&0@6 zv}>rwhe;>m#$W`J&@BbCtjCJ4bvSbkALmF0)>$KdzB~WKq%jtlU@Yg`&m3)=f&08x zKL9Hp2m)U0KCcY0Jfs~QvJO!poU~8!^&qT+!&Ag-el~54u)9x``##hOb>gLh;7+0~ zpm2!2j!P;EktbR8f-zm~^@Gc^*TF&`Jmw$*INa-C-j16Lauq+0a91s>up_lQ1Vk>g zAH17#v!l&bDrZjF%ub&F2}KvEG4;(KL$?<_83X=xK4!W;Jw;RV+5c`dCO~1mnrlJEHyp7EX(OvtS;`fD+Jdcd9M6i zGTlm}itqGY$t!2AQkpUs9L}PkU~7(nCyVOG_m(-banpAMlMC=99@!_K9Q_r(!pJ6N zUC=!DtiE?ia=nHwFla-!W68q;^0Csz^UWw{b1|z-cs8gE6D3dKXtB?n z38RvUr3b*`S~!h2pd_p+6tB9&mw141SRg^v;DQ$(OZJBrKQHQja(5CVM_qr?pgDci zW1a_h8|m_axVh*oF_gb;XBX)%vD{ygI$ycwdSA7kV5T=4@vRFCz2C4|Ls{|iY2WwR zB{(&iRs(sR(0%TALSw>Ni&|8!B4`?GeBZRcE^vCeYQ4Bx@Osf%@9kLb=RjsHwoIP0 zPJ)Z4GC_@2m!g5fecKpFX5`{fre$Unli=0(iyp^5)hTM7aHcFDlpUgw1n@kiq4Z8h zD)5kN>1sHa>=<9KUEf+#d}By=pUk`Bh|4WB)2S|a|Kb|cPymErI_pTB#Z=063f6Ji zP8VM`po+Sgyp`}UR@Wg}gjpVAiY8Ly@Tch0RvHXkWIpaNTG|cJ@)%?_m_ZYbVl8VS zbUbJA^xx@_zpgj-pC{LwK8H7ihec!>*VdQz9TkQTR(}*5*%=qx9xLu+nVcTzQ;z66 zBI|DX>GURH(}Ms}(~4s!Sn;X$sSAJlEE-$8X~3fR`zX`B&y_*nvDhcd@w%_P#hJ0+ zJ3B*2i3Gbo_!lBKx~{O!s;g&iu?{=rTUKiKRo})Mrkt0cl;_-uJ)axUBdYeI3kX;X z-^AW4*XQQV((|!U)cDd|$tJu|0cZ0>toDHfeX5^{Gm~KIHxm}&JWsK+0|p;w>otCP zEH!YcwI_?Qd;F06Dw-!n+R8qs#05(*GScHVX)fz6O(GNe+tvnf9Mw}0AQ2e(q0lW| zoYFZv+s*hqyj+-GRF&&Auvz_f=NwJ)??^1Okw7=I3oF76vjp?$59rjj&7|elJ+rGttoaM zw+f7(Uwb-jG`^@NZ1S0!rPm%0sK{tODee2lc=+SKuA z@^*Djxk~HeoJI~L#feqL@7jn6k7*4BJ@Q)&pgv7_<~m)f6ewH7BaJvhQ`afg>S8a{ z^;|obr0D7;c3ntP-LWLHgEM-K!%RH5wuea3w)QP2lv?-1uHi0j)%miex~WO`=c$2D zev>n6>C`2Q-qS%zs)Va;%GHsKZu`noFV9HBcU0q*>ba;m8~MT z))%RST z-x>q_CUx`!H&ibNcW=D!PH(lrbfnPxN;Q(~-K$F(^j7D?#e1tIG{CDU@Z6icX2cg>k;@s>n>=}hc5zln zX4+0C|HLx%Z_Q!eUOh1d2@KgcsdKxtci)dG{jfZfaz1Wy-+H$gyy$D2DfTfsj-3)o z2=|`87`!6b1Ik{K?4oxh$M&xTXI+G~<5*Qy-@APM8@SvXO*fRE9ztZ0wzCy15-w?a zwzDOGBy^8(5g=@1Or`nMIE4i16}*@KUC4S>|8f1XE;XbGu>a^(*u7r~%kDfQqB{f% zZ|wI~^1t5;1a{Db!~&5A*&bShII~5qTw>a85Udc&Miv>6suN~f5m z%v$hS#iYsL+br-x1f>6joS}8ZUJ8fO>Q_I|mmLk1@)#||A1gZwl6lOA-fu$iw(3gW zZvpKna?gF<0BbrZIT1_RP8KraW8X?>Zw=E!o&3wc1WNdR$&#y*wsrECY||3x8j-7z zg!66ltlMe|Zu_K7t6d1%Ub5?DC7eyf(B&Z-h*-1MLqX&^f@cl|R_O<8G9K<$+zfoD zW;_B8sIAUhj5caYn8!2Kg(%e{)fiXK`qph~>p{$oK7p*HoVd-c9fKd7`T|Q#K85?2 zxu78yHG&E`j}&7YbwYDi8a}pL5}DGs8^`>Nw!q~we~^1-HRfD8p8t7G$VtHO(!i%( z{p+p%4!3m>l}4OalVC=2NBDrxT?fait#|zDarjF^GMNydIljk}1hvWV!#yQlNr zd$VGUDCkB%HNW7{19-p?=Q>Rb2`2Wu)Q^8(KxTgBZwkXe++|xFwwSqPUSt_o^xs6z zc6RQ48w^+JOTgP3mQ3903k6yk-%MEb=?!*h^{HaIj{d`U$1(`H_;NbjykhksZhdv& z=>iY0xN<)pu@1De&}$`frS46Xx$7-`5K;)`1OPv*vD*3fv&eKfTo3EnsCZ;9ScNG+~t71=5)5;kD9QjXI)N&?TB9jrbgRr+h zHJfhkFk5|?DsET8q_$i9o%H9vl9=m0e2ri>zrC1qr}>UucSLHSNlq)Eo%1C?@vBg3 zGDf-NI8Q~l-m=_abu?Ci73-?7ga&JvecB|47N8=49OTsHFl!;Io5lVM)Mie#UPKw| zipeaCg+>;2vBVZ2XP}w7_>DR`)Afp-#Vb8_@(d8R+V+g=S@mF4H>Ik%ed?ll>N=M< z^lq5T<_U~P{{*KAS6Mkv_*JK`mKJG#6*1_ga*gCwcdc(d?e1+pKKUmKlQ^n>D{Xf^ zc(UL;9r9%PS3L&RbYq=v*s}?}=3%FzWIv}I&#Vc=%@gdgGRJQM}MPK5T0Mn?Q^1DG?U6R7~32RXRI7X9=f^Lz09aT!mF$KD5`=2kA{ad-B{xqbYjOWItmwtR;3 zW@EA|=M<#$lLobXIKKC`tV=11r-E>;6la$xO`{ z{7I@kIjwIQMe}q$Q`2KE6nU7TP(ro1V_~a9UCK_|y(o9-tZzXcD5pWjK?+7(*gWr) zx#+r4&N)z&VsJjp5GC1)Vllk-~HoX>NUSv$wOR6DbCz}LJkYT;9Ieo zQfnc1N6`&!k7pT%TR#y-PBtG>&imQ#ly>7HJ?s;|bPEJy2Xp#L_3+?d#3WBttTRVS zNvEXW0}&(1zq`TJ8)cW6z?@fN6u`n9fyS2SGaCN7BFv#TK0{&$X+g!z;-EmH2q91!9`BY6eF-iNg zKk4AzL>1i6QN#863TkV(H#y9Jlmr-_L3*GX%FDh!ct{r5#cpqO-5ScX@!x2X-oKeB zHlgs%0at&tC;gR&@XDq=?z2Lf@}JyDlh>RnLjA6ie$U0ZIeKY(Eg%d=d88@!yUI=p z^Go=M)wzd@(B*^kI(eSer!Tk z^Bu(Ur-c%KIv2=1yhOS90Q=z^&YgWu+#^Js;(M-4w)41jKZx{Z1KlSt>0<2wpSh|5 z^?Mp!-V>Jii@Zvq@!+Ww`?DqESiDLz>5r}{l+OB3%4l0gxvn)&`d&d+${^o>r&CUT zdxkiQ8~vywJCE4{=cL(iLsRVlhfACBG9tb+M^S-=;j>W2z{oA8Y-Fn9e$|J2F{zCS zIwFRRG{qKI9y`|+r|bvs`x6;w-e=xk5D9|c-_Ahjj1uDH)6p2zo@=8YJK2o5?HkS_ zt?&b-t2A5>w8+GBi#)n{;x&|6+&JNB{Aj6W)DiNmNlgL#^hsW08kFn<(6mo^y$PZqCwkP9(66|p$3Y5xpd?EmExX*o@080#}}9{ipeqS zzZKJgyWS`6^t7k-4Oj6Bjsry@QgrF$Fro1c@{RbgPxlY@i^bWugOIljaNve(&T68+ zXDs}^J+1|Ve;a$;NfZ5dzP9dZWmJ81zv!0pUDAEG+k=}*v&`T2NWNL4Z~*^xPv!pA z=Z&_Fjy*2g4O8SWAi6u)dj@v4C8s#!4ER&sMEj8U4=h3Z@c6K~9G+9rw4}!-1ff{+ zL!+j<%!ue{Hfr{4z3ABJcv65|`|uG=BRJtL5YbI+xF57st=plpm;&KM0y}5hH;7Ft z2!o>hm$3G_4BA}I{~R~i-Pm4t)mmSnA+9lJ(Xr0R zzJ+{yONI+@h5}^urrIv?Y;CpilYCrQihI8MIQRH_Pg!^!Ui| z&4*Hm_CNQ9rRWo8-sP>b5ky*)ft5A`}M@tFPVM$}0)d-A#AeR!RP+lKv zu3w)@Xxn7#05_NGlTUTJYF=zQT%hRvWuX=$-(JJ&M7@i;jm3!fIH3f+4MaYHak7_o zh($F21~j;$sO*j+WLkBpQ%Cn0Q-)coBXmoXBgAoAWhhgm3(+!Es8h>!yAa#?yZ(sq zq0N7n^kC44?>QVhbD+JwiNRhy%*ahv7Eh5miD#7)n(mp~e$hKqpZ$rxF}>9wG7f4J znFY9Sb^SJxz*GT1_fRwy`EQuWfj9p+JSa>0F8n9$NgDao=1=y$g zJe9Fzf7xBq>ZMg5GOYRye~g362PXnWXL#=0efSp&7@`|2bn0WZv@xsw@Py=b#|=f_ z)n=L1Mfgl?uz?ypJ3NTA*L_)oEwU(_OuxY5~VfsVr z{G0u4YZvi=tRW&Y9>W|M1Ott}qjK62K?p@_|ytqqZ9aMj?F6Ox5664ZjQ41)Qq zd@A9amkWc~r>J*KBhW3)lh-SQ4M8g)s|=W3`kGmOpbL&to1&JSRCq^>*w;Ie5Lki9 zQF&7dUYkY6N5*iG0B$sv_lF|+o8t*>T|YX&!${}-OHZqdSmUrd!CjwTlb+{}UZsu0 zeeXYYhz=Ghr;EV9U3wPdwqA)Zn9%-n^5DCJ`2?RfY{YHdLFO?zNu(WvaxSN7I=YH? z(kID3k%0w4Mi*4yC;oAX*?)7vv$32zGjsw(o`-5<^PluQ_lolWTcNw+L#5z8#QqlT z+W-dpeK953JX7}aTK&_=)|K$swOL}}OU+)pXw}M3J1!PtEaH-2!;x{mJe?(gBssY6 zx3FtDTS4#TQBZFmcAWp-qX4-_{{Iptl%Ki&;sk);BK>t*+cfkrcaE@p@=)L7dj0b` zi}Upzm+u%IE28uvU%^urtrobRSMc?x-5B3bA;t&j82(+|Xn`Vpwd2hl&3ozh7CB-g zwUiyrWXWi#STiRUZLty4-o0UxOX}b9XnYG+EsLR1s3!yjBmvae)%-}QEdMI(Z6xfe zh4RNX@(}z>69rS}LSV{!f!NZ-Xf_zQtep0Z9zDK}Me=qw*>`45x=0&0RpVLU+SGU`s zfczh^L9C$vhYflQi0Myv@45*mXD+p531lI(vc{t_nx`uyA11?qQZ3aieP&-Mmwt4Z zd+?NSMp%=hW(#C~RYHzIeJZ^z=dwkkQiTQ)qM^q{T~=HY2p{gB?tSUxBB=Z|Q{?J+Ls))vmo zM6-0F%k#>e46Ru~KL<8`l8t}f>co3&K4DwC+mQ!G0EzCr8cCqz(50H~xn6*Qcrre6 z_g|6&*<`l3w+`kI;lg0T)WAN+%fa$&`f%9SW)jjt;Ur@>!a;K=L+Sq!50ryKnfjvu zOx;thW^ND1v=1sIFyQsFNyb{P73~8%=t*NWkJdaim3{crD0i&F%>xggBUhZCP^aR} z!@W>b=QZV)H!a0pUW+d~53f&<`}$Xa&{yj`9%P76koIE3p)oqdiHmt@yK4U> z*r7cut$Z%%K^^+|ZQxtA2RNJnDGFLXmv6BRyN9T$ZD^kx9`L7-BQ%FW;8hO?wpjml zTKDzOpP-tlu)RFG!T(PTcz-aZy&oA?H<`zjv;Z-NoPZAMC+eB97JO@Y*GHM`>U_wq zQt=mkf~&ymr+Lp|Kfi+rt{Vag&Y}vS$ z2YcQ4139n0Ez=X9ywP)ACrZ1dyru=^tfN z=(0fe#M*(?=6>l z8tyk$ld1M<0S9uZi=mQntwQD^U6>v>3D%yfZ}x9WF17#uhx`2p0s3uH-_wNLcs>q! z8@wlWcLqeo!<$v~58m9jWTuUd`a>%Z-dw^KLws2Rj(A^f5|^4JR`)&N^euH}=gD8= zi+kpwvsL}SI3NB5(ue!#BKJFJP1cLXdReAu{ofi(<^0I`$=TV@^c;EuJ>Y6Gleu)C ze6-I)H#|-Bf2e?n30||NHL@&oBAl{GI;PGBi^`|%{V9wmBykyl$;*(FESye!wfiD* z^N9F_gDWp)H(aJX#ldQKKl#%QkKC3N0SxyhCgEYA=HFZo?!uAd`K?fRK?$?7!Ux-f zpWCR7%POc7(w4Sv;I6l_^K>JiORk2AmzIy>PRhxNsvm`#@VD;rtmX2zB=ToV8VUcv zsJ~M;Z&6NY*HC)Ts60mJG^I?IwsmZa#m;(wR<INkn*JrFO3@}!H z%gg_>VkH3=+NwxY&!r?;SI;R<+hHD;lTMo@xTO@QHAU7{-r42#FYi>w;ax};Tc)*n zSY4Y`ETALNa8D||G=67T#kkzWEeenDBNLrhIEvE785L44!Ar@j+OUm>iO5U zP5Hc|qRA*|gn|Ek?=3H96_qC(+kN~Bo9W8CGR`VCy7Je!t0SG{O~Ph}y?Rg8#+)&X zm}H=^*W1K7ao__!)r93p%2^=!#er_m5zEt~d;a z{OUL34C7;=-C#DzBfw1x^n^YW0U(FkIz_j9R!Rj(rh7N4i)_Vav+Ij(yDL=IGqk>F zidk%?++2pibQ*>Izt-}K*4e0~acfnN%%&gBo~ud$Rf+pQZ2}>U(m*#>qWyFNe*eH3 ztOyZjr><>1;Hd(y>_D7Ult+3A0|9@QOtyaH%ijgzzXI!W)Du23r`KO?KProWCRI+qRTx?X$SBpf!GYn!L4W zqpUP_5VA`j`%T1b0+TAH*$g=m!MrPnTRC4g-_e$6S@{!Q^Xgt-Z+8L4?#FBwog-O! z(u$tE3cX0nwW@!!USV%Ws%jqycGp4u;MC!=s@^<&*JSzsfNRFRE$N+=-1WS_=qWd)ttYNXeoG zVMY;Wz(-b3@dhMoP(8*2MaMTXxO=vd=zy|~p&_@ZFSqQq(n_u;EcMK+$bek7WXS+9ht2|k=ryf{xB3nJKdfvK*t;mGsv$s1vK}=XfcMi`@k0|o zV_r-*`o~&Xsx4>`|nVsC{O?i!$=_0ESc-`7Bk($ z>3%Z?)=|h7wz2OlGyxW7U)LAsXr>jcSC?v|l+8aC=kOQDDc`9S`JNQb-?=z{7h*WC zVg{FU2S)ay-oy!dBEtz11DL?~t7+tKGzr!`78~#edQWxN$V~;D;-Xf%2Dk}s1ZMyL zQC&uE99pfb8?9&fnYB$~b!Oa#vxhxx-fFX<55X4my&#g%=n?e$9kUMDd~$t%@8Jbi zRriu(E;(U>iTp9luLc{)M=n}>iw*r0^Zbw?-emLmV;7!Nn!n2fr_>AY0B`j0*F31v zcZ|5mwy^*M9=o;nUSHa)jDJE=u6~Fx5|WMbRr3cZ+MnKvc(IxT)MN}hFzR{Qix0S$ z1fQJ~tTPwCxk749z8=&(x~!WopG-D!2Uy#0`5n+*mdAI78i>Q9LJeXn{919I1&;vs z2w|t-&0@SmKo-1Sfg7EZbfOF_KAVmCwC~*KY5{OVo+g?9`G^fo<;d)TS_SaVnSc$htEh4L}P8 zChZ{Uu*-L2BdaRrauw)HaQ+>z0UMVzuZMVa++nlVPMfK~F62S_5M{NQ7*)rfDvG&+ zZ7+e#63naa1G*kFWz3%DRS|);hj&ee-r`p9`ug2}$&u+MO7h3uY?ym+4dHh&k3YCF zbd#2M;ju2Y9swyCT5->=eU6}&DzCl=mcr6?@8wOiHZH1_9AZTwge8YQR|lpipuuZ- zOJa^~vOVSUeAZ6IWpUKOV-wfuphtbNUfX|BB z&e=PTVmBN~d64A;Lha}yyteYato3vriFG3ef3qcn+YI}Vl3V}hal$ETn~Cd;dxJi! zy1B~n-EUT3-3~2W>-66ug9hy9-%D1I)!KNoGkD{~Je+!)x2)WKX>By{evZR_2VXd0 z*v*i39^Qbr1td%hS{8r5y~5|1Cw_1H)jYg?E9iEmR>_1z+qT3gO@go8Gm(Qhh9*xv za;D-G@0U6rQSBLYZTM89Letwno`xUY|5x|9^0*hUOJ62Z@S zr~WyPo_^op?$(Mr!Y}pp9W{x?DGaBg8%c_z?v21~p6xr#nG0`^^{x#s{(PMJhv}T8 z6Kz9yG0DDp?h9E*YYcRQj#dFUPJ!rXUj5hR#BnSYN|SOLrV8=R#<2El`qE~$+UGuq z)%A0OQ8=4_N8yIQ>bF{B`G+I(ituw^g&nFmfi7?6vnX(sBIQM8xo8TSK$N#{iST^Y zZtTXS++bKt^$*ii%cv7%LGGJB@SY?Qg~aVC_u;Z@2T*^%f(OjeYTA5VX3VnNF~}YK z&dMT;8YCj|?fAjQJZRmqWXrMj!SXT0d}t0(O*vYrCwa#u#|Ap~3SZSVqb;rBi}9aE z{M9zGrk=qP;4<|f?_;$a?ivKne#uvK|MOXDwMLju^a{vrbBWW=Tq5qSXgy$mX4aCN z@M49ldF5{HMDDNc^Ob=}BQDcXE2zC8Bi4Y3RANrQB`CT=A8Ugp&%DM@>ove*FJP-= zDzt^m?2V`Eqy$J_oaE%Q&P%hu0KrDR(W{Kks;{*sQiPl*+h)2qY@~TB{#dQ94>Z@h zkY3Y*;;O!-qpHP|GC%@qqV3|HKb_JYO!h-z(;C%VvyKuL{K;*+xZA(G=r^W&9rJ%L z?j|zxL_ZO85k&Q}4p*Y)Nv?f6fX+yjf5sc?>`+XE*nBdC3~DQn^J~(L*m&AIpj`Fr zn5JE=(b*?B+X-;b^33JdCE3dYy=yohem_xyI#s=&#SJu%2f~d)`QRxLZJ9ErIbCYk z5dz^~Z3QvG-)?bph1>`_7n;cYbl8)qCH=Z4`DqfTB9%QRFa59P)EybGMkv_roNe>&<*x^KYC zj^qrV)emGW5KsO0p`=On7lDma;TRygU4e4EfbE`!I5JXBze9)c6&B9u>W^du7>SQ-L)% z!asf+ud5%S4wNnj^v{mX6PCb>!Nl^gh8a_vIc0LDvEHPK)Bd%}ZAbNt<-P_DO!|Y8 z{=SEaxgqw2$gQWrBBKl#G{KF5HKGxxYO#Z}`mziYJ5g08rbxlNy4SlrezopgPOyF@ zqB^T7y+Yt8pC4l51#hSywVaBTZHcH5SzVWM- zidRGkNHm>zXM;+B^7HY_Nn4NJyKqGb(0UnJ-xR~nCEl;l@56zpnRR69CFbin;Wd9y zTc(T9{NVqXR+meOS|^%$@fRROmNR~pe-oD&Kjz)OEM={MB`#;Dcw~O zb1HFc)iY||B81TMWx^cD?s~1EsKYBfzw+JIDeK1Ypo;Uyx{dj^`mHDHOUf2~IO z&{OyZ$4WEDYf0@F3{Nn_XN4BeSwQXm37gHUCHgJGj8+7u=Ta4yqaB=JY|t2qla?m9 ztddmvD+*9lp^ii@r?W8?#Mbn_bM0G*E(}DiykC(S=?X*Uz{339rqC)Kev(qW>pr3c zA@^3LDjTQb*L!I%2`^Gz@HyXp86SOlpQ3UM3s$o-yyvsJEVUF{%?t@P%YNG`;Y||9 zAEDY#`z#zDJ6|~eJw=s2KMA7=p28p;K0+y#$&rI zuW<~3NH*f`3>06A{IN*7Nz`mT7;L-Zcz5SwrE4TFNfnLOKd~77S~4EMyEh48@Ejs{ zvp(rb04%{f9h1h6auf$e9{KzY7}ojT01&r4^0N_hAMz2oVAiavB6&QEzid~wR$XaZ zE4!Y7emFO>3b1WnCTtib1BuTl4ZQV*!R=lzn}4gmh<`X}yqq-O+NNxE{V8O308R3T zqar{b;SWsDkfZy9^*z@KQg;?iZkAQg?^9bi>lBZ_9zWRgtZ@hXaxp%w76=U7)?dY; zzw7*TFGRP|KFOq`Yl&yUq9_CJYMXczzWjOFx+>p&*ke*o zh*Li@=Z)!6{D;V}t8}vFIh;7G9yjgrK%kckDf>?M&Y>^R)E&Os>9Z`pzjyCtjqEPC z1R}|^N1Q|?ar0}zJiZlL?8P{ye6bI{IlHE{P@g*7qpb*VFi>ysxi(~G@*lgWwg=>U z6g=F&IJL7BdAu^4=3mYW8(!%r7ON@RkbsY;y zZ;zeZAbwFyJ6!1hCFCY9+F0z^SfL%@lSnP|iM$sWmPn87n+XPVQed-QLN;m?c~9aF zkX4?WJ5TspX%N>WFwAx8e=2YnGqMF+WeXRVpuz%N5WzE{tG+H6gD~VyzP7KAWj?JU~g#7f7CU?`q}Xytc&~^cCK0)xTT{g3g6>- zTr(O2lh8?GU*H^;8M@qVzJwr%bCSh{T(J?y9RM2EoOiw?eVT6!zTxzUo>5$W>*Hl| ztMTV}d^*3^#&22Wzs@Fv)d{=k#k*D=CAe8tz2BJC%o5+N53Zei`LtN&ed{eP3!rQZ za%=wD9n;=*2S8tM%F9xmCjC2!K4plL^U`zdO?5r_!x=-_t?+0;AP8r=c{B@Cva=dA ze64wTUt4l7<|Fr?`=Tqy`dMh}q@ZU%DPIPQnMB7z&^2i7me1dJ7wQ?7F6{}6>}S`$ z+i=jMOqHRg%%apzh>D1u7tdcn#9b$-nc;mVB`F)EX3WqkOl4HVMGh&DD^$}#71{Uy zf)pa=$+0ovB`J9v*n0zCuk!L0dz#nl2Jkfu ztOB|)^!E;zWTBAlI%AT76l19_O;R|uQ;Ha4k_a5^2Yk<#HWyOR<<(rv{Z2K2^zi^bFWWItXkHbOy}3By zy3-JX?}}Ue$K)rA+*S5W-_)&9{U6pz8>paphv!ys)DFptW=Ta$v#@UGarfXP2Viye z&H|bTG=Tdq867{-tyBdMC@&CW7YA*4m+tg0sW4RmgO6`Y*yZZ**c0UdMm> z0v7Z`5Rsv*H|>CykBm)bT}WXqwN%^X>eaa_9oo>SiM?6kfA&d5@^Shz5m+mnC!PDd zh2y^zk5jysHz%eURCmhF6k@9hjQo-1T+U`Nl{3r6z3q7)w$JlQhN7slZv59h?@s$x zbTW`(h27O;*DY{cSMMAy>`tCMX=rJyj_ZB( zvZNac(khP}rnKMgl=yXfysjKo0996krpy&p&iiAQ zOLb;9fMy+R-_GKjc5cm{$wId};4Y!-rB0AB<&;5Pubt%TVX4ja2l<&`$I(>I3YcV& z@AlxWA8beeQJ_7TYBZKvX$?wPMCbswk-xa_$DXXz7rf5{Vkzig%-w%wT|Asi>}w9z)&`#y(o~K%jsF$$MKOR~{hNJc79h*j z6=2+3EC)}5d_b>n`&Fb5f3Lgo12*lTgMwN`N3 zXzuUTS)D&)-z-s}zzV3(-?54dmT>(DGtV_xp=0w{40Hcx{Y2z786T#fI*3I^;$oDu z5R8haP_3_6b==5nXto*Ax1@|&u2JbFv2#b<20h|}0JYD>w*DAw+EhAfcKF^Y2maBV-Jolw2)XEq=w(B@HcpO? zM?#cWR2!__4UZ0=In$+TqjnpjTn`VBNF+-AFA39rNtkhZ(c29TuaZNrtO^YY37P-l zMUaO`^muH1wbo@=+GrBA&~b{qo>R1YmlYk(on6@l@sWMp*irEtLa!(nY^p!(-%c~o z)y8dmjj^iU(4$kQPTfNXJ-fCjfI>_^t9%bk*g0j;i#ta&d#i|s$602k z-nL_VUlPgQ8$VUAU3+ElndN`)9aHw*`)8CQ>RvmbvW~=uEkj;C&;`HExIOjHt5>~} zet);}MRc7mw5F^JLKf51IFqhCJDN!G8CE&PS_OsUjcxF1r09r*1R0 z1RSe_sN~7j-O#eluN;TG3i2Z3d#&xg^)yl<-N^XZ$@PhT0h=#9>@;&$vmWOsRBtBN zAFY;|k&)_uWX6zx4%AcxpKb`OVb^BT$#IqKqF>%?zjOEQN2lECpFoAQE#F1 zpbisjG~X0&82WzTxi!7IczAfcd$@Z2%!LcrT;4ih02U(`URI_UY{~B%i2;NFKG{ z)UM5v=Z+CKwDa$-Y&^M(Y{9X4iOnD0xwCA1)yDmA?H@mH%Jr1CHDmrhePFr9Fn$ku zB>40)kKpq$&#rkPvGiwj`q>FJTdcElo8ted4w5qXi%$MEGn=qfKV|rVe~O*oI-tj_ z7T(wTOE<;6eOkvca#_P)oSb?;y0E^7tLx}{#}=$W6zeeqiJnFtv&SE}c(LcPB*GgF z+6-N-{#SQx9r*OGm6PkL`e!`9*?U*?%43R^?GrV<5Rq+d*JioW|8S+)Aw&A3S(x#3 z;iWm3_QO$o6H2k_NA%ZfbyQlV2S}paeTjruZ~R11;K&s#R`lN5|7Q>Byml{MzTA9v z==&$zcSZl*8F#f3jrkM3YbHtoS66mfQLRp$`6<8Ox_vtaN%b*f$2LO*cjC&5f#`K1 zTgOHtAwFjG=$=2_FKhD*VFc~*X;ZJ&Wdz@$J+}ro@Lb-m_Mi8UA3r|(gzQ~$)$7~M ze_k1KY18Zz2?+@?2ybX6RhqH{wCK6ja~l4AcaHb$BmSG59#w7fE8>Q`w{I`a$QZo( z1sbVGlU3JFwyKCNLyW4wd}7$gm-V})db)i4_;Cng1t8U93ms)AE?*Bt!ePkWSv{g3 zonLG3ozTO8`KN?g2??qeZT)2=NwEOoDyUOj`@UBVsNoT4*?RI5*_=WY<$KDMOd83&~jC<15_mhToUDb7EyZ4zd{%nDysJQ(+X=|iOFN9McmJj>%{`!3N zZ%YuONO<%ncpetFtwR#NHtg!IUm7%M@JO|&^yTg0>z!gAK0wU7^WpvHH}_eUDf7#; zVQ$Khi^<_+W~1weES|>PS=yw@ou%%R5y!|^Fm1n6ZQ||LXOYHQOHLU-eq;PoM8ZhV zd(6;iH1>A~Jv)5(L8mz@8>e>uw9yf1+$Yy5BG9FHldkAp%PQNoskZYUJ6qdVsL7Ak zZok$UG2WVoZ=POVjVc^)bMF`g7mjU6+Ob0o0s)D?vky)!ZGQIz_IBarZK2IJUkZ7> zTe17encGjFuKV=yEoD`<>=`6|lg?c^UbT4X3TKB~6z{sO@6NujUn0D5^u&o4SKY=1 z9NIeI!s)A9tJST$dXD$+y^vZswqfeTnl0`*RS;cr!>w$#115`_Knn$JhmGoft_Kbr z2tG8W-i)X1YAnYOtr_;|<7_v-^Xt8@cm5qAyFcs45Br$8qC=u)Uf8EuO}lN1{~gii z&y5>D`Zx3C5JciJNN8&eHARP~Aci|~;K0wv#-}6Mx*8#XUJnC5yn8)i{P<2&f5Ji@ z4teun%(zI^oJGF2P7&p^0l zC6Y`C1-9BX^!+xZXqKUwT8ZRf|0~-<6Ui`6UIV0i`=6q#L9gRHOx@8$`OL z8{RS1=YQV+IUmk-&Zqao%d_`$dC6MqzVA85_{A7wuAM}d4n$!*T$-1}#kGe`#7QP* zWoapsshCacisUaqdb!hP1}Jl~5yvF+_pD~Ln?aM)(M%os0@JnI=LG1*tAFPYBEHUl&yYu9>ArMc>J+RT2~U7s-l z!R0iU9G-uD9|UVQ@rglrA5b2|gbCbzn3a~67Vs?X6NML;i1|_VGa)jiXc*Zn9F`y{>hUMNOML+;3=fb3IP*-RK-Z- z*)6GNYt?9q_z`x%Rx&Ma_b6%g010Nnsv3TIeGYK9>(h%Q-dyVDMwhe!r*Kmcd6Dgc zBG#EREki?U;C4{@ni9`ZjBs370!-}%!~)x7o(>D-v{JQw4G%93ewg>^6|*AHqHQkp zEwu9;%gf3JfpJJ#9;r|}`t?u1F&NGbVBGosJe>@=RKI)br5^x_O&0s}qPQLNqhn%< zK)catRw@H5Dz${s(FIFTT_6BmZDnm;!2Q&6rY%Ob^jW<5Samj&L0h9Kt3(jIX>+}u zPi=mCX($zx4*zQ(zzsw?qYRlL)`p<4s?k zHeTzQ2@iGt?AgbuQZZQ+t0zPd80H4}tKK20dganh@LO9vevK!p6vyl8!|S@&&vnuJ z%>`V7po?O{AaWLo`~=RPKhL%PEEy*z(cQ;bP+I4{Uz5^=r{>54^e}A@E*DV!+ zpuA_}UtEaz=pfJ-$?%cyEi_9O54~t$Fk`bYRAgcx%4oMTY9@z^gQG3V2#VBdn3svo zVw9N-A4$y+NWhz;qoW>VIsnO$TOA;=1cCws0-h-F+AS&z1X;rVWv)4{PvZyq0No_1 zjDjV(!^qePcOfb&dLLj*H$swP0%%BufUOR;-WR?2(R)@FGJKFI!X@S-J|8}iP5_8R zjw$9q0lFbna`kwurV*>;0|v$4{RoAV2P?o0OTE34fx;#l=Nh+(UbEVaHx#U`ejh zVO4!QG~eV76;)HpJq8Au&Y1mHqy2BC6%{RTS8Jl8b8RaL0CVX|xthjcP{Q_`X-=KK z_!tx!`N%-t+{y}l?fq-S#If0Kr?CmsIub<|K#K28220x<9XJ9=WNOv8S=rmS|3Xw? z*p>1~(Ou%A@!51?{|YprULKc2?ClFJX2+k8)ff@!Jo) zIhk18D6)?GI}V>8)a&$kd$sfKOCm+;LUi*c=z%QotH{RN`Fvx5036`@hn>>h{g_b0 z0MFy0fPfxj8a(@o+wN&EoC={($Fw6%HEZZ zl?OGvW_D1KEV;+QF?Doo7fPq5*cr2aWn~M1OEies;l~TYlJ@fk1_tD0WXhqirYvf% zlgXYWZvFEMA^T!H+ELe~c{W3^3E4jYQn$wPsJS0*hMzonvXh&HsVGw^*Le1OJS5$B zkZJl<$Dm%wM;t5lnj=44<~#V<>b!1#e6a41T=}O@{AMHN3Q|&1fZ=kHjC%RDe3)fY zl2)zB#76qbL`QEIX7|9~e!9_u)(`g z1`yOszuTTa#LMKNO$pLb+Kwo>$6ji<%9~~l0ya>OM z|CsAcMpYP4)^uP24STax=ErJk5WZ$RpLpWy!h9S6X%g@!P5yYfQd}h4F5YDQHhSwC zbxSyX-{L^Q=8#2AQ%j2kGUfW;BI042hq#zYrAtdo)8MX92mVR}1GZRx)MB&w{aWIbszwfR@?76G>)O#rae13+Xpf2sDn9}ySgUyz)0Yf~*5aBsr?#Mv)SoypLw za&p{1iP@%HlQDVw_AO$HQO6k~R3~X2ljfHZ=8a;7Uri?3|0&i8oiXs6$pc`YKiXgE z1HZ6D^saVqXTrZHSBnqb3NF27H@X}SPCQ(l2GxkiPdHAaS_9b}P|Zhbe?Pz8z0C!< zM{?W6{tj8qB4Y(1VPVy!ryLHyJ{*Bb29cnU5z-?S7t7;J&CJ}L@d!kMVy>o{LNR!5 zM6oek_QjI7r}}p6O+XfrQ86+y*4nAa)VR6YE)T0fV)cUDrJc&l%i9C--<=?IfoJvW zRSt7{F_5Hk0OnC#8M1cUNyBpQATfz}UDzeI0~qmL7W)|_2C~&k3Sp^eHR9xeUV=7i zVxEG|U7u-}E;)n@Nd>c|393<6UOq&>JvJMqG3az^r5yFBin#nl={R1egVly2(*efK zr6DDdd~zU4N8OKIDQ;UzgYtG)D>e=E_xD%KQVyJ+@I4{&fY;a?QS2BkG67ZSy(K`^lDO?0r zRV_3OM0o{}iXa^+3DChsPd=Z_EZ$`}8ZqupiwA3H1e)Kd7ksQ3;0L%&85fsIu(~d; zKojq`z=$cnIe)!7Uf>KYw7qJXRWgWbQY9rNtkb8b%c}-V!{XxNapA#dE~w!L;44Bl7QExG>l#=2h3z9Y>9FI$9O%T!~Ja`QH}?Z&JOfK{9EU1eiP0C`bSFY?|HCgKvaA^n~lh^0Nq7F&2k z*R25q6db@s`PVN0@M;vXzDr~2OUNM$ay0g6f9&|i6J7q#cSwqac#VBsHn9Kd@%#9W zjyqwm=7vggleqkU*)hXC1%s>tbB79bLtKR3-+qEfL^2lW!f4$y7Z$46Vl2mcrmbmc zh)ZIEPOVt-=;+AN=`>M5RFkgk1?3)%u&9ZU?1gMqn@r7Bqe>0b|x;n!s8B>S*L;=?x}RN_Qhj(sMj3Q)VJET4v}aAYmI_Ciq*_m z0r$p@6t*!Jrq+c{uB*Sm1|cDDx7Z&)IjPHHF{)ncd0Be>D1WFLWEZFVQ6(5h6S=;8 zJqdDhaw8D7ic@kak{y9}M3^l`D`|OtGSbpYqL6|_Md1g(Fa~LH{`~nMGH_iO;okpHEjDs-Pki{y(jRWFy{ZzyU}-5nmZm`91>EB1}$Rt6a=V% zlg)P}(nrvZruix^RdC>&rP7zMI0)Rp{=go+H*LE~OX~;50FtfAl+~m;gi6sCao~ps zuL^;E-k(#rW-hdAKp=D#-I|m-tzRM~W%IFJp#L=XZki5tGhY|Npj*$9o*iK+2?BYG zQv{2_KXj^vq9rcd%Oj{f$j!r}P-dlfiG+7}{va2Gm+IhULiWcJVYD)^Y?I^T@tw&M zG^C`TjIBNZYM?I9F}vkYK?z5&4_SNLo139zRokP^VXRdCaaW2jtNE~DkCNg~PP;`A<-wo` z46jN6UXzKrAFPTLubkrV7zaLvd>tvZ6acYG8RCDb8vGRqR7$YmD3TRz!CIDZ+XcN9 z#W*4@u`Yul{axCBp5R@#%DvGcLeg~qVkoT&#8yRh;5-NgiFNLea7BrrsUm@K>xueHkRr({_Ve9TZ#+Eo)8lq_ z9EjMT@q=wfa&LVrU8Bm0MQw@b^FV>Y^($8rU|nc=X+0AB}*|MJNjXlx{|Ur1kzqRNO>8MDY;Hc#tPX^WEu4odJO! zp7c9%4+;+6?3AFVqM{O`QOtTAOz{Xs8>}cYvqg~sL|k@R<@PK0q@|@{VIF~5lm&ab zwt*8x#q~;(LN0dmZRJ%$LRu0MlDdWlwNNl78WxqS9>h+ww~9>q?sd5xt;Zdw0l2Si zZ}+XY^W}nMGJ(`{>^(9MzAN2JlUtbpicD|!Id6{De`W!q63l1XVgP|rL2JG*mmcg0 zAZ|Yw?aiE=90E4;=*r57j+1A#Up;c22hASl7QX-T(859r**}+9( zX~%1Z>9WcBJqFqZApEb>YpMgQ*+s0P7Du0^^CJ-UA*rdU$u8h7oHl!uda~8nLa7zR z!|Ao!KE~149LU0LbPbnTvp8)Siv7+MB$nWcumb8igQgS8f?h3t~7Hr~)A(7DFDYg34ZS`&|! zZ{Xslu1+){u@UxGNX%)uY^J-|Of9lizwYbT$x>G*z^=`)<0B=|6m}y-XE6Mlw@6ww zc%A4;Ngmz&PrsVPd*Y3{YA`ufa6tOqlQGfDE;JTn)n+}cn|_hqR{OK7R#VL?bwRNZ z&gmc>K-Prv?oM9SD1G+X%1+0hn1}3e#d22VZA*K*bP#xMb2(hFC165PVT`Nfr3>sV zb6II=631r_*F77gLnRKgv}!aN7#PB~9~tvFZ*{}A7CxFAKLq;g`~2-4Ce=qyycs^+9?M1HzEX2s-5gGz8|QwcvQoM3mm!~?AQnuaG8js) zrRmST=7l8o_wSE)_x9#Ly*P#Xi=B%l@bRdEhf1RW@ax}OgtBvd4T{n`l(z~Gq zAjoVzEs6Ntdiq-jLNUZ>Kv+rx`Fbq&%fp0~%>zh+DQUSXAe#hvVKe>(O9KE>r@^mh zvMG3KaWM->zzFQdV6|%nD${GZ?Fx0qG;l_>>c8>yY-w$6&A(~#zt&*Ot%;}G`HoG~ z$3X0X-%f@FnF9eJ2XfyA8Qz8l69D=!>kI2n2iG7{k-j5#oD7uIN(~X~1TizU$Kvnf z6Jj${&4pp5SdR!8Bd-(=>rxR57LAca@u!)rDkk)tft0t z`WycHRUjh!L|Bn}*l>#wN|`Uewzt`&qS>{3jy*2jq+N2~89$RK6~pNPif^^?jz3;} zeEfi$FE$CUDFEH?5+uk(86ZEMgPqlSkfL;EZikyniNGqtuostbad8v%TcbP%Oj$YY zmrdWI;`hKi6Zn-dXx5AN_V$TD2g3aP{871L`Y&I;^jSQ@TO6tAduDIX2I|2VD} z34(myT)>?k+G%QP@+c`Oxz(f$Oj6E}q6{{#XP@&9#3o~OOiWj{MPE+Lt)~7e=aNSn zf`YGaHT_y$ZGw#%u5|1Q&}BC1rETfM^UxM$gxk!wz4ZKxcbw5R=CzJ*19wOeRktpL zt*t`V=+n5Z$*gr`-6p|$f_ET^Mz+c}ZgMrOe-|NfP4eg6qiijId-ZOLig^;}*nJ-G zeo6p6OlC>|>t@5H3@ti;`xUK)V?NA=-}%Q}w>3P>TwGkP5fVmE@fKWB8mo5gDX|!% z-Hr?&by}bUVP~`M_ztnP~&}L2+RZUT+9Fpt31p^sm&(Xndn211mc{%zMvZEUK+opZ9#RUg7= z3gjq&x*m@q26G;7*Klx+lOzTx8Oi#oqcwv6YT!5Gw-KJn|9t-7$0psaZ%C6 zU=0!Yd=4SrD4xF)QKT$48ZN}6AtP|d;bdU(;bDzHPGT|IfrAFEmO`>ybv5}TYTrS? zT_YjMg~)#Yzt-on7s!V+=m6T0P*fNIlSWtZL>A8@J}r%sgM%a8xF=(m(@imXak|W9 z*UB$PIvX}VC<)@PzdJd^cCM4W;dft0Wgz|^48M#Buc`x}`+p|PM16q-4VMOs7%$e& zCxV-S`x`1YGpmqFlNUz%zw9D!SE*gL% zdb;R;RJtUVm}LJ?DqY#XD_vJH7(XAE!e@8>v(*?5xo@K!b<8lAs*u{(%d0?mx}_bc;kcFQR;I5<0-bR-D9^YVHOnX?I~YBE@8lmY8= zgI4)T4=a5G+eHD8g?+GrMOIVdsL)c|mm%y+fLgp;%Omgg58(!BufAVhT~(aX;XU|O z%Q~ZcPqR`PG)F1wzf#GiG}hG#k+}SNp{}8E9S_g2%iV71eXBke78aV%3KMyjB3kCT zJW^rc(EfXP_P+*zCViSHygtk1L#;nPzuNqC>T-YKWq4jtwP>&aT(~hHw$p?!o6W(FrC8_l6Q`JU8~+uv zZ}W`iuuj=p8OsHCyZ|Cp2^N{wb$4fnl7d1Qe5)t#(T>j2aGBiOw{H=zqoGqqz2?b< zo&Q$Z=v)O~(g)C9WHH9eVm8>FagUZ((xQ4-KdR4{gpaqiK~l5A?h)8iREtH!OK2ou z=hwK=sJ-0~o5iU5OnaR4dR`1z6x4tPRUSOYld8`cdF|S@B)7voy#-Fpo2z_Xl!m_t zdP7{8QD-=E+yMQjN*hD((E1rXZxU???`jft7LWAtdG{{go>Cy^EkX2sd5ix4(PvLA2`O*4#qwkZ1pJHi48#vAKI-ZwRn;~J!DgV& zym4<$7Jv%nvh%>S8Ee+7fl^{uI?IXFCALUY=fWtqRY`5{eb=Kp%&8O?=Wvy+jLL9?S( zwfwy2E?fvEt8QpiqFQ0XU{K>RFVH`M^zXwx^K80*v3B&qHATqjo_E)2{?3d8n|J4G z@i}|GaQ+9uWa%G!6QCmki}75N_D`|#XCFD*h8KUf;W@YEYo><(*XTO7|Np_{I`@tL z|E>QYdh5FZE{FrkgoFe%xQqIq%|Ssyx{Q%FAiPwXB`Jbc3k~Dr-1eG?wIPx|J@`}M z#00pb0FkFw%K1G|37QO8HDh^ib0Mt#5k)W>V){M~xAE!of4#vWixV?ERW=hFTu@-0 zvIH+x!gQdU(ELxj96^3#mVd6SSQJRyWdXF{Iog>30+u}?3{>~r8S5{T@4kX(DwO~s z-2)(PW4{m~Nx`!{Y>h>D9VOWHzX>*Z8CHVy(yP;##O+J`nsjAzHLK3Eqi;YPmiRkh z-RKNi#!uk1y_^j`dLRUsMo|(C!Jv8hfB*Z3@%;WUa`BMI;rBF5Dae9@f|#HE;O7$h zZ@1=%mRnSWpZ_^5V^%ZBuI^+BTrQ!1(2M>v&+O>^`$h0MlXG)MyMw@VXfhj>mhk@j zMd{E*iI$g_=ettsaNROxSe2b7@QxOfroK0o|EC8s8l>qy72u(eIi>E(IlJ z8tJJAIMXXDxnOlrF=Y!IOSG@jah*&IluWTT8RqfEn>TMzS+{xHvQZ>ZVKR~OJZv%P z$~F1lch(TR{L`Vv?eIJ!_BCxlG~u8=$cs~FY<~UtOuKm%bO(>~7CL|+E+y5rzLlvt#aCw1)gF7X1=(OCf?AY zi1XK}4M8?I?aiesBnn?bMoW4ybt*kIwlg)(Eoy2DodCH0U&e*fNtsY2@Nads>S%9a z3!7Y^FGmA(s251!^}?}R0v?o6)V-5;O^wXv^2}|33y`npffI@NelrN z00}~3o#v@FXFCMA?3cgU?ic=pg@t;HXcjHMn;5qK{_Xz~vqEwV&Sx;X;r{;qsNsp2 znk(cY5ucm7o10q{vr$lrbX@FR*VCs@&mSMH9HTQ$j?T_%J!lLI4I*T#m28ZAlIZuh zgErjkQPMK{>V*TlolMp=FrWgaMDFq90Ms=H=Q&gA>I8~32Q`VnafZgl#i8-VR;3@K zAFXGk4mY}_gOaY0iyMB6VA$oIMl-nAX%t0+fId^2g73~4?I)lobeaqlnVg>1S8!XO zeq=UUse%L`H#c{8p^+TV-fUtSF+B%|O3lHVHyR)*EoDb-{njX!uG-6drd@Vm9?*~@ zB)1ih`8$YbG#iPANuNGVAZr>K(YSh7>RSOrej@3p4(b$ulC{~}Fhb{)F7s>z#Ja4B zac~SAjeTBpanJv9|00^l25J6%$f733X#c=z>_j6zI#DD7c8EPG+&^V!cP6gLb>EI> zcQV-N=i9qhJjA~z22FnF-m`0qu=ij<6m(A?`ijq)@|S8NW)&_3S%MW)smt`h!+gS~~^ z0v5+u&3!Zq16fEfKy$yTsR@>TUN~B@;jRyYV zg9h9C!I4$Y+ZljCXx;}R|NY-JMyIwqfCkcBbwm79*xipR_qLWY)8$gpc9szb|DOH& zv%<7!g|Fb?AX_VDZ+D;BsFQ4D&7?19ZhOpK38)9XUPE1UUrVx9MyLlacefZt7Len6|-D$VPI33rLAiM5}QL7ba&G+S6%<*w^s|VTq zsk4d(E!P~o!QxViY**_vV8?Jf%0kArc5J36bKB)Vcy*f9_7VZ}ces;WSfzBS7)}o3 zxJYawPD3=|1)q%;wrl8_vOmvO1hMlX0}2xeSE>Mpo6LqEPG2IJ4cBt(05@yZb9At~ zj?Ph0D`utD9PQE6JZxh_-B^!HH?Q5eL7}9iB(V$O++AUBf!fPx^q%(jVEDno!3Nwx zrh1tb2Z8ne))KW`ijUpWAi1=(w8XCSN>wW4U(3kINIoU0*hGVWUnq^z#$>RxF(eZ! z*LMB{8lXrJ@N+kJ^=1 z@*~U(L7N=7J?bot&iPEY#boB`G|YqN#4m1d-zIt1QXf^Gg&RD78!k1A(UU$7?-P)vBL-K8cFOp-P%EhkKh-6B9bNy+7H; zToTdKw6{y6(@lWvJpde4Yt1z17>`1glkMTogn!r;So@-SKO!1FK0Z3l%6{2u$93ez zgdj5%XKuKyx3cXWthbYkLAV7En1&6Q_V#JHo7wW=;NXNcefyRqY1o^oM880<%n1;V zYFPPtErZ?32Qu%S&hXm}8Bk0S7n_enWtYk@qrL#TTvApF+yy}K-i|~O zx(kZ3ZPk2p=?a-)euNyi!Nf}rO;5U(IBgo&H8dD-5Tk*Aao%@d+Hux9x~mV?B#1a| zC}H#Xd86F_oPhoErq1#jRc_T*)We4l|Eu(S2~!zSHnkxfw_eLKvEw8NX&6y*NYsJxMIMvvLa@`r5BwkJDw7Y4tdEkCJ8v4C0FBx$bZ{j-gp7 zK>sd?Q`Db91PUEipQ7pX_Ih%XR<*y_M_CCjfKYb+ zZ9@aGvm`)l-)NO{m#JET{v$Mavu69|{B@MHo693=O#0ux+mE@1(=#XnB%eBcF(5V7 zpq%TZtb}9q_{h~f4%E3$N=jm0xN`L>dDHx=>wsAtK0Q6XSpHtzFQLz9rhCGlZ+^JU znp!14Nwvh>Y*V>Yr@>F9N{d1|HVghV*FfSPl9`#wX}6f>N$e#0yAK!1Z!uO~W!#ey zI^OTRz1%}zbC3WCf~efME9H^jQ^}=IFHQ}X+h(F!m?W{Qh)D74146fqs!oG)mMA#b zS)D+YljxY3o&=!_kn{TN<_{mfBmjW)BjTdIfB!q#AUsRA!C@i)pqP(PFrg!V%()GML#i!|p|K18C^-`Am8Z>#hUu&^^H#m~^YNXFE zCthMlZuaeA=TYk!{k1j@jv2}C3xo69WUQ<=F!!yeB_kq@Qn4PrXBAo*t;%~^ciuPh z4K_CR>`)0knuP7Z=LFjGCFi}gE2)nLuRs-QZ_f9W+AiEMH8W#y*?E?&B08W_Vor4B z%9Z=zCw-Is3xbFC*Ynrbhl$vqVP3p=arV-sItaISuvyxlo}c)&y87bPD}fgcqJjfD zyirWkiMzEf8?CJ(J*XbHvCwxJyxqgcj~~b8>@!CAGm>CM_yZ5)bSz9I8~ABe*j@TT zVUY5lSpe!#@mzWVn`Iwj9@Weka0<8%T;+no!p2315LP#KI6~M!@pjJRWj>C7SWKif z?~2bPXRk@f?eOu(se@zjQ0h0JacDKluT4)+m-Q;y@9B*?GuD`zn*LfGVB&UM6I@Uh z7e9|Nvk0YE={Z60kfpG^9K@JY;~CA1<{#g&=*KtZ)gkh@xJ4lE*S;I zQ&6l9D^=Uy3k;-_Qc|XAgmFF_#JPItw?=7?l-r7mi+=%G_dQjbBqpY9ueaUha(BB~ z?;45w0nSwlN&cr#Z-4pn1>(=-TMQRlgPp}l`5OqkOZV>GQ_j~thepU`+-KTi(iF1^ zZqRG`faE8IfXK8?KA_%f(y9!e!RD+eo1hz*V)d&u2iZFUDKfv?JIpV3UqspuUZhJpJKjlgX2J_+47l2m@ zz<EFly%yiCzp=pW{~fvzx4dIhsO=$ z_r1Nnoq#3W;Uz|0!tiM<&ESgeV!jRysbwC41HyV9LZc)_#pSe-h6zB!rQMIj#BeY_ zmzQ&7Vl@sAtgNlCVgTiWb*k29+Am<{K-(AFqOlwdq`Bfk|4f|wJEeB%|Kf z!9msP-RYaj2fzlh`MP43c6PnSC1Sx839{*v3%NDDlyOW3ewcr?w8mWOcDkhb&SCI5 zZPMy(m2%XnC?Ke{wc}-SEDpbIld`ZV80-T6hUWYDTr>h>6+$WVFqYRf%A{gGPEKVA zgkKr6Nw4I@=3O!}(WW4BJN1!if1vq=(vX2-HL5$&`Fp^pvlnu z!a`{q|*;X=_f!_LV`z2Xg21TfeHCeX^YH4+`J zuHKucnd{4q>mM9!2G*GZW-f~j58uAarjV(4T~4mc)E~Fo+Wz>+Ri)actP*4^ESX@k z?Aw9@>)2TT#Yr|T=8errz&bj~Zz2T^F7j;CiQh!5gXMUgrkbzk6&Hs=9MI?in4aX< z{}vIrP_+JPmvX&>je~^z_U+pVeZ5rJez+fAF8Xl09hBCa43t>J#eZ=#5~^a7Rl55f z)(7i(p<&0vOjB^l1hzdf?kZe&dRF4gnHcHl9&IfS+@YePa&(J{MANaDM%ZBMtnlzQ z(M|dzG|tG`3p7Xt^bDWQKDKFH0LgoTv_QYLd7XoPL67qe5h39}&!ai4g%^||6_RzE zf(T*^=i6cm4BCym&48#e0pOgBLQ3Es&`_1_62+savlz!;KVAqs8XISXfKNsvXcy&Y zuj+tq#d;pi=dPKkDJ<+E4?a9|LS$?&a^-+M5UVMgk)m$Lnfkb|)8b;~x5E z2oRWDedYT4`m$i?eDl4$&Z>NT@*uXFesj*}nj?da=$`d;kB z_R1LjB84|P%9#ktr@z?jCK|?E8a3Eh!zSVNf#r<{Q6fIj97=NnGdemdt^z!LqOu>C zt{_{jWWLfIQW%5rC+0bcQLlDEN2p4jHmM;?urOZ!{vyErkHPh+Pnh;*;bVSuCQCfC zvTE)!X=#JxV9=?*cmTcyk5ShvpLzQ8t235slVUErQ{j{{34+xNr|6eWoSZmOZK0>y z>8;A9iBo8DYU&*diqnwy%2iH9y}ag-tqvQrI8UEGE!?{D?LhJb{Z=tE14GAPcx!X> z`O74{-2>IWzL(JKql{vugC%V4sl2?r(r4o*7nhdS33Wi$S#B+=L_|h@ZflcDj1^CQ z850vzACx;cH|NyTPP4fktU8ddcY?p{GDpz`Op!^Su&iv5@Blmu!?Pd!-I+?4!E`(? zC}2`oSO2xzKr%x`fg_`-qzD@S45oi*$b`tGI}Hc(1L(=o_%7RfHj8?I(mb;v)K&zddoew}e1kRH4iHg~(&G~sC9Cp@P=!@oO_m3)lUOFuk^SXEeMUt|!<8j$7 z@(T-}j*gDLZ!`P-<)zZI+PqP0-$X84MiIlI&D-o^13Cci?hGLz;g6M-+z@o23G*Dm zL`#D|0n2&Fh!#2L0d3wrzHcIte-%{fE*4EZpY9(#` z+Lcy6CnhYH23eAllW&oeV+95Vek>_z00gyM{VC+T2C2rMEPIQSlK}8SR6;^PSC?$Q zJ3X-j2V59UX+_0EqCf9LxOARL-#uFO(tl&P?9qut*<90se23%1?L57f8%P;ts}?=9 zu_^52h>VW*X>1f_XJ`MQUS^f1QNaqI_X_m%2LVs)v**q|Sm@0T#irh*9|wH~)OrPE zr?txx2&Omb=~RBiJntYHO^9kBN^&%--hKTli1}3Iy!|ge{yB_cSBkH&L40WF^@joi z;8HJdERWobb6Go=qgCUVE|>bVYJ0S6_F0p(D`s}2f~`4>&bz-~Ia^1>pI8W}V0>{g zdcwp_Ax)kdNMV+cnTS#M?DJz=UW1g;7RH4l8;!eM150y}MH95S4D<7)%~blX3o{Dl zGgG}eIj+axEna~{8HfDoudt^tHXV2gIGhM@p$u{vo-%lXB|AI&1i#6OXYIU#0;Ikmnf}GY^Ex`* zH>pbXaH8lD_Q89Bb4QqzmzVhS=g()cu|2}WaUrEH+1uMg2!5)o6IyY#T!g4ue#Zzlow#5PmkInmEIU|7}su2=8gB@q(2gn^XC zfp|+-Ez0l#vH^4^L-l=7wqmP4>+0(3g^@(Ew6r8((AB7CBqiksEl5W$9`dh*goF|J zy@RbG3)Q^46co*%my;g6IxP!sKkwtmfW6IymQu?JGNANKH+lJxjl}^u*i#w^95jy_ z$z^Zu*P=Xc?U&hCd2g^wZHrW4q}QN8}rn{B5r1z_)V$L zRDzKA*MR|*2@_zJD};nu3T})23>=m}Un}m;_hbr9y0<9r?d&uHhUfveb{3f^&2^>v zgQ1X*1*6b&1TsMv#BnERbxUjOU?fc-(bFss)6yuDkCG+ACqXHNnvaw>H3r_9f@f&X z3kkWly1E)TUhCNc1iH4d2U0RwHd&l=`@UMf?px5?4!g}7;{wg8@Z+H5=1@p3i zUCYVx^7480{5E(>^es3Fqd@iy0L*)uQjZ>8hgHujER+vB(S5gG*q7iOhQoe20OUX$ zzglr5ip9j34nNJpHE=jQ@0;q;RJhi83@nRa>|jq(;dqux!6XoC7p2_F-6-2g6^-te zlTxwVDhtZ$>d}}0Y$8rwXU!V7Lm=Y2GwpG>YHDgKHEvbCdFY!lh9!Q%I-KN3Ws?=V zO^te4L0vG8jNpx66LT;Dp#F_}7$%t_V_*^SIjoZ8vy^2pqM_6Zy5On^+C#k>x0Z&; zxw+M6SkM_?p~I`wtQl6F2?n z?+RI}*dqCL;XDfG-8vv@LvyQU5nHNRy&fdeTIV0NiM$0zFk7To%F|%$Iyab#CWx9> z30RC9-(I~t30Lm~H<(-rl>BpM<}RRRzRjF$awUW-0TBko*O=oBQJLLR6mYT1Zt~gZ zlF{rk95Z9?$Dtr&E?`i4e66c%s`JK8wp$t$myG1HvRmxG1+jdRA2|*Xr&cSYJgb|V zJ%(J?2D)x-O->fwF@fcN=-a2jQ&C(d=6<~O>Le+6wl4O&HI|bp_qpy|kezO8O!x^* zEgSz3Yju5{$&Qi(O($T=w-XV?*R{3X8*|o}?rX6T&fvo>uqy@sDZan8RFtC@5EJ-( zOEUsZw9eCZ+^r{<2s`^*;tOkRj=opna@)v`>*D#I%EVY<_v+YEI({O zi*Vcbj+9x8NJ>h6?dp=7S$%Qp%z4aPA0PSVSZ>GLQc_Y+_4QL2{=IcO-|f%|?krfX z#C&QHeP33RR19Zlg3tx{%dS0CFmG$i0gOM7LD3+*+ZMy6H~!^~>b455E7u)^_E@?q zr_G>^4I3OBe8_N20N>G$Kw|8zxTayCwI(h1LvmhTUgTi1t1dS9-nEJa`yT z7Qc-{ z1w@n#bjzs!4KG^<6_G*Iip&_ih_8|~Nb+iYiFF~#Vf81t(wq1^PK5}kje9c4VUJME z;W&1zPR-1uesg)xsP}Ghut);TXI*={G;rD->QM26g9F{;qr;$p08%$MH`xOHM+|Ii zxO{wk0|f^DXe#92{>G6B8q%qTa>D#ew#cS=j?RQQdw5T4-SOCJqi<#HcSP1`~j~ zg)d*dDlqFC8POOX9!3zJ`KlQ#^*dbpd#-yMfxyE}263(w=&RWP%)}usV@GFToj?*R zklnc>u+R_Codn?ozV+6r(-*1uCnlwZIz+=eOs&L@)M?yY<0|-$59A={61H7Cm1OV< z4M0t9C^Wcq-$&IpSB-U%i+m{+N=$Fu6DRGY*R)7p?oVoSxop}!GB2l~6gEKeWkuUe#aa&^}zo6hhSy@@nP)=3C`Zm`< zOlKT8gVPg*q=FO=IXuYMM7NqIpMC`bA_Yg_;lr1sGqW`7)se~Kp|VHWqYJqoe^QEr zQMo2h&0j+ud=FOWvBz(jxRoj}?I`ZlAJ9DXVzdA%nwA*8O9F7h+IBjMzN=i!q zoHr@yS86m5XDi!l%b~Y`~f(rBc^=ncF2AngOi3J}% zJeeV%{&IWFodj%V^SWjT1i{0ZwwOHg5l#mO2SdVw!osi9t?$uSXAttb;H9UhN3fa^ zl-n+NprJaA1xR9aWeGyZzVfi`aj-*lo! zEuvDX?GKbQi7FiI?4Le=zBM#~6eZ*DGRE!BTMN(1Zt2fYl2r^)GUcy*`w~oQ>JOrW zhpL+9`awyA0%q17FJkH#{a?;LQrClwkDTgqhrc#?;qdH+4 z!+jFh_4_1rP7(goKD)D--hYxsrdTsOasq1!M0InGoSYns-#~x=ho^P#2=w3?Kf$gQ zRK+^!i`ezKY|IAsa$KjD|GrNs;Gpo+LE&2zOH2Q)e`W3=a|ky4$B6xy(E4;MQVHP` zATv(y^J#2@TQO+(P;4Q$mg@c1=owK>(go1*OdXSi)Z9do4VG$D(Q)*Rn1JA#K>(%!4;gYy+ z1U?vKVPNY0M?i3ccdWPf1|UbLYFGg&2M32XsJi=XY;4N#EI@9eQc|pTcp(=M z55M(Vd%0`472#i9{-=9@GxhCj{|UTKc>chM2rn9?oF8DAm6{v;NiI7(J7Yc}^}HB} zzGpB?z3d8zr%wP&_w|~u5%M@)10q&z(^5BEP6BGW7QC@-ePEpR z#c_qVue>Pf0p~u#uL;?oVSq0w)rx6>ex7YDsvPW0_@B0@0f_qe@nd6Ona85nKhIgs z20z{jO7nWcyJuYgKrjUNclqykx!LPoR@Q~=g$jfAo=m0nO6i0>biP>C`Jp~|NL^o_QYJStOGU=yAR5E3kc*3gW6^_XP|Y2OXhCe6u9O>ljb2lo zmW~c|o)quFF98n6wIoI4MdmsZJwvGEgpnD7ePFa-R`+$ia>A>s%C)+!X?c{Li_5?n zIM)(D^IA-U8`wkji8QU6YFVwmSYwU{IKvZxqulU+UTHrnjh+3NK>q+=ygP{;A(p4J z-&K?fyfLzG4RbosVE4vCAH9}@y-WuPRu(b}ij$a!4Ki_Ra>+H90-#!AIf^(R49RcLXd%UH7#|a-o zxE}ijcmiM8zfs-4Ddgql#T8i+6#ZaBfL8zeu5y< z*KN)2>4@cWZZd|!J?L_O6PbHd|2Gu88h73;{@8&u2#k%z#(XR(@yyQ7{yfBOHF=hp z&+Q`SV?lv{F9FN>!s__Q$jEr-?d93gDz4|C-x1F>hti;;ld!KZd{kN*pm9ysuA!3? zCoIQnl);dye}4J>&~az+3N5R|$}nlS5x5 zMMg%33LG*rGNmrNjG$y*f^7S_JW}z7;4%s_nK~C{cUf84A4^NV@dBO+Dh2v)23c|b z{!|UXQaZ@=Wvj7m%=cW#RxP6Lw!@`Uecj)$3~+k^(D5V>}62c0(wQ(tU%r=!d?Z zzxT3Md3P2f3lQ*9G^g$PmFj)-_~J)@!$#1e_;$q%d~%t!fz9%8+4muhGAnY(r%+eo zp6KZ4$Hk^9Af%pdEep@Y{E}qW*BT{zpHPTKN1z? z2c5D!R)YY_W}){I@G_R7776O0!D9tPNBe-5iU&(+2%1;13O3_Qef?=52KoRy->Gkr zOh~qvk5&5?7BXY_SAW(qfL2WWYCYdgm8DT}?eV_~@t zE(#^e;{?HTg@zp`fl8Z{h6Ii4n?=T)7U+&1P~co=|81=a)@2_3Ns(DwnIB9IfMu)g ze8;5J)aRR;np7M7iMTu(8$|_$g@696^Ts>}MGeAZ9Kw*mHWwlqa^?ptm80=Kz%jec zY=G6sL4Cx)=0cz4?Du%?m4=w`z4GM;c2jKT!~F8{*TA8ycbluL6JmaRes!j~==PmE zs~dB2Nl8hl+MA|Uau0pSt7Wx#@)tFWsyD!%r06@Baznk&Vjy$g+@MoMMKOXYv|*oK zoEo2;d_C8dIsuu*p*iD8;>Hi2^IsgC7q9|PzPvtXI9$pA_oqasC`@Ci<;3KKKVKMX;egSr>+Y6E z-{E?hgf|4RP6Bd23E%?tSs+RJjI9s%Hc#>&tsEaoJ8dmeZEbCJ{t&A*_|GiBM{NNH z5Yr+eB4rM%Pph9^!$G|}NOB2z>d@{S4K)Hbb6Rvr_#Z5+bC^gL6UFKUgX%L{Zo7KL z+xlRq*TB3<{BA#OERU$g@;HZ?RA6Ic=j%3IIYA1HaRVe)ne9TDpoqu?3`ppXUE=bJ ziVK*5A`_*1E5#I;D+B}?eH?;sT5D?sxVgD~h&-e|fBuXrKy!0*LOF*YKi)@{4(Qf* z4fT`2!_|$AX>s%LU_D)zXRuEiJpbiGznnNiH4| zfZA#yD@BK?Si%AV{yjm8#&am$w-zJe6B|Tj z4y9o`>%M$R;LpXsd6NdC3kymx1we|H82F=;k_7e!^-94(B+2kvPfMO4h4lYsJ;Y?t z7DBC%(Fk;rY}}IpZ-~-4)Tpp~3w%SXk}sI(0v_ljKiIRiVY>&-7S)Ec3rr-go9i7} z==(`y;vVchS$&+;hnmIv=zONl%0SBk4u`vJ=`2xmhs5l$Ukg}j)XIEEUSC<@Ywc?lTWuL;l zyg<|qnF4QhjfRFMT`tv++hynR3f}+2+Iz=y-L~<=Ut~m)O0p6nt7MdsQBsN)S;#hq|u&zMtpy{QmlR-Pd(rulo9YKj(QK=lgiS z&tsgzLP9TrpK3ntfUhjySce(eU-X9pC6VMHHb0c62 zVC)D0eoFZ{tl_R*96-#1FhYqTNC5qYtJro0dnZiU>I~L>+>BVJQ@>U(Ui+G7p;&Nd z@Op(et!B0DRCl`d(9+`Kk1mGJd@DnYO2UrupGi;*qa<9-z16AM+Ft!B=peE_iNG9_ z<}(CtnRub!Gc!*CCh12OU}&5RlizpIe##LRl9JK}OE`$q+1?36=hNWemrC=1 zS9@xN7gMMM{w}?kn9l4GV1moMIrUB|yI}Ew=^FhF5_CzZ?ypS&aO=@1b&=|JoRZoG z^o+-%C5g5wfWHOnKAD*KNdf%RVa+35~8jJYJBd6maX*5DT`XD25@k;XD_o-M2^g|4n{y4kbHND>0rl}&DPcXO&nroqyqh;6=#qdQl z_0F>+v=}EZYA5u9CVyg_L?@ub46E&4P#`XM;8Nz?RFCdJmpEX6KwYd%V2Sg}n4~m# z{q%(|&CR=j+Ps%%b$$q2==$~RKa$hiiGDZ6Jqc89tooY@lf*R?pFuqoZ(;Q3@ba|# z)stEWgoJjM`CgQp+f;o7J@7h2%FF=DCkN_movkq7|C+**0l8WDp>UL_X$$v(g9i;^LeHK%cM`z3@vZSC4GoRGFV`54n*Okp0pX)(Xc#{ik)GkY zzC`XeZ!ALqPsTJfG^7x{+9JShVqyZ?`waZ5&H6XsVcQ?k@p&FKYtx(VEhp`EIeFZ1 zo?k6P#~;Wop$y&1RNm)j$IKsf7dsk)-7vbd{8zePrtYto=Ym8ed@R1@-v|FRusk>Z zCO7xY%KU^)w+sQks0y6oJhB!po^)$%_*y#}5jns;2J2!_1|b8`0)EB~A>l zUcI^rBMc{O7e78R`q$E9y!5eVZO za!BX7@~W(>ixB|#N)2Ws0?Qo0-vDL#Lh$Bu3uk8-t{#wgO_nL3d^cND=;GqyELRt; zZnW(qTiQvCB@_a) z#nOj1VI-`uisisoGOp4BfAD_v=sh@1tKKpqK->Xfu;GG+WWe%0r>8ADVB*r8wLx$C zxo)h{1N1v5j}tK2knr6#JYG5ZGGM>~PR>4{sn}Pzdyc9GtkH61-h2x=`S{NyAz|TD zAh&|=v*!S|1Jl_G9#tMB1r`6kQ;w^Pf?!o%Fgfw}rn(6_)+Jz1)R^mirn(JK14RYM zs;dKxu)jaFBwuMvyDFS*(X;R1#i+6*rTE^#L608S4eh0UduW~3mxd`QC{Dbyo#-7I z@rL!)Ym7VH`Pw$lw(mVDybXt#*k0Im?ja#`4hxh1uoQ9N1PW|+vFwxm9DSVLpGnj+Fpvg}`SQz{$|3`4O_7;KQPSUyKLuI8$PC3l z3*QVL)%?-^+%lBcEsJh{FC-A|-Ma@nSbls_W@FX8352lR6$$Ld7m|FO8GteUo*$;V z=ASVF(bK@&oab`#Q?mA)z<5MNcsRB|(|Bil=&)A4n}p36cQpu9cT|j>o#H(#N!Rxl z9HI+XA4}LMyf+my(BwLXoM^ljPiRXS>&=tP0QC%EsXUG`v4i%$efu^{ITYp zb@a;no*vePsUCR{X_$NR<0EZC9ngq?d)@ZrlarH+@ZZ~-Tx<_(7jB{Dd7MDgO2XG^ z!<CQ@$qGpEok+-%M>F@8~Ok19s1C%%HF0!xL@B;FHR_M4e*->!!ApfC5L`93@ zk5rP!5jb36fJGxE5@hD2QZ(6eLzIG6f1oixWo}~B_gIRXNQGNZr`RB z6&1}dDCmPx;F^Q&O}DD+_N8W&JO~Qf<++VP`G8T#Al+}JwK4kL&cBs-!Q@O0Hp4qN z%k?%hhBi;HC@?H!a7Vv}*uTglAvXS7E)wg^j6SU5eG& z|7&khaxxEi;qAwdAD^A-VFk|w1e5|NsF8N-35LZLaBxRM?U;|~5mMCB9|2x*PlYTS zH(?E(6{3^T*T&)TabMU#m_X$1<8#u^P7E~rtV>UHRMhnMdp($zkJWLR&MUUrw>pKs z9y&|t1u0ee<5Lj+nV5vcSZj=Qi|_>YgTtX44P1OCvXzkS5;JaKZtk!D!4tz+Vt0N} zjJ2iv!Xoz93Y3bR?>+P0DSPBcJo;PvKTZ~paQwZNMyUSU$xH@#Szx#Bpl`te@T|P? z@bWS&e?V$!Yg^S@?v4p?gtF3&bzj(~M0SmxyBHX@(w;nj-mfVW>%4vf=n^bvew+hg zO=8z*lGGh*1=L>5W^A_`{W*IO9kh&$kKp06KRb8H2k!HTjg8IPcp)vQmZm`qV(J5I z%-)|r{mRNtU~tQwoTduYI)Okhpd)wv`T$Syq6T>21G@uva=^VJ0V^pfIeYeO+0yS} z!CM_iK%=u_kz*1Qa8|s`Df+%CEONNCb72!hxH>!q{!?OgZLM!&!hdnmuA-{SpyBz+ zo8R&?t8{L7-jq3fm>LYeS^NVp-<9!FmOr=N=n(h+uzZj!wiavi;qSXXax(h9+Ft%o;Dx@LGv<8YaFET4hDu~!T6R2 zbfaIWH{B`d1}VAG5{?4KGfS!#eciaf8tZ%r@myOFIEj8ti}&4cj0pIyxj` zJ8%fuvu7#L)fpQbYvo%K2^-e|7;gc_>;nS%1JI((%uMtrU~712{_@o;aH|ZvxX!zI zc#s16TCOeI0G2ZVWoTv``C{fr=p7g!addQCov9U|*tSh>X=bqT-8~Bca0(9j06ap) zoX*d24T&xQkl+`OPM);1w9H-L0x5vkNnWsNQ)oFqdffjYk9X@3&}laUI}bXs()&$#d}#)TalDe*>Xd!bcu=Vnhyahv#9z?;v)g*x)Kwze3V05U~PLeg03>Y83o5~4u5YuB#m z`XSJ9grdFNpC?xM-bpda|C_m}(>c&sTT2Bi>G|#*UUt^o-ygT2^KPuu$G9%4QNs5B zCqeQwu%B5|K2hLTWCZ`KX{H6vQ;7))Z0zjB<>lqT;z*FX=JmKR!2+s;(mJzj8qWwA zd+>d$xwZL)1uuX9?I5`*mm3=}qI=VJGm?9AeQcQiuN`fw;$U6UV`9{V+}vDX`lbOk zEi2+Tu#0>2AP~^vx*2TS7m~aXU3*T)K*g*xD?zCFpzz$S7prZ$B~Ar(zu&$SMaGWt zx9Dmh*<+*Vs}dd@!d$;C-%u@???P@br*@xPxSBQB6#;?)}9rl@3OWEPi}`aVA4Kzz7)lN&|5 zO0qI(cX#(*G0Xj+byK2t(b5vp-cLIxc-O2*|R6)i5(JZ`$ z03WhkoYqfwz|PH8w<3WX7=r)4*_Ou8m1AZ+Jumz=JNu!#yL(-y&=O|yO4>~mKn|+c ztglSTtoCfIv5vK-qTVW1SsNL-xwx`ob|@%S@yr=AJW&BkQ(jY}V79gDr*v#nQxoc4 ze+FhZ7sd8Hq<4otmxBiMVh}dMXb0+`q59as5I%L&mMc^3;d90@fEpw$hWwkKF)nvpAk^djuO@khS%e z*Jk2?siAa=Ki1fM{+mEBs`gyCI(a%oKzAPu|2`mlSDr;+aPaOl%^b=nPo99#lhOH9 zx@Y*Qn|*Zxv95mt@pwzJ`DEcZmPuh-MuMx@USqem0$ozW3Haci4F1cBF9_I@UF#Cf~w>EPX_c*1cCW^Qk|bY zF!GC-dT-HF!Z`Q++qdbpg&xDEm*-G*U4Cb4eyigR5dpu63QDc(GhE{i^ITzxK88x)>?n)>QQY7!2t6>0>Yo#OKSGAJ3E|AMfE+ zf9(e@oL}P&A^wd2d!RV_H*R>OsHVRE_Kg|LSRN?6mbP}^j~`nE1OzZRsq3=DNxe_f z8|IB2Xhx){1xn0m;HTV~c*KaB2}yr`z8LV_evm6?6%-!C$8%uP76=ENN7&m1CC9E@ zxq_ioPzE1B1-vn9KkPq%^@1Ri#@aIiW27A4x3%p70bS;~ok`EY;KB3f`~4&G;ImZ# zJ%l2S+oE_><^yJCh_zIM!*$W8fF2O`b8?b0FfafOAfN6ps9W{}lC>LztrrleZ{NS` z8ydQ^9Jj?}FE%!|o8Jp_&R{gida7I7kc{cci$BtTJ=t}M!w$*4|N~-P1H0+z4 z3;>7Nx4yOlis)iMH1BeY3^02rpxzU$r3gmCP7J6J` zhZD^F+1}-Y0?(PmqncOeBjS{d^!4w53OYDmRF$L@A8b4iAO@agTTyXwPB$LPVv+*x znfafc?jRoVm=crjEG^&E4RZZXx&G;?CQJCfefuo$-P=5L=gT{A zVRb0uv0L0=GwL-#PoKUtZB0=IFHm4L;HfNaGp0hcAM9SO=CE!FznYrbW~fc%^~R@z zu@rOEKf;)o>F_Y?; zgIZO^)$RbUnD_*+g;?`w@b8p_rO9_w!J7d{-O`elRP{@L0+5%Y#MoS1T<(Cw(i*sM z=~7sCv7@2~B^@TRj;Dg+76KBK{yRp-^>F1Qx*&kp;jS}AFs=Q4eJ|R@GbrbT9oJXw z4ZY$xMMPBi`S}m<^44^`xIRAgB@!g)A=vw(8cd*;Fy$7oN>GDI#TqP*iU1Bn(3YFb z5YvCSM}5)R9vzDJEO(k6Ji?mr{%@WP_q9Z^yHS+iBTEiEFH!8WNwKNRzia5E5wD0y$jU$)*UKxnS}?nUY^vem90yI|WlRVGy33JuWI)Zhhm7^+pdYb3=x%%yk~F znoxxVAVW!YSLrh18sp_ri;KCgO9Epu`)N6I9SnN0*PRB#DA~8acXjlQ1P2Fi0YQT0 z_ljYMkDkS#M>X)#!0BnrVq-bGzgbw@c0}kW9p?~ERf@0TYiBqoXR+_puVRgZM6>qS;QmuHKYR=WhrxLK;jPiG zz|8$eZ#I-Yr!~Ev{ZB4H`$2pJKfIOuKi@(-=!xIb`_v8T+4b}Prf7Nl)mC&6?V$ai z9|lJ9>VN+J&(BCsb-5M$|NJ;iSXoB>&xgEq9F00zre|mQKZ_-Kuk?Ab?%1=(2u7TR z&Dja7w>a2&DFAf&f^8QgE-dRwD`ZG)X2>PJnb{nw!&;J@oDe;;gf#__HBmK5cvlH2 z$N6oTpfgw#qLi+A6u_#ygN?TM*S4cOJ~;({T!ih3rEdog9C+@sww$DylahG~^J(A9 z_;KJvrJ~yynPEm8=r}n!^}CDgDX6GE09(_uu%H1KYiDoYH<8zK%+?M=e%(M>uslEQ z>RU2$ntcxec)xx7);m7#3nt2VT=Jikt*}a*4qk_gvC{tF%C?Y^VXh9Uc1bCzMleL+ z>j_b6wEO6xb{;+_wfqfUcj1~6H9JHB$rEFoHsvqT?D);wzCN#vO<0^*5X6b|M$0N zx%zs=XlaXGglK}jJU!WYc+N3!vx2bL+)DV?+a|%Yb!40Dg6#n|L?OhQ%I3I;gKSP{B`D+V2{1!)Q{BZ% zh1MqjH6Z@YCyC0#fF3{I@vX#}>5yi2+4Ga`y`!T(ys9ai)5BgY<+8dL4=?oe_8&9v z+Cr#t!}CEJGcz*|`G1}@tI)eSya==)Z*K~m%7H3>yTxg?u3U4fOP4NzZIrjQwRNxo z5xK$lC&x=pLt`)AtuARlvjxZ#u47;z4c_YapLNtZ%DicDGe5T4{_MC9!$mR~xKB#? z&oU~6@ctPtGkFF1w!H)_TL(Z_55NQ#&@_p~km5kkt@29k7-PaMuI^mZc^p9>ma3 zQ-UIsxGbzs&HrZ#UI^{)1~XQ9t<||X{LLRao6To7wXdx#WSTT{!N>800lX{&_f&Ht z4UFps&O#E!N0SrZYHO(g!KFBy%xbDz3i+45zJ5oE^YOpY0D##z;Nowx zvV=BANqO$lrRo=_yZ}Qy{|`&OIScJ{n}9`G^LJO=c>eA4=WW0_AHqn1fhuKPKesu< zXCB+1aB59aMO6#@8=piYy+{C-_h0XMp==ZDPUYVnrp~?n9S>h0dTq$ePfETX`nf@} znCi@NoR&`ZI!o2VETgm=U-k%wUOiG3o-ySo5YJ>3E?CkgXk;p9(8S64&XeDR%rNQl zb#4^}&7|z89#)ry-xGzRn%_k-h6nn7g*!?Q->qATxf8uqG$lSvF*`ShCq?=B`FcM) zGLIZP)@BV;q2lw1t72_+^>I`bKWD|kOEKHPjxYSjU@m?5fd+F!@!Yv`n6Nj7)zrv~ zVZ%TCQ}BJ{X2brG@o_T=n6MOrhld9R4UL!9;cC=?!NCVOE3~z>8&g#I{`;9#_{_%0 zV9NSZ%Cpjqb*7UiPb$Y1fy=;f1b}=4O#DrlSonCHt6x$Q_s79I zn5}4KWp%SLjugh+J2d183fe^CA2-0xEB@z!SpW=WJw2?zCA|XzJPQiMtNa*9=;`S( z%T`lU6DK37OX)y`v$HcEy`v_(c=4j8mDT;?;^J2yIQ}u@EPb4+5%U*k+fe6X2IpI& zFBstBs`2sWb?X&rLI%trZ}c)^v#ikB>YMU#hvcA4zv4xcM+}2+Xb7T4-h%o>AG25x|H6Bc z>83%C#HKudPQXaI)?u&MSk|XOK?!n8!8}(QvTi8iR(jb6a74RzFGYb?0C@hE^lM>T z|0PilESsitR$OTvv~3>{)tl|FS-=jl4HA$9w8LdDAU^x%C%zu!tibb>zb5ZaPU9I9 z6Z7g{{~DL#kGq6jS?%&=x1fWU-d9(XgP)N%GU9UhlN#p7BuWkH1}9^dhL)8z(9Mm& z!>04j)_fbQbku*|ikE8ht&;2t3JSz*f9{1jfAHYJpN0 z?|hsUX00it2M-=Z$O1v$(B9tup9!C}-CRU(1+Ie!$>G-#b4r|79!E!GG!TCU(}i1- zp1@Gz@>CQQD2a)Qdj|%vcR+bdOYnc*E9K_q(kYGJFgE5ma9|6pHW3lg$4{T0>>R`_ zd3UnyA}s8*s#eL#$zpcX`{BI^vw_y23o#ymFXj5jvUX9f_C zT~w4F+<@iXyB`*R4Pa(54pg!07 z?r*+O3Nt2J0k2{UtF`*sAqbd+!3_NNqo%t}+tRM4%wtFkHY}c9h3q;)n+(d1p6kLh zm9dqkrY3Ow;3jOWtzVXI#LEZbX%R1*=07tTr~as^&3X&0j*3+4Yi%Z&8wzUbGX@6i zSdO`wC)M~y|CE@xcsW?n)vH%IO)Y>T;z1i|tg@+jTGiKymtqZIdDm;5V#-5@ z4*4;Q?*!>3FgJFW-Jv)&N|nt6mt}=upY#0A6cp&++Q%v(+H>Br(c9Q(v zlqc0nn7cw1mwLCMI7%&*Jite{~_RN^tHg4y<=^2zm47P5WyK0dDTHN?-cM5@*LKVA9)9 zpP98?84S~Hh?l21z{y!GBuGub^gdr-$5T)K)upP`f971__uQPbc|SE_W@hGbObj)= znbX4edlvhJ;_|Lsyhx45Qi0OT6iZ7>rg_S)5hW$kKkh6sc?bOSLP;~0*KBaFWyQtE z>zkQfd*yiWd^iE*V0d`AilvI2MFz%>!2Dp^5=yYq*V(gY-9kgvIOWd#y9T3nLt?b5 z7T7Yy!J+Wghy8IvU0@{`!LTkgxOtPp+`RRR#kOtRz3822d6C!a%V3iW62Xc zpOh>BX}lHca7^5x4H)vHRc6B0Z)6+_Fqx|aPb6y@kFrhChe z96g#IoV&KR#+RUtyIJ`dtlkB$6LPc13;}9W@_?W8EzgZVqjtw}o*iK4;HWL)s2#Ud z-?~|9CXQ> zPEZxzG}iz6QOc>_w66dDkmLWo4;4P6c7xHc+dtePc5jl|Vg6_Gor%%rM3j`@3vK#_ zhURN*XMX=ic$GVI=6yxQmZ{PWX}s81e@<}#J}G9^zvcF~d?Isma}7<+I8d}V8=l`+ z_>OrPW38#O%ZDBfXo?SDL{vq4_ntldKRe%I$0IO4&D>jC!65fCF_}q-{HgDHunBqH zZ+`x~g*h6adz-Ae8GkMQGQ?xK#kqD})z@IFls;Nqekp6J!oP%4HU_Shktyq?$N;%hZf zh3SZclh^M5^RBJU@CSVp6X~Nzx|2XuW#8)D3FH~GXtlJM@g#1~Ax%9{-Os24H>Hq& zZw=CKQT`)GcKjZ$mzR^LI}l z=M)_tUctE+s4U-C9)A7`@Ow|9qWn_TGva`J6Wjn!FzNH8@18?Pfcp!z3#5aG)B~7Q z@EKiQbplU>7>Q9rKL+8KW|&?Ej2%3yWp5eLO%s!l0t>f+l*^5OM%WG?+OcaFiKF8R z<=0=YgnoAAPzeeOY7|=YWarf8RSnjJ@BvGy)^%MYy>jIW0h=B+7Th()j2A5It_?lJ z$9`*b-FSWft{W}K8NG?F9Lsz6+O4@WW?|%Zc6PlLKD+4JhH$1q&*-l$&owkQDisa^ z&&5h%ScwetgD`EbtG~#l*JiKquu%~(^8NYCmtUBd4M6yLPSLEp$X+Asx{q?i>(_^| z=8{krBjp(Unqlu=y$_z-F%_ezsHo;!266SA$D@7f2wEkQQc}OhGfLG)E5xSR#V7mv zlwOO6$kxY5;qg2VKxd9wdlkIildv$a-rn9j3nw@6s#Q=N9LTIE0~6Dx0evsbd3DM@ z9<@J)bXt;>ZgyoS*UVjgYm|Jz);Ip_BMAu!-Vo44@va-|nDPUDxJIiq8xuX@pVVN` zB20wmiHV7K(!rOG^pwir-SJscb|#iuA*wC;00c^NZSU?`oR5{(Zq_eSl5(7{0H32$ zLwC0_EiFxyWfLkInX1iOai*VRZQJV7Z-N^@xWUlph{{l}hYx#UiLgwKjGCE3QBg6O zrE>lep&`>yejC%VZC=zYvggll^YinYUSFB|0P-Sb3K(R5z8K+h7nc-pMbH7Hglx0+ zi(R&kco4FEJ1HSb+L=)(VjH0$?le_?K|#o9F{_LV^XTa4o4h=M=C#w>B~A>47MJo9 zO14WgH)g?R&(HDIu)3}i5h`yRPxkh@!S2y2vZKW^$cW|M{FD@LD^6sUJV13*)zY8p z0E=S)`C(dX)|Te;{Q3Ut*RMY}|C+m3!aB+NmTx}=yNCVnA>{p77<=Xn8Mgfd?((6m zj6gv4aqD}bYDz{2mz0bQE1z20;~E%;zvp%)g$cf)Rji`PRgIN)mf+{-=e;gTNkwHf zJEBB50dj=z<%K_@z;DxhMf6%zR88}ob#hGUz;FQk$bh3_uJXI7l2c!E&8@~-coGVM zZA?#3m(|N`_<=Lm17pHYtH8d%J@Rp8(>?miwYKzo7(U}xTI!nI?Y@J!ySuxi*zumv z7~j(kx=fovpj0nXQ+)wOleMngnsVM)UlVH2pnyk#B{QMEKL1SQoH?yHe!dmjD4G`p2GZc}{ylU7XBgNNR)Q!Tmk(gR@8v}fn8yVI@LJw& zbadfDHz@JycIT6-FY?Ws0$Gle!E+8AJQz0SjL}nonKOW=$&(~*-@a*KawR6lff)#1 z|M*xrZ*ybJ=Jx$TIlPd3ucY0Pw)AW2x0ZmPWZL~Q!15cyp2J#zz*N}D)_HlBhyVlG zddiEs@?MX#*FbgP!0c#qQ%&E42gH7iM=3Fu_N_qpOaSv%QBhGW1qQXIu!f11b#>Hu zmlC@elR&mox`|XOV4ZBmf*iPghh`DXfi+jmdHavGMUyfz<`o&`t1-31}Cpn7&H_ zLmBw^gagk)^78KaRBt9|_Ia^Bj*7xNw!pM=D&&7{9vT#X!6O3)f0(;(1$W7LczBKo z3CRNQ0>-;$5F{iw*a~t4LCwg>2wU`mTYizdjxF}H6LJFrs9|Zmdwcb;9U-7cTCf;s zW@=z^;DAey!LPxlCS1NHlq2Hj@BbtyD1N>R99e?Ijdb08vJ}{l@5z%VV)ipHgOgON zKYpYr+o*cQFZMcx*Fek1JL!&gz9ms-XQycf(BrM}kNpQ)S|05E6TFvPC#t>Jq?zkm zzSXG-t7Eaw^AXB3U9iI73O@MkI*5%A#Kgo@6r#XCoQBaH(SQF?`TITCrzlDlL;3Hg zr<*5KY!XTpIs|7GzuGW?0Z<&MVxB}qY-M6%!t6XNE31!nb)N3-B*4T4&AUWQR`lW? zHDsGy3CWVM8QagpbI#n^#%J`Hc^853TKk<^W;xvpppOi~M#1?dJ7fzpiooqy!H#;F zn3#HNH2UdN_EsLVwHfTfXtlm-4|uqolUhJ$sJxF^U6oGoHM~*5v0EK(pfb7BgLAU7 z9$;2;+EsUWy6F)K_UGUv6f)>^J3iLbC|@hh7hl2=gOgNH4EWm7QC3y;>ioj|XtS5k zriNdx?#q&AXFrMw7}itWEEv!M3#6r^^B5Vq3FF@nS`nL0ehNC6Y1tgD zyC3G7e^qD)jVWj|rsA}*w!r9@HG^>uu!mEy{JoQtuSYEv2F(MCCHwpPRcZ_j3pMs^PJ=^p#idIh4o2XUN^W$-O*3K}FyOVFv`6h;VnfE@bTL)vG75 zb<~P-Zza8Ki^;cqLBf8J>IA$~0VBj%HsVH4GXhgbW@u;#T4FuNYJQ}Vq|BGD5@;ZQ z<#83f3k364m_%<^q+NZBO}PnfiHQey?%dfsF|pm;d_t(5+|6dZjZHv+2B?>lxg;hX z1HyvWA;acjW(*7rmEDON+TTIY3oU$s+4zRsgjO~5LgX=hK>enIf#LdCtRKZD3s^Rt zf~A*)GHiX}v}j2v!_pv-3po>eqJttMBJ{xn0~!@rS1n@5&~?KFyXf8ETkQWaG{i0} zeC65jrchZ6I)eLJPET(?wt6deX)UmX0hIw5zn*`#gBW)9*^3uFf&2j-!i<HU9$ z`JWN9T_{URRt{s6hw$*dBcr1)R8!UP%9>2U-Me>V*K%x20M@0iuTOO9)TtbsE6U24 z&M)b@&J2iq3MlnUa?wY*by4E(*va}v;65qL6NDMJdM08L*J9-2B7M8N$migtn6j3Z z-N%j{YiMpxonA;z?%@0IghL)n0zr}PXJaD*wp3SF2QS7TD=QmZ^Znbm=jrMGKxo+D zFM&LOr@$JpsN>ze zj2asf5|W&SXeq}%YHDh{U#ml3Spb3QuL=R)y01P~M&8aYUpWFs4gAOB;lnKz)zx@8 z^UcnzgeK<0e;UdvEMWU1*kq`$-EsBa_#5GjV{&;#_n zCrvK?f4Tpv{UCz?4?JRG_5quCHM^mXJg1smLq}8HB6#dr73MH6PU~Z59*m;YMIYBUG>lhn|L}q2 zl;<`eq+2K{De(niJvabJ%)eqcTM7z9Al0W6hzLOA^$iSWx>M2WCMH|&-MeRU^rHP(PpK=biHV76(7Q3b5&+&` zV7{=BJODE}*A{wEMJBYiCQL*Qq@?A8tclB0R8!jn#2c@IaV|FlPw=s}_5%>#1i3u0 zcnorbmM5}%ay|IdbqX39c^#d7ZuHe|a;Hz9ymX01NlA&DpZ{TTu@q=otcl23z?0Cf zY!jrQ*kc52{aohY;NVGhb$U?ifCS1;1j~^IwpEbI1T1{j(9kG)@++?C?Pm91ZJ*lo z^mJYEFh&^{Nt6RX{jdn*xb4rf>AnxD>pgK+167#E^uXO6^ISo$8h&|pRLprfyDOxp z*m0pMgin3P&Yi^O=H~bvHyh(TtexQ#BkdWn*-wiO0DJer8x#N!&if&hH_8O=XHTi> z$~DKFMnx@GP=&;9v%{bbIZH%kWOQf8+b1+@zup>-kF)1hdX4i8yiyrQP#hG`*5qM zpdj9C@puf-$QvZVxrKKH1w6%pz*Nq*gD;Msk-mHP?rG382@(Jzbg~p!Xqf!@)2DNz zFQcr zy0udrvBR&3yjF=*fkJfLT^aD|81ZC#xB~;O1rZSuBDyLV^RX`0erL= za;D0k$yYvbUvhEv*RR)jWt2h)c zK}t%>2V-R=@B=KS8C||lLawm7k4SH2egbd7nANnp*!}#Z`}2$pn%+v&f&Sbm zfzg$;N10ca7#JB9QcbV`;(}Lv8+h3_wiB9|YSPtJsJy&a%0UDORASZ_qpK@J`6ZW; zsVL3$j*M`phdZO0%v4m!g{0T}GK$`2M&d{S7zwFim3H#R`@o*YasG`7dVjKFk7Ivy z`x1GPnCqLD*ameiFEcaK`mpeHzmuE?=wYD!nu9LF!omsHFE&mrJi6VgA!22wr}sQ7 z+6Ew(Ev%NPNNnX>clSQbVIFTw$AT}c@dQXxUQ4_b8@eb(e0iDJ?ZpeW_a8oBrCM|1 zCBEon4Xysdms4+ft8_x}04`N6otU6i>_8_J@iTrxJxf^1#p|%w1vh@$pfxDsob}VE?_)h6-risl40Y^$ZM%F&*k>2Q9WkscGDAZ*PzJ2fn^k zprl@8WCY@UG`(f_6@Gg+<-4p&kWn*h{H$NZdnz#S2TMo}59sLZ)JK;IjyYmEksh1y ztS!`DQ>BlVFBy}D545CRz2dMo6DI7VFjnqP4#3wm{2jIf`ql07r&S8X5>q?Gzr)A{ zT~_VFBO(AH)t||?0usMp<~}4NBf~>|>eL5H^J^5CXM}JLZrbzyeIl@B3P(prU|kW%jlLTl62htNX#aF=#>{5;c-U-OUffpw zO4H$fI|m1YPft0qJ|-lD4pWX{GSW0MAQC?y2;Kis-)?i$}4>WISZuEAhV|pOfu{#DxDa^(L;KOclrmO*>xi0o- z9~rmq0-$0w0`)#gjmZ-5#IW%wEG#ULah*GN?&GIV;GrKjh5hOlfo(&<_Qq*xM!}>9 zc1U-3w?@Go&ZkeGT8_6JLQdpMFHlu>pG4{M<^8SSiycMJ_%nKR<(P4Rpanr9=CUeg z+LA-1#TZGR7-?r-n0d}tyrnQf0`NJgX8X2n!IQB^%|dGmzQe35M?Mmso8B0HDC4@W zHM$PKhjGYwfOJ3k_IlxHcbI zlQTc@)witd1TA)#@+Kl7+x-=@G(8Xz#P7UR#y+5jtgWp9Llg_f!mt&_>0*bumv^7k zM~TPhcEcKZ02q1u`tqr}f+M6ORAk+#t!ce@L+NuMHdK2tam=*k>=ttJ)L;)_{K;&+G64gwuiSSVRNu0Fdu4M=cq5WKzYrAwCzhlYl@w1q`Q!)jdD z=G2qF)z?pj7zgB;wkp7{!tU{T^X84Rzr1R-aP_G9<&gS;!Ki?{g>hg82MFHa48l^Q zYw+%a5aYvxHfzf^FH%$a_Q|-Usl-G^@?jgLZQHiVUA!2eB5hc;?N^@{YfARr!5X^J z2<>whqQsQavCr{pQ$~)_O z+o}to^G>r%`%XJ_YxR;ttLxjhAU6FcU8yMv;mw-d1X z28Ar(Sbjmlxvz2bd-kyN^PeAe0cf6`>d{Ru&9aL$JjfnLFTJsPx1*y2BU`-f;GvJe zZrYji7J&Z8(2&B$5U+-&=KJz;BKU#La`^6A7ABB_oACf1`u_9hpCL9f>x+h1fsO4U z)nmbz6Wn0=LsO$uMt%)ccVyk50y(#1*RFW$LqHloc+sdARCjeT5`xuIF2qPOh~EBo zIoa&yO>fYpCn=QrEk zhqVh;;^vcYJ-U6LiG{@<20UuhI3WE@)Z*~kJyX+^u9a3LQS$F^^ht(3M_ieI?&F=Z zqi%HF>uzB?*7ZqBN;bT^XOVD+iHQjol!xUM#R&=GgQBAJ;^N}U1z}{x8@Jyr}_F=+9 zJ0LgcD@Jc6VL~Vvb|pv#Y(GsXJ3dw94pw&4#00Zl0p~)OodMi{v^)V)($H`@VT-wz zR+M#UG^ju)C#RRfHi;J^JugHa>jQ3xG&2(x8T_Cus2e0}Ps;&?-1G88;ltSTA$j8c zd)bGcp6sw_gd;$)Mm0eO5|fbp0%3=(jFVJT_jKD2vtZV&gM$OXjpxd%-r-o+s=g0i zzrKj}=+#AuFRrglHG*X)`y=Pyah#SmMBCb0h0T4YicrrfWlx!LaD&QR8Mt+ zV%X!*&{uc%`~(wib>Sf-Hs5ulWVUdG*%}BC9s>c5B&DYhd%BI3Rw<-PJX)x3w8e3Dgch^Kj~_ptZQ4rN zooKJwIXQiUgQW1nc=I9H;No~j zDdrC*tVBgcA(6ni2JFd749sC%ye60j-aod<{yAPC2)r=i?rT7NwxCb28Au||dxGp& zXg4r0c)8{Hw1G!0K-zTA#yUOxuH5CzJFqLu$jHck_Et{6*0ZNy>37u z0gT=^H(xP*XIvkHbac#?oSd9l(ryRf0EV@24`K=PJKKq;%NyWRt^S_nVr~#PXzVH!?D6Xm9s|eF^XRYL=8uUS1wH)=5Q0D#cL# zCpD$ZV|>X@KRYs&mq5q=ntV4!Ou(D>k^_(dXe%AFpSccydrI>hG9ADI-snh;#s*dFR5fDbvP~s)TgiJ)l^y^^D8%XyVSE=7PJ%KZb_~7J6I- zY+SJ|7yJg|GokD;+o_ka@{KZTYH9>GY(^5oXIptS)4)U7zVR*N@87?1Pd+!S4!|%K zh<)s4g%@sD1jWPzfEvVeha(~)4*?3m)D>rSD5?o#eU>+9C1;1uCg`l8d zzGdHo8s6x*J9qA2C7#n_pBGxd8(8u7*E7UAPFts%5){Lan(YBPuMwxAI50CLWyu8SCQvo>o_Mdq4X-4hT?hL+G7YgMKNbnz9li)_s$U(zqTmcvju}In z&fv4&2gat>umAbC82YBY55D8B?6>+h|E3gq$WgrE$*k>$2Q31d`!(Hn3S?5r%(|c7wuc@b<(-`j*tO}` zFCL}RI|a;yH+H}JceV-~s*J)6H{|FIX;+0Y`r6dA6OZ2pssmLg#jQtnfDWAo``FLH zL9&_a@%i%+huNE3wrtriDw?Nkz{wsb)HGc(DJK__!Vioxgsh(VV9LH4$9)zzZzh37 z?SxH4A9h%KXGBB<(uj_(E=o{|R!cKCl5blLOTlYV5-=RAFqm4XPYmvA3du2t=Lf=aU5JkZijI7#_I1&zbff|@fC{A18Kgs;>&AK zDV{_`@W2{!YUbYJ@dIKAl0>&tURn7mhRLzIjc-Bq_yvTF>X5=h~Hb`@6%$ zike1=Q^D*MhWW4?yrQ)(=w&=~3m3m@XgYQFPI?pZ~}U9ctT zxwyFEfd6N#F#s_8p7!0dm5Pdr=md5U{v0KK1)JII-m@oE+%^WoT5RmPt{=%Timwdp zEbq$!huRz0uLm!61E0ar`qI)8p61No$Go4{+V2_wci}N_o9cJ(k<|ly0HoYPz*Bwn z@_6Y8wuUt!e=6Ds%!Y8eee(m(WhEQcsV?~7=7Lr$0RV9qQeYxBCI@iI2 zm@k6e3<=NgO?6`p)X#~DUrWQW_~(_mn1Agw-)X#v-MK)PV-*FKXFS}x>+)NpFL#{P zXjLEn9*u|82#u|(7_LNb+22dOg=s3TwEyK@CQ$VIgZ+e*7x82Kb*aFRF+%!Hu|XBts4~# zz#=|({5?#2WKM5QGKK^jE5Rivb(rKP32>&yxMzVm(OjB)-rj`6-* zfl>=4nJP^xdc46i5pM;@}Z!(qIa0^8<>TEdp56!yJ(EK zOM*-PWm-&e?3ildHX+Hb?cnEW{mTMo|5%;ezu$W<#7 z7{K-Q^=Tjxc!q^yrUBW2MedI};WWz3^z?M;T;LQa4MRgI@E#3<*+9h+!q(aby>hl> zgg~kn)>DH!Az8?>Y1_1wh181I&j`8-;3*3mYfE@aX=zIYzauA}W&p}T?uX4N5ril~ zJ@kCa9WMslUSvJmbX`#~Xr6DG7o-6^Es0b2Z4n*(!OO?7*5&hQE|a)WQ;D1N$a4Eb zCHyZAS>b)y1$L~vckhPWikl1>HHuVY)bHOv1Dq5uH;=JkXJ?1}gCWrnc*i58kwd@X zAE1*i53hnkXb4S7nqOGJvmNl%0SGxPu@n*#YHC4o^zWfl&wyiV4%deLtgolDEKdCp z)X2ljEBewLw~G+o43(ySh>5xIN=A5{^4z&7kFWk9+HVdv0Y4t8W;o}-CoC)+2^{-j z9v9FVf`@n>he6YRu>PI9cV+E=D!*;wKOy_wFEmtDe}nw?%zH)_mefvTJpHix9lIT% z>yH!Nc($+~)o=eS7ya?h++&rMl~~2wK1NJT3>JL4GCRsqs(9k$N&on%&p;p!lQSwl z!m~S`k_bqh&hJ}NocSUdhNs7})TaIOJ}azmlM0`+wc1+zdu(j`{GHWR6r({PELGLi zVl1V^swyl0!>R^i3hwuu*Ed0&oxvK!+E6^=wyNp22wkmXszPdb``Dq=oHs$~NXy8? zxTmm)iHJNdE*8W(l<8@+KO-ZW;8VcAL2uoB_*^|1uS{oqhkF|Re&F%OK|v>gR_I;+ zJo>e^)_YDpp#kq!cUfO%>#Ev@1GzAsF1*nD=+P(eKoI$AgPv}XP3}la?wcO<-%LwO z!wW0e*x5Dp^j@6eFo&0sFW+4ghr?J{xu8;<+g4z8~9VLQxh-kstL@%hOY31iyQ?>(Tt-#6JnQ2zIjr zFWc9|^5hE0Dva^8_J!pVc7lxh6>EzZwCl_#ULf{G0fU1+g2< zfj9O?&g#PZ2#?rxYp?B(v{6wgRirH&5*N99_vW>01fVCoO-)S!SmK-Rt-Ih!F>*B;c~1^NSlV{DJt#%QwnjQwR2qbQkjBHKz}&0(zlWF%G64a?PWw z3o|oc1DI5R2u58Qf;WCokV_P8mK6Eb)^;5NUf;7h%E#9?5?VO>o`a9?G$b=Ouq855 z9?PL?`yb;y_PFA0W_J1F-Jt0*>MzB~kR6VkI+ZYs#Z(TI+cBInT0Mdj5Fk2;DS7V$ z(9^3}o<4EnJp|p)=4N4ab@epMJeLj2$%mK!rxsup$UOo2a8p8p`19w_va9qa60sjX zJOw<*v4-%NURZbzK^efT<}p+gQu6idF3{C;48zYx3k)Qd>Tgq@<>ETNxw$FIkei&G zY`(d^BE2AUba8Q!@ZLrub~!(8xqy})!u2$#(VL;HMEPVPcVfyc21pE;777Jv?@^;aO9uu3$G5zJ_w^(G7zO&S|MGyguyFY%6x3T#DKzD|b zxDTRLl*Cg^WlQ{Ck{SIN^WKMVLqa@3G?a98Q3BlmX-mH}RQ(PQa*T2KaQpSYgiu~< z(U?~Ujx(d`0bNO$F7CNhDjzCb*qOrH-i`}V&$6?*jvhOPM=oXPH~z~YpY$j*lfz;D zPo!TEx7lw3BO_x|cyIhK^~FK|VQ`#s=&RZIFIN2p$%lpzez?pGKF|m9UN#TV-z_8K z%0UWlDgEXgcX#)UCjy+DZJQ6OK0+7XWuo-lgx z>JdEH7SE-^nw4T#K`$>aJh#iAg~6MO{}k?q8GeAX4$!D*<5AC$#+c}6JQE=GRpqZ= zCsI;U@SteiP_Qu8+P^Y4j3=Gf=a_3_sYLu{@#X@HKil)ZAuGV4d-v|`Cn9ptzFl*W zl9zO7Xb7pORnj9N@LR(Dfr_`HgP=392nY|bI)DB=Ua$$!{k_O}4Hs#sd~e*8ZQg$_ z${-0yz_+e0EDz^ErH_^E2E1Oa38LnCJFC_Pya&(G$5vF_*>&yaty=*jo1j97;F0x( zj<$G&CQ@tAH_yQ(ab_6glg}ua(gOnH1%Q{w&!19w;mHwl@{6INq5lwA;r%gLmX?;! zN|iv1l<$GPxl|=v7Cf6Ko6JNmuB%494rRGi&e0AH2x|# zw<6&%^yZjCis}(yF?et}1hyF7O9?&q7;8-xTS!$eq&H|uq9c&5=??zz7j<@YZ~)ah z){&21t{}6!CCChGt!FOG|8^$X~Uj+gSk}D}zDJX#$ z|Jm4h3|dKE7aN3T)%$q{*}Ufc`_t`9krGBmNoKaT$AN!{4&oKOKN}j3;t@e$?{k+f-R{h_ zyuH5Gvqet83iZ---MZ-2?(Xi?(7N~#OZp*0b93|3GF=lBX3*2>D^z%qua&hmp1yk% zd=#BlKtSLd2#$iKZbwmbqO&)_G^IcM8A`kIZN+%+K9ugR<34xpsL=i+m6Fou5?X>N zSSV4S!uX22&nU~$Nn9*{nc(hmhe9piM%;^9Q2mP0FR4GHqeQ?3dxwTDLKkDCmw?sc z5w1}nHogIK#LsmWIjf9Zm#iPqH8cD4DJ>0)FQRU^6Ze4*Zr~_=DhuiU2q`HIq|tK+ z4;>N??uHKjS`{eC|H0`UhdTF_WIBR6Bo zyjl)}v;XXOu!mdHPfoa4E(uQhuxNUj9$*!)NnJhs;|;pN*&>pQI2Uo`<@wqXS#yac!NIUb+_(3O zr}X{xr|NvM`H)xruCc7@uFMWfQv={>eSNYQ6Ylm)^nPB$EognqGyU{4odxzXc;77q zGr}uQzItGP0NCyr*9EbDXzGubaB#?*o}E1kdikilygbg^G{w!hj(6EB%E_&5&D8C> z^xdq2^-Ab5cM9nn=@zv|Ex(_Y5))%!h@~oCxT2{f8RP%%oxVJA&?6aoiAW_0?)w2z z=X7G?UPjaE6Mxy<_&PPt9sa?B`1dZS;*_efCxugmt%VAAsw}56<>~sv9Vb~gL1wm* zg(h$HSbXH}E^>DKAR8}j!{V%{k!3Zn3mKevt_uQl=I0HPlfVW!J;)ezni3W2Kn`VA z&FMsO6BBZ^QcEu%yg`t;Frr5kFFZYEU<5L4r_}M>rLGa~3l}a30|}G^zwh$#og_bY>;oQ7&|QFacE$OP zxgUXY1vy^&ci+BYk<&6C@77nb6enr8tl*igKYTfV=gB84)A8^q?IWRL^jo{u?bTyW z?kU{c+dJBkZ5rO$6SjNL9x^hr7zTxuU*p!wKL_S}*hlR#Syb!NVk=V)h;&59%pi9ZmFj{kqk*$N3UC z&fb6i`8AO{aF^IkQxCkqJze*;w6wHrtOO+0P4OZA5 z1EEoO-LMYflnmvL1f%>xuT#s*02=)PB5`=x-oz%H@TlPU;luBN#r(+~4sQ&z?T!a* z&F8zor&|}^4C%NTw8)_om(NJHE9P3n00$>&H*^W*A2<7Hw= zDJhdJhil^j?1&B?yt1@%72034J}btK7peq8HyRomu4sPyXKp#YP9PEdD|jh;vV3hQ z#Pml=$qnftft(g+_b~fO=p!wJHT(e;5YV1wY&f}RoVHdgE$;f$e@C0*eLcvT9BMYJ zBm@UrED1Ramp@j04`SY8J9vYoVEPFjao(b0n#)H?xF#^%JNXac{h8H2A6^4RiN!mf zfrEIwdL<_%^~Rt%AqFpV4K~M9mO;J7feN6bqpKVWKS0j-6U@wEKl@-~Sa7R8O}m`* z5{eSJL`v)Xs9#M({s4{qkSv&-SN8UHhBWx~VC%6dxBr2q)q!1Qt`k0qq?=;dX* ziOyV^t~_hYAv|~j)~(og@pwr-@Y9bDSNbQk5NiG z)mEMBruMO^Y8ZsNP-uxt>+=K0y&!>{OjJnC;>$Me5x}#?+-S6cvb7dUN=y69G|5Pw z^k-1u6!oLkykgS%3zw%YnFKE3zVv+lm&thDC|9@Lhc8pb2G;D0{WS-?7ke!;0?#~B zQE}tP|;ByBF*Vqh1<>^2c4bInsOP!X)TRjlucW(I1OqY;!th?%ivD`|vSV7ln zu`?I6ba%8kTP}^aXy-_KvS|`&Mhrvx1}xu z|8q-CO}&?*%F_=_VaQx}?InNt0dMfY6OesA^SKQEAk&^5sJu1O5JTx*mqLEzh-QXf z{WnNYY(D~7OrJe_b^`FMCeuyH8@TcUJ`K_^j9zn=!U^4zy^u8JkAWVgTwWP&!>08lz5;FJ^YG%J#yyj%5U-OH!@NJg6#Gzy1S@LG8Qh0%tX z0}O0A^?+3mPPo-j>lE*%W&D?zLXY_ZbERt85(E-)|7~vy{q#VaYu6sNXBx)BSQtVY zv=14#MuI$C7tvbr_WWRfzc$s<^z={A4~COHAsi`IBMmyLr5!NidQ={=i8bdq88{JS_anG94&H;Ni|0bpuDix8ILrDyqW+yLR3_=0fZ=Y_-v+8 zn>2_P9`CxB&|QtCaA1*g?!=U&WMuw{6GOUQBLo7$gldsuAK?-N*I1y2%e}Yfgk|$> zjPvLC9Tzh^6J=t()l`8lB9H@-9r?PCI)g_cS(zhb3b%KQtgcNJhyA$zgOOJuUK&Zg zw3b#BZ2hU*OL!uj)t!yQ8%!qKW&p)xv@~=FW;YHT9Kx%0ZHS zMa8cSV^d|GPar(-4>Nxt@8aTOQ$CqD#+_tkv< zFmQ|b>>d}DL#M8oEt^&+c~kJBd-ICAFKX-@esk=c{g84h_1Z?;|ZE zvru;0RF$h1WbD?)lq-kxs?|hKv7kcxzl1M8+RSH~weQebYS>rK+4Ho2CB7C zSe$20-P#~5o#J=Mz;bQqSzA~~k#j!YA(Xu4v@#e7QpX2F%(AntPI9TowV0emJqe;Z zuwM;td5aBq5RGt}tvs~!4;CfJeY|_JaDBFl$K*KJrNX0+o520Gu~7yHS2oZMD{z?n zIq<*MZ_f`H_d&iI?@JP<8Do4~P;nMK1@CN+jg7_P3}<-S-(1-Y{MWFXZ_M2Scc*G; zX&JRUP38{6P#Da`LfFmD&s%Y;4BsLW4S&?^b&_2+L+_sTM0@jOXkeg1))Yv?4+oAj z$Jx&f*$gL@1Ktc<6eJ=|$nJI!!;8Vwv`S4*^rY)bo^*=@$~KT=OdweFP4|}AloL~3 zr4ap+~d zwB_>Y$B5+_Q{Zxvc);fzkWko)a`or0y^t`d9;hm zi%C8yD9>gh0U~-NwRrP~c?VeX5m_n1`qoCzmWWTc%bIb>Zet;#CvJyM>(p|ml@%_u zsBoq$0%MOxo?t!J;_&GYsC7XNdo{@2-5V-K_ zT%F*BN+<0t*R8dP8jj;E>P_r*SGAcJCX=4{=xPRrho|7u5k_65&xOH>iDXC^2H@XA zb$BztgEYlz!Imv`_+AE25r_$qcVgnojO3QN-$9!NvxaaQv(@SHlOH`AMMOp)XE)Pl z&=mK!2(W~`ywjvduE%*P3<%^0p9^AnP9!5eBo&GB$p*Hy9UUq#P>olR2X^cwoZ$jwZ`Qeb62=**hB~yi*?Fl;mnu~yJB0>w z_)wbQ=JE~0))Z^I9(uWiJ3c&{p}+*elRk&Ff(cTg0i%!xTXHRjtNXXs=U(6PI-yxK z9n8UO*egIsC(;-zsgP?iIKCKZb4wzkM9$pY9JwRCLP`>vx3yIP+lN(2>>q)u3~^6D z-r{&&Jl`NTG$Y`=8dSb#&z|Ne;R7P?wl01yQ(V#`21@?=`LkzwlbyK+ojGX*1qFCl z)ZTsjI>zn8IwtbJtx+PNP3H6y=UWyP75QvBn}7GWQ^18TuvUX^gmb`z zA=U|HWMrt??;-_n`Go3F0$YfD=()Q)!c0 zmy*w>X%ETO_W;ioT4}VbtoHzjbb1ZHJ^ODcWDWm*#B_CjBv{bZCCl=YB4aSOc@$nW z0g7h~6%Kl4Jg{&NPfuUJ+)(?Lws15FUVH+K)OxC0ZLlh^wS+{FQ3M2GDy~e!IEnAt zwF|Ka17KxstqODp-cm~w8&R%i-=_hvIa>e09ZBXPs;i2BDQ;7;3K!&JRiFm}G$9wh}EKm0;7rPV!Gz3fx zCxc=OV9`hc2Oa}?+=5CE(iUnZ)T}&~ou_Pvs!u{zQN$+$00G|w0*MUtR~Vmd0?4Q#ficiU?P=QXT?;5xAsJ10rz)m>^Ku0S zTFt6%WtCySS^bXPhfSeHDa+^`YAoMNl6VT7a-l<}a<+*vGg)}YgxI_OTY`du;0Ybc z(!XCU?5*oOr3?9{vsdhEjHtg4O}eYxe8Y=_-T%#&FY0wh2+Kjr*>|Y@p3%pAf>myL; z*9mT2(G8)waN!;G$A=3IVl43ws{(*Y2IB0(!bsz7phaAD#nayoV0_7^swaQA{W{_9 zJ2w1LIn%)Z!?3w-c*XiPYrLEj2rY=Vhg7Z;nXU7HG=>oFL_|c=*(P1HS6%}}qNAm~ z<0G4ArC;-o{Wb_JSv|ctw}U66z}W^x@=u;T$#$@$S0F}#&%E#1I}LS9o!7DoeW~Qf zkH^|}+usI&m9CEx4$I2|{wgXd*$TS9nuK*1A?NL*M+Eo&K0`{-kXhY!{jUtWQ#FcR zhE7ZatqA6`P1(I?k8#;c>7j$8d-f6Qt;`OJ-n}aeL~b5v=AUwES6N^}Rh#2X@5LfilkyC!p5`s z%(Ega`gua%zI_{c_J$iR6O%anHE*t#?}7-@|MitQcf`(jK^j?DBN|^z7ReieAV6}JTnBooy_{tYOd@Zm!lWm!xWEcXk(D}#`x#O=YPH6 znmGkQRW?ma7|0%NxjBqE&Wx2GMq=ipj{0iu14az|P8_ABcn>FHf%>3Se70Y1EOGJX9Bv3K>_| z&{RkPx6U8Cc(+1+99-l=!X&SQh@&pI7KporvwU^B!Lv4Aih%p4Nl`s%G?3>4J=y zpq!atGtnLc((YGSop?LC6MC$*>Un7n59_4V}+2+-j= z-N_q};mxG>(zXoXj*ODhIE85FU|A5-y911g#Dp(QlOS?^2FzaG7&9^+3!k*FtlwwS z5}G8Yo)@z4v>EVXU|Ai2&X*=+gE_f2LNFCLSAs+s?+_y;*y0E^H6Bw}xVbvUxt6V> zTL)fIdo{rNof3ngtDU_)PZuYFKpUFERpw{X&7FS6i#4W`TKAM&WPkbVjxauO5E`80 zVlL-9&&YUJL_{P(D)LDUwR_1`61lmAjqy0?7!R6n#3@ENBQvZaBPg&(L z4`{9-Fc^=QFW=ILzhe^?55AJ7@`^Uq36jAo=$zEkG9dPh>Ks^%u&?9g@07~zlm^RA z%o%W<(jL-TYx583uf~&m`^#Q|(8>()r#^j}K~hpO)3~E$&`$T}ty{cTHwS#TakV|i z{6iO!w0uj^r$v+~Z%)&C?;)6ZjRJFnTe zFR>_nj*fQqY{QKg1_lY>;-<%zaFT%WgDY6c_}8cF;NaOxLV~I7b;KGP8vb-LWxeCZ zy8etx(kL83K4=GeR>{ARY1=^^o0gJ6Mm0 z?m$v*^Xh*M8t~O=t^|ctbxxLlxlg;ME9xezto@6=eQ3wGnQ3TlK7Rao6;-oSpaDCveHq`qUC%aUTq2R1O{AT3wJ}N2j*y?v&koi8p z+a;j&eLqle!|C5&QK=xvn&md)G&P6^IT(D|RCWG|u6%`bof@D9g?_OUu`w|quO2>l z@F1}moa`gOogQR`LFikA(2hMbr@;0m?UfkDoe~009L_ysj&rRPn>DR}Da5lAb;L zC!fE3F7eBkYa5FlrkD`N1s>H%fH(WZO%@4x>j84*6V zRQ#^5udnHo<_#F>))*3pU1tRIPZsw>RDCNcY0ft7xtc53$pXZ!A#>?Xttl=Uf#;*& zbQjo9N?cL_VcGOi{4^w3$&IxoTU*{%T&c1iX%LGYijPefWbEfnvK=@_TZ^ zp#wl9>Ut0SOOX0G!$(Z85T;-+2k#EOVmqly#-gqYjw-FJ9Gu^1j_m5^;zY*+h=V~9 z&2><5qh0ygIB{lqiwy1bzb`(4;Oh+YzVZLD@H8o_Nr9M0?9mVZk)T(}O2VlG2t7Rj z>q&`nZ_N{{U_$t4iZ>R1Es|?b|$LjKMasr@6_H9Snex3BB&){=a{G z|MLSt%m4aAJC9lPfBhli-!|C)`f8ol3Af%!8p4@Wtp8YBnzFS$g}>-P$be9(@O4yS z47i%h0{>`quVL3CikA$1lLsLaI?vbN=5<_5%5MZyP9Ss~I?Z_(=wp51Qa4C3<#;d; zX~rX!J3z~4$Gdxbd+lvZ-@oUxpN-Bk=}HI+I)OfpT6*{H-JN0N@CGw6ts(4+nI|sy zK6rpJnBltRf-nk9LmCnQY8s+J0%5=hCrAK0<=|roj-MY^B>?21R0(8O!wEIp*!}RV zPLIAF3uK=$jJ$gFs_H&s3Mpt(Q@XAsJ}Bo;#oO~hlV2(wW|8^m1p`j^0zba8uN0UU z;kUdllOK!Xr)x7aGo(Lu5h^Yc_2C#i7Qz7{d?`+PK5JUEa%&$6RTHk6Qt>-T(e5Ms z-pW_Mz8>jLg`m|Lb`GswzS9n~@lm1Nh=_0(fm{a5Xikuzy?%f+N86iLqL>A3LAV^J1QQ$kJ zK0Vm+KadGJkynA+f#kQb^&k+AOYJo3uUpaPq$uDeLGOVj3{H~nBDB5@4NdZAP@o5s zK|D&&^p);-MFqo7H%N)08$C{QuOLu`!R*^sa$K5ZGBq{biJkXmQQQ4^KV7Lz8zJag z}I0y5JU+1H{z}v z3xQElQMB9UpuMwWz-#hg4kTkBd~1a4i(NKkb1fd?vrMjE-wuFXx3`^?kn&uJ=aEX+ z0#P4=5^#~f0si3l&bunSF+tbY*L!$*HThf+o39hxqCIow8U!lNVbaSb48Q=LQP>$k zsXOI8i!uNAZ!7Wpj(r*EE-ieRj@;gyRnEi%V+M0Cnf~7Ie@~lRV zf+L%lug>cOgMP9zE-I9NyJOfQw9=VtnQ7F<784T_ua<9f3j7T4D+LHM#?$j^um!*4 zVv})p*AV(1yi4bA8sd@>74?9G{;{IsPO@6QJWwoPr2yrJ;f*{N*4I0M1A}0Q-fkk{ z-OgY<%2!R5!V64+x8umKQ0xq61?NuwdPA+MM!PgUeffYYpz;IZZBr0bh5q(01kyLo z5Rn!Uf_AKU&3nhnkJcHv4h(`XV&#NRbx16&2Oc!5PSl73JmSVXwDM@cc+s!uF_W&JIVoq6=cEl)XBQ3pUtzq31-a1HO`e zZ{KPj(}=!vWMyq_3~N_F^mO`hNZG9~_rD%(P7JIKjQ%^WO!C(oaKC&k2!oCqts1O6a?{l7%rVDlap=GKG4_9mvYMJ? zQCQ+3MqQ%^l|T;Ra#>XX6BjEVKI6;Q@$y(o{F_t-lUm+ zJz(HGfBwc;YpMe9?+jp;S8ET_{u+Y(4_SKz7ept298|(7j!K^k_Ms=Yn{y;UZrgA| zj2A8lqZ>Lnz3niDW7H%`^>+7=}yn%O0!Kj)l7i|x_2(CI49*qId_wuIVADz5H82IvzU6+)a zI`y2e$FGU=lfAu~3YQ_UrQV(sHu6T|*WKN1AI=~pMRVaon-M>ZQ&;s2G$;RIOR8$_ zxsuBu4{@SDzu1>R6!2PL^$w^t>unZWA+QY=Ia$Cvs>fhyk5xXCsqR99pYI>%H$t3TTP!8ZH9v^_<{`j1 z(V;`|iX7o*Zf^AF&Itj-M}h<8~!$H*eiacvuyHMC0$|F+D3QYipmH_2Re^ zSWX=9IfT>rGha`>t?9;mqhxM3^F}b&2GMqN^8b>O_Y=R;Zop%j0hER(Wjp)uRD7@( zhtslINI$xs??v$pvtFSv$O>*t@7NxC;O)Eu&a1R^bRwY2TOx0`H+_C6=Kfqsx8D+v z!D}tV1KpYmbtNwil2FDEKRRCq!F}^%#TM!R=WC@1|JxEhxc_*q zqrLsZHFdCiAPt9Ucju%k=tlqW@Dz|_ITTX~$JOnwWD~q~Nc6-WLzQs^q2_XEoB$devop*&Kg{+*uE4kOPLud9h6wLYSjp zAxSY3sKOl|$XT&C>DK%0Ik5U@0LmC-wctuaJ}rNj3e^Pu-%Evn*9S|atgJFl`UVBj z?yLlkjkl$9IV~1CE{Xai$R|6L{5lQed=L1y9AvV5%m2@H!QG!TO;xWKw^zM#*-QA} z2=03+F;UTmrg#}SVBTFe9mb~sLjiH|92g!iu7fu$hih@VZ=k>bLpZ;q!TRzHufu#? zxBYO~)vCtr=|0-?=g+ImfO>jElYe}VMTq7JTmqTtd|^AVG91y0Yw7RbpNUOL$5pBS zvkjkIDKS@7TmV>aFLcbdnd(j+7)l#u z6)=RwTbubM%Xn)ABoEGVDu+L3MH&+160g|L4qUBFSI#tmcIsvIvjB||p;yk(^X^~< zwDQ?m%voA$$Xj;;{807&pVge?oE+}h)Xc?F!L9Xv>5iitqjyaHBE`zCZBp}Q>|n`H zKROxNLI>+iy?P;>>3)0uw$=DAR_D1IuDq?yH94IA`uE=&dl7CmGvX078sxOvup;Qij`bHe@Y48yqUvC8B03Q zX(?l2@wtoD@ZQxiff_2RcUz%(PAi|qjev2NtPMTjF}j@~8-GrutvzD>7KGU)5nP1f zJO2M%g9�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�R(w^Bk4LGS3YHPDO+Ej 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 z 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

R~2TaNXcCN++=f zoIh}gCtkUEzGh>M`zt%C?FeYbki0afAo$S_)kG7+%p54Y^}F58?u+jiK+9Z!@(}$b zp+p_2e!n9y9Vug!czhVG{*;e*?IP z;zoXldkx()hsa~-FU8`&ATBSc9m&_x@wRPA#QR|IqllA9A2lc9;E_r`ic@eHXv@KR zi%!Tp47%DAvS<}ScIwVqw<}l3504W?jD%d)@%Il7_Eto%?@v!pyF#Zb9B6#c2Gewc zCU$BL6iNB){pVb%(fHTvR&Ay24A}^}>Qllf>YfGeb0#E;7udO=&BHU<*Ok>ZFHpL- zq)8mSPFQ#ZJM22NBLR?oqc=6!QRP+Co$8{{xf@nrJx1#U0@ejW48E$s+tw1U?Sz5? zS*?g4Dd@eJCFHgR{z_*O2U6O`U{6El@=Eaj+(z+H9!>nzOu`Hg%G9MNe!`Hkp#ln6 z9LrV9h=o;7X!(`86AvR~vVt;zU;L!ZV1$ndx^VUXAX{CnUAE7wIyPWN$0({Ad{?WZ z#Z>USsn4EHo^`lk{&U3dQ!#+_4gB;NT3DE%9;vwXj5u2rDC|-E7Z;xcIehl&e5ZYO zmJ(5{0foZbUz)-P->&xP-n*{7s7*Op+1-nSe%+vn!NEa?*#ps=&fu&M2?`SZ0zqE`YMNGO{ZFZl5!Ui3qA>NqPZ~@TpTJZhePS z0cLIFLNlftpqA*ZT7RuLvU~JL#ah%D8e$+49=|Pi;9=VlmGC@$Ly|k^WQO$}I+E%N z3YCj*Y;z)hMIFxYBY)Add+~`6f%lXQB%6qDt*6fyhEd=k0A7{pGiI)AyJY~B$Y>_n zKn4NVRe}!79sT|7ySwZF#@E)qPwutJu{m1YY&r4km#PqS(h0z5rKMao=iAj4OYyo{ z^M_%!IwmN>x?zn)K}Q$iwz@>D5UwrYIS-?5<2({o9=8I1(}?X)qv8^?4;wWFIB zn~`b4yYp7!JOgp-WC_5Dho5p3QqTic84T-xRd;;rB^4hvV0zGJpbw?GaJ!L7MC&YtUP-=X=;`ASD4H@xkf0y!o&>%}qyH@VpD_7p__~hzR zM|+!+GT6RlVU)&oWyY%t^YSjD9dn>2C$69~z|<8)a%SkWoleFLpwK@xwMm^-Ca8YC zHPUV?@w4smP8F8Tys(?YCHL~V@cs_`*uay4VM6J*2Su5fODWg4+GIi;8Q}4PqIh9p z;gfQ|b6y5~bkqQUkV6nY1*X` zLC=xWBa>5`M#Z46xX;#X*2RSH>@z|8CV+4NRDbhi{81!P8eNgLJtzKxij(n|uWjY-}+xF*WBbNzUfc?FdJ=L*JeAF&>16W#UVh zrd3&j=(2nZ^15sVm?X0sUjk%vn*RGJ5~KaiXkdjAK1)oagq!5&T63I;W;-~D^^JTy z>t`t^73O8ALlf&x>fL50bjS}{>_}ZMb|5U+I`RR?DcR!p*rxaz8W0t7RjKo;EXMIZ z?={9fy!XM70(Qt;YiBmw=3^-{3=NZThUh`APycq=ms7OWiwok<0cM>Bf@8Ts`Y#^J7br8(B`c-E99aJ}{NE;r zd`Vuk?`(f?D=y2JJqNx5Xrr25T}{GPck-Ek5v$?C#nJH*sEcN5!FH;u$|KY#$=ZjOz@jf#;8XKWnj$E;6mR9tr$Ds%Kt0_#4o~<05jGC|>mIORsoWgw-`dE#~5Qr)oESu5A#*PkGJOkd} z0Wbxm-#35yd#q(cH*%|_`@?4MKPS%41q%UxB)B2N z*Y7iu((~52#!UN@m_93TdkMJ3WS*Do@h0c{lPikcz0)7Ypbm34$GT>(S5T$YTO_r{ z4sQC~0CXm6n2~1DRrsdNP{hnbRLMA};gr5pv*!k~qoq}Nxk@YgZkWomm=U9VcgPmXdwhuhW{=5rTNqA|F+$YMhXrH`@t~J zr*c8|?LQNW5C2Xm&a9f!26KUG6&TKpnwa?r#4MaXfwZx`7(9KP5KXEtkRGts8Zfj?1-ytPGr&#&AY}0ot;FW>qYx5WmaCNAZ#~ z;o8%dW0tC7IBmW3h;XBN4p=K}KGB5aif?|nuEVwg36b|3e3<-rx(I>^0DQqr0(IU7 zft4QM{}k~&_+Qo8n6NO1^S~Cl1Xd~Tx&iqF{QDMI6-pt|(>J^P z0%hg^2HkF}O#Qdg^R6;CleTa`RHk+5$To!f3Fyb6XAlEiW`>*jBQjR#8r%nQVndlE zbKXo9mBCk-m3wOUG>Y}OlyCNaFn)TVsp;ULx5sC?^hNSRpbY4`wfop`YzIIy2^T)U zPnz-E68%_NmH!wQgSQsaJ|)4z?@4yX^h}G0*ysuxMPB1@e8Ey)Qhw5`zxk8jDYP(S z{!!Rfbi&80=$X~}5J^eAH)ofcdUpi5tYd$qZn@#qk?Ts314rGax6x3YQFQo^5Oq(~ zP(QpUh>D1u<8ws~xs+JL6vnc=tb%~62pq&N)wcb6g%OZoQmuasP7m6wj(G8)d|;5@ z?(zPfYljM)132j|yMOn_R@loMCTxIck=#n}9_v{)B#fv5a@S67qPnIyZ>$`ps~^BO zT+C`ivdS{bS*YMdAl4|f`>NEyb7cmyF-J%S?>|qvp}>_}0Wi?UiTz_npB9_Y;(WRn>2lCqwx)b#`H;&5t^ zHq{$op9PWaTx|;MtO$e{c@|dkST~$1iGsbP`F6Vz%7s%XH~>Y;>R9IWwPRp|{eSOE za@t*%^1{aJ*GyNg@J^YZ$7a+D{4e=V?ErL$m+eJM=s) zQcEWiUGBxvhU$kq1P||pP&*l;g8mmgRXfjzGSiL?NO;q5YTai|_0~qZH3U;?Mz;pE zZZ`3ZVaEvyrZL03a$shMFKrF207kRZCw^;sFg@uwjyFi0lL>q!)dHwAOyi_UXb%h)ClP<3MKP_po`F+20~2D5ekwgZKXY#C9@$t#4gRbt}cw z!BPxpwo{s(H8KuDqcmQQ*Ie3eIN-$11TT3*m!VH+_Do)5YFxfX1bp&ZFq`AD3*RT+ z$Ny#R(n;{0(Qq+Sw?d}_iLeUuo_TD|Vu_U=YF3ljjU7Hh8JvM$dG9plUW)pYU(br2 z&k-w*Se@s+o8FF2krvh3 z4?i=3U5vLxwzr1~V?Dnq zJ!ZXwjypxv($Ec4lLSl~y)INm5@jPm7OHts%VHvJcWJR=Z$5@TZP%e~z5QED)xfSq z&D7ShqB7|?sQ*le?_lrG0*d>^jeLifUOz>-Ot2>MF8!V@A58pPA>pGj^2gUEA%M?R zJNQ|6_j(UmM@lhl#4z>?W+OPp_mXRu^?l~o#|I+-;rUat$jP#O5QQAVjF21Wg7RwY z3NPfebvymqtzgiY*W276xjz5AEn6~rGb z%W_0$+OQ-#$JhGM=h9(fA9B`X=gWqHW2PDt@6#$@zw>wnmXQH|s#n1M1g6CULGhL} z30%XnP%G}AStf4cGPc6H*ENFF*0vj6-l{nA{SGd2po=J1|NXy;hFXi&n(#(r1b|Ef zjE|D>#xHUiYA=RUu?n^%Y&`>O69#^nw%C+U(RI2H3=Dv~>>k{Y_$!$d0b3Oo&MXzO zl4^1|h)&Q}vnj~EAf(4IQ_#*BTGvC{Uq{uYGo!OU2C}dD)h|x^)Lap`LBA&mz(s@v z9R!(f<|-qL9vkLjHRAdzk^e}ftV_p+;BuPGs3a(;SZrAxKH40>mN=rdQ|-^u1k-5Se>yW4qT z$0fRKx5opAO_9*gGy>Kt#*FaN9(B}hQ2tCdXx}gHle9(Re&dqH(4rUo20`T|G zl-%gx-l>_4RwKdYEpQzV9x5_|6e3(on&E+a-m7gzw7!2Nsb;|Wri9uun-G2C5{08D zt}X`1Fih0h8a?f@Rm-|%e!s@9{!!?!0jwARQ{V;L;7M1%9;tE{G9N1Y*fw;8Nu{;G z$y#LdFq2AP_-nI-95pQ(ahNfIo0cnk*%1FPeONg)zlt&3(6E*#5@J~B@M?9OmrnLS;3ueZuq=;9}-K|C2 zuRG5}q;`*Q^xkj@=ZE0xv+=3nsnf;(hubj`^SwTJBZa46Ei_sO@Ac%$%)Wbac$&9% zK*@hP)1Q;>BWz1@*|_Jtt2p3Mvv>eA_@0)@KN0u-`W!fYzID>IXwaEAPl6t{i>hJ7dCL?bSIqQW zf9bKwL?SJ?TgR(^w!#PsvL_NM3b* zC0Iu1ccA{zz?<*MzUT0FGjK0sMQd*AWd6&~KJ+DY1T!Hf0hjcX(swfL`jlF_TG+Ew zt3eIg57f+$K|YDF5G96TrmhK7=`Vc8qAWbbSEF26Uc5}5L1)h27^0i6#Y)Usnve;v=uuM5~RW3SMs~3 z#zID$bng^sDq{F(S%Tk_$t$%2ueS>BHPRV8M8u)kOOSmpC6(^x=xbQ2-cC4GD#c{a z2nDjy1(~|HgnsAT(s<<@)O6@gmUoSR?RLcp&X8X!I)5rBq$7MO!OeG~&a=NA+H&xI zi zI;Y+BC2zmcsZArePzOLzz|C)t?<#p3g%!{yy>+#)Kb!-ywzTvhxyP z&7sLOs7)1#7XvR2W<_;Kd=}j3={J!LU~^@3dFD1OdCwRNN8Z;NWCi{B45WrR8$v=q zMd$47&TleG-1;2#*lUQs0l19A?;7~Cc1wmj`3Al=<5i2iJ@jVTD0{|; ztIUM&N>~CvvI2=ekYSX^|8@%sQNIMOzP{r$Bb)FIePpj%@(rN;AV8ZXO=DXidb7qY zn#{U1Je_DHf06)15502!39@1P z>vAW1(}`$?c0l}@7e}rX6uD}z#ps#Y0T||<6xsKC!L!p762(mXq~}tGh5-=Js|2(i z@2$rJp2=#JXRmjiKQr&~_V!A4ccloB( z)g8CTHRR2l8+_c|iL#Z_q@<-$oCV0Ls;l83<&%yW0fB+I6cjN}BJPQOF)>%5)?~y- zFK=F*zk=*eN`xsh62N?CbXF^2&QkK}E8c3Wr}7&F+0{(ZM;j7pz%%}wuF9k`F}?9y zLwF~}MIN>v5X8{|3w0R2m`Q%+rUCd@qZ!|L&X%<-UMg_~HlNb10mC!Wqef*STFtNu&s?>jfb*y0BmR)Z!10B0ASYx)_szR~$rrnOop zY)8UHQN;Baeos{h1rK+ltOv;{89gXs0?6B+YR#381tsB9+4gS_D{X*#9;&NJz-_*P zpy2M=vu8xa#EJG^c6N4?z%QKqN~n9?)Fj@M$Zhqu@7-z}w>5j!>UBK`H$GZwI)0&uwnf#=nq0a}er^GOvRGet9HeC4?suLfI`IFP4Z$?RNDKSVEn zk%T}@R!(R}XHX!!LxL*{4__YS!Edw^y8r+=;wI6^`<=bdphEwm3itm~(7#Ms6;+98zhF?pKXw7Gck#UlxETOy$$Ps$}QiWy*IZ+JN10$0?zOC7OJeW^yn4r952cGWv~*w@)LnHr}4|8{S(9L7&$Yep_E(pMiy?6*ODFgM|gp?$YV_+`^u5^r2+QgLq!?K-2AYYYjBepp>)Box;da|41sVz^KbmvW z9-Ovvn-lxD7lzE>Uh#we-+RRsdA3c0sQ<&bzK~b`M91maWtFM2&1FQsQZca(Q7rai zhtH_$TvE!KU9kKvE`OtAYVlIKBxGc!yH+AQL@< zFyUj*1^}70A&#Pa7wgD5v%#8yWSu5(>SZyZC%Z_Q}F?F7#^@a(rstNlV z>C=vk9a{ zwxChbWUCs$hK0wC)j_&S<{EDYGZ2JHHV}`Kt%K4My0(w|>ag^=2RO2uZoW%PqRO}W zh0lNHPzKz~mhazmfZtb25uMvPOe-|K zHhbddPRjz13gvX%O2hrsVVeNT3YQQD^Ly!?#Wxvc)r@!4>pqLH)THZ#4S5U!8Cevz z$jRe?lD{!-Z7~bGqW)w)!hQLpIXDrhhm8}pHNCyC5U6Wc3!rd#VPWA4*R8~%eimqM ze*P0PGdiY+55c{&6GGbq8Pdg;Lri*=^OH7pVYbfmTccBGdZUkcBI|PU4Bk4lVvT{X z9f%}Y67#0ji4mpgaEfk^u8-1{z*!RQaU5_l$R!aYenW6FXmN-F!9v)mWSpz8Y9w8i zj${onX0AqyU!|Rt|>WyRM+2#nLKyHRY+S`E-)4Ra0sy+BBa?~iZ6%pKcX(53?#}|E2D4{9u z+>^tuRuGrP%R#i#IpZMrr@-tbi2DY?bmcxcD9tC3MridKRt2bd#wi3dD}9mFO%w?a z#QX7rJCsZo_sa6M1KxSOIvF}AOs*P?)8o!L5%~>U#F1Q85C*@ODumLvTWVW!VJFZx zNhRy;m%1vfQ}ARu4-@1VbU1gABT?Z6MC+H`7troFyU9BLT`eU)|?MS~sKPOdN^ss+eA+otG_x~7;k zv*7b{&m6sN%eoDc`>2?QPgI|O8f=UzsH4J9007*7nA|5_I8=_wZFwVMHrl3|Eg)>{ z(4E{ElxNunIJ&Tx5xgt*uDkH@ulIGl&v;;q1hLNHi-@Z1L%C`fN%-P{R>8?SYHRci z$G?|gMH%MiF|~d&defRnY3|#Kx18{VgM__#1@X`P`nY;0D)O)Z!j4tg4!pIgl?H9qA)CIs z9f6XRk{aamVuLaNjpqF=GdO8~1IcQ*D0FkG7 zehh^!ypbkvY-sTJsOO#W#={mq#6d4{z3ANZu6a(KAf<#+clC2A_oM#berN#lyN-@PAItzJWZZLX z#~&q!K7BMVL?d!>&-*093xKSzQ~^9FXA))qJ!fKlrmsr@i+3d6vG>JA&9kpxIi|j> zUcF}bzK$6JATk)ZR|G}c-}~089sLmGetG?~qav{sIEWf|m-7LsY|Cfn@O#@LD1C{x zE=lg1kNNLOX+_`K9mJ(JRoa>8cV6z-yt~T|8AJ(;AY^NsxxR9<9{Y~uwA|z1QN!=F zY}6gk!sm0wb&o~o`Bl*#=rMr7Rs(^!9}Q`$XlYr9unx$p&Y6UcXq!~L&H+Tt zD-osyX#UqVb|hI?o#Bg5xq51IC^(CLGsAK~vi37rfSg8hA&>=|7T%t<=n5vOiLXhT zeG|;;RNnJe==_zvxwb32ZPjFmp8+X)RR0M{L}>qrzc1o}d6M`HK(w+EuJKOyrgds` zp*hVB>##Z$&B7^kZ=u|3cUU@~?|N;eg2&o_fC1bc>2T;Xw;IICJas`1{64`UOsBj? zV>LoAyZ3itl{On>Jw!444VTr9KhJWlZGL^mq2Vxb;xx(`H0G*E3GF}vfd92l31XcA z)14SrYvz-!nLJBJH>*Q%lDtDSfdd^LB#veEyz#AlJZ$7XXRjvq4gx6<>9EgB2gT2)^LL>dVmXkD+Gkpib~Nx=(qh7oK325$cjq)z{ShzkyWstf zA)3qAm>;6X79=9n-!V!S@Z_nrI_tn-!IRd-ShwY7xi1Ha<5-O@x7veH5^FC5ghWJ!b zG1#C`+R%`q%ytSLvi$S>`-^V--C42DXc?}lFskPOVy2I@?Z57yPC=1+HnXwd*Vps> zyTYALobQFP#+_#3l%H`eUlPzh;HePv3M8=E2`;ZKgO=S>fPXhUlRtg0zWj3fTj_ea zUMUL?RnGhPX%iJR<=3$gOf|#0fl-Q>(GWwp%A|xu`(BIP~kMGS*<|!g#Cvu0UF)YI=!B zmHnxVQSAd>@+u>R#}kMVzmE9a%TQWBa*P_J20j~e7}fAYXGsvE=*P)zULJ}l^8TE% zKRedV&=o2bs}mH1ER9QeKRo=!ORcyh|E_Vf->DT0*EPSH;MPi-slusCiQmr5{{AKQOdy52!%3G8!s^$6WDJnHi0WO9`~7bVkZpFnf)hV;mawSW)$X#!6eaXnCD6 z4U<)(9*>S^GY$zHgosmnkv%V$JqEw%=otF*J@EGuB0m_k&!|zXDtlTl_?f};VyEIz zNDSvhP+D??YvMYdyY%>TK`{w^b#jkv*c*n6+Iq{p{tvDr6~w@=%JG8_nabG8Lv* zq(UbL67I{roLX@S{!OI}-o9eYpPTc0m&_tUkL!#NF-eN~xOE(id}MUE{2R*9?tR%X z=F;9h8^H2r6m=MXwM!68R8x_T0Q@x$SxB>-PznGJADajE8F`QjjIqb6G6i0!iXrf-eX%7DdG6eUdpGetr zR$r`}4;RcZY(HA1bWb8}jIb#*BFMcZ=)d!eyG>rd`)P@@u@1f~#ab-FPW}0c38dlY zGdx5%k=_y01v5Qz@<0(GA^_$}l_1&FHd_EsVxY{o=6vpjkf&GhXQVR!%jENuE_rok zxn?!m2<75~qHdckrdmrxEK9^{5I!cW+u7xoR&M?;0a zF0xKuDk`|so*OKa&VveYf~*7PDi*QCG*Z_n5?LftZc>&Vwi{%}9uz<5S*h9h?~+7t z?wUNIVzNpi;Km>3b~SbCq{e@-`i8%K+`r=dDas>Lmr$&cCX4T%y37pwr_(}Oa|Xf@ zHpaq+?VUeOAd1$rYxwq9ls)#}d9{ncBK$S)W!v#S>BZ&B@?77wkiQ^dYx*}X4B)?l zlYs#TvG~pOf%%?=`Zs^x-$_09tn)>Kl3S8uQ;5R2d@4xsiHSI&D7dDt?@LXv>rT!`E9!Mb&oy!$XQRf^>&;Nw+kDASEd!(%s!D z9Rktos(1c5uhHJ$~!&Vj;;2r9m^Qpq^T| z3T}2d;E5Xo=`_nMyRU=Uf>B%m1DIFoE3!eFN9$rWhR_d@AWFV5A>>Y*bQ+tW=e4e6 zwtc`)V&UsvIZ8@(Z~RK6hmZ$69PE5PdJrh;85(9bRMKH<4~U%AB$M||>D8=LF|L6} zMF$(p7qsb>(M0BWoIJ_SV&yjEeT)i0y!>6xciaLPU?D5%yMDIH_f#PD#@ChPQ`#hMR7Y;sM>K?gvFk^5W~f^8O>FzfQH4Dr})8PxH#l9!m1 zTe)2`e>;WYqw^MiooxoF;LyYZRZ>h-_Z9zo}OvC4gzE=Z;TMKxB zNJlvJ-lGhU#%4C?RyyeVf4u$>IQK39B!1+*KTtjvWzaeiTA7ZE^Q{K?&_HlD!se`i z(}9L2Y{oD%uQRCR;YRKyR}=fp%b30<{H@v->`|0|U8xhV=LUBXD|WAS?<6lT-yWNi zmKK2}dI<`o{QTuh@TzO0(I%}7GA-U(8Al^)5!H>k?nCuCO+@>2;{+igd0*R-MZ2RU z`ZpmaZF|8gFoEM^N9~ zdesZ^>DwZ9vMh0a{5+h4V~w*tzDV( zp;%G2TK))z4qvcH8F_O1e=xjb9tb>ZG{hihc!dn|J|mDVr(}cI9jII!K{sm@>$t5C zCu&NLH?^=ZO)JFz3m|0^s{52OsQ~o^l2}bFy~7*dyQeZKau{=x#?Kl&yc=CxoycD=@KEG3to^D- zlK$x_@M$%IUnTYu>c;M`V}kKg04>~|M2jzt6-A{8Vd5I>$?-hKi2_R;uLKRD@me-M5$~ritErlojo1SF1 zXYP=xN2z$;Lj|@PsB{?_DXHNZ7S3h8x9g%WhnEHIxAI=wyDXqbN_S5=aETI=N<%h{ zoUvlw4ZROwh=_CS(cM)NSggbIRq;%}Mr)w~!OvXN@7HY)XuUW$Sf0fIF}#WlWYY>d z4x|MoLcygFHiffh)MZPaa705)FXes_A|{C&*$Man;#a~`}DEzNgXEa8#Bya%L*S4 z(hz1}iZo3#V2J9W!7)-(U+K?N6LWDP_;hrJKv(VpuK7q!l7*ex2! zyyEw*=OqZsdi#OZMEg_8#Jh2aJu96e2#ctup4C&EB$*Hj1`dPbV z1X4qQ>V)-R1=PD%h#b_KpW6iFyr;Bv7!`)Q{I$AzqGaoMLS7Mmkn)fzIffrTGmd@87`%wUuCw z`u=rSP$}JvUeL|nT-BzSo2x7GtveZ6VjW8MhhFzwFg0WFp?W{H`kwG!-JN_u%-0d| zHblW@n;#nTm|s7!5b~x~`~!C7Ps?pBp8G0iG1t8kbjoofr?>)FnEeiF_Q#`buS#@>Bh*}GYkg#SMX+JuL z+q2n|+5Zp;6PEz3HY=+z)D?PJ-Hqd^Cz*eJ7aUx^@tP8+?iU<(QxHtF?3GvnK(lqj~_>IOA$i95$?Me)8$uMbQ)NChM2 zywfJWKS)*w4prT_VN3NPm^woFF}#wiVy4>SunYi&064Q6&OEPOb+$;hP2-nkJX~7h zgO{`pUPLD@v?744`_6I&+ub#)_%^@OW~%*YvcA$V=o%|jX=AGCx&7IyC{^z@JRasityjbrSe(N4dWm+H5F9sH|KtR`qMvjK}bl*;n(DbK_fVwkKM43`nnib z8fOrL6M%>w_M1d_vRsCD4my)jeDA%wDn6(b={}R7)QLv5^D!0}vDOQj-oIEGnttQH zOEP%0cjrM!O!5e{LCe&nco$zQ3JS2py&dH4(krcg+XxSmn+P)o6hG(&e6 z-2A8bl$5cTi#D(6ZZ*gs;NYY24h?f2CYZKij%5jRj*3}#7jv+Z>m;D-mG7RJrE82xs@G3{*HC*6lQa-k5%e(tT?AHvxX=S} zvCRw%aa)QQLo!y-P8Np91S9q@Cw79D5O-||?o(N(P3rFu>9uEnq|t>gU~9%2l9 zc74)vV;sP8`N0|JC2yv1G~(@;H}Z#5)}R8C=v2VI($@l2e?b|gL?-0>x@lV&(pw~{ zxAB1@bg)gp+m8%Gv5_z2;)t1&{NpHjw)&(E_t$7ylxjkolaQx(iJLgNO%ou9cm1`B z_TY+k7II>;x>{XJ0O7QZA)SmZeewtoOO6*+A3M#*R&|71Rdrq=S(gY!D>lWfCVpRs zSuwzHwObjqAw3;bjn5WFTh-y&l0sa6WH8Vh4=w4&n%Q~>{EuITF~f9tu9^s+miEjC z(%#zJuwjZcJONJm24#yBL9w`p_!AI=EzcWE-MgX>Gql$(ZBkNFGtYlI9m(7+xJ-v0 zd>?N{+`HLw1gw#yeH<}HNsIe0H^uskwxy2Tf(QRo==8c9)D2FVytq#9vLNfzQND+2 zQC1G8x)RI#Vx}{2O;lA#%{Yq)w`u1RE&<#t9%&*^Ab{-u z1W+D>WSD19*gX!Y+~>yic5(TR zY;FAxV!ALj6#{e6;&V@#H7L2cC(HUM8}VNnoerd#X6vv4&QaV&JDGGx3)>C1@sSLU z7&9Jll*^ffFaZ&lvzf3hBP&^qnXbv+dHf+x{*TTrH`Wt9PN1nMx#zx(C$oQw?eG;4 z`BVAY;iz@UYQ#ETDl@auiF*HA(0E5XaQvj4pH&{S*vqn#l$gs1T%q(IlX-Y*u!0ET z6<6?oPLLyR3GyGa7XK!S?(c)P4Pk zcga}!TiO}(DLJFB?E5_kOQ}eyG?Gi>V%+)j+*14KyI-fKZ1m!L)>YJrcTXGT8aG*wBr@|xMikWAH?8D<; zF)r_B&1=z`>4#9^KpW47JAEP(;Xv$dkkI9pf5X11y6jRr2U}Xj_J`AS zT*(uE`x4@-{wjbAo|gIC;R6|f3K)XVcC+C?3g%pudCGFgcC{leGtli3J04w*4puE{bp%TiUSOychU85L5Vr8|Z~$>Lqjt zI16~06DK#|9KTt@I9~C@Id~99x6GwUTg;cc+B3|-4q^y^*5-w7zwrPN@6)fi4;2I- z$-rspF1DROWNx?Y$aYA`5e)ByRj;}H4!6T#g0>yN-f+|z*tZdWQ;8i2VtE;vyd3tT z5bL)rC^g|b-Y%`P*%^^rb7f>1Uy}T2N8B{@3(JE8A5KDfs`v{es|0oB|0InHf8vS)TRAiFHcWp zef=1>B@bEKsez%PZUijhl~^_UM%y1o&RwX$8J6||62Vo_qF5=S``3bdL(6#W&-vuj zPjl2jj9yv%aFwy-TCR9tVZ$PV1O3a|s^h^9cuXDEEDy8ipx%q_dym8payt?#B$VTu z249PaJ{zy!@-m8S_gLl4uWa6qZ>m=5E6Z%Bu(ZnPmLr7{9(rV#ZqQ1@gVGw2E`#XA3pg&+q4;^~EHG3MB6hv?mqE*nP9yKSQeBy~&S zVWsL;F?k(DABRdVjvG3_+9ogl$Zl$_&Veui^3`mmPha4d!!wuK_OYix@+s;CeWD;( zJ;`AD?Pd9wMExmBhtGcMdK-KV3SAKW_BG#6Tr3P5d{kAdQm1G3$nFROL8gq)3Lf2Z08Xg#CAF zbk+ut=p{im*5j-ZvcA8l)O_59$X>HZ{c;ZM8_Mo`6bUL0mXP0`W~)CG49GtP-Z4VzS;ctzSU(#u;&IL%5Tw)2^wN{}a&|r%!zEoI47$ zP{cH+c$w3}qD%)rBE^*Qv)u}fPlwe+CVmwuII!94^#W*iGd^F7&@T~;W))CWb-L7R z+oXKix)pmkI*tcK$o?XBS;p(3u2vih{Q!BMdN0JAnoFZ86wM#3$>|()W=- zfTvw&X6K#FECb^B8i*r(-g-SF_m6en86m&_nOJL#*GqwO16|&3i^UdX`w~x0O*s;_ zw6#&d-pF*+0`j^KtalKHf{;HEnyU)YK7~iPhRQP9Rww4$Z$^z3anG~r!|5!> zlyvzK=9JlMEE{P;#>P)qU1JpjK3AobzPd599ds3!iJQNMCMIa886aBz7DbgLS59t% zZu@i9j^w$WHLhIE^y3TPX|=MyVIgn`q)+j<-q+~%yC7wiTEI*aXpbPhajn>8L9hN!2G#DS@yCsfhu_}<*I^NP0q%2U z<&(R+yV(lkutfvz^V8FnhV85_C$PvPP2Mknh>(<2%FjQJ!yuOd zzWf1g(C>cRPsYXN484^)w_T0+#i6FM(So(O$?#;kYZRN7EfxBV4rH)yIy3G3$lB(+ zScp&PQwDaqPAaJAvl?VRZK4 z7Wu%lah7MpruSKD(m3voTX-=U&^{-urKrOXrp}sG&c4SiDOIPBQc71g%h;048iLH& z*JF^Jn$yI|?!fV`x9en1@pvW}*KLdAK_xB)8OS%XQKkS9wEyAtKs`AhfN=p>Sv#X4 z0~o;AdLas}g$8Bjn@DX;_KiDAS+iS*@h5%H`{*Yd8rOn$A1{LbS`sFhae=Ma->y^8 zh>208^V)Qdj>hS|&^sQJrC8026?ME8`LKV{+1UxZuV(!_U|P_d;d4`sAmjzrXJA($ zgQ#>?_tVWhHR4i*lPAi0X(5I7CAV6VR%Hf|PPosTk_9A^L4h^$Y=(^cQsORU1xcq@#2EVKNJy+T&{WBi+e8t1wN12oDi|nqn z1w=p*83Go)Okx2LC4jE1pk*bV`w%ZT6(;^&qk|;^MfE!eudR&NGKzBtaV%>_fO(;& z1Zp19Fn-hB%l(svmsKD{Tk%kah#!h+A(AC6zKdcY09uC!QkRXn|2uZ zw$}@x`hSWDyF^Qi@Urc`$=%&_a=YhVlzJU#xZ7<2WQaW2GwX}Z2Q>EDqDQAT3;OBe zP>BQI0ak{plAdD`5jO1vG?Dopal2-6{s5SQl&r5OKn2fi1bJl<{g?U4uMoKiRHp{R z+00}G$--F=E&aWQ3VsAPlO8xwV9?}ccG=>Zqpk|xn27t+hsqltQit)=1GZOxO?60p znRJ2OID|pMyE3h7*8}V4U0-{~2D~*}POJs;&+Bln3jFT=_9{TwB$tRDB@kTVx0G=2 z^R3vT7Of5~kf*Q$_&@z?LJoh`6S<=r`hpJSGCLFvK+t)UJRk5VA(K^l1z>)@ z$ybf?a0r^j2Ug8c@f`047WkePK6@hHA#Q1{--5Dy83+dm{Iv^u_O*acyaLvYT8uNm zW!{Y|mj&a=SnXz7AEeB0zjnnmoLiWKGl)AHP1x{9TyRRDzWYzKv(Imc?iP|t(U4`L z7+M6z3V2WHaGk2^xSGEs#f+G~gftZkG&QozMN5cV;sNOH*kC`A_%xJIJ;f9b)Oxpz zdwG%?TLFlJy5aO_F#D$Y-t>f zZLf-&kve-X3w?NAe6x1*%9RSuuWW=Gmj9_y(MpG`0>SVTKEru#OtZ0zm^T-QlSc$N z^G`$g*5AdV4O$^zF9~anu76ebHyPsm{R(9#NyG&>N-i$knwlEej^N=s#RDPi-l_Td zc|4o+w6usf-!)bZ?l%p}4Lbtcvlzw-3>!=Q;!w@1Chwmw&=Du0mU}c9>0nH=DRs{Gyqxv4D9p}%ZJWvY+}JY`2Gc^KFUKL(z~a2?gp1ya@w zd>4BC24D{WpVX&$^8kq_UDk0fxDDun$_vd_$Ze%w(OuHq#Ku^6*03j-2697EOE zd?>iB_7rwbJb2GF0E)w01SHxGscj0W`A_jTHe9tS+wJf1Ra!1SE_%OBOYsLh!5#ir zKL<&w|G8>+V+;e=K4mCdj6&>Y4h#b6>FK#|XS$8f&3$NX6+JyWg9GK}<>8Q#MR#{g zEqLyh$SEn^bH7ey_}n{;FMM4|5s3OU1ZBMNFt1LueZ*~~2|WcgZ9m*mb>8PRCGiPR z8=&g9jnAVsf2LJ0J5(XT1TjAkD&yFy@^{3mxB1GgaJ@2uoD^y?#sCp zH02Bnn?62WDHQlP01yDNVg8F)svnAmm zR+BlcCjQ4XGPvr2E1ZW=R>mmT>JkcObk4#w6v8*t+^gAQ*^doP@!!wZrd~8z<{3C~12V1zgs>Z%=5x4rZ zp&yM?wN@_YXKdraO;vt~FI9{H?Dx)Mb}Jr~)pw+=oyrbnXhd1CQpcA5F@s>dZtC5@ z@YJA%XYnU`<3R{=u+@}SVhYD5+e=fG?jPMlMEGB1wBm@}SUw?ueq`izNh&13iaa@- ziMba~L4ew(H+bY;wbM?fIRh7fGNC!G)peS&|Mz_#nIvp0w#=NII9S4m?FBx>QrW1C z%F5d71)n>mc9&^-e$M)QA)}G0g4p*bekY*feU1p2Yh%~?-Id_UU{S#XUBWqBi#AK~ z_B!81ly>4F-?MmXfUc4uTP=@A)l2(3ZB9&S9CMQ#E@o^~$6qlby|eCOQ9azwp<^7i ze5Q+$Z?7mf`u7D z#ZmGAUMg6FYwp(-#l^N_hMyt9dr+LN;+@IKFKG~mu{e!i*fH>M;Ki?pu2_5zuAdhO zvQZ)~7!bHS&5(a!)1m<%+TE_($YqnoP}WekY1oNgq#57d=_H>2WaCttRADpxS_Ae=~CQ-@15K? z&YcB@D2ObVHOO;S5kQknPkrloHM5M97PRI5R73q!8!%CvKV|(L$RrZM6(whyM0m~s z+q)_g61Ji=loZg5IGxSs{6^fm*tx1S+;XgS6xV9zaXO+g?*Sv-J}FCiC;<%OQKz%-+xK0K_| zQa=pXzUG{j=8R zPV?-jn8D$FA*|Xpv4`2f+YRmG&fpj9Kd|X_6ld5Kj|SVic2m9@Hc*+$bgkc`ZUQWY zG;em~G-H5<0tcQ!$~u^*sj#uoRAd?bNIVC(4Bg68K|8j#^(vsZ>vzkVR}OEgT-)d? zs2WwmMl?r+bK2hFaErmTBB1Y}jyM+n=DhrLaJ>8(A6!z+aG{99*rpX=WWw0AxM*hJ zT%s4@uqK>VssAR)PJbaq$mJ#flE*e#bzNOvQxl0`Cg$VEkAHx{vN}3x2C**pw;rTo zzN7@~`rV_W*lX+S@c?zgmJGzj#eGGl&t9QE@z&X2uFctu?jfod#F=+-75y`u03SMw z0xQ+*UcviQO%pd-?2;jaV6%qC4xuw}Y2(d^fP$c6T9}_N=HK>++AlD+3m@wG?HHsJTv-t!Ndt7;pg!qd?wcQot_F4VDwNXzTJ6-`G5N$gy?N| zMh);r$0k)Cs?T0~WEF(C z*7UKjHQ8~$>)sJWf9T)g_njIQr7J(MUH;Pre*#0IwNORZFcRZr#PG;5R@H*eKAlsFp zMCmM8y0;iEK1S6Ym??pP@&pUJ2vfLkv_o+ z;|J}l7Idsy-|C?aGI&xbX1O3A+=JJa@j``R%(CRl6UL9G72zCdtmeC9GT!eQs3n8o zTPgF-ji5I7P>C`Ei?^sK8C*Y9f3 zzpxVyd(4o{>Gf=wRAf)`!t z$p9hy0vqwu&ZeWMA4c5T${7MA>6+}P^?Kh#t>1Y)+&Ad~D$Hm3ZA_EX+NLx%tTuRYKO>}d zdP)&@zv#*0d5!hEO{LamB_V0W4p>lF=Y^uJ0p6g66(g5HB0~;}xP}P_Qr3?Pwg;So z6HNRVmyw2yz3(7H+gkAhzlF6h(4L0C8nFfIr3Pv52)?>n>kdOIvEI}Sn;%?D`C5a; zmLj-xHCIdQSo*3iwpVlL`bUvo`zfYYhZ|0sCnG3{6F&vC<4Tfjawqn8wQ7q0v>i-Y zXxZ-cFPT4T3RL_MKdq(?1_BftIGMe)UD_73G%j1nH-nTC76qFIlU{znZ9Rd=phpqH zX%UpatU7G}Q9lzYlR1WD1^fbtD-)^AnH8BlFr5~iXoc5DotvF7<*&Cfxos+ZG=HfIIp;Bxqem+>ew-#D$gB>@h8 zX)6ps4h3t7wojTHN_mUW3w=jC z-zj@I12*}d^JCKDftW5pAelF8TrH52oa+gkE+#ozwMfySpgeY5bOpeE=bhcbOSI?5 zYQ<=Bp}nv8U2`aa?+)w6ivCv{0yB4W{ApB7Iu7xdP%2({0pJsvB@p_0J7Lsb;JTI6Z8UIhw#JqMz0=mJHnZDsga#=nW1=vhLsuS{Q9~KU?G+S&6 zmk~q@s{O8nY^k-Ke58SBS2ePbKx@tgGxwV_kCOHv%QJ8>8T)R}x=yA3egz2fLYY%X zM~9red?yf{os>HlSJ&L;<^{F|Ux-cJY6yXTduK>uiL@g?-(-VXMnqE3L5L59$! zmf2O>j|Ai_685^bk*&sNFS;_Cx3b(i$GLC*pvEwq_Sd z#Vg_9|4fEpFU3^;LlZ}&vE0i6>CC0d0k$t2HY*16(B3uY_q{S&kQq1@#n|2lZG+F| zZK{%+ns$m^6IS^BIVCTas6I33#RAY%Cr%4FteT^KH&JQ~bICItX{YX&QitFE%!co= zb3OrZ2v+NVr%gP)@$7SDEl~|Uo9EelJ`#~>WOxgGqkUlwme=dI-9Rkn1X;-qQa=FV z883f#)5*;Qkh`m#xbN&xkA9JQZz?i?Nygz*Q_+9n;^4f@7RY5_x?V^UEwHXTId@WM zY>H_T;E^GSQe@t4$jFyeKd-8;maBI&ANuYTA450XnZ#RFE~Yz^VxqOISt1is*IKb) zqP#pKT_(RRZ)R;a{JS9jL1>U)l{i$h(JpT;5Ic!DN8B=s@Q%U}3nOjbR4mcR^RMd_ zs2>C59RK+<<$Dv8obqyPg=7|SBO@wDN5{hvA?Qks(81v#ClfRC*zz*FpU-Yd-P&uv zYg`G5J;?;%oVec}^~EP71hV`5R5)G-i(HVl-k+7x@bFCSJLu@@9wlbqb{|y0S_2Hs z%<0Dq(vkQ^5BGOk4UYMwj?n#mX%`osd+5Vmn|@m_i8L(Zn?65Lt>1ur-=fhn#(0A$ z$kFU;ftpP6Zj{fuJGoKq@?a6oC_Gx3bm&}@E1$KGWANk#+Jo@4}TytmHDR*%4f;e8S&9y-}rUV7IyWFFix8 zyA@wexvq&p@HM!Q4U6c=S&=Kt;{<(rgYGj2D=I7vC&C8B%WId6V0dG$D+cQo)I=th z=dqlswRL5OZ) zxCj8HLbl-qXkngnGP3`?AKSTSvMUeTO`eNh+8c%AC!kkL4KizllNT;y-|O7695?u_ zFq=>^m@>=Pp8)aE4+d{Q(5&6GHYDv~xqRz)>Sl@8|gYT9f!-xQpHHPz;j83%`d8 zwZN@==kq=7=G)`J;~AY2{I=Uo_C@lOB`;_X@R^PM-riniJ-z5mA-6^m4HuW1gjh$WMT3U7J39=%C+W+t=ECTagWxWfyx8^q?p#3r{qH+V^_t2(PE2DVOX2Wj z>Z6wG?%&?$48}!G4qc8W;Fk0G z7JZIKC4P@~`$+JXmdD`Rn`!)U@BkV7mqRBbosXpGs!!m{w2~uOP3Gi2Jr&&a`ZLBGc&m zVC4oTy z=jN^GLrL9I=Z_!Zw`Y|mgXM-D@X~#b!UZB;=M3`)G9MEOKfMURQ|Hi?f{hbyO`#PC z7jUz~-Ly840#3Ae)isfaV^5K?Z@RQ=-+eDB@1F@$9;HB{P%ScjkN1p#LZg(k!7#Go zVdAbnUn^SX>3AORukvIl%a$u&2sl1cfY684=Nh(YnOw;=NOMypue5A_1P}ZLL9Hw$(RLbdVvpHs}@a)lGV}LEc>M&Xww=0Az64&7vvfC~-Jpts5$5 zqF4o9b?pyGCRd;0MF3?ruoFBi`v`n0nNadry3S{W1xP0vm7UDGM_=rI1j!O7kU7Bi z3^&2%ghiRB7L17C@x;z~d_C>v{jy=D#RO0)(h&}aZgI!Qp;;6dV#<^pE1(R% zxqNBa+B|BdmqE<~i@`Dg>eAqp&Nmj<_GK|NHYtJ?nG6xf(C9K~b{=dV+*JWfJ<$IV zs@h?nT`BAm2+$1@k!rnMt)LO~LiyVn(ECX#a;qGf}&9oA9aC0t2=ehuzQ)HM&S|K{HL> zvf6{!*oar0DtKnx|KqP|joLHuEG#W6Zv^@H2v%1I5b^+j^?h+>cz8G>w#Ityc~9SC zEG$_irIClI%M^8&tWY*nZE4w~IZ^59HT`_Uv1 z5J*QKKuzB@|HT6xtP*JI-nY`A<2HKIeO^(dk@_U2r9@(JN<;pk~Pp-wY)zHb`4LX@Kao zaZ4}NvHo;(eD=S`x0cYJURo)$63b;Ioe%tde|scz*VV69DZAE=5p$!$Ry_cdX-{DK zgHhfb8|_Ip)&ffygzpZ_`TjMcJp5Bad}*96<7c23gZZzqzo<0WgnSHSl?R?1x0>hk z%(w(&u2vf%pW9;W1-vJChlh#PFFsot;=NdbV%t}j7>u3d+b7}Gs>;tRS$1j`Ap!t1 z&l+(U_GdQ%Em|i;q)(93ww4k=bU<`siIE2a5{H!RVwaOnwb1G-V&hac>|zHwxRn

s3Su-N}3pjIj(5({-wo9Uf31UF2 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�uOfJhNv|t41R@{Nh}q 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

  • #P_;;`g zfuUdN;JbMM_Gn>}hgQC7lup8MQ`XoM%9B43q+4=hZ_T2jnw+b|a4eni4NcpJ^40Dy z{jp_^5yPd4A#a_Uf4mhM9addiBwQr?d#m|!pF)6iqsG)=_!d1y+jz z3v9Kuz>Q2U975&i9TB9u^cvdrjA<0lONtD2{Tp;F+;_gwvExd|Ki$ldJeGsRnN=vv z>e6SX23t38T-dg`rUKg8@pv3&Q44c4RM)n~d3i!PZgrs4)o`*cna*Z1{!erBDd#1G zkrBYw(z0N;EmvM>ejrW^rVGT(TEhz<0N=j2I5=7+IxpkaDPpr|90xB3fuSNW{5kIc z(&ynYy5>UCv*AFq4%nVBlagU)`p@k*elKJC+evP}7&VN;ty>Tvfn`;)9-U8#2kP*2 z@Kt$p9oKzl`Mhdxe3RI)0P>`(Epjfytz5hqHgxQ@J$X)1?@*_jBvm|9*I#IOqrE=q zrk(Id$0YFUP{%s&i_4K{Xs-YZiB}J3b=IGGkJm1xP{M^4swMy>Kx}z}Fs^~J80$qD zfK{VouISrk9D!ZQ6Cbej!EO(B*XF1TYSe|2UeneO9%Ggh$ehYn=`c(UP+R*&OO99u zt-DIBiL_CHb%{1Q0iOiX=T9?05iULUM9x zw~IH@Orjy%1LsuGbndOwT(G<8jKLLy^ApLf<*Y5ON5#|z43hxv@F1MQLMEnO-Z z-isE&NdjYIEwJLgA#OVETfe>?dE8fRv@pQSc9Yh}5>V7ZdzC(nxz*foZDrD2?0g&y zvxv&~erIc5GvW4~yp&b5?)a#(=eTy1oUfChX*}u90A7vuH6ee;;|P|4p&a>8QOaW z6?`>ewPg4Va!Ii64A;h3pAs!6*r4>GMLD6eUU%YPc{ysT{VXmL-57C)j=CD8AwioU zi;Rnt>X_4p;NSBDfS|dhhi!T3!pn>`pbnuNLkCTMNW;WpsIZW?*$_SS5$zSa|Cl|* zEU>!L@;ryC$WEYzVjLR=l5eKqm9GNwtRh6+m~xPNHn#L7ZR;)!h-E%xoSSWyZof4O z(JeGk_QEO90mh%7o-D~sM+ZS)zExs3SL~zm*PXxiQf<}Ly1-*K03GO`a=E1bL>^Ou zYwR1+yGP^4I+j-2>TR-YmWNdB*JNAJja0k&mmKWN^Ch}U0JE`#k#_>URA)4K)V==w zK`SS|vW;OPqXcJh$%n$@P_olLXg%7^SbxE{`|lh;n1(!}hj%>e3-fPGN5?Po|Nm^t zASYKbWY_>W$Pzl^YZv$k9i6PJQ$Xx%nV?O7dv|7m_P*4v9f*;U=Ck_t+7X!1QsVHV zwBX_Tb8$Aa&Q-%kZOuD@U>=-=eWd|mz%aj#qDA+O97|9AOZjbgQpsEE&bu&euH5X= zZf^C>s)#oHQN%T6v#Cv+O`yn$eR(Dxt7_+hz1vxqtI|(|9RdT5Tt*N6>$NLxjg~J% zgTdiL3uvAZ_=GbuiR9@RGpTHVks=5y>Zf)iG| zR6v{)q@#0|!PT{0Noqxf3$aReGgDJvqF)SD*F%dKaZTF7(%io#uqAS&>DLyceK!3S zY@?O+7bB^^!B&kqzn!^6rxOzw{JrthsrNtCon%rv&X zDlq6n&u7^@5bX#4p#5`p17EiCl$t9t<~}ovPc?U3_;4cu?2(*YiSzhvf2{h0m>N!E z+7AGLzm#|&kBOYYK?(;2e2SJ;7j*QmK5TS;_dfaim@_Kf5oZ|TD)sY_lmS)+TfOmf z^E8+paNoLi%x&RIxqts`WD2>CLnW$FaMqp5n)MvE+55gj6YR+SzY9oAIBHBNZgiXyU*WqIFfK0RSrAbUSQe)7LG2!?Ld_H`}t6MV{!2OixImVAG3F~wP;?q z&k=kZPM(n2(s*F#giltR*9+45a_QhFV#?c7-SqVZ2r$hE5O0%P=9le_ z`!G|lXuZj4PX8(9e}7No3p^j)jYy#La00ZPO@0J%Zv|=x)*E<^pvNO#`qkLNdr;T_ z_4n@D>`-$4{pPIpz1s4bxa*tQfSHlfjnVhVUkB1|I0G1L?Pk(z>7dF2Xk_@0D64|g zp*`n;Q4_??+X|L%Hu{-d;0M2i9-^7uesXei;tO3hqO?V9{FcV_?#h4bz%|f+0S%@r z^ypvdZ}dig%76AzaNY+eT}7Mpdq!LJKy)KOLF}_}^34}aprqF&|f-nz`*Pt2Emdq4Ho^~?}OnS&mftF(ka zZsHWpYuCLgysPj76aA4xbacS(+d| zNO09fmEXO51m1RUCoDL0(PM}iA*07*N3NKNZ(Xs>vRw+bP24LVz4qmx2a@YD=OgFt z?rvD7U+j>shh?Nnv9nvBqKG{*yvKaivE!;J@x_x*f_T>*^IyHuTJdYM+0KIHVx{_X zyq6EX&h)C<)}YQRIp`a{dO%or`gz{`u3aw|f8T%eGCjRteZ}ubj4DrAI~+m2-zh&} z9PF#=Xtg_W!1RL9sqOZbs22aJoyWzzJUu;iPdTdED(b&ki)=M$oR376{|F(|gGrFR z>!1BzvU*uk^hjb&wCuLoqN+c)ZkzXYEBbu=y#6$KK88B|1Fi2yk}p1yd7Zl?BM4~w zM^k^2C;K?3lP&F?OWF&SsypRe`=8rk&W&;5=w%K*IeF6B;Z5@Aitw`cbkmZ~biD_n zzqLz8DPyA_#?*XGyErY~!%i+3Xt44+w*$qxnmeXP{9#Ys%|qJvr!c#RO$joC>xa~Ci5BYiNw-S}jU5+D5H4$lcLz7$#4C#{ z5z(p`30%&yR4)q-3s)^sV*V8+;^~PYm-0qyTkg$!h6D2FCbm0XKGe5_k&_$Xy`E6v zCnByYP?gcB@)i8;_nXeMG5f(fBqd*7pI(o@TV~*Kra{u`su%32>G>dKzA}=tQ=AJo z4=; z#MZ=HnKj@4A$j)Fw@Up7lGb-0-S%&~bQGL`>T9nqUDjlsGf@nS77O-P+DLdClXw8L zaV^}j&tjIT;*@1*t6>&xmC1(<8kB6K(W~Z(XW%w2GsZOMw?%G4(sTlAS+8!%-8N~R z@2YZg^j>>EZAsDF&&*lXpIhY*H~t8{?-4GsP8O>1i+~>vA>UCA1Tq~XBm!Sh_|jQn zP}hBzeLAY^X5^Q@A8Eq-h>Lwrc8ULk>ge;%WX*c(*+28ecsA0d z8RjDd>`s^y73|%2GxzY>c_?{ax(60T9o0!TKG)D5;k;(5t~yN)+b)mn_ZGR zPa<4Xf#Wl*3AX1mUcl;0ZBu#09Ogw=eKpc=NB-A0<~O{A8=lBt zn4KWYr1vHF+SYTEv*0|cWnV1r+7hFFT(iT{dplD;O~RS?u^0Qhj#uqZY|(Xpo^Rj% z=J3{Pol#T`JXfb2EaYr;8O}r9Mlo;X&Y7*nG2L985HZIxwhoq$luG)G@iVrQWY>o} z%>zQ7$IWex1c-01q8Cq3KZK){%LwGH3mrRo{xg|ZAR0~Tdjba=|J6ciYZrUn@;-0; z82ZL0Zsp-ors$_ECztP3G{0zs_mtsDwXk&=(zCnL`#ih$j0IoKn}jPEu<)H9Q%}Re zSpR5C)TzmF3r1^utmC)Fn=xDj#U`wnN?B{}c}Nv$ui-p>dT16yE#@?Y-@X_kcK|l5cC`TzdKORkK0XqkDGpFYaUaaN)-B(e!}veSMQWPOuj@ z%*}Zk4IX^?#3ab?EA%K`BNpC*9&i&3MUV6MCrL?{5aUj!KC<`|dvB6x{6z=ai;CjR>p1 zbkLzZb^hb~ub;goIv97abeoQOpdIT?FtMRK zWraF8XGd^@!w&Qxxcm5O@(69u;1^?lkf9zvbmYi0*xKUvKmH&s*m-(h*%eK6vsAmc z(SKG5LE0CO^Ecqaf%PmtHaK%Oj}%gdcM|tJ-~R2} zHz(@Ga@NE4b8Z_`28ybxeo0C4a&m{~ZW7ED_e=>LW=D|yGo^v`HYG27^02x2T~#b& z5=X^#F6C0&PWMR?9JWUDx_EB`s&v9ZsxZe*y-nCh9KBu`CW+&d>KBipoeIXiwC!e}t6TF7xtU^^>DEdA2$Z1xVH<$vs!84hv~)=(D#v_51dY za;L8o%NR9F9`LvA-&~%)Y2|=3WbhI%o@_h)+fGISb96t=4uL};vtqG(xv^1oo#c!jl16a8xWe;0f+tq+V^+$v+rA3np#kgtCsXx%OC9rqBPFJ%p??za&)v^ z==&V_!2Ud&f#~kjd+FaF$Sc(~<%z3}8hv`R_7Cyamcp>&M!w%Z^GFbAM#Qe-T8QnM zaO64HrZ>0(E0rykb^@Gg6ff_-sm@I7>f+S<_J>)9*aPd7<#Oz3U8stG^Msw#Om63o z9`npoXU^zw)A-0hBvd#CJOcKrF~+_PON z=idc+yq6NbZcJKhJksm*Fk?W$ZMI_2o@St2-_Ml%_2nMw&mFg#DxPrwu=rftrdrwe z&xzq9Y1Q6}+PCOaRQ0l_E>6FNI)Kxc)ZMAs?BuEb+&OFLEdz^Ru+QPF_viPo@mk#O zQ%5uJ7FJG=?kp&p$m5n|J1Rfnxo_`wq&O#uY|f@eg27ZDL* zWMUHRmnP4R(wb5F#ZcD?)pd2>itML;RCD-WO4oFCS^~HX8}`*;o}kpA5tVuTY?}21 z+vk$5N8nW7=eUAPCR9wf8lOXS>eB#=F7~Z&z-K&3Rl|<1t^Io{tZvh^mj#5mra{+?D;}2H?yd zMAcMHd8BcUp=gco=j02T`USe*=7|c^^j=AQrVNsAYrBY7J|q=B)L&So`V;)UUs(99 zPboqDUZwX@*bT*oG%PPQUoZ4l219v^{r$;fL#*Er%izkc`-X<3@i_nCruVXJ;evDl zj)(VRPOOZclA4>o0VePS%wym9!l7q6l?(tGd=D`7AN~Sx%stCci^^@$lWsFt?z!W~ z4gVj)zB``k{{Q<(A|kT4Y}tELMzV!MRz@kC6NhZFSIEd7A(@BlnRSqnz4yvG$lmwo zgRbxO{oTLEegApU<(&8H{Tk2bYrT2#Y4zfx_&)~@AsoJswCY1^CtUh1upR?=;MB$>ayxbxoHZs#&REf(f@KFUIzKNh zt6`$0YF5}tsN)IpIjvP%hwkWqqoaJmsjLhNj}|BZ#k&cgS=0I}}DMnlCG;(}|p z9Bx=~3j)|a^sUMeff7$a2A~!3YlYK&9s8ecTL6E*$C=!aJoY?0xjws$FnmMA=z+bV z(Y%}G3KfLL@SlT6M)62Trf+YP6Io48w)ZNR%Z_emIZKrNEM2bzzz;r8DG*wkebvJx+yX($aBQ;Wv3Ce7y!+yqc z&L1tO$N>N-r;U<}s76pwa6TtHxp9581nzod|Gm82#kLhtq5HD4g_(0$S|C)R^WD4h zU5^aR36{Dwt3^t=0rs%a6-KsG{xcCgZ=A*SFO2<^D*AD=M$)+xt>>d3q{ld7TSdNX zNI5^lhoq(pp_b?RZ;tUza2>s8a`e0hE+q<-WoR_=dtWl5lCu{Lj1bU z^S7PJ-ZT$!Zn{h#N58w6rwslGoVhKs1<{sDy%xoIV^LI`#LUJ@WkVvcd4;SnK=u?@qQ^z`tj3 zm@RbP_9YM-JQ|B=Jica~kRmu&SEh4ld0K-|veVkoHpPbRW>_T>_|;hkG3&yil92Qz zmj1aS^>urHpll9+)x3?~Tg}Cl N&k>}u-sgvo9R3{8gu+hGQl`M7w9CqulSQv0} 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

    QzVm6*ttEq`OoqV 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%0Af8B^h~DX3qb<^DG3dMMu@rVWHm!KboUz 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�I|38NF!HG?wa@-|Ru! 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⁣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%0A}qq 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

    d+(?yllE;8 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%0A)iOBtms#lV8yOkJuY6Gd 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 BtAPLj literal 0 HcmV?d00001 diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/L1METML_v1_bridge.cpp b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/L1METML_v1_bridge.cpp new file mode 100644 index 00000000..ed18b460 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/L1METML_v1_bridge.cpp @@ -0,0 +1,104 @@ +#ifndef L1METML_V1_BRIDGE_H_ +#define L1METML_V1_BRIDGE_H_ + +#include "firmware/L1METML_v1.h" +#include "firmware/nnet_utils/nnet_helpers.h" +#include +#include + +// hls-fpga-machine-learning insert bram + +namespace nnet { +bool trace_enabled = false; +std::map *trace_outputs = NULL; +size_t trace_type_size = sizeof(double); +} // namespace nnet + +extern "C" { + +struct trace_data { + const char *name; + void *data; +}; + +void allocate_trace_storage(size_t element_size) { + nnet::trace_enabled = true; + nnet::trace_outputs = new std::map; + nnet::trace_type_size = element_size; + nnet::trace_outputs->insert(std::pair("embedding0", (void *) malloc(N_LAYER_1_3*N_LAYER_2_3 * element_size))); + nnet::trace_outputs->insert(std::pair("embedding1", (void *) malloc(N_LAYER_1_4*N_LAYER_2_4 * element_size))); + nnet::trace_outputs->insert(std::pair("concatenate", (void *) malloc(OUT_CONCAT_0_6*OUT_CONCAT_1_6 * element_size))); + nnet::trace_outputs->insert(std::pair("concatenate_1", (void *) malloc(OUT_CONCAT_0_7*OUT_CONCAT_1_7 * element_size))); + nnet::trace_outputs->insert(std::pair("dense", (void *) malloc(N_OUTPUTS_22*N_FILT_22 * element_size))); + nnet::trace_outputs->insert(std::pair("activation", (void *) malloc(N_LAYER_1_8*N_LAYER_2_8 * element_size))); + nnet::trace_outputs->insert(std::pair("dense_1", (void *) malloc(N_OUTPUTS_23*N_FILT_23 * element_size))); + nnet::trace_outputs->insert(std::pair("activation_1", (void *) malloc(N_LAYER_1_12*N_LAYER_2_12 * element_size))); + nnet::trace_outputs->insert(std::pair("met_weight", (void *) malloc(N_OUTPUTS_24*N_FILT_24 * element_size))); + nnet::trace_outputs->insert(std::pair("multiply", (void *) malloc(N_INPUT_1_19*N_INPUT_2_19 * element_size))); + nnet::trace_outputs->insert(std::pair("output", (void *) malloc(N_FILT_21 * element_size))); +} + +void free_trace_storage() { + for (std::map::iterator i = nnet::trace_outputs->begin(); i != nnet::trace_outputs->end(); i++) { + void *ptr = i->second; + free(ptr); + } + nnet::trace_outputs->clear(); + delete nnet::trace_outputs; + nnet::trace_outputs = NULL; + nnet::trace_enabled = false; +} + +void collect_trace_output(struct trace_data *c_trace_outputs) { + int ii = 0; + for (std::map::iterator i = nnet::trace_outputs->begin(); i != nnet::trace_outputs->end(); i++) { + c_trace_outputs[ii].name = i->first.c_str(); + c_trace_outputs[ii].data = i->second; + ii++; + } +} + +// Wrapper of top level function for Python bridge +void L1METML_v1_float( + float input_cont[N_INPUT_1_5*N_INPUT_2_5], float input_pxpy[N_INPUT_1_19*N_INPUT_2_19], float input_cat0[N_INPUT_1_1], float input_cat1[N_INPUT_1_2], + float layer21_out[N_FILT_21] +) { + + input5_t input_cont_ap[N_INPUT_1_5*N_INPUT_2_5]; + nnet::convert_data(input_cont, input_cont_ap); + input19_t input_pxpy_ap[N_INPUT_1_19*N_INPUT_2_19]; + nnet::convert_data(input_pxpy, input_pxpy_ap); + input_t input_cat0_ap[N_INPUT_1_1]; + nnet::convert_data(input_cat0, input_cat0_ap); + input2_t input_cat1_ap[N_INPUT_1_2]; + nnet::convert_data(input_cat1, input_cat1_ap); + + result_t layer21_out_ap[N_FILT_21]; + + L1METML_v1(input_cont_ap,input_pxpy_ap,input_cat0_ap,input_cat1_ap,layer21_out_ap); + + nnet::convert_data(layer21_out_ap, layer21_out); +} + +void L1METML_v1_double( + double input_cont[N_INPUT_1_5*N_INPUT_2_5], double input_pxpy[N_INPUT_1_19*N_INPUT_2_19], double input_cat0[N_INPUT_1_1], double input_cat1[N_INPUT_1_2], + double layer21_out[N_FILT_21] +) { + input5_t input_cont_ap[N_INPUT_1_5*N_INPUT_2_5]; + nnet::convert_data(input_cont, input_cont_ap); + input19_t input_pxpy_ap[N_INPUT_1_19*N_INPUT_2_19]; + nnet::convert_data(input_pxpy, input_pxpy_ap); + input_t input_cat0_ap[N_INPUT_1_1]; + nnet::convert_data(input_cat0, input_cat0_ap); + input2_t input_cat1_ap[N_INPUT_1_2]; + nnet::convert_data(input_cat1, input_cat1_ap); + + result_t layer21_out_ap[N_FILT_21]; + + L1METML_v1(input_cont_ap,input_pxpy_ap,input_cat0_ap,input_cat1_ap,layer21_out_ap); + + nnet::convert_data(layer21_out_ap, layer21_out); +} +} + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/L1METML_v1_test.cpp b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/L1METML_v1_test.cpp new file mode 100644 index 00000000..1c452f68 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/L1METML_v1_test.cpp @@ -0,0 +1,120 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#include "firmware/L1METML_v1.h" +#include "firmware/nnet_utils/nnet_helpers.h" + +// hls-fpga-machine-learning insert bram + +#define CHECKPOINT 5000 + +namespace nnet { +bool trace_enabled = true; +std::map *trace_outputs = NULL; +size_t trace_type_size = sizeof(double); +} // namespace nnet + +int main(int argc, char **argv) { + // load input data from text file + std::ifstream fin("tb_data/tb_input_features.dat"); + // load predictions from text file + std::ifstream fpr("tb_data/tb_output_predictions.dat"); + +#ifdef RTL_SIM + std::string RESULTS_LOG = "tb_data/rtl_cosim_results.log"; +#else + std::string RESULTS_LOG = "tb_data/csim_results.log"; +#endif + std::ofstream fout(RESULTS_LOG); + + std::string iline; + std::string pline; + int e = 0; + + if (fin.is_open() && fpr.is_open()) { + while (std::getline(fin, iline) && std::getline(fpr, pline)) { + if (e % CHECKPOINT == 0) + std::cout << "Processing input " << e << std::endl; + char *cstr = const_cast(iline.c_str()); + char *current; + std::vector in; + current = strtok(cstr, " "); + while (current != NULL) { + in.push_back(atof(current)); + current = strtok(NULL, " "); + } + cstr = const_cast(pline.c_str()); + std::vector pr; + current = strtok(cstr, " "); + while (current != NULL) { + pr.push_back(atof(current)); + current = strtok(NULL, " "); + } + + // hls-fpga-machine-learning insert data + input5_t input_cont[N_INPUT_1_5*N_INPUT_2_5]; + nnet::copy_data(in, input_cont); + input19_t input_pxpy[N_INPUT_1_19*N_INPUT_2_19]; + nnet::copy_data(in, input_pxpy); + input_t input_cat0[N_INPUT_1_1]; + nnet::copy_data(in, input_cat0); + input2_t input_cat1[N_INPUT_1_2]; + nnet::copy_data(in, input_cat1); + result_t layer21_out[N_FILT_21]; + + // hls-fpga-machine-learning insert top-level-function + L1METML_v1(input_cont,input_pxpy,input_cat0,input_cat1,layer21_out); + + if (e % CHECKPOINT == 0) { + std::cout << "Predictions" << std::endl; + // hls-fpga-machine-learning insert predictions + for(int i = 0; i < N_FILT_21; i++) { + std::cout << pr[i] << " "; + } + std::cout << std::endl; + std::cout << "Quantized predictions" << std::endl; + // hls-fpga-machine-learning insert quantized + nnet::print_result(layer21_out, std::cout, true); + } + e++; + + // hls-fpga-machine-learning insert tb-output + nnet::print_result(layer21_out, fout); + } + fin.close(); + fpr.close(); + } else { + std::cout << "INFO: Unable to open input/predictions file, using default input." << std::endl; + + // hls-fpga-machine-learning insert zero + input5_t input_cont[N_INPUT_1_5*N_INPUT_2_5]; + nnet::fill_zero(input_cont); + input19_t input_pxpy[N_INPUT_1_19*N_INPUT_2_19]; + nnet::fill_zero(input_pxpy); + input_t input_cat0[N_INPUT_1_1]; + nnet::fill_zero(input_cat0); + input2_t input_cat1[N_INPUT_1_2]; + nnet::fill_zero(input_cat1); + result_t layer21_out[N_FILT_21]; + + // hls-fpga-machine-learning insert top-level-function + L1METML_v1(input_cont,input_pxpy,input_cat0,input_cat1,layer21_out); + + // hls-fpga-machine-learning insert output + nnet::print_result(layer21_out, std::cout, true); + + // hls-fpga-machine-learning insert tb-output + nnet::print_result(layer21_out, fout); + } + + fout.close(); + std::cout << "INFO: Saved inference results to file: " << RESULTS_LOG << std::endl; + + return 0; +} diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/build_lib.sh b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/build_lib.sh new file mode 100644 index 00000000..d60a2dd3 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/build_lib.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +CC=g++ +if [[ "$OSTYPE" == "linux-gnu" ]]; then + CFLAGS="-O3 -fPIC -std=c++11 -fno-gnu-unique" +elif [[ "$OSTYPE" == "darwin"* ]]; then + CFLAGS="-O3 -fPIC -std=c++11" +fi +LDFLAGS= +INCFLAGS="-Ifirmware/ap_types/" +PROJECT=L1METML_v1 +LIB_STAMP=95715E3e + +${CC} ${CFLAGS} ${INCFLAGS} -c firmware/${PROJECT}.cpp -o ${PROJECT}.o +${CC} ${CFLAGS} ${INCFLAGS} -c ${PROJECT}_bridge.cpp -o ${PROJECT}_bridge.o +${CC} ${CFLAGS} ${INCFLAGS} -shared ${PROJECT}.o ${PROJECT}_bridge.o -o firmware/${PROJECT}-${LIB_STAMP}.so +rm -f *.o diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/build_prj.tcl b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/build_prj.tcl new file mode 100644 index 00000000..82b3c5a6 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/build_prj.tcl @@ -0,0 +1,250 @@ +################# +# HLS4ML +################# +array set opt { + reset 0 + csim 1 + synth 1 + cosim 1 + validation 1 + export 0 + vsynth 0 + fifo_opt 0 +} + +set tcldir [file dirname [info script]] +source [file join $tcldir project.tcl] + +proc remove_recursive_log_wave {} { + set tcldir [file dirname [info script]] + source [file join $tcldir project.tcl] + + set filename ${project_name}_prj/solution1/sim/verilog/${project_name}.tcl + set timestamp [clock format [clock seconds] -format {%Y%m%d%H%M%S}] + set temp $filename.new.$timestamp + # set backup $filename.bak.$timestamp + + set in [open $filename r] + set out [open $temp w] + + # line-by-line, read the original file + while {[gets $in line] != -1} { + if {[string equal "$line" "log_wave -r /"]} { + set line { } + } + puts $out $line + } + + close $in + close $out + + # move the new data to the proper filename + file delete -force $filename + file rename -force $temp $filename +} + +proc add_vcd_instructions_tcl {} { + set tcldir [file dirname [info script]] + source [file join $tcldir project.tcl] + + set filename ${project_name}_prj/solution1/sim/verilog/${project_name}.tcl + set timestamp [clock format [clock seconds] -format {%Y%m%d%H%M%S}] + set temp $filename.new.$timestamp + # set backup $filename.bak.$timestamp + + set in [open $filename r] + set out [open $temp w] + + # line-by-line, read the original file + while {[gets $in line] != -1} { + if {[string equal "$line" "log_wave -r /"]} { + set line {source "../../../../project.tcl" + if {[string equal "$backend" "vivadoaccelerator"]} { + current_scope [get_scopes -regex "/apatb_${project_name}_axi_top/AESL_inst_${project_name}_axi/${project_name}_U0.*"] + set scopes [get_scopes -regexp {layer(\d*)_.*data_0_V_U.*}] + append scopes { } + current_scope "/apatb_${project_name}_axi_top/AESL_inst_${project_name}_axi" + append scopes [get_scopes -regexp {(in_local_V_data.*_0_.*)}] + append scopes { } + append scopes [get_scopes -regexp {(out_local_V_data.*_0_.*)}] + } else { + current_scope [get_scopes -regex "/apatb_${project_name}_top/AESL_inst_${project_name}"] + set scopes [get_scopes -regexp {layer(\d*)_.*data_0_V_U.*}] + } + open_vcd fifo_opt.vcd + foreach scope $scopes { + current_scope $scope + if {[catch [get_objects usedw]] == 0} { + puts "$scope skipped" + continue + } + set usedw [get_objects usedw] + set depth [get_objects DEPTH] + add_wave $usedw + log_vcd $usedw + log_wave $usedw + add_wave $depth + log_vcd $depth + log_wave $depth + } + } + } + + if {[string equal "$line" "quit"]} { + set line {flush_vcd + close_vcd + quit + } + } + # then write the transformed line + puts $out $line + } + + close $in + close $out + + # move the new data to the proper filename + file delete -force $filename + file rename -force $temp $filename +} + +foreach arg $::argv { + foreach o [lsort [array names opt]] { + regexp "$o=+(\\w+)" $arg unused opt($o) + } +} + +proc report_time { op_name time_start time_end } { + set time_taken [expr $time_end - $time_start] + set time_s [expr ($time_taken / 1000) % 60] + set time_m [expr ($time_taken / (1000*60)) % 60] + set time_h [expr ($time_taken / (1000*60*60)) % 24] + puts "***** ${op_name} COMPLETED IN ${time_h}h${time_m}m${time_s}s *****" +} + +# Compare file content: 1 = same, 0 = different +proc compare_files {file_1 file_2} { + # Check if files exist, error otherwise + if {! ([file exists $file_1] && [file exists $file_2])} { + return 0 + } + # Files with different sizes are obviously different + if {[file size $file_1] != [file size $file_2]} { + return 0 + } + + # String compare the content of the files + set fh_1 [open $file_1 r] + set fh_2 [open $file_2 r] + set equal [string equal [read $fh_1] [read $fh_2]] + close $fh_1 + close $fh_2 + return $equal +} + +file mkdir tb_data +set CSIM_RESULTS "./tb_data/csim_results.log" +set RTL_COSIM_RESULTS "./tb_data/rtl_cosim_results.log" + +if {$opt(reset)} { + open_project -reset ${project_name}_prj +} else { + open_project ${project_name}_prj +} +set_top ${project_name} +add_files firmware/${project_name}.cpp -cflags "-std=c++0x" +add_files -tb ${project_name}_test.cpp -cflags "-std=c++0x" +add_files -tb firmware/weights +add_files -tb tb_data +if {$opt(reset)} { + open_solution -reset "solution1" +} else { + open_solution "solution1" +} +catch {config_array_partition -maximum_size 8192} +config_compile -name_max_length 80 +set_part $part +config_schedule -enable_dsp_full_reg=false +create_clock -period $clock_period -name default +set_clock_uncertainty $clock_uncertainty default + + +if {$opt(csim)} { + puts "***** C SIMULATION *****" + set time_start [clock clicks -milliseconds] + csim_design + set time_end [clock clicks -milliseconds] + report_time "C SIMULATION" $time_start $time_end +} + +if {$opt(synth)} { + puts "***** C/RTL SYNTHESIS *****" + set time_start [clock clicks -milliseconds] + csynth_design + set time_end [clock clicks -milliseconds] + report_time "C/RTL SYNTHESIS" $time_start $time_end +} + +if {$opt(cosim)} { + puts "***** C/RTL SIMULATION *****" + # TODO: This is a workaround (Xilinx defines __RTL_SIMULATION__ only for SystemC testbenches). + add_files -tb ${project_name}_test.cpp -cflags "-std=c++0x -DRTL_SIM" + set time_start [clock clicks -milliseconds] + + cosim_design -trace_level all -setup + + if {$opt(fifo_opt)} { + puts "\[hls4ml\] - FIFO optimization started" + add_vcd_instructions_tcl + } + + remove_recursive_log_wave + set old_pwd [pwd] + cd ${project_name}_prj/solution1/sim/verilog/ + source run_sim.tcl + cd $old_pwd + + set time_end [clock clicks -milliseconds] + puts "INFO:" + if {[string equal "$backend" "vivadoaccelerator"]} { + puts [read [open ${project_name}_prj/solution1/sim/report/${project_name}_axi_cosim.rpt r]] + } else { + puts [read [open ${project_name}_prj/solution1/sim/report/${project_name}_cosim.rpt r]] + } + report_time "C/RTL SIMULATION" $time_start $time_end +} + +if {$opt(validation)} { + puts "***** C/RTL VALIDATION *****" + if {[compare_files $CSIM_RESULTS $RTL_COSIM_RESULTS]} { + puts "INFO: Test PASSED" + } else { + puts "ERROR: Test failed" + puts "ERROR: - csim log: $CSIM_RESULTS" + puts "ERROR: - RTL-cosim log: $RTL_COSIM_RESULTS" + exit 1 + } +} + +if {$opt(export)} { + puts "***** EXPORT IP *****" + set time_start [clock clicks -milliseconds] + export_design -format ip_catalog -version $version + set time_end [clock clicks -milliseconds] + report_time "EXPORT IP" $time_start $time_end +} + +if {$opt(vsynth)} { + puts "***** VIVADO SYNTHESIS *****" + if {[file exist ${project_name}_prj/solution1/syn/vhdl]} { + set time_start [clock clicks -milliseconds] + exec vivado -mode batch -source vivado_synth.tcl >@ stdout + set time_end [clock clicks -milliseconds] + report_time "VIVADO SYNTHESIS" $time_start $time_end + } else { + puts "ERROR: Cannot find generated VHDL files. Did you run C synthesis?" + exit 1 + } +} + +exit diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-2Bd4CD9f.so b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-2Bd4CD9f.so new file mode 100755 index 0000000000000000000000000000000000000000..2a7b45ec5e697a50028e25ddf14c38be37c290b9 GIT binary patch literal 228448 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 A@&Et; literal 0 HcmV?d00001 diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-87B65ff2.so b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-87B65ff2.so new file mode 100755 index 0000000000000000000000000000000000000000..2a7b45ec5e697a50028e25ddf14c38be37c290b9 GIT binary patch literal 228448 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 A@&Et; literal 0 HcmV?d00001 diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-8aEF503a.so b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-8aEF503a.so new file mode 100755 index 0000000000000000000000000000000000000000..2a7b45ec5e697a50028e25ddf14c38be37c290b9 GIT binary patch literal 228448 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 A@&Et; literal 0 HcmV?d00001 diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-95715E3e.so b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-95715E3e.so new file mode 100755 index 0000000000000000000000000000000000000000..7b00d3fa4450f43136bfd5cde99e964619963f75 GIT binary patch literal 244744 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%0DoQcx9Rx}%V-?) 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 literal 0 HcmV?d00001 diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-B1BDE0dd.so b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-B1BDE0dd.so new file mode 100755 index 0000000000000000000000000000000000000000..2a7b45ec5e697a50028e25ddf14c38be37c290b9 GIT binary patch literal 228448 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 A@&Et; literal 0 HcmV?d00001 diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-CEB54420.so b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-CEB54420.so new file mode 100755 index 0000000000000000000000000000000000000000..2a7b45ec5e697a50028e25ddf14c38be37c290b9 GIT binary patch literal 228448 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 A@&Et; literal 0 HcmV?d00001 diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-F1DF32D7.so b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-F1DF32D7.so new file mode 100755 index 0000000000000000000000000000000000000000..2a7b45ec5e697a50028e25ddf14c38be37c290b9 GIT binary patch literal 228448 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 A@&Et; literal 0 HcmV?d00001 diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-dDAfeD3b.so b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-dDAfeD3b.so new file mode 100755 index 0000000000000000000000000000000000000000..2a7b45ec5e697a50028e25ddf14c38be37c290b9 GIT binary patch literal 228448 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 A@&Et; literal 0 HcmV?d00001 diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-ecB7D1bC.so b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1-ecB7D1bC.so new file mode 100755 index 0000000000000000000000000000000000000000..2a7b45ec5e697a50028e25ddf14c38be37c290b9 GIT binary patch literal 228448 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 A@&Et; literal 0 HcmV?d00001 diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1.cpp b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1.cpp new file mode 100644 index 00000000..18ef7438 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1.cpp @@ -0,0 +1,117 @@ +#include + +#include "L1METML_v1.h" +#include "parameters.h" + +void L1METML_v1( + input5_t input_cont[N_INPUT_1_5*N_INPUT_2_5], input19_t input_pxpy[N_INPUT_1_19*N_INPUT_2_19], input_t input_cat0[N_INPUT_1_1], input2_t input_cat1[N_INPUT_1_2], + result_t layer21_out[N_FILT_21] +) { + + // hls-fpga-machine-learning insert IO + #pragma HLS ARRAY_RESHAPE variable=input_cont complete dim=0 + #pragma HLS ARRAY_RESHAPE variable=input_pxpy complete dim=0 + #pragma HLS ARRAY_RESHAPE variable=input_cat0 complete dim=0 + #pragma HLS ARRAY_RESHAPE variable=input_cat1 complete dim=0 + #pragma HLS ARRAY_PARTITION variable=layer21_out complete dim=0 + #pragma HLS INTERFACE ap_vld port=input_cont,input_pxpy,input_cat0,input_cat1,layer21_out + #pragma HLS DATAFLOW + +#ifndef __SYNTHESIS__ + static bool loaded_weights = false; + if (!loaded_weights) { + // hls-fpga-machine-learning insert load weights + nnet::load_weights_from_txt(e3, "e3.txt"); + nnet::load_weights_from_txt(e4, "e4.txt"); + nnet::load_weights_from_txt(w22, "w22.txt"); + nnet::load_weights_from_txt(b22, "b22.txt"); + nnet::load_weights_from_txt(w23, "w23.txt"); + nnet::load_weights_from_txt(b23, "b23.txt"); + nnet::load_weights_from_txt(w24, "w24.txt"); + nnet::load_weights_from_txt(b24, "b24.txt"); + loaded_weights = true; + } +#endif + + // **************************************** + // NETWORK INSTANTIATION + // **************************************** + + // hls-fpga-machine-learning insert layers + + layer3_t layer3_out[N_LAYER_1_3*N_LAYER_2_3]; + #pragma HLS ARRAY_PARTITION variable=layer3_out complete dim=0 + nnet::embedding(input_cat0, layer3_out, e3); // embedding0 +#ifndef __SYNTHESIS__ + nnet::save_layer_output(layer3_out, "embedding0", N_LAYER_1_3*N_LAYER_2_3); +#endif + + layer4_t layer4_out[N_LAYER_1_4*N_LAYER_2_4]; + #pragma HLS ARRAY_PARTITION variable=layer4_out complete dim=0 + nnet::embedding(input_cat1, layer4_out, e4); // embedding1 +#ifndef __SYNTHESIS__ + nnet::save_layer_output(layer4_out, "embedding1", N_LAYER_1_4*N_LAYER_2_4); +#endif + + layer6_t layer6_out[OUT_CONCAT_0_6*OUT_CONCAT_1_6]; + #pragma HLS ARRAY_PARTITION variable=layer6_out complete dim=0 + nnet::concatenate2d(layer3_out, layer4_out, layer6_out); // concatenate +#ifndef __SYNTHESIS__ + nnet::save_layer_output(layer6_out, "concatenate", OUT_CONCAT_0_6*OUT_CONCAT_1_6); +#endif + + layer7_t layer7_out[OUT_CONCAT_0_7*OUT_CONCAT_1_7]; + #pragma HLS ARRAY_PARTITION variable=layer7_out complete dim=0 + nnet::concatenate2d(input_cont, layer6_out, layer7_out); // concatenate_1 +#ifndef __SYNTHESIS__ + nnet::save_layer_output(layer7_out, "concatenate_1", OUT_CONCAT_0_7*OUT_CONCAT_1_7); +#endif + + layer22_t layer22_out[N_OUTPUTS_22*N_FILT_22]; + #pragma HLS ARRAY_PARTITION variable=layer22_out complete dim=0 + nnet::pointwise_conv_1d_cl(layer7_out, layer22_out, w22, b22); // dense +#ifndef __SYNTHESIS__ + nnet::save_layer_output(layer22_out, "dense", N_OUTPUTS_22*N_FILT_22); +#endif + + layer11_t layer11_out[N_LAYER_1_8*N_LAYER_2_8]; + #pragma HLS ARRAY_PARTITION variable=layer11_out complete dim=0 + nnet::tanh(layer22_out, layer11_out); // activation +#ifndef __SYNTHESIS__ + nnet::save_layer_output(layer11_out, "activation", N_LAYER_1_8*N_LAYER_2_8); +#endif + + layer23_t layer23_out[N_OUTPUTS_23*N_FILT_23]; + #pragma HLS ARRAY_PARTITION variable=layer23_out complete dim=0 + nnet::pointwise_conv_1d_cl(layer11_out, layer23_out, w23, b23); // dense_1 +#ifndef __SYNTHESIS__ + nnet::save_layer_output(layer23_out, "dense_1", N_OUTPUTS_23*N_FILT_23); +#endif + + layer15_t layer15_out[N_LAYER_1_12*N_LAYER_2_12]; + #pragma HLS ARRAY_PARTITION variable=layer15_out complete dim=0 + nnet::tanh(layer23_out, layer15_out); // activation_1 +#ifndef __SYNTHESIS__ + nnet::save_layer_output(layer15_out, "activation_1", N_LAYER_1_12*N_LAYER_2_12); +#endif + + layer24_t layer24_out[N_OUTPUTS_24*N_FILT_24]; + #pragma HLS ARRAY_PARTITION variable=layer24_out complete dim=0 + nnet::pointwise_conv_1d_cl(layer15_out, layer24_out, w24, b24); // met_weight +#ifndef __SYNTHESIS__ + nnet::save_layer_output(layer24_out, "met_weight", N_OUTPUTS_24*N_FILT_24); +#endif + + layer20_t layer20_out[N_INPUT_1_19*N_INPUT_2_19]; + #pragma HLS ARRAY_PARTITION variable=layer20_out complete dim=0 + nnet::multiply(layer24_out, input_pxpy, layer20_out); // multiply +#ifndef __SYNTHESIS__ + nnet::save_layer_output(layer20_out, "multiply", N_INPUT_1_19*N_INPUT_2_19); +#endif + + nnet::global_pooling1d_cl(layer20_out, layer21_out); // output +#ifndef __SYNTHESIS__ + nnet::save_layer_output(layer21_out, "output", N_FILT_21); +#endif + +} diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1.h new file mode 100644 index 00000000..69dd92ca --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/L1METML_v1.h @@ -0,0 +1,16 @@ +#ifndef L1METML_V1_H_ +#define L1METML_V1_H_ + +#include "ap_fixed.h" +#include "ap_int.h" +#include "hls_stream.h" + +#include "defines.h" + +// Prototype of top level function for C-synthesis +void L1METML_v1( + input5_t input_cont[N_INPUT_1_5*N_INPUT_2_5], input19_t input_pxpy[N_INPUT_1_19*N_INPUT_2_19], input_t input_cat0[N_INPUT_1_1], input2_t input_cat1[N_INPUT_1_2], + result_t layer21_out[N_FILT_21] +); + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_common.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_common.h new file mode 100644 index 00000000..4d2886cb --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_common.h @@ -0,0 +1,376 @@ +/* + * Copyright 2011-2019 Xilinx, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __AP_COMMON_H__ +#define __AP_COMMON_H__ + +// ---------------------------------------------------------------------- + +// Forward declaration of all AP types. +#include + + +#ifdef __SYNTHESIS__ +#error "The open-source version of AP types does not support synthesis." +#endif // ifdef __SYNTHESIS__ +#define _AP_ENABLE_HALF_ 0 + + +#if _AP_ENABLE_HALF_ == 1 +// Before ap_private definition. +#ifdef __SYNTHESIS__ +#define _HLS_HALF_DEFINED_ +typedef __fp16 half; +#else +class half; +#endif // __SYNTHESIS__ +#endif // _AP_ENABLE_HALF_ + +// ---------------------------------------------------------------------- + +// Macro functions +#define AP_MAX(a, b) ((a) > (b) ? (a) : (b)) +#define AP_MIN(a, b) ((a) < (b) ? (a) : (b)) +#define AP_ABS(a) ((a) >= 0 ? (a) : -(a)) + +#ifndef AP_ASSERT +#ifndef __SYNTHESIS__ +#include +#define AP_ASSERT(cond, msg) assert((cond) && (msg)) +#else +#define AP_ASSERT(cond, msg) +#endif // ifndef __SYNTHESIS__ +#endif // ifndef AP_ASSERT + +#ifndef __SYNTHESIS__ +// for fprintf messages. +#include +// for exit on error. +#include +#endif + +// same disable condition as assert. +#if !defined(__SYNTHESIS__) && !defined(NDEBUG) + +#define _AP_DEBUG(cond, ...) \ + do { \ + if ((cond)) { \ + fprintf(stderr, "DEBUG: " __VA_ARGS__); \ + fprintf(stderr, "\n"); \ + } \ + } while (0) +#define _AP_WARNING(cond, ...) \ + do { \ + if ((cond)) { \ + fprintf(stderr, "WARNING: " __VA_ARGS__); \ + fprintf(stderr, "\n"); \ + } \ + } while (0) +#define _AP_ERROR(cond, ...) \ + do { \ + if ((cond)) { \ + fprintf(stderr, "ERROR: " __VA_ARGS__); \ + fprintf(stderr, "\n"); \ + abort(); \ + } \ + } while (0) + +#else // if !defined(__SYNTHESIS__) && !defined(NDEBUG) + +#define __AP_VOID_CAST static_cast +#define _AP_DEBUG(cond, ...) (__AP_VOID_CAST(0)) +#define _AP_WARNING(cond, ...) (__AP_VOID_CAST(0)) +#define _AP_ERROR(cond, ...) (__AP_VOID_CAST(0)) + +#endif // if !defined(__SYNTHESIS__) && !defined(NDEBUG) else + +// ---------------------------------------------------------------------- + +// Attribute only for synthesis +#ifdef __SYNTHESIS__ +#define INLINE inline __attribute__((always_inline)) +//#define INLINE inline __attribute__((noinline)) +#else +#define INLINE inline +#endif + +#define AP_WEAK +// __attribute__((weak)) + +#ifndef AP_INT_MAX_W +#define AP_INT_MAX_W 1024 +#endif + +#define BIT_WIDTH_UPPER_LIMIT (1 << 15) +#if AP_INT_MAX_W > BIT_WIDTH_UPPER_LIMIT +#error "Bitwidth exceeds 32768 (1 << 15), the maximum allowed value" +#endif + +#define MAX_MODE(BITS) ((BITS + 1023) / 1024) + +// ---------------------------------------------------------------------- + +// XXX apcc cannot handle global std::ios_base::Init() brought in by +#ifndef AP_AUTOCC +#ifndef __SYNTHESIS__ +// for overload operator<< +#include +#endif +#endif // ifndef AP_AUTOCC + +#ifndef __SYNTHESIS__ +// for string format. +#include +// for string. +#include +#endif + +// for detecting if char is signed. +enum { CHAR_IS_SIGNED = (char)-1 < 0 }; + +// TODO we have similar traits in x_hls_utils.h, should consider unify. +namespace _ap_type { +template +struct is_signed { + static const bool value = _Tp(-1) < _Tp(1); +}; + +template +struct is_integral { + static const bool value = false; +}; +#define DEF_IS_INTEGRAL(CTYPE) \ + template <> \ + struct is_integral { \ + static const bool value = true; \ + }; +DEF_IS_INTEGRAL(bool) +DEF_IS_INTEGRAL(char) +DEF_IS_INTEGRAL(signed char) +DEF_IS_INTEGRAL(unsigned char) +DEF_IS_INTEGRAL(short) +DEF_IS_INTEGRAL(unsigned short) +DEF_IS_INTEGRAL(int) +DEF_IS_INTEGRAL(unsigned int) +DEF_IS_INTEGRAL(long) +DEF_IS_INTEGRAL(unsigned long) +DEF_IS_INTEGRAL(ap_slong) +DEF_IS_INTEGRAL(ap_ulong) +#undef DEF_IS_INTEGRAL + +template +struct enable_if {}; +// partial specialization for true +template +struct enable_if { + typedef _Tp type; +}; + +template +struct remove_const { + typedef _Tp type; +}; + +template +struct remove_const<_Tp const> { + typedef _Tp type; +}; +} // namespace _ap_type + +// ---------------------------------------------------------------------- + +// Define ssdm_int and _ssdm_op. +// XXX deleted in open-source version + +#ifndef NON_C99STRING +#define _AP_C99 true +#else +#define _AP_C99 false +#endif + +static inline unsigned char guess_radix(const char* s) { + unsigned char rd = 10; ///< default radix + const char* p = s; + // skip neg sign if it exists + if (p[0] == '-' || p[0] == '+') ++p; + // guess based on following two bits. + if (p[0] == '0') { + if (p[1] == 'b' || p[1] == 'B') { + rd = 2; + } else if (p[1] == 'o' || p[1] == 'O') { + rd = 8; + } else if (p[1] == 'x' || p[1] == 'X') { + rd = 16; + } else if (p[1] == 'd' || p[1] == 'D') { + rd = 10; + } + } + return rd; +} + +// ---------------------------------------------------------------------- + +// Basic integral struct upon which ap_int and ap_fixed are defined. +#ifdef __SYNTHESIS__ +// Use ssdm_int, a compiler dependent, attribute constrained integeral type as +// basic data type. +#define _AP_ROOT_TYPE ssdm_int +// Basic ops. +#define _AP_ROOT_op_concat(Ret, X, Y) _ssdm_op_concat(Ret, X, Y) +#define _AP_ROOT_op_get_bit(Val, Bit) _ssdm_op_get_bit(Val, Bit) +#define _AP_ROOT_op_set_bit(Val, Bit, Repl) _ssdm_op_set_bit(Val, Bit, Repl) +#define _AP_ROOT_op_get_range(Val, Lo, Hi) _ssdm_op_get_range(Val, Lo, Hi) +#define _AP_ROOT_op_set_range(Val, Lo, Hi, Repl) \ + _ssdm_op_set_range(Val, Lo, Hi, Repl) +#define _AP_ROOT_op_reduce(Op, Val) _ssdm_op_reduce(Op, Val) +#else // ifdef __SYNTHESIS__ +// Use ap_private for compiler-independent basic data type +template +class ap_private; +/// model ssdm_int in standard C++ for simulation. +template +struct ssdm_int_sim { + /// integral type with template-specified width and signedness. + ap_private<_AP_W, _AP_S> V; + ssdm_int_sim() {} +}; +#define _AP_ROOT_TYPE ssdm_int_sim +// private's ref uses _AP_ROOT_TYPE. +#include +// XXX The C-sim model cannot use GCC-extension +// Basic ops. Ret and Val are ap_private. +template +inline _Tp1 _AP_ROOT_op_concat(const _Tp1& Ret, const _Tp2& X, const _Tp3& Y) { + _Tp1 r = (X).operator,(Y); + return r; +} +#define _AP_ROOT_op_get_bit(Val, Bit) (Val).get_bit((Bit)) +template +inline _Tp1& _AP_ROOT_op_set_bit(_Tp1& Val, const _Tp2& Bit, const _Tp3& Repl) { + (Val).set_bit((Bit), (Repl)); + return Val; +} +// notice the order of high and low index is different in ssdm call and +// ap_private.range()... +#define _AP_ROOT_op_get_range(Val, Lo, Hi) (Val).range((Hi), (Lo)) +template +inline _Tp1& _AP_ROOT_op_set_range(_Tp1& Val, const _Tp2& Lo, const _Tp3& Hi, + const _Tp4& Repl) { + (Val).range((Hi), (Lo)) = Repl; + return (Val); +} +#define _AP_ROOT_op_and_reduce(Val) (Val).and_reduce() +#define _AP_ROOT_op_nand_reduce(Val) (Val).nand_reduce() +#define _AP_ROOT_op_or_reduce(Val) (Val).or_reduce() +#define _AP_ROOT_op_xor_reduce(Val) (Val).xor_reduce() +// ## is the concatenation in preprocessor: +#define _AP_ROOT_op_reduce(Op, Val) _AP_ROOT_op_##Op##_reduce(Val) +#endif // ifdef __SYNTHESIS__ else + +// ---------------------------------------------------------------------- + +// Constants for half, single, double pricision floating points +#define HALF_MAN 10 +#define FLOAT_MAN 23 +#define DOUBLE_MAN 52 + +#define HALF_EXP 5 +#define FLOAT_EXP 8 +#define DOUBLE_EXP 11 + +#define BIAS(e) ((1L << (e - 1L)) - 1L) +#define HALF_BIAS BIAS(HALF_EXP) +#define FLOAT_BIAS BIAS(FLOAT_EXP) +#define DOUBLE_BIAS BIAS(DOUBLE_EXP) + +#define APFX_IEEE_DOUBLE_E_MAX DOUBLE_BIAS +#define APFX_IEEE_DOUBLE_E_MIN (-DOUBLE_BIAS + 1) + +INLINE ap_ulong doubleToRawBits(double pf) { + union { + ap_ulong __L; + double __D; + } LD; + LD.__D = pf; + return LD.__L; +} + +INLINE unsigned int floatToRawBits(float pf) { + union { + unsigned int __L; + float __D; + } LD; + LD.__D = pf; + return LD.__L; +} + +#if _AP_ENABLE_HALF_ == 1 +INLINE unsigned short halfToRawBits(half pf) { +#ifdef __SYNTHESIS__ + union { + unsigned short __L; + half __D; + } LD; + LD.__D = pf; + return LD.__L; +#else + return pf.get_bits(); +#endif +} +#endif + +// usigned long long is at least 64-bit +INLINE double rawBitsToDouble(ap_ulong pi) { + union { + ap_ulong __L; + double __D; + } LD; + LD.__L = pi; + return LD.__D; +} + +// long is at least 32-bit +INLINE float rawBitsToFloat(unsigned long pi) { + union { + unsigned int __L; + float __D; + } LD; + LD.__L = pi; + return LD.__D; +} + +#if _AP_ENABLE_HALF_ == 1 +// short is at least 16-bit +INLINE half rawBitsToHalf(unsigned short pi) { +#ifdef __SYNTHESIS__ + union { + unsigned short __L; + half __D; + } LD; + LD.__L = pi; + return LD.__D; +#else + // sim model of half has a non-trivial constructor + half __D; + __D.set_bits(pi); + return __D; +#endif +} +#endif + +#endif // ifndef __AP_COMMON_H__ + +// -*- cpp -*- diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_decl.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_decl.h new file mode 100644 index 00000000..ddd00f1c --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_decl.h @@ -0,0 +1,212 @@ +/* + * Copyright 2011-2019 Xilinx, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __AP_DECL_H__ +#define __AP_DECL_H__ + +// ---------------------------------------------------------------------- + +#if !defined(__AP_FIXED_H__) && !defined(__AP_INT_H__) && !defined(__AUTOPILOT_CBE_H__) && !defined(__HLS_HALF_H__) +#error "Only ap_fixed.h and ap_int.h can be included directly in user code." +#endif + +// Test __SYNTHESIS__ only for mode +#if !defined(__SYNTHESIS__) && (defined(AESL_SYN) || defined(__HLS_SYN__)) +//#pragma message "AESL_SYN and __HLS_SYN__ should be replaced by __SYNTHESIS__" +#define __SYNTHESIS__ +#endif + +/* for safety*/ +#if (defined(_AP_N) || defined(_AP_C)) +#error One or more of the following is defined: _AP_N, _AP_C. Definition conflicts with their usage as template parameters. +#endif + +/* for safety*/ +#if (defined(_AP_W) || defined(_AP_I) || defined(_AP_S) || defined(_AP_Q) || \ + defined(_AP_O) || defined(_AP_W2) || defined(_AP_I2) || \ + defined(_AP_S2) || defined(_AP_Q2) || defined(_AP_O2) || \ + defined(_AP_N) || defined(_AP_N2)) +#error \ + "One or more of the following is defined: _AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N, _AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2. Definition conflicts with their usage as template parameters." +#endif + +/*for safety*/ +#if (defined(_AP_W3) || defined(_AP_S3) || defined(_AP_W4) || defined(_AP_S4)) +#error \ + "One or more of the following is defined: _AP_W3, _AP_S3, _AP_W4,_AP_S4. Definition conflicts with their usage as template parameters." +#endif + +#if (defined(_AP_W1) || defined(_AP_S1) || defined(_AP_T) || \ + defined(_AP_T1) || defined(_AP_T2) || defined(_AP_T3) || defined(_AP_T4)) +#error \ + "One or more of the following is defined: _AP_W1, _AP_S1, _AP_T, _AP_T1, _AP_T2, _AP_T3, _AP_T4. Definition conflicts with their usage as template parameters." +#endif + +#ifndef __cplusplus +#error "AP data type can only be used in C++" +#endif + +// ---------------------------------------------------------------------- + +#ifndef __SC_COMPATIBLE__ +/// ap_fixed quantification mode +enum ap_q_mode { + AP_RND, //< rounding to plus infinity + AP_RND_ZERO, //< rounding to zero + AP_RND_MIN_INF, //< rounding to minus infinity + AP_RND_INF, //< rounding to infinity + AP_RND_CONV, //< convergent rounding + AP_TRN, //< truncation + AP_TRN_ZERO, //< truncation to zero +}; + +// FIXME for legacy code +#ifndef SYSTEMC_INCLUDED +#define SC_RND AP_RND +#define SC_RND_ZERO AP_RND_ZERO +#define SC_RND_MIN_INF AP_RND_MIN_INF +#define SC_RND_INF AP_RND_INF +#define SC_RND_CONV AP_RND_CONV +#define SC_TRN AP_TRN +#define SC_TRN_ZERO AP_TRN_ZERO +#endif // !defined(SYSTEMC_INCLUDED) + +/// ap_fixed saturation mode +enum ap_o_mode { + AP_SAT, //< saturation + AP_SAT_ZERO, //< saturation to zero + AP_SAT_SYM, //< symmetrical saturation + AP_WRAP, //< wrap-around (*) + AP_WRAP_SM, //< sign magnitude wrap-around (*) +}; + +// FIXME for legacy code +#ifndef SYSTEMC_INCLUDED +#define SC_SAT AP_SAT +#define SC_SAT_ZERO AP_SAT_ZERO +#define SC_SAT_SYM AP_SAT_SYM +#define SC_WRAP AP_WRAP +#define SC_WRAP_SM AP_WRAP_SM +#endif // !defined(SYSTEMC_INCLUDED) + +#else // defined(__SC_COMPATIBLE__) + +// There will not be sc_fxdefs.h, and the emu should be defined by ap_fixed. + +/// ap_fixed quantification mode +enum ap_q_mode { + SC_RND, //< rounding to plus infinity + SC_RND_ZERO, //< rounding to zero + SC_RND_MIN_INF, //< rounding to minus infinity + SC_RND_INF, //< rounding to infinity + SC_RND_CONV, //< convergent rounding + SC_TRN, //< truncation + SC_TRN_ZERO, //< truncation to zero +}; + +#define AP_RND SC_RND +#define AP_RND_ZERO SC_RND_ZERO +#define AP_RND_MIN_INF SC_RND_MIN_INF +#define AP_RND_INF SC_RND_INF +#define AP_RND_CONV SC_RND_CONV +#define AP_TRN SC_TRN +#define AP_TRN_ZERO SC_TRN_ZERO + +/// ap_fixed saturation mode +enum ap_o_mode { + SC_SAT, //< saturation + SC_SAT_ZERO, //< saturation to zero + SC_SAT_SYM, //< symmetrical saturation + SC_WRAP, //< wrap-around (*) + SC_WRAP_SM, //< sign magnitude wrap-around (*) +}; + +#define AP_SAT SC_SAT +#define AP_SAT_ZERO SC_SAT_ZERO +#define AP_SAT_SYM SC_SAT_SYM +#define AP_WRAP SC_WRAP +#define AP_WRAP_SM SC_WRAP_SM + +#endif // defined(__SC_COMPATIBLE__) + +template +struct ap_int_base; + +template +struct ap_int; + +template +struct ap_uint; + +template +struct ap_range_ref; + +template +struct ap_bit_ref; + +template +struct ap_concat_ref; + +template +struct ap_fixed_base; + +template +struct ap_fixed; + +template +struct ap_ufixed; + +template +struct af_range_ref; + +template +struct af_bit_ref; + +/// string base mode +enum BaseMode { AP_BIN = 2, AP_OCT = 8, AP_DEC = 10, AP_HEX = 16 }; + +#ifndef SYSTEMC_INCLUDED +#define SC_BIN 2 +#define SC_OCT 8 +#define SC_DEC 10 +#define SC_HEX 16 +#endif // !defined(SYSTEMC_INCLUDED) + +// Alias C data types +#ifdef _MSC_VER +typedef signed __int64 ap_slong; +typedef unsigned __int64 ap_ulong; +#else // !defined(_MSC_VER) +typedef signed long long ap_slong; +typedef unsigned long long ap_ulong; +#endif // !defined(_MSC_VER) + +enum { + _AP_SIZE_char = 8, + _AP_SIZE_short = sizeof(short) * 8, + _AP_SIZE_int = sizeof(int) * 8, + _AP_SIZE_long = sizeof(long) * 8, + _AP_SIZE_ap_slong = sizeof(ap_slong) * 8 +}; + +#endif // !defined(__AP_DECL_H__) + +// -*- cpp -*- diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed.h new file mode 100644 index 00000000..cd0192bc --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed.h @@ -0,0 +1,360 @@ +/* + * Copyright 2011-2019 Xilinx, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __AP_FIXED_H__ +#define __AP_FIXED_H__ + +#include +#include +#include + +//--------------------------------------------------------------- + +/// Signed Arbitrary Precision Fixed-Point Type. +// default for _AP_Q, _AP_O and _AP_N set in ap_decl.h +template +struct ap_fixed : ap_fixed_base<_AP_W, _AP_I, true, _AP_Q, _AP_O, _AP_N> { + typedef ap_fixed_base<_AP_W, _AP_I, true, _AP_Q, _AP_O, _AP_N> Base; + // Constructor + /// default ctor + INLINE ap_fixed() : Base() {} + + /// default copy ctor + INLINE ap_fixed(const ap_fixed& op) { Base::V = op.V; } + + /// copy ctor from ap_fixed_base. + template + INLINE ap_fixed(const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, + _AP_O2, _AP_N2>& op) + : Base(op) {} + + template + INLINE ap_fixed(const volatile ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, + _AP_O2, _AP_N2>& op) + : Base(op) {} + + //// from ap_fixed + //template + //INLINE ap_fixed( + // const ap_fixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + // : Base(ap_fixed_base<_AP_W2, _AP_I2, true, _AP_Q2, _AP_O2, _AP_N2>(op)) {} + + //template + //INLINE ap_fixed( + // const volatile ap_fixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + // : Base(ap_fixed_base<_AP_W2, _AP_I2, true, _AP_Q2, _AP_O2, _AP_N2>(op)) {} + + //// from ap_ufixed. + //template + //INLINE ap_fixed( + // const ap_ufixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + // : Base(ap_fixed_base<_AP_W2, _AP_I2, false, _AP_Q2, _AP_O2, _AP_N2>(op)) { + //} + + //template + //INLINE ap_fixed( + // const volatile ap_ufixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + // : Base(ap_fixed_base<_AP_W2, _AP_I2, false, _AP_Q2, _AP_O2, _AP_N2>(op)) { + //} + + /// copy ctor from ap_int_base. + template + INLINE ap_fixed(const ap_int_base<_AP_W2, _AP_S2>& op) : Base(op) {} + + template + INLINE ap_fixed(const volatile ap_int_base<_AP_W2, _AP_S2>& op) : Base(op) {} + + //// from ap_int. + //template + //INLINE ap_fixed(const ap_int<_AP_W2>& op) + // : Base(ap_int_base<_AP_W2, true>(op)) {} + + //template + //INLINE ap_fixed(const volatile ap_int<_AP_W2>& op) + // : Base(ap_int_base<_AP_W2, true>(op)) {} + + //// from ap_uint. + //template + //INLINE ap_fixed(const ap_uint<_AP_W2>& op) + // : Base(ap_int_base<_AP_W2, false>(op)) {} + + //template + //INLINE ap_fixed(const volatile ap_uint<_AP_W2>& op) + // : Base(ap_int_base<_AP_W2, false>(op)) {} + + // from ap_bit_ref. + template + INLINE ap_fixed(const ap_bit_ref<_AP_W2, _AP_S2>& op) : Base(op) {} + + // from ap_range_ref. + template + INLINE ap_fixed(const ap_range_ref<_AP_W2, _AP_S2>& op) : Base(op) {} + + // from ap_concat_ref. + template + INLINE ap_fixed(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& op) + : Base(op) {} + + // from af_bit_ref. + template + INLINE ap_fixed( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base(op) {} + + // from af_range_ref. + template + INLINE ap_fixed( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base(op) {} + +// from c types. +#define CTOR(TYPE) \ + INLINE ap_fixed(TYPE v) : Base(v) {} + + CTOR(bool) + CTOR(char) + CTOR(signed char) + CTOR(unsigned char) + CTOR(short) + CTOR(unsigned short) + CTOR(int) + CTOR(unsigned int) + CTOR(long) + CTOR(unsigned long) + CTOR(ap_slong) + CTOR(ap_ulong) +#if _AP_ENABLE_HALF_ == 1 + CTOR(half) +#endif + CTOR(float) + CTOR(double) +#undef CTOR + + INLINE ap_fixed(const char* s) : Base(s) {} + + INLINE ap_fixed(const char* s, signed char rd) : Base(s, rd) {} + + // Assignment + // The assignment operator is technically inherited; however, it is always + // hidden by an explicitly or implicitly defined assignment operator for the + // derived class. + /* XXX ctor will be used when right is not of proper type. */ + INLINE ap_fixed& operator=( + const ap_fixed<_AP_W, _AP_I, _AP_Q, _AP_O, _AP_N>& op) { + Base::V = op.V; + return *this; + } + + INLINE void operator=( + const ap_fixed<_AP_W, _AP_I, _AP_Q, _AP_O, _AP_N>& op) volatile { + Base::V = op.V; + } + + INLINE ap_fixed& operator=( + const volatile ap_fixed<_AP_W, _AP_I, _AP_Q, _AP_O, _AP_N>& op) { + Base::V = op.V; + return *this; + } + + INLINE void operator=( + const volatile ap_fixed<_AP_W, _AP_I, _AP_Q, _AP_O, _AP_N>& op) volatile { + Base::V = op.V; + } +}; // struct ap_fixed. + +//------------------------------------------------------------------- + +// Unsigned Arbitrary Precision Fixed-Point Type. +// default for _AP_Q, _AP_O and _AP_N set in ap_decl.h +template +struct ap_ufixed : ap_fixed_base<_AP_W, _AP_I, false, _AP_Q, _AP_O, _AP_N> { + typedef ap_fixed_base<_AP_W, _AP_I, false, _AP_Q, _AP_O, _AP_N> Base; + // Constructor + /// default ctor + INLINE ap_ufixed() : Base() {} + + /// default copy ctor + INLINE ap_ufixed(const ap_ufixed& op) { Base::V = op.V; } + + /// copy ctor from ap_fixed_base + template + INLINE ap_ufixed(const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, + _AP_O2, _AP_N2>& op) + : Base(op) {} + + /// copy ctor from ap_fixed_base + template + INLINE ap_ufixed(const volatile ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, + _AP_O2, _AP_N2>& op) + : Base(op) {} + + //template + //INLINE ap_ufixed( + // const ap_fixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + // : Base(ap_fixed_base<_AP_W2, _AP_I2, true, _AP_Q2, _AP_O2, _AP_N2>(op)) {} + + //template + //INLINE ap_ufixed( + // const volatile ap_fixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + // : Base(ap_fixed_base<_AP_W2, _AP_I2, true, _AP_Q2, _AP_O2, _AP_N2>(op)) {} + + //template + //INLINE ap_ufixed( + // const ap_ufixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + // : Base(ap_fixed_base<_AP_W2, _AP_I2, false, _AP_Q2, _AP_O2, _AP_N2>(op)) { + //} + + //template + //INLINE ap_ufixed( + // const volatile ap_ufixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + // : Base(ap_fixed_base<_AP_W2, _AP_I2, false, _AP_Q2, _AP_O2, _AP_N2>(op)) { + //} + + /// copy ctor from ap_int_base. + template + INLINE ap_ufixed(const ap_int_base<_AP_W2, _AP_S2>& op) : Base(op) {} + + template + INLINE ap_ufixed(const volatile ap_int_base<_AP_W2, _AP_S2>& op) : Base(op) {} + + //template + //INLINE ap_ufixed(const ap_int<_AP_W2>& op) + // : Base(ap_int_base<_AP_W2, true>(op)) {} + + //template + //INLINE ap_ufixed(const volatile ap_int<_AP_W2>& op) + // : Base(ap_int_base<_AP_W2, true>(op)) {} + + //template + //INLINE ap_ufixed(const ap_uint<_AP_W2>& op) + // : Base(ap_int_base<_AP_W2, false>(op)) {} + + //template + //INLINE ap_ufixed(const volatile ap_uint<_AP_W2>& op) + // : Base(ap_int_base<_AP_W2, false>(op)) {} + + template + INLINE ap_ufixed(const ap_bit_ref<_AP_W2, _AP_S2>& op) : Base(op) {} + + template + INLINE ap_ufixed(const ap_range_ref<_AP_W2, _AP_S2>& op) : Base(op) {} + + template + INLINE ap_ufixed(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& op) + : Base(op) {} + + template + INLINE ap_ufixed( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base(op) {} + + template + INLINE ap_ufixed( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base(op) {} + +#define CTOR(TYPE) \ + INLINE ap_ufixed(TYPE v) : Base(v) {} + + CTOR(bool) + CTOR(char) + CTOR(signed char) + CTOR(unsigned char) + CTOR(short) + CTOR(unsigned short) + CTOR(int) + CTOR(unsigned int) + CTOR(long) + CTOR(unsigned long) + CTOR(ap_slong) + CTOR(ap_ulong) +#if _AP_ENABLE_HALF_ == 1 + CTOR(half) +#endif + CTOR(float) + CTOR(double) +#undef CTOR + + INLINE ap_ufixed(const char* s) : Base(s) {} + + INLINE ap_ufixed(const char* s, signed char rd) : Base(s, rd) {} + + // Assignment + INLINE ap_ufixed& operator=( + const ap_ufixed<_AP_W, _AP_I, _AP_Q, _AP_O, _AP_N>& op) { + Base::V = op.V; + return *this; + } + + INLINE void operator=( + const ap_ufixed<_AP_W, _AP_I, _AP_Q, _AP_O, _AP_N>& op) volatile { + Base::V = op.V; + } + + INLINE ap_ufixed& operator=( + const volatile ap_ufixed<_AP_W, _AP_I, _AP_Q, _AP_O, _AP_N>& op) { + Base::V = op.V; + return *this; + } + + INLINE void operator=(const volatile ap_ufixed<_AP_W, _AP_I, _AP_Q, _AP_O, + _AP_N>& op) volatile { + Base::V = op.V; + } +}; // struct ap_ufixed + + +#if !defined(__SYNTHESIS__) && (defined(SYSTEMC_H) || defined(SYSTEMC_INCLUDED)) +// XXX sc_trace overload for ap_fixed is already included in +// "ap_sysc/ap_sc_extras.h", so do not define in synthesis. +template +INLINE void sc_trace(sc_core::sc_trace_file* tf, + const ap_fixed<_AP_W, _AP_I, _AP_Q, _AP_O, _AP_N>& op, + const std::string& name) { + tf->trace(sc_dt::sc_lv<_AP_W>(op.to_string(2).c_str()), name); +} + +template +INLINE void sc_trace(sc_core::sc_trace_file* tf, + const ap_ufixed<_AP_W, _AP_I, _AP_Q, _AP_O, _AP_N>& op, + const std::string& name) { + tf->trace(sc_dt::sc_lv<_AP_W>(op.to_string(2).c_str()), name); +} +#endif // System C sim + +// Specialization of std containers, so that std::complex can have its +// image part automatically zero-initialized when only real part is provided. +#include + +#endif // ifndef __AP_FIXED_H__ + +// -*- cpp -*- diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed_base.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed_base.h new file mode 100644 index 00000000..1d94b938 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed_base.h @@ -0,0 +1,2354 @@ +/* + * Copyright 2011-2019 Xilinx, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __AP_FIXED_BASE_H__ +#define __AP_FIXED_BASE_H__ + +#ifndef __AP_FIXED_H__ +#error "Only ap_fixed.h and ap_int.h can be included directly in user code." +#endif + +// for ap_int_base and its reference types. +#include +#ifndef __SYNTHESIS__ +#if _AP_ENABLE_HALF_ == 1 +// for half type +#include +#endif +// for std io +#include +#endif + +#ifndef __cplusplus +#error "C++ is required to include this header file" +#else // __cplusplus + +// for warning on unsupported rounding mode in conversion to float/double. +#if !defined(__SYNTHESIS__) && __cplusplus >= 201103L && \ + (defined(__gnu_linux__) || defined(_WIN32)) +#define AP_FIXED_ENABLE_CPP_FENV 1 +#include +#endif + +// ---------------------------------------------------------------------- + +/* Major TODO + long double support: constructor, assign and other operators. + binary operators with ap_fixed_base and const char*. + return ap_fixed/ap_ufixed when result signedness is known. +*/ + +// Helper function in conversion to floating point types. + +#ifdef __SYNTHESIS__ +#define _AP_ctype_op_get_bit(var, index) _AP_ROOT_op_get_bit(var, index) +#define _AP_ctype_op_set_bit(var, index, x) _AP_ROOT_op_set_bit(var, index, x) +#define _AP_ctype_op_get_range(var, low, high) \ + _AP_ROOT_op_get_range(var, low, high) +#define _AP_ctype_op_set_range(var, low, high, x) \ + _AP_ROOT_op_set_range(var, low, high, x) +#else // ifdef __SYNTHESIS__ +template +inline bool _AP_ctype_op_get_bit(_Tp1& var, const _Tp2& index) { + return !!(var & (1ull << (index))); +} +template +inline _Tp1 _AP_ctype_op_set_bit(_Tp1& var, const _Tp2& index, const _Tp3& x) { + var |= (((x) ? 1ull : 0ull) << (index)); + return var; +} +template +inline _Tp1 _AP_ctype_op_get_range(_Tp1& var, const _Tp2& low, + const _Tp3& high) { + _Tp1 r = var; + ap_ulong mask = -1ll; + mask >>= (sizeof(_Tp1) * 8 - ((high) - (low) + 1)); + r >>= (low); + r &= mask; + return r; +} +template +inline _Tp1 _AP_ctype_op_set_range(_Tp1& var, const _Tp2& low, const _Tp3& high, + const _Tp4& x) { + ap_ulong mask = -1ll; + mask >>= (_AP_SIZE_ap_slong - ((high) - (low) + 1)); + var &= ~(mask << (low)); + var |= ((mask & x) << (low)); + return var; +} +#endif // ifdef __SYNTHESIS__ + + +// trait for letting base class to return derived class. +// Notice that derived class template is incomplete, and we cannot use +// the member of the derived class. +template +struct _ap_fixed_factory; +template +struct _ap_fixed_factory<_AP_W2, _AP_I2, true> { + typedef ap_fixed<_AP_W2, _AP_I2> type; +}; +template +struct _ap_fixed_factory<_AP_W2, _AP_I2, false> { + typedef ap_ufixed<_AP_W2, _AP_I2> type; +}; + +/// ap_fixed_base: AutoPilot fixed point. +/** partial specialization of signed. + @tparam _AP_W width. + @tparam _AP_I integral part width. + @tparam _AP_S signed. + @tparam _AP_Q quantization mode. Default is AP_TRN. + @tparam _AP_O saturation mode. Default is AP_WRAP. + @tparam _AP_N saturation wrap value. Default is 0. + */ +// default for _AP_Q, _AP_O and _AP_N set in ap_decl.h +template +struct ap_fixed_base : _AP_ROOT_TYPE<_AP_W, _AP_S> { + public: + typedef _AP_ROOT_TYPE<_AP_W, _AP_S> Base; + static const int width = _AP_W; + static const int iwidth = _AP_I; + static const ap_q_mode qmode = _AP_Q; + static const ap_o_mode omode = _AP_O; + + /// Return type trait. + template + struct RType { + enum { + _AP_F = _AP_W - _AP_I, + F2 = _AP_W2 - _AP_I2, + mult_w = _AP_W + _AP_W2, + mult_i = _AP_I + _AP_I2, + mult_s = _AP_S || _AP_S2, + plus_w = AP_MAX(_AP_I + (_AP_S2 && !_AP_S), _AP_I2 + (_AP_S && !_AP_S2)) + + 1 + AP_MAX(_AP_F, F2), + plus_i = + AP_MAX(_AP_I + (_AP_S2 && !_AP_S), _AP_I2 + (_AP_S && !_AP_S2)) + 1, + plus_s = _AP_S || _AP_S2, + minus_w = + AP_MAX(_AP_I + (_AP_S2 && !_AP_S), _AP_I2 + (_AP_S && !_AP_S2)) + 1 + + AP_MAX(_AP_F, F2), + minus_i = + AP_MAX(_AP_I + (_AP_S2 && !_AP_S), _AP_I2 + (_AP_S && !_AP_S2)) + 1, + minus_s = true, +#ifndef __SC_COMPATIBLE__ + div_w = _AP_S2 + _AP_W + AP_MAX(F2, 0), +#else + div_w = _AP_S2 + _AP_W + AP_MAX(F2, 0) + AP_MAX(_AP_I2, 0), +#endif + div_i = _AP_S2 + _AP_I + F2, + div_s = _AP_S || _AP_S2, + logic_w = + AP_MAX(_AP_I + (_AP_S2 && !_AP_S), _AP_I2 + (_AP_S && !_AP_S2)) + + AP_MAX(_AP_F, F2), + logic_i = AP_MAX(_AP_I + (_AP_S2 && !_AP_S), _AP_I2 + (_AP_S && !_AP_S2)), + logic_s = _AP_S || _AP_S2 + }; + + typedef ap_fixed_base<_AP_W, _AP_I, _AP_S> lhs; + typedef ap_fixed_base<_AP_W2, _AP_I2, _AP_S2> rhs; + + typedef ap_fixed_base mult_base; + typedef ap_fixed_base plus_base; + typedef ap_fixed_base minus_base; + typedef ap_fixed_base logic_base; + typedef ap_fixed_base div_base; + typedef ap_fixed_base<_AP_W, _AP_I, _AP_S> arg1_base; + + typedef typename _ap_fixed_factory::type mult; + typedef typename _ap_fixed_factory::type plus; + typedef typename _ap_fixed_factory::type minus; + typedef typename _ap_fixed_factory::type logic; + typedef typename _ap_fixed_factory::type div; + typedef typename _ap_fixed_factory<_AP_W, _AP_I, _AP_S>::type arg1; + }; + + private: +#ifndef __SYNTHESIS__ + // This cannot handle hex float format string. + void fromString(const std::string& val, unsigned char radix) { + _AP_ERROR(!(radix == 2 || radix == 8 || radix == 10 || radix == 16), + "ap_fixed_base::fromString(%s, %d)", val.c_str(), radix); + + Base::V = 0; + int startPos = 0; + int endPos = val.length(); + int decPos = val.find("."); + if (decPos == -1) decPos = endPos; + + // handle sign + bool isNegative = false; + if (val[0] == '-') { + isNegative = true; + ++startPos; + } else if (val[0] == '+') + ++startPos; + + // If there are no integer bits, e.g.: + // .0000XXXX, then keep at least one bit. + // If the width is greater than the number of integer bits, e.g.: + // XXXX.XXXX, then we keep the integer bits + // if the number of integer bits is greater than the width, e.g.: + // XXX000 then we keep the integer bits. + // Always keep one bit. + ap_fixed_base + integer_bits = 0; + + // Figure out if we can shift instead of multiply + unsigned shift = (radix == 16 ? 4 : radix == 8 ? 3 : radix == 2 ? 1 : 0); + + //std::cout << "\n\n" << val << "\n"; + //std::cout << startPos << " " << decPos << " " << endPos << "\n"; + + bool sticky_int = false; + + // Traverse the integer digits from the MSD, multiplying by radix as we go. + for (int i = startPos; i < decPos; i++) { + // Get a digit + char cdigit = val[i]; + if (cdigit == '\0') continue; + unsigned digit = ap_private_ops::decode_digit(cdigit, radix); + + sticky_int |= integer_bits[AP_MAX(_AP_I, 4) + 4 - 1] | + integer_bits[AP_MAX(_AP_I, 4) + 4 - 2] | + integer_bits[AP_MAX(_AP_I, 4) + 4 - 3] | + integer_bits[AP_MAX(_AP_I, 4) + 4 - 4]; + // Shift or multiply the value by the radix + if (shift) + integer_bits <<= shift; + else + integer_bits *= radix; + + // Add in the digit we just interpreted + integer_bits += digit; + //std::cout << "idigit = " << digit << " " << integer_bits.to_string() + // << " " << sticky_int << "\n"; + } + integer_bits[AP_MAX(_AP_I, 4) + 4 - 3] = + integer_bits[AP_MAX(_AP_I, 4) + 4 - 3] | sticky_int; + + ap_fixed_base fractional_bits = 0; + bool sticky = false; + + // Traverse the fractional digits from the LSD, dividing by radix as we go. + for (int i = endPos - 1; i >= decPos + 1; i--) { + // Get a digit + char cdigit = val[i]; + if (cdigit == '\0') continue; + unsigned digit = ap_private_ops::decode_digit(cdigit, radix); + // Add in the digit we just interpreted + fractional_bits += digit; + + sticky |= fractional_bits[0] | fractional_bits[1] | fractional_bits[2] | + fractional_bits[3]; + // Shift or divide the value by the radix + if (shift) + fractional_bits >>= shift; + else + fractional_bits /= radix; + + //std::cout << "fdigit = " << digit << " " << fractional_bits.to_string() + // << " " << sticky << "\n"; + } + + //std::cout << "Int =" << integer_bits.to_string() << " " << + // fractional_bits.to_string() << "\n"; + + fractional_bits[0] = fractional_bits[0] | sticky; + + if (isNegative) + *this = -(integer_bits + fractional_bits); + else + *this = integer_bits + fractional_bits; + + //std::cout << "end = " << this->to_string(16) << "\n"; + } + + /// report invalid constrction of ap_fixed_base + INLINE void report() { + if (!_AP_S && _AP_O == AP_WRAP_SM) { + fprintf(stderr, "ap_ufxied<...> cannot support AP_WRAP_SM.\n"); + exit(1); + } + if (_AP_W > MAX_MODE(AP_INT_MAX_W) * 1024) { + fprintf(stderr, + "[E] ap_%sfixed<%d, ...>: Bitwidth exceeds the " + "default max value %d. Please use macro " + "AP_INT_MAX_W to set a larger max value.\n", + _AP_S ? "" : "u", _AP_W, MAX_MODE(AP_INT_MAX_W) * 1024); + exit(1); + } + } +#else + INLINE void report() {} +#endif // ifdef __SYNTHESIS__ + + /// @name helper functions. + // @{ + INLINE void overflow_adjust(bool underflow, bool overflow, bool lD, + bool sign) { + if (!underflow && !overflow) return; + if (_AP_O == AP_WRAP) { + if (_AP_N == 0) return; + if (_AP_S) { + // signed AP_WRAP + // n_bits == 1 + Base::V = _AP_ROOT_op_set_bit(Base::V, _AP_W - 1, sign); + if (_AP_N > 1) { + // n_bits > 1 + ap_int_base<_AP_W, false> mask(-1); + if (sign) mask.V = 0; + Base::V = + _AP_ROOT_op_set_range(Base::V, _AP_W - _AP_N, _AP_W - 2, mask.V); + } + } else { + // unsigned AP_WRAP + ap_int_base<_AP_W, false> mask(-1); + Base::V = + _AP_ROOT_op_set_range(Base::V, _AP_W - _AP_N, _AP_W - 1, mask.V); + } + } else if (_AP_O == AP_SAT_ZERO) { + Base::V = 0; + } else if (_AP_O == AP_WRAP_SM && _AP_S) { + bool Ro = _AP_ROOT_op_get_bit(Base::V, _AP_W - 1); + if (_AP_N == 0) { + if (lD != Ro) { + Base::V = ~Base::V; + Base::V = _AP_ROOT_op_set_bit(Base::V, _AP_W - 1, lD); + } + } else { + if (_AP_N == 1 && sign != Ro) { + Base::V = ~Base::V; + } else if (_AP_N > 1) { + bool lNo = _AP_ROOT_op_get_bit(Base::V, _AP_W - _AP_N); + if (lNo == sign) Base::V = ~Base::V; + ap_int_base<_AP_W, false> mask(-1); + if (sign) mask.V = 0; + Base::V = + _AP_ROOT_op_set_range(Base::V, _AP_W - _AP_N, _AP_W - 2, mask.V); + } + Base::V = _AP_ROOT_op_set_bit(Base::V, _AP_W - 1, sign); + } + } else { + if (_AP_S) { + if (overflow) { + Base::V = 1; + Base::V <<= _AP_W - 1; + Base::V = ~Base::V; + } else if (underflow) { + Base::V = 1; + Base::V <<= _AP_W - 1; + if (_AP_O == AP_SAT_SYM) Base::V |= 1; + } + } else { + if (overflow) + Base::V = ~(ap_int_base<_AP_W, false>(0).V); + else if (underflow) + Base::V = 0; + } + } + } + + INLINE bool quantization_adjust(bool qb, bool r, bool s) { + bool carry = (bool)_AP_ROOT_op_get_bit(Base::V, _AP_W - 1); + if (_AP_Q == AP_TRN) return false; + if (_AP_Q == AP_RND_ZERO) + qb &= s || r; + else if (_AP_Q == AP_RND_MIN_INF) + qb &= r; + else if (_AP_Q == AP_RND_INF) + qb &= !s || r; + else if (_AP_Q == AP_RND_CONV) + qb &= _AP_ROOT_op_get_bit(Base::V, 0) || r; + else if (_AP_Q == AP_TRN_ZERO) + qb = s && (qb || r); + Base::V += qb; + return carry && (!(bool)_AP_ROOT_op_get_bit(Base::V, _AP_W - 1)); + } + // @} + + public: + /// @name constructors. + // @{ + /// default ctor. + INLINE ap_fixed_base() {} + + /// copy ctor. + template + INLINE ap_fixed_base( + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) { + operator=(op); + report(); + } + + template + INLINE ap_fixed_base( + const volatile ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) { + operator=(op); + report(); + } + + template + INLINE ap_fixed_base(const ap_int_base<_AP_W2, _AP_S2>& op) { + ap_fixed_base<_AP_W2, _AP_W2, _AP_S2> tmp; + tmp.V = op.V; + operator=(tmp); + report(); + } + + template + INLINE ap_fixed_base(const volatile ap_int_base<_AP_W2, _AP_S2>& op) { + ap_fixed_base<_AP_W2, _AP_W2, _AP_S2> tmp; + tmp.V = op.V; + operator=(tmp); + report(); + } + +#ifndef __SYNTHESIS__ +#ifndef NON_C99STRING + INLINE ap_fixed_base(const char* s, signed char rd = 0) { + unsigned char radix = rd; + std::string str = ap_private_ops::parseString(s, radix); // will guess rd, default 10 + _AP_ERROR(radix == 0, "ap_fixed_base(const char* \"%s\", %d), str=%s, radix = %d", + s, rd, str.c_str(), radix); // TODO remove this check + fromString(str, radix); + } +#else + INLINE ap_fixed_base(const char* s, signed char rd = 10) { + ap_int_base<_AP_W, _AP_S> t(s, rd); + Base::V = t.V; + } +#endif // ifndef NON_C99STRING +#else // ifndef __SYNTHESIS__ + // XXX _ssdm_string2bits only takes const string and const radix. + // It seems XFORM will do compile time processing of the string. + INLINE ap_fixed_base(const char* s) { + typeof(Base::V) t; + _ssdm_string2bits((void*)(&t), (const char*)(s), 10, _AP_I, _AP_S, _AP_Q, + _AP_O, _AP_N, _AP_C99); + Base::V = t; + } + INLINE ap_fixed_base(const char* s, signed char rd) { + typeof(Base::V) t; + _ssdm_string2bits((void*)(&t), (const char*)(s), rd, _AP_I, _AP_S, _AP_Q, + _AP_O, _AP_N, _AP_C99); + Base::V = t; + } +#endif // ifndef __SYNTHESIS__ else + + template + INLINE ap_fixed_base(const ap_bit_ref<_AP_W2, _AP_S2>& op) { + *this = ((bool)op); + report(); + } + + template + INLINE ap_fixed_base(const ap_range_ref<_AP_W2, _AP_S2>& op) { + *this = (ap_int_base<_AP_W2, false>(op)); + report(); + } + + template + INLINE ap_fixed_base( + const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& op) { + *this = (ap_int_base<_AP_W2 + _AP_W3, false>(op)); + report(); + } + + template + INLINE ap_fixed_base( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) { + *this = (bool(op)); + report(); + } + + template + INLINE ap_fixed_base( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) { + *this = (ap_int_base<_AP_W2, false>(op)); + report(); + } + + // ctors from c types. + // make a temp ap_fixed_base first, and use ap_fixed_base.operator= +#define CTOR_FROM_INT(C_TYPE, _AP_W2, _AP_S2) \ + INLINE ap_fixed_base(const C_TYPE x) { \ + ap_fixed_base<(_AP_W2), (_AP_W2), (_AP_S2)> tmp; \ + tmp.V = x; \ + *this = tmp; \ + } + + CTOR_FROM_INT(bool, 1, false) + CTOR_FROM_INT(char, 8, CHAR_IS_SIGNED) + CTOR_FROM_INT(signed char, 8, true) + CTOR_FROM_INT(unsigned char, 8, false) + CTOR_FROM_INT(short, _AP_SIZE_short, true) + CTOR_FROM_INT(unsigned short, _AP_SIZE_short, false) + CTOR_FROM_INT(int, _AP_SIZE_int, true) + CTOR_FROM_INT(unsigned int, _AP_SIZE_int, false) + CTOR_FROM_INT(long, _AP_SIZE_long, true) + CTOR_FROM_INT(unsigned long, _AP_SIZE_long, false) + CTOR_FROM_INT(ap_slong, _AP_SIZE_ap_slong, true) + CTOR_FROM_INT(ap_ulong, _AP_SIZE_ap_slong, false) +#undef CTOR_FROM_INT +/* + * TODO: + *Theere used to be several funtions which were AP_WEAK. + *Now they're all INLINE expect ap_fixed_base(double d) + *Maybe we can use '#pragma HLS inline' instead of INLINE. + */ + AP_WEAK ap_fixed_base(double d) { + ap_int_base<64, false> ireg; + ireg.V = doubleToRawBits(d); + bool isneg = _AP_ROOT_op_get_bit(ireg.V, 63); + + ap_int_base exp; + ap_int_base exp_tmp; + exp_tmp.V = + _AP_ROOT_op_get_range(ireg.V, DOUBLE_MAN, DOUBLE_MAN + DOUBLE_EXP - 1); + exp = exp_tmp - DOUBLE_BIAS; + ap_int_base man; + man.V = _AP_ROOT_op_get_range(ireg.V, 0, DOUBLE_MAN - 1); + // do not support NaN + _AP_WARNING(exp == APFX_IEEE_DOUBLE_E_MAX + 1 && man.V != 0, + "assign NaN to fixed point value"); + man.V = _AP_ROOT_op_set_bit(man.V, DOUBLE_MAN, 1); + if (isneg) man = -man; + if ((ireg.V & 0x7fffffffffffffffLL) == 0) { + Base::V = 0; + } else { + int _AP_W2 = DOUBLE_MAN + 2, _AP_I2 = exp.V + 2, _AP_F = _AP_W - _AP_I, + F2 = _AP_W2 - _AP_I2; + bool _AP_S2 = true, + QUAN_INC = F2 > _AP_F && + !(_AP_Q == AP_TRN || (_AP_Q == AP_TRN_ZERO && !_AP_S2)); + bool carry = false; + // handle quantization + unsigned sh_amt = (F2 > _AP_F) ? F2 - _AP_F : _AP_F - F2; + if (F2 == _AP_F) + Base::V = man.V; + else if (F2 > _AP_F) { + if (sh_amt < DOUBLE_MAN + 2) + Base::V = man.V >> sh_amt; + else { + Base::V = isneg ? -1 : 0; + } + if ((_AP_Q != AP_TRN) && !((_AP_Q == AP_TRN_ZERO) && !_AP_S2)) { + bool qb = (F2 - _AP_F > _AP_W2) ? isneg : (bool)_AP_ROOT_op_get_bit( + man.V, F2 - _AP_F - 1); + bool r = + (F2 > _AP_F + 1) + ? _AP_ROOT_op_get_range(man.V, 0, (F2 - _AP_F - 2 < _AP_W2) + ? (F2 - _AP_F - 2) + : (_AP_W2 - 1)) != 0 + : false; + carry = quantization_adjust(qb, r, isneg); + } + } else { // no quantization + Base::V = man.V; + if (sh_amt < _AP_W) + Base::V = Base::V << sh_amt; + else + Base::V = 0; + } + // handle overflow/underflow + if ((_AP_O != AP_WRAP || _AP_N != 0) && + ((!_AP_S && _AP_S2) || + _AP_I - _AP_S < + _AP_I2 - _AP_S2 + + (QUAN_INC || + (_AP_S2 && (_AP_O == AP_SAT_SYM))))) { // saturation + bool deleted_zeros = _AP_S2 ? true : !carry, deleted_ones = true; + bool neg_src = isneg; + bool lD = false; + int pos1 = F2 - _AP_F + _AP_W; + int pos2 = F2 - _AP_F + _AP_W + 1; + bool newsignbit = _AP_ROOT_op_get_bit(Base::V, _AP_W - 1); + if (pos1 < _AP_W2 && pos1 >= 0) + // lD = _AP_ROOT_op_get_bit(man.V, pos1); + lD = (man.V >> pos1) & 1; + if (pos1 < _AP_W2) { + bool Range1_all_ones = true; + bool Range1_all_zeros = true; + bool Range2_all_ones = true; + ap_int_base Range2; + ap_int_base all_ones(-1); + + if (pos2 >= 0 && pos2 < _AP_W2) { + // Range2.V = _AP_ROOT_op_get_range(man.V, + // pos2, _AP_W2 - 1); + Range2.V = man.V; + Range2.V >>= pos2; + Range2_all_ones = Range2 == (all_ones >> pos2); + } else if (pos2 < 0) + Range2_all_ones = false; + if (pos1 >= 0 && pos2 < _AP_W2) { + Range1_all_ones = Range2_all_ones && lD; + Range1_all_zeros = !Range2.V && !lD; + } else if (pos2 == _AP_W2) { + Range1_all_ones = lD; + Range1_all_zeros = !lD; + } else if (pos1 < 0) { + Range1_all_zeros = !man.V; + Range1_all_ones = false; + } + + deleted_zeros = + deleted_zeros && (carry ? Range1_all_ones : Range1_all_zeros); + deleted_ones = + carry ? Range2_all_ones && (pos1 < 0 || !lD) : Range1_all_ones; + neg_src = isneg && !(carry && Range1_all_ones); + } else + neg_src = isneg && newsignbit; + bool neg_trg = _AP_S && newsignbit; + bool overflow = (neg_trg || !deleted_zeros) && !isneg; + bool underflow = (!neg_trg || !deleted_ones) && neg_src; + if ((_AP_O == AP_SAT_SYM) && _AP_S2 && _AP_S) + underflow |= + neg_src && + (_AP_W > 1 ? _AP_ROOT_op_get_range(Base::V, 0, _AP_W - 2) == 0 + : true); + overflow_adjust(underflow, overflow, lD, neg_src); + } + } + report(); + } + + // TODO more optimized implementation. + INLINE ap_fixed_base(float d) { *this = ap_fixed_base(double(d)); } + +#if _AP_ENABLE_HALF_ == 1 + // TODO more optimized implementation. + INLINE ap_fixed_base(half d) { *this = ap_fixed_base(double(d)); } +#endif + // @} + + /// @name assign operator + /// assign, using another ap_fixed_base of same template parameters. + /* + INLINE ap_fixed_base& operator=( + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op) { + Base::V = op.V; + return *this; + } + */ + + template + INLINE ap_fixed_base& operator=( + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) { + + const int _AP_F = _AP_W - _AP_I; + const int F2 = _AP_W2 - _AP_I2; + const int QUAN_INC = + F2 > _AP_F && !(_AP_Q == AP_TRN || (_AP_Q == AP_TRN_ZERO && !_AP_S2)); + + if (!op) Base::V = 0; + bool carry = false; + bool signbit = _AP_ROOT_op_get_bit(op.V, _AP_W2 - 1); + bool isneg = signbit && _AP_S2; + if (F2 == _AP_F) + Base::V = op.V; + else if (F2 > _AP_F) { + unsigned int sh_amt = F2 - _AP_F; + // moves bits right, handle quantization. + if (sh_amt < _AP_W2) { + Base::V = op.V >> sh_amt; + } else { + Base::V = isneg ? -1 : 0; + } + if (_AP_Q != AP_TRN && !(_AP_Q == AP_TRN_ZERO && !_AP_S2)) { + bool qbit = _AP_ROOT_op_get_bit(op.V, F2 - _AP_F - 1); + // bit after LSB. + bool qb = (F2 - _AP_F > _AP_W2) ? _AP_S2 && signbit : qbit; + enum { hi = ((F2 - _AP_F - 2) < _AP_W2) ? (F2 - _AP_F - 2) : (_AP_W2 - 1) }; + // bits after qb. + bool r = (F2 > _AP_F + 1) ? (_AP_ROOT_op_get_range(op.V, 0, hi) != 0) : false; + carry = quantization_adjust(qb, r, isneg); + } + } else { + unsigned sh_amt = _AP_F - F2; + // moves bits left, no quantization + if (sh_amt < _AP_W) { + if (_AP_W > _AP_W2) { + // extend and then shift, avoid losing bits. + Base::V = op.V; + Base::V <<= sh_amt; + } else { + // shift and truncate. + Base::V = op.V << sh_amt; + } + } else { + Base::V = 0; + } + } + // handle overflow/underflow + if ((_AP_O != AP_WRAP || _AP_N != 0) && + ((!_AP_S && _AP_S2) || + _AP_I - _AP_S < + _AP_I2 - _AP_S2 + + (QUAN_INC || (_AP_S2 && _AP_O == AP_SAT_SYM)))) { // saturation + bool deleted_zeros = _AP_S2 ? true : !carry; + bool deleted_ones = true; + bool neg_src = isneg; + bool newsignbit = _AP_ROOT_op_get_bit(Base::V, _AP_W - 1); + enum { pos1 = F2 - _AP_F + _AP_W, pos2 = F2 - _AP_F + _AP_W + 1 }; + bool lD = (pos1 < _AP_W2 && pos1 >= 0) ? _AP_ROOT_op_get_bit(op.V, pos1) + : false; + if (pos1 < _AP_W2) { + bool Range1_all_ones = true; + bool Range1_all_zeros = true; + bool Range2_all_ones = true; + ap_int_base<_AP_W2, false> all_ones(-1); + + if (pos2 < _AP_W2 && pos2 >= 0) { + ap_int_base<_AP_W2, false> Range2; + Range2.V = _AP_ROOT_op_get_range(op.V, pos2, _AP_W2 - 1); + Range2_all_ones = Range2 == (all_ones >> pos2); + } else if (pos2 < 0) { + Range2_all_ones = false; + } + + if (pos1 >= 0 && pos2 < _AP_W2) { + ap_int_base<_AP_W2, false> Range1; + Range1.V = _AP_ROOT_op_get_range(op.V, pos1, _AP_W2 - 1); + Range1_all_ones = Range1 == (all_ones >> pos1); + Range1_all_zeros = !Range1.V; + } else if (pos2 == _AP_W2) { + Range1_all_ones = lD; + Range1_all_zeros = !lD; + } else if (pos1 < 0) { + Range1_all_zeros = !op.V; + Range1_all_ones = false; + } + + deleted_zeros = + deleted_zeros && (carry ? Range1_all_ones : Range1_all_zeros); + deleted_ones = + carry ? Range2_all_ones && (pos1 < 0 || !lD) : Range1_all_ones; + neg_src = isneg && !(carry && Range1_all_ones); + } else + neg_src = isneg && newsignbit; + bool neg_trg = _AP_S && newsignbit; + bool overflow = (neg_trg || !deleted_zeros) && !isneg; + bool underflow = (!neg_trg || !deleted_ones) && neg_src; + if ((_AP_O == AP_SAT_SYM) && _AP_S2 && _AP_S) + underflow |= + neg_src && + (_AP_W > 1 ? _AP_ROOT_op_get_range(Base::V, 0, _AP_W - 2) == 0 + : true); + + overflow_adjust(underflow, overflow, lD, neg_src); + } + return *this; + } // operator= + + template + INLINE ap_fixed_base& operator=( + const volatile ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) { + operator=(const_cast&>(op)); + return *this; + } + + /// Set this ap_fixed_base with ULL. + INLINE ap_fixed_base& setBits(ap_ulong bv) { + // TODO when ull is not be long enough... + Base::V = bv; + return *this; + } + + /// Return a ap_fixed_base object whose this->V is assigned by bv. + static INLINE ap_fixed_base bitsToFixed(ap_ulong bv) { + // TODO fix when ull is not be long enough... + ap_fixed_base t; +#ifdef __SYNTHESIS__ + t.V = bv; +#else + t.V.set_bits(bv); +#endif + return t; + } + + // Explicit conversion functions to ap_int_base. + /** Captures all integer bits, in truncate mode. + * @param[in] Cnative follow conversion from double to int. + */ + INLINE ap_int_base to_ap_int_base( + bool Cnative = true) const { + ap_int_base ret; + if (_AP_I == 0) { + ret.V = 0; + } else if (_AP_I > 0 && _AP_I <= _AP_W) { + ret.V = _AP_ROOT_op_get_range(Base::V, _AP_W - _AP_I, _AP_W - 1); + } else if (_AP_I > _AP_W) { + ret.V = _AP_ROOT_op_get_range(Base::V, 0, _AP_W - 1); + ret.V <<= (_AP_I - _AP_W); + } + /* Consider the following case + * float f = -7.5f; + * ap_fixed<8,4> t = f; // -8 0 0 0 . 0.5 + * int i = t.to_int(); + * the result should be -7 instead of -8. + * Therefore, after truncation, the value should be increated by 1. + * For (-1, 0), carry to MSB will happen, but result 0 is still correct. + */ + if (Cnative && _AP_I < _AP_W) { + // Follow C native data type, conversion from double to int + if (_AP_S && _AP_ROOT_op_get_bit(Base::V, _AP_W - 1) && (_AP_I < _AP_W) && + (_AP_ROOT_op_get_range( + Base::V, 0, _AP_I < 0 ? _AP_W - 1 : _AP_W - _AP_I - 1) != 0)) + ++ret; + } else { + // Follow OSCI library, conversion from sc_fixed to sc_int + } + return ret; + }; + + public: + template + INLINE operator ap_int_base<_AP_W2, _AP_S2>() const { + return ap_int_base<_AP_W2, _AP_S2>(to_ap_int_base()); + } + + // Explicit conversion function to C built-in integral type. + INLINE char to_char() const { return to_ap_int_base().to_char(); } + + INLINE int to_int() const { return to_ap_int_base().to_int(); } + + INLINE unsigned to_uint() const { return to_ap_int_base().to_uint(); } + + INLINE ap_slong to_int64() const { return to_ap_int_base().to_int64(); } + + INLINE ap_ulong to_uint64() const { return to_ap_int_base().to_uint64(); } + + /// covert function to double. + /** only round-half-to-even mode supported, does not obey FE env. */ + INLINE double to_double() const { +#if defined(AP_FIXED_ENABLE_CPP_FENV) + _AP_WARNING(std::fegetround() != FE_TONEAREST, + "Only FE_TONEAREST is supported"); +#endif + enum { BITS = DOUBLE_MAN + DOUBLE_EXP + 1 }; + if (!Base::V) return 0.0f; + bool s = _AP_S && _AP_ROOT_op_get_bit(Base::V, _AP_W - 1); ///< sign. + ap_int_base<_AP_W, false> tmp; + if (s) + tmp.V = -Base::V; // may truncate one bit extra from neg in sim. + else + tmp.V = Base::V; + int l = tmp.countLeadingZeros(); ///< number of leading zeros. + int e = _AP_I - l - 1 + DOUBLE_BIAS; ///< exponent + int lsb_index = _AP_W - l - 1 - DOUBLE_MAN; + // more than 0.5? + bool a = (lsb_index >=2) ? + (_AP_ROOT_op_get_range(tmp.V, 0, lsb_index - 2) != 0) : 0; + // round to even + a |= (lsb_index >=0) ? _AP_ROOT_op_get_bit(tmp.V, lsb_index) : 0; + // ull is at least 64-bit + ap_ulong m; + // may actually left shift, ensure buffer is wide enough. + if (_AP_W > BITS) { + m = (lsb_index >= 1) ? (ap_ulong)(tmp.V >> (lsb_index - 1)) + : (ap_ulong)(tmp.V << (1 - lsb_index)); + } else { + m = (ap_ulong)tmp.V; + m = (lsb_index >= 1) ? (m >> (lsb_index - 1)) + : (m << (1 - lsb_index)); + } + m += a; + m >>= 1; + //std::cout << '\n' << std::hex << m << '\n'; // TODO delete this + // carry to MSB, increase exponent + if (_AP_ctype_op_get_bit(m, DOUBLE_MAN + 1)) { + e += 1; + } + // set sign and exponent + m = _AP_ctype_op_set_bit(m, BITS - 1, s); + //std::cout << m << '\n'; // TODO delete this + m = _AP_ctype_op_set_range(m, DOUBLE_MAN, DOUBLE_MAN + DOUBLE_EXP - 1, e); + //std::cout << std::hex << m << std::dec << std::endl; // TODO delete this + // cast to fp + return rawBitsToDouble(m); + } + + /// convert function to float. + /** only round-half-to-even mode supported, does not obey FE env. */ + INLINE float to_float() const { +#if defined(AP_FIXED_ENABLE_CPP_FENV) + _AP_WARNING(std::fegetround() != FE_TONEAREST, + "Only FE_TONEAREST is supported"); +#endif + enum { BITS = FLOAT_MAN + FLOAT_EXP + 1 }; + if (!Base::V) return 0.0f; + bool s = _AP_S && _AP_ROOT_op_get_bit(Base::V, _AP_W - 1); ///< sign. + ap_int_base<_AP_W, false> tmp; + if (s) + tmp.V = -Base::V; // may truncate one bit extra from neg in sim. + else + tmp.V = Base::V; + int l = tmp.countLeadingZeros(); ///< number of leading zeros. + int e = _AP_I - l - 1 + FLOAT_BIAS; ///< exponent + int lsb_index = _AP_W - l - 1 - FLOAT_MAN; + // more than 0.5? + bool a = (lsb_index >=2) ? + (_AP_ROOT_op_get_range(tmp.V, 0, lsb_index - 2) != 0) : 0; + // round to even + a |= (lsb_index >=0) ? _AP_ROOT_op_get_bit(tmp.V, lsb_index) : 0; + // ul is at least 32-bit + unsigned long m; + // may actually left shift, ensure buffer is wide enough. + if (_AP_W > BITS) { + m = (lsb_index >= 1) ? (unsigned long)(tmp.V >> (lsb_index - 1)) + : (unsigned long)(tmp.V << (1 - lsb_index)); + } else { + m = (unsigned long)tmp.V; + m = (lsb_index >= 1) ? (m >> (lsb_index - 1)) + : (m << (1 - lsb_index)); + } + m += a; + m >>= 1; + // carry to MSB, increase exponent + if (_AP_ctype_op_get_bit(m, FLOAT_MAN + 1)) { + e += 1; + } + // set sign and exponent + m = _AP_ctype_op_set_bit(m, BITS - 1, s); + m = _AP_ctype_op_set_range(m, FLOAT_MAN, FLOAT_MAN + FLOAT_EXP - 1, e); + // cast to fp + return rawBitsToFloat(m); + } + +#if _AP_ENABLE_HALF_ == 1 + /// convert function to half. + /** only round-half-to-even mode supported, does not obey FE env. */ + INLINE half to_half() const { +#if defined(AP_FIXED_ENABLE_CPP_FENV) + _AP_WARNING(std::fegetround() != FE_TONEAREST, + "Only FE_TONEAREST is supported"); +#endif + enum { BITS = HALF_MAN + HALF_EXP + 1 }; + if (!Base::V) return 0.0f; + bool s = _AP_S && _AP_ROOT_op_get_bit(Base::V, _AP_W - 1); ///< sign. + ap_int_base<_AP_W, false> tmp; + if (s) + tmp.V = -Base::V; // may truncate one bit extra from neg in sim. + else + tmp.V = Base::V; + int l = tmp.countLeadingZeros(); ///< number of leading zeros. + int e = _AP_I - l - 1 + HALF_BIAS; ///< exponent + int lsb_index = _AP_W - l - 1 - HALF_MAN; + // more than 0.5? + bool a = (lsb_index >=2) ? + (_AP_ROOT_op_get_range(tmp.V, 0, lsb_index - 2) != 0) : 0; + // round to even + a |= (lsb_index >=0) ? _AP_ROOT_op_get_bit(tmp.V, lsb_index) : 0; + // short is at least 16-bit + unsigned short m; + // may actually left shift, ensure buffer is wide enough. + if (_AP_W > BITS) { + m = (lsb_index >= 1) ? (unsigned short)(tmp.V >> (lsb_index - 1)) + : (unsigned short)(tmp.V << (1 - lsb_index)); + } else { + m = (unsigned short)tmp.V; + m = (lsb_index >= 1) ? (m >> (lsb_index - 1)) + : (m << (1 - lsb_index)); + } + m += a; + m >>= 1; + // carry to MSB, increase exponent + if (_AP_ctype_op_get_bit(m, HALF_MAN + 1)) { + e += 1; + } + // set sign and exponent + m = _AP_ctype_op_set_bit(m, BITS - 1, s); + m = _AP_ctype_op_set_range(m, HALF_MAN, HALF_MAN + HALF_EXP - 1, e); + // cast to fp + return rawBitsToHalf(m); + } +#endif + + // FIXME inherited from old code, this may loose precision! + INLINE operator long double() const { return (long double)to_double(); } + + INLINE operator double() const { return to_double(); } + + INLINE operator float() const { return to_float(); } + +#if _AP_ENABLE_HALF_ == 1 + INLINE operator half() const { return to_half(); } +#endif + + INLINE operator bool() const { return (bool)Base::V != 0; } + + INLINE operator char() const { return (char)to_int(); } + + INLINE operator signed char() const { return (signed char)to_int(); } + + INLINE operator unsigned char() const { return (unsigned char)to_uint(); } + + INLINE operator short() const { return (short)to_int(); } + + INLINE operator unsigned short() const { return (unsigned short)to_uint(); } + + INLINE operator int() const { return to_int(); } + + INLINE operator unsigned int() const { return to_uint(); } + +// FIXME don't assume data width... +#ifdef __x86_64__ + INLINE operator long() const { return (long)to_int64(); } + + INLINE operator unsigned long() const { return (unsigned long)to_uint64(); } +#else + INLINE operator long() const { return (long)to_int(); } + + INLINE operator unsigned long() const { return (unsigned long)to_uint(); } +#endif // ifdef __x86_64__ else + + INLINE operator ap_ulong() const { return to_uint64(); } + + INLINE operator ap_slong() const { return to_int64(); } + + INLINE int length() const { return _AP_W; }; + + // bits_to_int64 deleted. +#ifndef __SYNTHESIS__ + // Used in autowrap, when _AP_W < 64. + INLINE ap_ulong bits_to_uint64() const { + return (Base::V).to_uint64(); + } +#endif + + // Count the number of zeros from the most significant bit + // to the first one bit. Note this is only for ap_fixed_base whose + // _AP_W <= 64, otherwise will incur assertion. + INLINE int countLeadingZeros() { +#ifdef __SYNTHESIS__ + // TODO: used llvm.ctlz intrinsic ? + if (_AP_W <= 32) { + ap_int_base<32, false> t(-1ULL); + t.range(_AP_W - 1, 0) = this->range(0, _AP_W - 1); + return __builtin_ctz(t.V); + } else if (_AP_W <= 64) { + ap_int_base<64, false> t(-1ULL); + t.range(_AP_W - 1, 0) = this->range(0, _AP_W - 1); + return __builtin_ctzll(t.V); + } else { + enum {__N = (_AP_W + 63) / 64}; + int NZeros = 0; + int i = 0; + bool hitNonZero = false; + for (i = 0; i < __N - 1; ++i) { + ap_int_base<64, false> t; + t.range(0, 63) = this->range(_AP_W - i * 64 - 64, _AP_W - i * 64 - 1); + NZeros += hitNonZero ? 0 : __builtin_clzll(t.V); + hitNonZero |= (t != 0); + } + if (!hitNonZero) { + ap_int_base<64, false> t(-1ULL); + t.range(63 - (_AP_W - 1) % 64, 63) = this->range(0, (_AP_W - 1) % 64); + NZeros += __builtin_clzll(t.V); + } + return NZeros; + } +#else + return Base::V.countLeadingZeros(); +#endif + } + + // Arithmetic : Binary + // ------------------------------------------------------------------------- + template + INLINE typename RType<_AP_W2, _AP_I2, _AP_S2>::mult operator*( + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op2) + const { + typename RType<_AP_W2, _AP_I2, _AP_S2>::mult_base r, t; + r.V = Base::V; + t.V = op2.V; + r.V *= op2.V; + return r; + } + + // multiply function deleted. + + template + INLINE typename RType<_AP_W2, _AP_I2, _AP_S2>::div operator/( + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op2) + const { + typename RType<_AP_W2, _AP_I2, _AP_S2>::div_base r; +#ifndef __SYNTHESIS__ + enum {F2 = _AP_W2-_AP_I2, + _W1=AP_MAX(_AP_W + AP_MAX(F2, 0) + ((_AP_S2 && !_AP_S) ? 1 : 0), _AP_W2 + ((_AP_S && !_AP_S2) ? 1 : 0))}; + ap_int_base<_W1,_AP_S||_AP_S2> dividend,divisior; + ap_int_base<_W1,_AP_S> tmp1; + ap_int_base<_W1,_AP_S2> tmp2; + tmp1.V = Base::V; + tmp1.V <<= AP_MAX(F2,0); + tmp2.V = op2.V; + dividend = tmp1; + divisior = tmp2; + r.V = ((_AP_S||_AP_S2) ? dividend.V.sdiv(divisior.V): dividend.V.udiv(divisior.V)); +#else + #ifndef __SC_COMPATIBLE__ + ap_fixed_base<_AP_W + AP_MAX(_AP_W2 - _AP_I2, 0),_AP_I, _AP_S> t(*this); + #else + ap_fixed_base<_AP_W + AP_MAX(_AP_W2 - _AP_I2, 0) + AP_MAX(_AP_I2, 0),_AP_I, _AP_S> t(*this); + #endif + r.V = t.V / op2.V; +#endif +/* + enum { + F2 = _AP_W2 - _AP_I2, + shl = AP_MAX(F2, 0) + AP_MAX(_AP_I2, 0), +#ifndef __SC_COMPATIBLE__ + shr = AP_MAX(_AP_I2, 0), +#else + shr = 0, +#endif + W3 = _AP_S2 + _AP_W + shl, + S3 = _AP_S || _AP_S2, + }; + ap_int_base dividend, t; + dividend.V = Base::V; + // multiply both by (1 << F2), and than do integer division. + dividend.V <<= (int) shl; +#ifdef __SYNTHESIS__ + // .V's have right signedness, and will have right extending. + t.V = dividend.V / op2.V; +#else + // XXX op2 may be wider than dividend, and sdiv and udiv takes the same with + // as left hand operand, so data might be truncated by mistake if not + // handled here. + t.V = S3 ? dividend.V.sdiv(op2.V) : dividend.V.udiv(op2.V); +#endif + r.V = t.V >> (int) shr; +*/ + return r; + } + +#define OP_BIN_AF(Sym, Rty) \ + template \ + INLINE typename RType<_AP_W2, _AP_I2, _AP_S2>::Rty operator Sym( \ + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& \ + op2) const { \ + typename RType<_AP_W2, _AP_I2, _AP_S2>::Rty##_base ret, lhs(*this), \ + rhs(op2); \ + ret.V = lhs.V Sym rhs.V; \ + return ret; \ + } + + OP_BIN_AF(+, plus) + OP_BIN_AF(-, minus) + OP_BIN_AF(&, logic) + OP_BIN_AF(|, logic) + OP_BIN_AF(^, logic) + +// Arithmetic : assign +// ------------------------------------------------------------------------- +#define OP_ASSIGN_AF(Sym) \ + template \ + INLINE ap_fixed_base& operator Sym##=( \ + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& \ + op2) { \ + *this = operator Sym(op2); \ + return *this; \ + } + + OP_ASSIGN_AF(*) + OP_ASSIGN_AF(/) + OP_ASSIGN_AF(+) + OP_ASSIGN_AF(-) + OP_ASSIGN_AF(&) + OP_ASSIGN_AF(|) + OP_ASSIGN_AF(^) + + // Prefix and postfix increment and decrement. + // ------------------------------------------------------------------------- + + /// Prefix increment + INLINE ap_fixed_base& operator++() { + operator+=(ap_fixed_base<_AP_W - _AP_I + 1, 1, false>(1)); + return *this; + } + + /// Prefix decrement. + INLINE ap_fixed_base& operator--() { + operator-=(ap_fixed_base<_AP_W - _AP_I + 1, 1, false>(1)); + return *this; + } + + /// Postfix increment + INLINE const ap_fixed_base operator++(int) { + ap_fixed_base r(*this); + operator++(); + return r; + } + + /// Postfix decrement + INLINE const ap_fixed_base operator--(int) { + ap_fixed_base r(*this); + operator--(); + return r; + } + + // Unary arithmetic. + // ------------------------------------------------------------------------- + INLINE ap_fixed_base operator+() { return *this; } + + INLINE ap_fixed_base<_AP_W + 1, _AP_I + 1, true> operator-() const { + ap_fixed_base<_AP_W + 1, _AP_I + 1, true> r(*this); + r.V = -r.V; + return r; + } + + INLINE ap_fixed_base<_AP_W, _AP_I, true, _AP_Q, _AP_O, _AP_N> getNeg() { + ap_fixed_base<_AP_W, _AP_I, true, _AP_Q, _AP_O, _AP_N> r(*this); + r.V = -r.V; + return r; + } + + // Not (!) + // ------------------------------------------------------------------------- + INLINE bool operator!() const { return Base::V == 0; } + + // Bitwise complement + // ------------------------------------------------------------------------- + // XXX different from Mentor's ac_fixed. + INLINE ap_fixed_base<_AP_W, _AP_I, _AP_S> operator~() const { + ap_fixed_base<_AP_W, _AP_I, _AP_S> r; + r.V = ~Base::V; + return r; + } + + // Shift + // ------------------------------------------------------------------------- + // left shift is the same as moving point right, i.e. increate I. + template + INLINE ap_fixed_base<_AP_W, _AP_I + _AP_SHIFT, _AP_S> lshift() const { + ap_fixed_base<_AP_W, _AP_I + _AP_SHIFT, _AP_S> r; + r.V = Base::V; + return r; + } + + template + INLINE ap_fixed_base<_AP_W, _AP_I - _AP_SHIFT, _AP_S> rshift() const { + ap_fixed_base<_AP_W, _AP_I - _AP_SHIFT, _AP_S> r; + r.V = Base::V; + return r; + } + + // Because the return type is the type of the the first operand, shift assign + // operators do not carry out any quantization or overflow + // While systemc, shift assigns for sc_fixed/sc_ufixed will result in + // quantization or overflow (depending on the mode of the first operand) + INLINE ap_fixed_base operator<<(unsigned int sh) const { + ap_fixed_base r; + r.V = Base::V << sh; +// TODO check shift overflow? +#ifdef __SC_COMPATIBLE__ + if (sh == 0) return r; + if (_AP_O != AP_WRAP || _AP_N != 0) { + bool neg_src = _AP_S && _AP_ROOT_op_get_bit(Base::V, _AP_W - 1); + bool allones, allzeros; + ap_int_base<_AP_W, false> ones(-1); + if (sh <= _AP_W) { + ap_int_base<_AP_W, false> range1; + range1.V = _AP_ROOT_op_get_range( + const_cast(this)->Base::V, _AP_W - sh, _AP_W - 1); + allones = range1 == (ones >> (_AP_W - sh)); + allzeros = range1 == 0; + } else { + allones = false; + allzeros = Base::V == 0; + } + bool overflow = !allzeros && !neg_src; + bool underflow = !allones && neg_src; + if ((_AP_O == AP_SAT_SYM) && _AP_S) + underflow |= + neg_src && + (_AP_W > 1 ? _AP_ROOT_op_get_range(r.V, 0, _AP_W - 2) == 0 : true); + bool lD = false; + if (sh < _AP_W) lD = _AP_ROOT_op_get_bit(Base::V, _AP_W - sh - 1); + r.overflow_adjust(underflow, overflow, lD, neg_src); + } +#endif + return r; + } + + INLINE ap_fixed_base operator>>(unsigned int sh) const { + ap_fixed_base r; + r.V = Base::V >> sh; +// TODO check shift overflow? +#ifdef __SC_COMPATIBLE__ + if (sh == 0) return r; + if (_AP_Q != AP_TRN) { + bool qb = false; + if (sh <= _AP_W) qb = _AP_ROOT_op_get_bit(Base::V, sh - 1); + bool rb = false; + if (sh > 1 && sh <= _AP_W) + rb = _AP_ROOT_op_get_range(const_cast(this)->Base::V, 0, + sh - 2) != 0; + else if (sh > _AP_W) + rb = Base::V != 0; + r.quantization_adjust(qb, rb, + _AP_S && _AP_ROOT_op_get_bit(Base::V, _AP_W - 1)); + } +#endif + return r; + } + + // left and right shift for int + INLINE ap_fixed_base operator<<(int sh) const { + ap_fixed_base r; + bool isNeg = sh < 0; + unsigned int ush = isNeg ? -sh : sh; + if (isNeg) { + return operator>>(ush); + } else { + return operator<<(ush); + } + } + + INLINE ap_fixed_base operator>>(int sh) const { + bool isNeg = sh < 0; + unsigned int ush = isNeg ? -sh : sh; + if (isNeg) { + return operator<<(ush); + } else { + return operator>>(ush); + } + } + + // left and right shift for ap_int. + template + INLINE ap_fixed_base operator<<(const ap_int_base<_AP_W2, true>& op2) const { + // TODO the code seems not optimal. ap_fixed<8,8> << ap_int<2> needs only a + // small mux, but integer need a big one! + int sh = op2.to_int(); + return operator<<(sh); + } + + template + INLINE ap_fixed_base operator>>(const ap_int_base<_AP_W2, true>& op2) const { + int sh = op2.to_int(); + return operator>>(sh); + } + + // left and right shift for ap_uint. + template + INLINE ap_fixed_base operator<<(const ap_int_base<_AP_W2, false>& op2) const { + unsigned int sh = op2.to_uint(); + return operator<<(sh); + } + + template + INLINE ap_fixed_base operator>>(const ap_int_base<_AP_W2, false>& op2) const { + unsigned int sh = op2.to_uint(); + return operator>>(sh); + } + + // left and right shift for ap_fixed + template + INLINE ap_fixed_base operator<<( + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& + op2) { + return operator<<(op2.to_ap_int_base()); + } + + template + INLINE ap_fixed_base operator>>( + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& + op2) { + return operator>>(op2.to_ap_int_base()); + } + + // Shift assign. + // ------------------------------------------------------------------------- + + // left shift assign. + INLINE ap_fixed_base& operator<<=(const int sh) { + *this = operator<<(sh); + return *this; + } + + INLINE ap_fixed_base& operator<<=(const unsigned int sh) { + *this = operator<<(sh); + return *this; + } + + template + INLINE ap_fixed_base& operator<<=(const ap_int_base<_AP_W2, _AP_S2>& sh) { + *this = operator<<(sh.to_int()); + return *this; + } + + template + INLINE ap_fixed_base& operator<<=( + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& + sh) { + *this = operator<<(sh.to_int()); + return *this; + } + + // right shift assign. + INLINE ap_fixed_base& operator>>=(const int sh) { + *this = operator>>(sh); + return *this; + } + + INLINE ap_fixed_base& operator>>=(const unsigned int sh) { + *this = operator>>(sh); + return *this; + } + + template + INLINE ap_fixed_base& operator>>=(const ap_int_base<_AP_W2, _AP_S2>& sh) { + *this = operator>>(sh.to_int()); + return *this; + } + + template + INLINE ap_fixed_base& operator>>=( + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& + sh) { + *this = operator>>(sh.to_int()); + return *this; + } + +// Comparisons. +// ------------------------------------------------------------------------- +#define OP_CMP_AF(Sym) \ + template \ + INLINE bool operator Sym(const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, \ + _AP_O2, _AP_N2>& op2) const { \ + enum { _AP_F = _AP_W - _AP_I, F2 = _AP_W2 - _AP_I2 }; \ + if (_AP_F == F2) \ + return Base::V Sym op2.V; \ + else if (_AP_F > F2) \ + return Base::V Sym ap_fixed_base(op2).V; \ + else \ + return ap_fixed_base(*this).V Sym op2.V; \ + return false; \ + } + + OP_CMP_AF(>) + OP_CMP_AF(<) + OP_CMP_AF(>=) + OP_CMP_AF(<=) + OP_CMP_AF(==) + OP_CMP_AF(!=) +// FIXME: Move compare with double out of struct ap_fixed_base defination +// and combine it with compare operator(double, ap_fixed_base) +#define DOUBLE_CMP_AF(Sym) \ + INLINE bool operator Sym(double d) const { return to_double() Sym d; } + + DOUBLE_CMP_AF(>) + DOUBLE_CMP_AF(<) + DOUBLE_CMP_AF(>=) + DOUBLE_CMP_AF(<=) + DOUBLE_CMP_AF(==) + DOUBLE_CMP_AF(!=) + + // Bit and Slice Select + INLINE af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> operator[]( + unsigned index) { + _AP_WARNING(index >= _AP_W, "Attempting to read bit beyond MSB"); + return af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>(this, index); + } + + template + INLINE af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> operator[]( + const ap_int_base<_AP_W2, _AP_S2>& index) { + _AP_WARNING(index < 0, "Attempting to read bit with negative index"); + _AP_WARNING(index >= _AP_W, "Attempting to read bit beyond MSB"); + return af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>(this, + index.to_int()); + } + + INLINE bool operator[](unsigned index) const { + _AP_WARNING(index >= _AP_W, "Attempting to read bit beyond MSB"); + return _AP_ROOT_op_get_bit(const_cast(this)->V, index); + } + + INLINE af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> bit( + unsigned index) { + _AP_WARNING(index >= _AP_W, "Attempting to read bit beyond MSB"); + return af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>(this, index); + } + + template + INLINE af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> bit( + const ap_int_base<_AP_W2, _AP_S2>& index) { + _AP_WARNING(index < 0, "Attempting to read bit with negative index"); + _AP_WARNING(index >= _AP_W, "Attempting to read bit beyond MSB"); + return af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>(this, + index.to_int()); + } + + INLINE bool bit(unsigned index) const { + _AP_WARNING(index >= _AP_W, "Attempting to read bit beyond MSB"); + return _AP_ROOT_op_get_bit(const_cast(this)->V, index); + } + + template + INLINE af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> get_bit( + const ap_int_base<_AP_W2, true>& index) { + _AP_WARNING(index < _AP_I - _AP_W, + "Attempting to read bit with negative index"); + _AP_WARNING(index >= _AP_I, "Attempting to read bit beyond MSB"); + return af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>( + this, index.to_int() + _AP_W - _AP_I); + } + + INLINE bool get_bit(int index) const { + _AP_WARNING(index >= _AP_I, "Attempting to read bit beyond MSB"); + _AP_WARNING(index < _AP_I - _AP_W, "Attempting to read bit beyond MSB"); + return _AP_ROOT_op_get_bit(const_cast(this)->V, + index + _AP_W - _AP_I); + } +#if 0 + INLINE af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> get_bit( + int index) { + _AP_WARNING(index < _AP_I - _AP_W, + "Attempting to read bit with negative index"); + _AP_WARNING(index >= _AP_I, "Attempting to read bit beyond MSB"); + return af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>( + this, index + _AP_W - _AP_I); + } +#endif + + template + INLINE bool get_bit(const ap_int_base<_AP_W2, true>& index) const { + _AP_WARNING(index >= _AP_I, "Attempting to read bit beyond MSB"); + _AP_WARNING(index < _AP_I - _AP_W, "Attempting to read bit beyond MSB"); + return _AP_ROOT_op_get_bit(const_cast(this)->V, + index.to_int() + _AP_W - _AP_I); + } + + INLINE af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> range(int Hi, + int Lo) { + _AP_WARNING((Hi >= _AP_W) || (Lo >= _AP_W), "Out of bounds in range()"); + return af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>(this, Hi, Lo); + } + + // This is a must to strip constness to produce reference type. + INLINE af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> range( + int Hi, int Lo) const { + _AP_WARNING((Hi >= _AP_W) || (Lo >= _AP_W), "Out of bounds in range()"); + return af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>( + const_cast(this), Hi, Lo); + } + + template + INLINE af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> range( + const ap_int_base<_AP_W2, _AP_S2>& HiIdx, + const ap_int_base<_AP_W3, _AP_S3>& LoIdx) { + int Hi = HiIdx.to_int(); + int Lo = LoIdx.to_int(); + return this->range(Hi, Lo); + } + + template + INLINE af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> range( + const ap_int_base<_AP_W2, _AP_S2>& HiIdx, + const ap_int_base<_AP_W3, _AP_S3>& LoIdx) const { + int Hi = HiIdx.to_int(); + int Lo = LoIdx.to_int(); + return this->range(Hi, Lo); + } + + INLINE af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> range() { + return this->range(_AP_W - 1, 0); + } + + INLINE af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> range() const { + return this->range(_AP_W - 1, 0); + } + + INLINE af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> operator()( + int Hi, int Lo) { + return this->range(Hi, Lo); + } + + INLINE af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> operator()( + int Hi, int Lo) const { + return this->range(Hi, Lo); + } + + template + INLINE af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> operator()( + const ap_int_base<_AP_W2, _AP_S2>& HiIdx, + const ap_int_base<_AP_W3, _AP_S3>& LoIdx) { + int Hi = HiIdx.to_int(); + int Lo = LoIdx.to_int(); + return this->range(Hi, Lo); + } + + template + INLINE af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> operator()( + const ap_int_base<_AP_W2, _AP_S2>& HiIdx, + const ap_int_base<_AP_W3, _AP_S3>& LoIdx) const { + int Hi = HiIdx.to_int(); + int Lo = LoIdx.to_int(); + return this->range(Hi, Lo); + } + + INLINE bool is_zero() const { return Base::V == 0; } + + INLINE bool is_neg() const { + if (_AP_S && _AP_ROOT_op_get_bit(Base::V, _AP_W - 1)) return true; + return false; + } + + INLINE int wl() const { return _AP_W; } + + INLINE int iwl() const { return _AP_I; } + + INLINE ap_q_mode q_mode() const { return _AP_Q; } + + INLINE ap_o_mode o_mode() const { return _AP_O; } + + INLINE int n_bits() const { return _AP_N; } + + // print a string representation of this number in the given radix. + // Radix support is 2, 8, 10, or 16. + // The result will include a prefix indicating the radix, except for decimal, + // where no prefix is needed. The default is to output a signed representation + // of signed numbers, or an unsigned representation of unsigned numbers. For + // non-decimal formats, this can be changed by the 'sign' argument. +#ifndef __SYNTHESIS__ + std::string to_string(unsigned char radix = 2, bool sign = _AP_S) const { + // XXX in autosim/autowrap.tcl "(${name}).to_string(2).c_str()" is used to + // initialize sc_lv, which seems incapable of handling format "-0b". + if (radix == 2) sign = false; + + std::string str; + str.clear(); + char step = 0; + bool isNeg = sign && (Base::V < 0); + + // Extend to take care of the -MAX case. + ap_fixed_base<_AP_W + 1, _AP_I + 1> tmp(*this); + if (isNeg) { + tmp = -tmp; + str += '-'; + } + std::string prefix; + switch (radix) { + case 2: + prefix = "0b"; + step = 1; + break; + case 8: + prefix = "0o"; + step = 3; + break; + case 16: + prefix = "0x"; + step = 4; + break; + default: + break; + } + + if (_AP_I > 0) { + // Note we drop the quantization and rounding flags here. The + // integer part is always in range, and the fractional part we + // want to drop. Also, the number is always positive, because + // of the absolute value above. + ap_int_base int_part; + // [1] [ I ] d [ W - I ] + // | | | + // | W-I 0 + // W + int_part.V = _AP_ROOT_op_get_range( + tmp.V, _AP_W - _AP_I, _AP_W); + str += int_part.to_string(radix, false); + } else { + str += prefix; + str += '0'; + } + + ap_fixed_base frac_part = tmp; + + if (radix == 10) { + if (frac_part != 0) { + str += "."; + while (frac_part != 0) { + char digit = (frac_part * radix).to_char(); + str += static_cast(digit + '0'); + frac_part *= radix; + } + } + } else { + if (frac_part != 0) { + str += "."; + for (signed i = _AP_W - _AP_I - 1; i >= 0; i -= step) { + char digit = frac_part.range(i, AP_MAX(0, i - step + 1)).to_char(); + // If we have a partial bit pattern at the end, then we need + // to put it in the high-order bits of 'digit'. + int offset = AP_MIN(0, i - step + 1); + digit <<= -offset; + str += digit < 10 ? static_cast(digit + '0') + : static_cast(digit - 10 + 'a'); + } + if (radix == 16) + str += "p0"; // C99 Hex constants are required to have an exponent. + } + } + return str; + } +#else + // XXX HLS will delete this in synthesis + INLINE char* to_string(unsigned char radix = 2, bool sign = _AP_S) const { + return 0; + } +#endif +}; // struct ap_fixed_base. + +template +INLINE void b_not( + ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& ret, + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op) { + ret.V = ~op.V; +} + +template +INLINE void b_and( + ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& ret, + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op1, + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op2) { + ret.V = op1.V & op2.V; +} + +template +INLINE void b_or( + ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& ret, + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op1, + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op2) { + ret.V = op1.V | op2.V; +} + +template +INLINE void b_xor( + ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& ret, + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op1, + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op2) { + ret.V = op1.V ^ op2.V; +} + +template +INLINE void neg( + ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& ret, + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) { + ap_fixed_base<_AP_W2 + !_AP_S2, _AP_I2 + !_AP_S2, true, _AP_Q2, _AP_O2, + _AP_N2> + t; + t.V = -op.V; + ret = t; +} + +template +INLINE void lshift( + ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& ret, + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op, + int i) { + enum { + F2 = _AP_W2 - _AP_I2, + _AP_I3 = AP_MAX(_AP_I, _AP_I2), + _AP_W3 = _AP_I3 + F2, + }; + // wide buffer + ap_fixed_base<_AP_W3, _AP_I3, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> t; + t.V = op.V; + t.V <<= i; // FIXME overflow? + // handle quantization and overflow + ret = t; +} + +template +INLINE void rshift( + ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& ret, + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op, + int i) { + enum { + F = _AP_W - _AP_I, + F2 = _AP_W2 - _AP_I2, + F3 = AP_MAX(F, F2), + _AP_W3 = _AP_I2 + F3, + sh = F - F2, + }; + // wide buffer + ap_fixed_base<_AP_W3, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> t; + t.V = op.V; + if (sh >= 0) + t.V <<= (int) sh; + t.V >>= i; + // handle quantization and overflow + ret = t; +} + +//// FIXME +//// These partial specialization ctors allow code like +//// char c = 'a'; +//// ap_fixed_base<8, 8, true> x(c); +//// but what bout ap_fixed_base<9, 9, true> y(c) ? +// + +#ifndef __SYNTHESIS__ +INLINE std::string scientificFormat(std::string& input) { + if (input.length() == 0) return input; + + size_t decPosition = input.find('.'); + if (decPosition == std::string::npos) decPosition = input.length(); + + size_t firstNonZeroPos = 0; + for (; input[firstNonZeroPos] > '9' || input[firstNonZeroPos] < '1'; + firstNonZeroPos++) + ; + + int exp; + if (firstNonZeroPos > decPosition) + exp = decPosition - firstNonZeroPos; + else + exp = decPosition - firstNonZeroPos - 1; + std::string expString = ""; + if (exp == 0) + ; + else if (exp < 0) { + expString += "e-"; + exp = -exp; + } else + expString += "e+"; + + if (exp < 10 && exp > 0) { + expString += '0'; + expString += (char)('0' + exp); + } else if (exp != 0) { + std::string tmp; + + std::ostringstream oss; + oss << exp; + + tmp = oss.str(); + expString += tmp; + } + + int lastNonZeroPos = (int)(input.length() - 1); + for (; lastNonZeroPos >= 0; --lastNonZeroPos) + if (input[lastNonZeroPos] <= '9' && input[lastNonZeroPos] > '0') break; + + std::string ans = ""; + ans += input[firstNonZeroPos]; + if (firstNonZeroPos != (size_t)lastNonZeroPos) { + ans += '.'; + for (int i = firstNonZeroPos + 1; i <= lastNonZeroPos; i++) + if (input[i] != '.') ans += input[i]; + } + + ans += expString; + return ans; +} + +INLINE std::string reduceToPrecision(std::string& input, int precision) { + bool isZero = true; + size_t inputLen = input.length(); + for (size_t i = 0; i < inputLen && isZero; i++) + if (input[i] != '.' && input[i] != '0') isZero = false; + if (isZero) return "0"; + + // Find the first valid number, skip '-' + int FirstNonZeroPos = 0; + int LastNonZeroPos = (int)inputLen - 1; + int truncBitPosition = 0; + size_t decPosition = input.find('.'); + for (; input[FirstNonZeroPos] < '1' || input[FirstNonZeroPos] > '9'; + FirstNonZeroPos++) + ; + + for (; input[LastNonZeroPos] < '1' || input[LastNonZeroPos] > '9'; + LastNonZeroPos--) + ; + + if (decPosition == std::string::npos) decPosition = inputLen; + // Count the valid number, to decide whether we need to truncate + if ((int)decPosition > LastNonZeroPos) { + if (LastNonZeroPos - FirstNonZeroPos + 1 <= precision) return input; + truncBitPosition = FirstNonZeroPos + precision; + } else if ((int)decPosition < FirstNonZeroPos) { // This is pure decimal + if (LastNonZeroPos - FirstNonZeroPos + 1 <= precision) { + if (FirstNonZeroPos - decPosition - 1 < 4) { + return input; + } else { + if (input[0] == '-') { + std::string tmp = input.substr(1, inputLen - 1); + return std::string("-") + scientificFormat(tmp); + } else + return scientificFormat(input); + } + } + truncBitPosition = FirstNonZeroPos + precision; + } else { + if (LastNonZeroPos - FirstNonZeroPos <= precision) return input; + truncBitPosition = FirstNonZeroPos + precision + 1; + } + + // duplicate the input string, we want to add "0" before the valid numbers + // This is easy for quantization, since we may change 9999 to 10000 + std::string ans = ""; + std::string dupInput = "0"; + if (input[0] == '-') { + ans += '-'; + dupInput += input.substr(1, inputLen - 1); + } else { + dupInput += input.substr(0, inputLen); + ++truncBitPosition; + } + + // Add 'carry' after truncation, if necessary + bool carry = dupInput[truncBitPosition] > '4'; + for (int i = truncBitPosition - 1; i >= 0 && carry; i--) { + if (dupInput[i] == '.') continue; + if (dupInput[i] == '9') + dupInput[i] = '0'; + else { + ++dupInput[i]; + carry = false; + } + } + + // bits outside precision range should be set to 0 + if (dupInput[0] == '1') + FirstNonZeroPos = 0; + else { + FirstNonZeroPos = 0; + while (dupInput[FirstNonZeroPos] < '1' || dupInput[FirstNonZeroPos] > '9') + ++FirstNonZeroPos; + } + + unsigned it = FirstNonZeroPos; + int NValidNumber = 0; + while (it < dupInput.length()) { + if (dupInput[it] == '.') { + ++it; + continue; + } + ++NValidNumber; + if (NValidNumber > precision) dupInput[it] = '0'; + ++it; + } + + // Here we wanted to adjust the truncate position and the value + decPosition = dupInput.find('.'); + if (decPosition == std::string::npos) // When this is integer + truncBitPosition = (int)dupInput.length(); + else + for (truncBitPosition = (int)(dupInput.length() - 1); truncBitPosition >= 0; + --truncBitPosition) { + if (dupInput[truncBitPosition] == '.') break; + if (dupInput[truncBitPosition] != '0') { + truncBitPosition++; + break; + } + } + + if (dupInput[0] == '1') + dupInput = dupInput.substr(0, truncBitPosition); + else + dupInput = dupInput.substr(1, truncBitPosition - 1); + + decPosition = dupInput.find('.'); + if (decPosition != std::string::npos) { + size_t it = 0; + for (it = decPosition + 1; dupInput[it] == '0'; it++) + ; + if (it - decPosition - 1 < 4) { + ans += dupInput; + return ans; + } else { + ans += scientificFormat(dupInput); + return ans; + } + } else if ((int)(dupInput.length()) <= precision) { + ans += dupInput; + return ans; + } + + ans += scientificFormat(dupInput); + return ans; +} + +template +INLINE void print( + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& x) { + if (_AP_I > 0) { + ap_int_base<_AP_I, _AP_S> p1; + p1.V = x.V >> (_AP_W - _AP_I); + print(p1.V); // print overlaod for .V should exit + } else { + printf("0"); + } + printf("."); + if (_AP_I < _AP_W) { + ap_int_base<_AP_W - _AP_I, false> p2; + p2.V = _AP_ROOT_op_get_range(x.V, 0, _AP_W - _AP_I); + print(p2.V, false); // print overlaod for .V should exit + } +} +#endif // ifndef __SYNTHESIS__ + +// XXX the following two functions have to exist in synthesis, +// as some old HLS Video Library code uses the ostream overload, +// although HLS will later delete I/O function call. + +/// Output streaming +//----------------------------------------------------------------------------- +// XXX apcc cannot handle global std::ios_base::Init() brought in by +#ifndef AP_AUTOCC +#ifndef __SYNTHESIS__ +template +INLINE std::ostream& operator<<( + std::ostream& out, + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& x) { + // TODO support std::ios_base::fmtflags + unsigned width = out.width(); + unsigned precision = out.precision(); + char fill = out.fill(); + std::string str = x.to_string(10, _AP_S); + str = reduceToPrecision(str, precision); + if (width > str.length()) { + for (unsigned i = 0; i < width - str.length(); ++i) + out << fill; + } + out << str; + return out; +} +#endif // ifndef __SYNTHESIS__ + +/// Input streaming +// ----------------------------------------------------------------------------- +#ifndef __SYNTHESIS__ +template +INLINE std::istream& operator>>( + std::istream& in, + ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& x) { + double d; + in >> d; + x = ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>(d); + return in; +} +#endif +#endif // ifndef AP_AUTOCC + +/// Operators mixing Integers with ap_fixed_base +// ----------------------------------------------------------------------------- +#define AF_BIN_OP_WITH_INT_SF(BIN_OP, C_TYPE, _AP_W2, _AP_S2, RTYPE) \ + template \ + INLINE typename ap_fixed_base<_AP_W, _AP_I, _AP_S>::template RType< \ + _AP_W2, _AP_W2, _AP_S2>::RTYPE \ + operator BIN_OP( \ + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op, \ + C_TYPE i_op) { \ + return op.operator BIN_OP(ap_int_base<_AP_W2, _AP_S2>(i_op)); \ + } + +#define AF_BIN_OP_WITH_INT(BIN_OP, C_TYPE, _AP_W2, _AP_S2, RTYPE) \ + template \ + INLINE typename ap_fixed_base<_AP_W, _AP_I, _AP_S>::template RType< \ + _AP_W2, _AP_W2, _AP_S2>::RTYPE \ + operator BIN_OP( \ + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op, \ + C_TYPE i_op) { \ + return op.operator BIN_OP(ap_fixed_base<_AP_W2, _AP_W2, _AP_S2>(i_op)); \ + } \ + template \ + INLINE typename ap_fixed_base<_AP_W, _AP_I, _AP_S>::template RType< \ + _AP_W2, _AP_W2, _AP_S2>::RTYPE \ + operator BIN_OP( \ + C_TYPE i_op, \ + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op) { \ + return ap_fixed_base<_AP_W2, _AP_W2, _AP_S2>(i_op).operator BIN_OP(op); \ + } + +#define AF_REL_OP_WITH_INT(REL_OP, C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE bool operator REL_OP( \ + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op, \ + C_TYPE i_op) { \ + return op.operator REL_OP(ap_fixed_base<_AP_W2, _AP_W2, _AP_S2>(i_op)); \ + } \ + template \ + INLINE bool operator REL_OP( \ + C_TYPE i_op, \ + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op) { \ + return ap_fixed_base<_AP_W2, _AP_W2, _AP_S2>(i_op).operator REL_OP(op); \ + } + +#define AF_ASSIGN_OP_WITH_INT(ASSIGN_OP, C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& \ + operator ASSIGN_OP( \ + ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op, \ + C_TYPE i_op) { \ + return op.operator ASSIGN_OP(ap_fixed_base<_AP_W2, _AP_W2, _AP_S2>(i_op)); \ + } + +#define AF_ASSIGN_OP_WITH_INT_SF(ASSIGN_OP, C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& \ + operator ASSIGN_OP( \ + ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op, \ + C_TYPE i_op) { \ + return op.operator ASSIGN_OP(ap_int_base<_AP_W2, _AP_S2>(i_op)); \ + } + +#define ALL_AF_OP_WITH_INT(C_TYPE, BITS, SIGN) \ + AF_BIN_OP_WITH_INT(+, C_TYPE, (BITS), (SIGN), plus) \ + AF_BIN_OP_WITH_INT(-, C_TYPE, (BITS), (SIGN), minus) \ + AF_BIN_OP_WITH_INT(*, C_TYPE, (BITS), (SIGN), mult) \ + AF_BIN_OP_WITH_INT(/, C_TYPE, (BITS), (SIGN), div) \ + AF_BIN_OP_WITH_INT(&, C_TYPE, (BITS), (SIGN), logic) \ + AF_BIN_OP_WITH_INT(|, C_TYPE, (BITS), (SIGN), logic) \ + AF_BIN_OP_WITH_INT(^, C_TYPE, (BITS), (SIGN), logic) \ + AF_BIN_OP_WITH_INT_SF(>>, C_TYPE, (BITS), (SIGN), lhs) \ + AF_BIN_OP_WITH_INT_SF(<<, C_TYPE, (BITS), (SIGN), lhs) \ + \ + AF_ASSIGN_OP_WITH_INT(+=, C_TYPE, (BITS), (SIGN)) \ + AF_ASSIGN_OP_WITH_INT(-=, C_TYPE, (BITS), (SIGN)) \ + AF_ASSIGN_OP_WITH_INT(*=, C_TYPE, (BITS), (SIGN)) \ + AF_ASSIGN_OP_WITH_INT(/=, C_TYPE, (BITS), (SIGN)) \ + AF_ASSIGN_OP_WITH_INT(&=, C_TYPE, (BITS), (SIGN)) \ + AF_ASSIGN_OP_WITH_INT(|=, C_TYPE, (BITS), (SIGN)) \ + AF_ASSIGN_OP_WITH_INT(^=, C_TYPE, (BITS), (SIGN)) \ + AF_ASSIGN_OP_WITH_INT_SF(>>=, C_TYPE, (BITS), (SIGN)) \ + AF_ASSIGN_OP_WITH_INT_SF(<<=, C_TYPE, (BITS), (SIGN)) \ + \ + AF_REL_OP_WITH_INT(>, C_TYPE, (BITS), (SIGN)) \ + AF_REL_OP_WITH_INT(<, C_TYPE, (BITS), (SIGN)) \ + AF_REL_OP_WITH_INT(>=, C_TYPE, (BITS), (SIGN)) \ + AF_REL_OP_WITH_INT(<=, C_TYPE, (BITS), (SIGN)) \ + AF_REL_OP_WITH_INT(==, C_TYPE, (BITS), (SIGN)) \ + AF_REL_OP_WITH_INT(!=, C_TYPE, (BITS), (SIGN)) + +ALL_AF_OP_WITH_INT(bool, 1, false) +ALL_AF_OP_WITH_INT(char, 8, CHAR_IS_SIGNED) +ALL_AF_OP_WITH_INT(signed char, 8, true) +ALL_AF_OP_WITH_INT(unsigned char, 8, false) +ALL_AF_OP_WITH_INT(short, _AP_SIZE_short, true) +ALL_AF_OP_WITH_INT(unsigned short, _AP_SIZE_short, false) +ALL_AF_OP_WITH_INT(int, _AP_SIZE_int, true) +ALL_AF_OP_WITH_INT(unsigned int, _AP_SIZE_int, false) +ALL_AF_OP_WITH_INT(long, _AP_SIZE_long, true) +ALL_AF_OP_WITH_INT(unsigned long, _AP_SIZE_long, false) +ALL_AF_OP_WITH_INT(ap_slong, _AP_SIZE_ap_slong, true) +ALL_AF_OP_WITH_INT(ap_ulong, _AP_SIZE_ap_slong, false) + +#undef ALL_AF_OP_WITH_INT +#undef AF_BIN_OP_WITH_INT +#undef AF_BIN_OP_WITH_INT_SF +#undef AF_ASSIGN_OP_WITH_INT +#undef AF_ASSIGN_OP_WITH_INT_SF +#undef AF_REL_OP_WITH_INT + +/* + * ********************************************************************** + * TODO + * There is no operator defined with float/double/long double, so that + * code like + * ap_fixed<8,4> a = 1.5f; + * a += 0.5f; + * will fail in compilation. + * Operator with warning about conversion might be wanted. + * ********************************************************************** + */ + +#define AF_BIN_OP_WITH_AP_INT(BIN_OP, RTYPE) \ + template \ + INLINE typename ap_fixed_base<_AP_W2, _AP_W2, _AP_S2>::template RType< \ + _AP_W, _AP_I, _AP_S>::RTYPE \ + operator BIN_OP( \ + const ap_int_base<_AP_W2, _AP_S2>& i_op, \ + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op) { \ + return ap_fixed_base<_AP_W2, _AP_W2, _AP_S2>(i_op).operator BIN_OP(op); \ + } \ + \ + template \ + INLINE typename ap_fixed_base<_AP_W, _AP_I, _AP_S>::template RType< \ + _AP_W2, _AP_W2, _AP_S2>::RTYPE \ + operator BIN_OP( \ + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op, \ + const ap_int_base<_AP_W2, _AP_S2>& i_op) { \ + return op.operator BIN_OP(ap_fixed_base<_AP_W2, _AP_W2, _AP_S2>(i_op)); \ + } + +#define AF_REL_OP_WITH_AP_INT(REL_OP) \ + template \ + INLINE bool operator REL_OP( \ + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op, \ + const ap_int_base<_AP_W2, _AP_S2>& i_op) { \ + return op.operator REL_OP(ap_fixed_base<_AP_W2, _AP_W2, _AP_S2>(i_op)); \ + } \ + \ + template \ + INLINE bool operator REL_OP( \ + const ap_int_base<_AP_W2, _AP_S2>& i_op, \ + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op) { \ + return ap_fixed_base<_AP_W2, _AP_W2, _AP_S2>(i_op).operator REL_OP(op); \ + } + +#define AF_ASSIGN_OP_WITH_AP_INT(ASSIGN_OP) \ + template \ + INLINE ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& \ + operator ASSIGN_OP( \ + ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op, \ + const ap_int_base<_AP_W2, _AP_S2>& i_op) { \ + return op.operator ASSIGN_OP(ap_fixed_base<_AP_W2, _AP_W2, _AP_S2>(i_op)); \ + } \ + \ + template \ + INLINE ap_int_base<_AP_W2, _AP_S2>& operator ASSIGN_OP( \ + ap_int_base<_AP_W2, _AP_S2>& i_op, \ + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op) { \ + return i_op.operator ASSIGN_OP(op.to_ap_int_base()); \ + } + +AF_BIN_OP_WITH_AP_INT(+, plus) +AF_BIN_OP_WITH_AP_INT(-, minus) +AF_BIN_OP_WITH_AP_INT(*, mult) +AF_BIN_OP_WITH_AP_INT(/, div) +AF_BIN_OP_WITH_AP_INT(&, logic) +AF_BIN_OP_WITH_AP_INT(|, logic) +AF_BIN_OP_WITH_AP_INT(^, logic) + +#undef AF_BIN_OP_WITH_AP_INT + +AF_ASSIGN_OP_WITH_AP_INT(+=) +AF_ASSIGN_OP_WITH_AP_INT(-=) +AF_ASSIGN_OP_WITH_AP_INT(*=) +AF_ASSIGN_OP_WITH_AP_INT(/=) +AF_ASSIGN_OP_WITH_AP_INT(&=) +AF_ASSIGN_OP_WITH_AP_INT(|=) +AF_ASSIGN_OP_WITH_AP_INT(^=) + +#undef AF_ASSIGN_OP_WITH_AP_INT + +AF_REL_OP_WITH_AP_INT(==) +AF_REL_OP_WITH_AP_INT(!=) +AF_REL_OP_WITH_AP_INT(>) +AF_REL_OP_WITH_AP_INT(>=) +AF_REL_OP_WITH_AP_INT(<) +AF_REL_OP_WITH_AP_INT(<=) + +#undef AF_REL_OP_WITH_AP_INT + +// Relational Operators with double +template +INLINE bool operator==( + double op1, + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op2) { + return op2.operator==(op1); +} + +template +INLINE bool operator!=( + double op1, + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op2) { + return op2.operator!=(op1); +} + +template +INLINE bool operator>( + double op1, + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op2) { + return op2.operator<(op1); +} + +template +INLINE bool operator>=( + double op1, + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op2) { + return op2.operator<=(op1); +} + +template +INLINE bool operator<( + double op1, + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op2) { + return op2.operator>(op1); +} + +template +INLINE bool operator<=( + double op1, + const ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op2) { + return op2.operator>=(op1); +} + +#endif // ifndef __cplusplus else + +#endif // ifndef __AP_FIXED_BASE_H__ else + +// -*- cpp -*- diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed_ref.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed_ref.h new file mode 100644 index 00000000..aefda0a6 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed_ref.h @@ -0,0 +1,718 @@ +/* + * Copyright 2011-2019 Xilinx, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __AP_FIXED_REF_H__ +#define __AP_FIXED_REF_H__ + +#ifndef __AP_FIXED_H__ +#error "Only ap_fixed.h and ap_int.h can be included directly in user code." +#endif + +#ifndef __cplusplus +#error "C++ is required to include this header file" + +#else +#ifndef __SYNTHESIS__ +#include +#endif +/// Proxy class, which allows bit selection to be used as both rvalue (for +/// reading) and lvalue (for writing) +template +struct af_bit_ref { +#ifdef _MSC_VER +#pragma warning(disable : 4521 4522) +#endif + typedef ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> ref_type; + ref_type& d_bv; + int d_index; + + public: + INLINE af_bit_ref( + const af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& ref) + : d_bv(ref.d_bv), d_index(ref.d_index) { +#ifndef __SYNTHESIS__ + _AP_WARNING(d_index < 0, "Index of bit vector (%d) cannot be negative.", + d_index); + _AP_WARNING(d_index >= _AP_W, "Index of bit vector (%d) out of range (%d).", + d_index, _AP_W); +#endif + } + + INLINE af_bit_ref(ref_type* bv, int index = 0) : d_bv(*bv), d_index(index) {} + + INLINE af_bit_ref(const ref_type* bv, int index = 0) + : d_bv(*const_cast(bv)), d_index(index) {} + + /// convert operators. + INLINE operator bool() const { return _AP_ROOT_op_get_bit(d_bv.V, d_index); } + + /// @name assign operators + // @{ + INLINE af_bit_ref& operator=(bool val) { + d_bv.V = _AP_ROOT_op_set_bit(d_bv.V, d_index, val); + return *this; + } + + // Be explicit to prevent it from being deleted, as field d_bv + // is of reference type. + INLINE af_bit_ref& operator=(const af_bit_ref& val) { + return operator=(bool(val)); + } + + template + INLINE af_bit_ref& operator=( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { + return operator=(bool(val)); + } + + template + INLINE af_bit_ref& operator=(const ap_bit_ref<_AP_W2, _AP_S2>& val) { + return operator=(bool(val)); + } + + template + INLINE af_bit_ref& operator=(const ap_int_base<_AP_W2, _AP_S2>& val) { + return operator=(val != 0); + } + + template + INLINE af_bit_ref& operator=(const ap_range_ref<_AP_W2, _AP_S2>& val) { + return operator=(ap_int_base<_AP_W2, false>(val)); + } + + template + INLINE af_bit_ref& operator=( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { + return operator=(ap_int_base<_AP_W2, false>(val)); + } + + template + INLINE af_bit_ref& operator=( + const ap_concat_ref<_AP_W2, _AP_T3, _AP_W3, _AP_T3>& val) { + return operator=(ap_int_base<_AP_W2 + _AP_W3, false>(val)); + } + // @} + + /// @name concatenate operators + // @{ + template + INLINE ap_concat_ref<1, af_bit_ref, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + operator,(ap_int_base<_AP_W2, _AP_S2> &op) { + return ap_concat_ref<1, af_bit_ref, _AP_W2, ap_int_base<_AP_W2, _AP_S2> >( + *this, op); + } + + template + INLINE ap_concat_ref<1, af_bit_ref, 1, ap_bit_ref<_AP_W2, _AP_S2> > operator,( + const ap_bit_ref<_AP_W2, _AP_S2> &op) { + return ap_concat_ref<1, af_bit_ref, 1, ap_bit_ref<_AP_W2, _AP_S2> >(*this, + op); + } + + template + INLINE ap_concat_ref<1, af_bit_ref, _AP_W2, ap_range_ref<_AP_W2, _AP_S2> > + operator,(const ap_range_ref<_AP_W2, _AP_S2> &op) { + return ap_concat_ref<1, af_bit_ref, _AP_W2, ap_range_ref<_AP_W2, _AP_S2> >( + *this, op); + } + + template + INLINE ap_concat_ref<1, af_bit_ref, _AP_W2 + _AP_W3, + ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> > + operator,(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> &op) { + return ap_concat_ref<1, af_bit_ref, _AP_W2 + _AP_W3, + ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> >(*this, + op); + } + + template + INLINE ap_concat_ref< + 1, af_bit_ref, _AP_W2, + af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > + operator,( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> &op) { + return ap_concat_ref< + 1, af_bit_ref, _AP_W2, + af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >(*this, + op); + } + + template + INLINE ap_concat_ref<1, af_bit_ref, 1, af_bit_ref<_AP_W2, _AP_I2, _AP_S2, + _AP_Q2, _AP_O2, _AP_N2> > + operator,( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> &op) { + return ap_concat_ref<1, af_bit_ref, 1, af_bit_ref<_AP_W2, _AP_I2, _AP_S2, + _AP_Q2, _AP_O2, _AP_N2> >( + *this, + const_cast&>( + op)); + } + // @} + + /// @name comparison + // @{ + template + INLINE bool operator==( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) { + return get() == op.get(); + } + + template + INLINE bool operator!=( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) { + return get() != op.get(); + } + // @} + + INLINE bool operator~() const { + bool bit = _AP_ROOT_op_get_bit(d_bv.V, d_index); + return bit ? false : true; + } + + INLINE bool get() const { return _AP_ROOT_op_get_bit(d_bv.V, d_index); } + + INLINE int length() const { return 1; } + +#ifndef __SYNTHESIS__ + std::string to_string() const { return get() ? "1" : "0"; } +#else + // XXX HLS will delete this in synthesis + INLINE char* to_string() const { return 0; } +#endif +}; // struct af_bit_ref + +// XXX apcc cannot handle global std::ios_base::Init() brought in by +#ifndef AP_AUTOCC +#ifndef __SYNTHESIS__ +template +INLINE std::ostream& operator<<( + std::ostream& os, + const af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& x) { + os << x.to_string(); + return os; +} +#endif // ifndef __SYNTHESIS__ +#endif // ifndef AP_AUTOCC + +/// Range (slice) reference. +template +struct af_range_ref { +#ifdef _MSC_VER +#pragma warning(disable : 4521 4522) +#endif + typedef ap_fixed_base<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> ref_type; + ref_type& d_bv; + int l_index; + int h_index; + + public: + /// copy ctor + INLINE af_range_ref( + const af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& ref) + : d_bv(ref.d_bv), l_index(ref.l_index), h_index(ref.h_index) {} + + /// ctor from ap_fixed_base, higher and lower bound. + /** if h is less than l, the bits selected will be returned in reverse order. + */ + INLINE af_range_ref(ref_type* bv, int h, int l) + : d_bv(*bv), l_index(l), h_index(h) { +#ifndef __SYNTHESIS__ + _AP_WARNING(h < 0 || l < 0, + "Higher bound(%d) and lower(%d) bound cannot be negative.", h, + l); + _AP_WARNING(h >= _AP_W || l >= _AP_W, + "Higher bound(%d) or lower(%d) bound out of range.", h, l); + _AP_WARNING(h < l, "The bits selected will be returned in reverse order."); +#endif + } + + INLINE af_range_ref(const ref_type* bv, int h, int l) + : d_bv(*const_cast(bv)), l_index(l), h_index(h) { +#ifndef __SYNTHESIS__ + _AP_WARNING(h < 0 || l < 0, + "Higher bound(%d) and lower(%d) bound cannot be negative.", h, + l); + _AP_WARNING(h >= _AP_W || l >= _AP_W, + "Higher bound(%d) or lower(%d) bound out of range.", h, l); + _AP_WARNING(h < l, "The bits selected will be returned in reverse order."); +#endif + } + + /// @name assign operators + // @{ + +#define ASSIGN_CTYPE_TO_AF_RANGE(DATA_TYPE) \ + INLINE af_range_ref& operator=(const DATA_TYPE val) { \ + ap_int_base<_AP_W, false> loc(val); \ + d_bv.V = _AP_ROOT_op_set_range(d_bv.V, l_index, h_index, loc.V); \ + return *this; \ + } + + ASSIGN_CTYPE_TO_AF_RANGE(bool) + ASSIGN_CTYPE_TO_AF_RANGE(char) + ASSIGN_CTYPE_TO_AF_RANGE(signed char) + ASSIGN_CTYPE_TO_AF_RANGE(unsigned char) + ASSIGN_CTYPE_TO_AF_RANGE(short) + ASSIGN_CTYPE_TO_AF_RANGE(unsigned short) + ASSIGN_CTYPE_TO_AF_RANGE(int) + ASSIGN_CTYPE_TO_AF_RANGE(unsigned int) + ASSIGN_CTYPE_TO_AF_RANGE(long) + ASSIGN_CTYPE_TO_AF_RANGE(unsigned long) + ASSIGN_CTYPE_TO_AF_RANGE(ap_slong) + ASSIGN_CTYPE_TO_AF_RANGE(ap_ulong) +#if _AP_ENABLE_HALF_ == 1 + ASSIGN_CTYPE_TO_AF_RANGE(half) +#endif + ASSIGN_CTYPE_TO_AF_RANGE(float) + ASSIGN_CTYPE_TO_AF_RANGE(double) +#undef ASSIGN_CTYPE_TO_AF_RANGE + + /// assgin using a string. XXX crucial for cosim. + INLINE af_range_ref& operator=(const char* val) { + const ap_int_base<_AP_W, false> tmp(val); // XXX figure out radix + d_bv.V = _AP_ROOT_op_set_range(d_bv.V, l_index, h_index, tmp.V); + return *this; + } + + /// assign from ap_int_base. + // NOTE Base of other assgin operators. + template + INLINE af_range_ref& operator=(const ap_int_base<_AP_W3, _AP_S3>& val) { + d_bv.V = _AP_ROOT_op_set_range(d_bv.V, l_index, h_index, val.V); + return *this; + } + + /// assign from range reference to ap_int_base. + template + INLINE af_range_ref& operator=(const ap_range_ref<_AP_W2, _AP_S2>& val) { + const ap_int_base<_AP_W2, false> tmp(val); + return operator=(tmp); + } + + /// assign from bit reference to ap_int_base.. + template + INLINE af_range_ref& operator=(const ap_bit_ref<_AP_W2, _AP_S2>& val) { + const ap_int_base<1, false> tmp((bool)val); + return operator=(tmp); + } + + /// assgin from ap_fixed_base. + template + INLINE af_range_ref& operator=( + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& + val) { + d_bv.V = _AP_ROOT_op_set_range(d_bv.V, l_index, h_index, val.V); + return *this; + } + + /// copy assgin. + // XXX This has to be explicit, otherwise it will be deleted, as d_bv is + // of reference type. + INLINE af_range_ref& operator=(const af_range_ref& val) { + ap_int_base<_AP_W, false> tmp(val); + return operator=(tmp); + } + + /// assign from range reference to ap_fixed_base. + template + INLINE af_range_ref& operator=( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { + ap_int_base<_AP_W2, false> tmp(val); + return operator=(tmp); + } + + /// assign from bit reference to ap_fixed_base. + template + INLINE af_range_ref& operator=( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { + ap_int_base<1, false> tmp((bool)val); + return operator=(tmp); + } + + /// assign from compound reference. + template + INLINE af_range_ref& operator=( + const ap_concat_ref<_AP_W2, _AP_T3, _AP_W3, _AP_T3>& val) { + const ap_int_base<_AP_W2 + _AP_W3, false> tmp(val); + return operator=(tmp); + } + // @} + + /// @name comparison operators with ap_range_ref. + // @{ + template + INLINE bool operator==(const ap_range_ref<_AP_W2, _AP_S2>& op2) { + ap_int_base<_AP_W, false> lop(*this); + ap_int_base<_AP_W2, false> rop(op2); + return lop == rop; + } + + template + INLINE bool operator!=(const ap_range_ref<_AP_W2, _AP_S2>& op2) { + return !(operator==(op2)); + } + + template + INLINE bool operator<(const ap_range_ref<_AP_W2, _AP_S2>& op2) { + ap_int_base<_AP_W, false> lop(*this); + ap_int_base<_AP_W2, false> rop(op2); + return lop < rop; + } + + template + INLINE bool operator>(const ap_range_ref<_AP_W2, _AP_S2>& op2) { + ap_int_base<_AP_W, false> lop(*this); + ap_int_base<_AP_W2, false> rop(op2); + return lop > rop; + } + + template + INLINE bool operator<=(const ap_range_ref<_AP_W2, _AP_S2>& op2) { + return !(operator>(op2)); + } + + template + INLINE bool operator>=(const ap_range_ref<_AP_W2, _AP_S2>& op2) { + return !(operator<(op2)); + } + // @} + + /// @name comparison operators with af_range_ref. + // @{ + template + INLINE bool operator==( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op2) { + ap_int_base<_AP_W, false> lop(*this); + ap_int_base<_AP_W2, false> rop(op2); + return lop == rop; + } + + template + INLINE bool operator!=( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op2) { + return !(operator==(op2)); + } + + template + INLINE bool operator<( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op2) { + ap_int_base<_AP_W, false> lop(*this); + ap_int_base<_AP_W2, false> rop(op2); + return lop < rop; + } + + template + INLINE bool operator>( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op2) { + ap_int_base<_AP_W, false> lop(*this); + ap_int_base<_AP_W2, false> rop(op2); + return lop > rop; + } + + template + INLINE bool operator<=( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op2) { + return !(operator>(op2)); + } + + template + INLINE bool operator>=( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op2) { + return !(operator<(op2)); + } + // @} + + /// @name concatenate operators. + /// @{ + /// concatenate with ap_int_base. + template + INLINE + ap_concat_ref<_AP_W, af_range_ref, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + operator,(ap_int_base<_AP_W2, _AP_S2> &op) { + return ap_concat_ref<_AP_W, af_range_ref, _AP_W2, + ap_int_base<_AP_W2, _AP_S2> >(*this, op); + } + + /// concatenate with ap_bit_ref. + template + INLINE ap_concat_ref<_AP_W, af_range_ref, 1, ap_bit_ref<_AP_W2, _AP_S2> > + operator,(const ap_bit_ref<_AP_W2, _AP_S2> &op) { + return ap_concat_ref<_AP_W, af_range_ref, 1, ap_bit_ref<_AP_W2, _AP_S2> >( + *this, const_cast&>(op)); + } + + /// concatenate with ap_bit_ref. + template + INLINE ap_concat_ref<_AP_W, af_range_ref, _AP_W2, ap_range_ref<_AP_W2, _AP_S2> > + operator,(const ap_range_ref<_AP_W2, _AP_S2> &op) { + return ap_concat_ref<_AP_W, af_range_ref, _AP_W2, + ap_range_ref<_AP_W2, _AP_S2> >( + *this, const_cast&>(op)); + } + + /// concatenate with ap_concat_ref. + template + INLINE ap_concat_ref<_AP_W, af_range_ref, _AP_W2 + _AP_W3, + ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> > + operator,(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> &op) { + return ap_concat_ref<_AP_W, af_range_ref, _AP_W2 + _AP_W3, + ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> >( + *this, const_cast&>(op)); + } + + /// concatenate with another af_range_ref. + template + INLINE + ap_concat_ref<_AP_W, af_range_ref, _AP_W2, + af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > + operator,(const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> + &op) { + return ap_concat_ref< + _AP_W, af_range_ref, _AP_W2, + af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >( + *this, + const_cast&>( + op)); + } + + /// concatenate with another af_bit_ref. + template + INLINE + ap_concat_ref<_AP_W, af_range_ref, 1, + af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > + operator,( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> &op) { + return ap_concat_ref< + _AP_W, af_range_ref, 1, + af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >( + *this, + const_cast&>( + op)); + } + // @} + + INLINE operator ap_ulong() const { + ap_int_base<_AP_W, false> ret; + ret.V = _AP_ROOT_op_get_range(d_bv.V, l_index, h_index); + return ret.to_uint64(); + } + + INLINE operator ap_int_base<_AP_W, false>() const { + ap_int_base<_AP_W, false> ret; + ret.V = _AP_ROOT_op_get_range(d_bv.V, l_index, h_index); + return ret; + } + + INLINE ap_int_base<_AP_W, false> to_ap_int_base() const { + ap_int_base<_AP_W, false> ret; + ret.V = _AP_ROOT_op_get_range(d_bv.V, l_index, h_index); + return ret; + } + + // used in ap_fixed_base::to_string() + INLINE char to_char() const { + return (char)(_AP_ROOT_op_get_range(d_bv.V, l_index, h_index)); + } + + INLINE int to_int() const { + return (int)(_AP_ROOT_op_get_range(d_bv.V, l_index, h_index)); + } + + INLINE unsigned to_uint() const { + return (unsigned)(_AP_ROOT_op_get_range(d_bv.V, l_index, h_index)); + } + + INLINE long to_long() const { + return (long)(_AP_ROOT_op_get_range(d_bv.V, l_index, h_index)); + } + + INLINE unsigned long to_ulong() const { + return (unsigned long)(_AP_ROOT_op_get_range(d_bv.V, l_index, h_index)); + } + + INLINE ap_slong to_int64() const { + return (ap_slong)(_AP_ROOT_op_get_range(d_bv.V, l_index, h_index)); + } + + INLINE ap_ulong to_uint64() const { + return (ap_ulong)(_AP_ROOT_op_get_range(d_bv.V, l_index, h_index)); + } + + INLINE ap_int_base<_AP_W, false> get() const { + ap_int_base<_AP_W, false> ret; + ret.V = _AP_ROOT_op_get_range(d_bv.V, l_index, h_index); + return ret; + } + + template + INLINE void set(const ap_int_base<_AP_W2, false>& val) { + d_bv.V = _AP_ROOT_op_set_range(d_bv.V, l_index, h_index, val.V); + } + + INLINE int length() const { + return h_index >= l_index ? h_index - l_index + 1 : l_index - h_index + 1; + } + +#ifndef __SYNTHESIS__ + std::string to_string(signed char rd = 2) const { + ap_int_base<_AP_W, false> ret; + ret.V = _AP_ROOT_op_get_range(d_bv.V, l_index, h_index); + return ret.to_string(rd); + } +#else + // XXX HLS will delete this in synthesis + INLINE char* to_string(signed char rd = 2) const { + return 0; + } +#endif +}; // struct af_range_ref + +// XXX apcc cannot handle global std::ios_base::Init() brought in by +#ifndef AP_AUTOCC +#ifndef __SYNTHESIS__ +template +INLINE std::ostream& operator<<( + std::ostream& os, + const af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& x) { + os << x.to_string(); + return os; +} +#endif +#endif // ifndef AP_AUTOCC + +#define AF_REF_REL_OP_WITH_INT(REL_OP, C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE bool operator REL_OP( \ + const af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op, \ + C_TYPE op2) { \ + return ap_int_base<_AP_W, false>(op) \ + REL_OP ap_int_base<_AP_W2, _AP_S2>(op2); \ + } \ + \ + template \ + INLINE bool operator REL_OP( \ + C_TYPE op2, \ + const af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op) { \ + return ap_int_base<_AP_W2, _AP_S2>(op2) \ + REL_OP ap_int_base<_AP_W, false>(op); \ + } \ + \ + template \ + INLINE bool operator REL_OP( \ + const af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op, \ + C_TYPE op2) { \ + return bool(op) REL_OP op2; \ + } \ + \ + template \ + INLINE bool operator REL_OP( \ + C_TYPE op2, \ + const af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op) { \ + return op2 REL_OP bool(op); \ + } + +#define AF_REF_REL_OPS_WITH_INT(C_TYPE, _AP_W2, _AP_S2) \ + AF_REF_REL_OP_WITH_INT(>, C_TYPE, (_AP_W2), (_AP_S2)) \ + AF_REF_REL_OP_WITH_INT(<, C_TYPE, (_AP_W2), (_AP_S2)) \ + AF_REF_REL_OP_WITH_INT(>=, C_TYPE, (_AP_W2), (_AP_S2)) \ + AF_REF_REL_OP_WITH_INT(<=, C_TYPE, (_AP_W2), (_AP_S2)) \ + AF_REF_REL_OP_WITH_INT(==, C_TYPE, (_AP_W2), (_AP_S2)) \ + AF_REF_REL_OP_WITH_INT(!=, C_TYPE, (_AP_W2), (_AP_S2)) + +AF_REF_REL_OPS_WITH_INT(bool, 1, false) +AF_REF_REL_OPS_WITH_INT(char, 8, CHAR_IS_SIGNED) +AF_REF_REL_OPS_WITH_INT(signed char, 8, true) +AF_REF_REL_OPS_WITH_INT(unsigned char, 8, false) +AF_REF_REL_OPS_WITH_INT(short, _AP_SIZE_short, true) +AF_REF_REL_OPS_WITH_INT(unsigned short, _AP_SIZE_short, false) +AF_REF_REL_OPS_WITH_INT(int, _AP_SIZE_int, true) +AF_REF_REL_OPS_WITH_INT(unsigned int, _AP_SIZE_int, false) +AF_REF_REL_OPS_WITH_INT(long, _AP_SIZE_long, true) +AF_REF_REL_OPS_WITH_INT(unsigned long, _AP_SIZE_long, false) +AF_REF_REL_OPS_WITH_INT(ap_slong, _AP_SIZE_ap_slong, true) +AF_REF_REL_OPS_WITH_INT(ap_ulong, _AP_SIZE_ap_slong, false) + +#undef AF_REF_REL_OP_INT +#undef AF_REF_REL_OPS_WITH_INT + +#define AF_REF_REL_OP_WITH_AP_INT(REL_OP) \ + template \ + INLINE bool operator REL_OP( \ + const af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op, \ + const ap_int_base<_AP_W2, _AP_S>& op2) { \ + return ap_int_base<_AP_W, false>(op) REL_OP op2; \ + } \ + template \ + INLINE bool operator REL_OP( \ + const ap_int_base<_AP_W2, _AP_S2>& op2, \ + const af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op) { \ + return op2 REL_OP ap_int_base<_AP_W, false>(op); \ + } \ + template \ + INLINE bool operator REL_OP( \ + const af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op, \ + const ap_int_base<_AP_W2, _AP_S2>& op2) { \ + return ap_int_base<1, false>(op) REL_OP op2; \ + } \ + template \ + INLINE bool operator REL_OP( \ + const ap_int_base<_AP_W2, _AP_S2>& op2, \ + const af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N>& op) { \ + return op2 REL_OP ap_int_base<1, false>(op); \ + } + +AF_REF_REL_OP_WITH_AP_INT(>) +AF_REF_REL_OP_WITH_AP_INT(<) +AF_REF_REL_OP_WITH_AP_INT(>=) +AF_REF_REL_OP_WITH_AP_INT(<=) +AF_REF_REL_OP_WITH_AP_INT(==) +AF_REF_REL_OP_WITH_AP_INT(!=) + +#endif // ifndef __cplusplus + +#endif // ifndef __AP_FIXED_REF_H__ + +// -*- cpp -*- diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed_special.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed_special.h new file mode 100644 index 00000000..0f7a9f7e --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_fixed_special.h @@ -0,0 +1,230 @@ +/* + * Copyright 2011-2019 Xilinx, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __AP_FIXED_SPECIAL_H__ +#define __AP_FIXED_SPECIAL_H__ + +#ifndef __AP_FIXED_H__ +#error "Only ap_fixed.h and ap_int.h can be included directly in user code." +#endif + +#ifndef __SYNTHESIS__ +#include +#include +#endif +// FIXME AP_AUTOCC cannot handle many standard headers, so declare instead of +// include. +// #include +namespace std { +template class complex; +} + +/* + TODO: Modernize the code using C++11/C++14 + 1. constexpr http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0415r0.html + 2. move constructor +*/ + +namespace std { +/* + Specialize std::complex to zero initialization ap_fixed. + + To reduce the area cost, ap_fixed is not zero initialized, just like basic + types float or double. However, libstdc++ provides specialization for float, + double and long double, initializing image part to 0 when not specified. + + This has become a difficulty in switching legacy code from these C types to + ap_fixed. To ease the tranform of legacy code, we have to implement + specialization of std::complex<> for our type. + + As ap_fixed is a template, it is impossible to specialize only the methods + that causes default initialization of value type in std::complex<>. An + explicit full specialization of the template class has to be done, covering + all the member functions and operators of std::complex<> as specified + in standard 26.2.4 and 26.2.5. +*/ +template +class complex > { + public: + typedef ap_fixed<_AP_W, _AP_I, _AP_Q, _AP_O, _AP_N> _Tp; + typedef _Tp value_type; + + // 26.2.4/1 + // Constructor without argument + // Default initialize, so that in dataflow, the variable is only written once. + complex() : _M_real(_Tp()), _M_imag(_Tp()) {} + // Constructor with ap_fixed. + // Zero initialize image part when not specified, so that `C(1) == C(1,0)` + complex(const _Tp &__r, const _Tp &__i = _Tp(0)) + : _M_real(__r), _M_imag(__i) {} + + // Constructor with another complex number + template + complex(const complex<_Up> &__z) : _M_real(__z.real()), _M_imag(__z.imag()) {} + +#if __cplusplus >= 201103L + const _Tp& real() const { return _M_real; } + const _Tp& imag() const { return _M_imag; } +#else + _Tp& real() { return _M_real; } + const _Tp& real() const { return _M_real; } + _Tp& imag() { return _M_imag; } + const _Tp& imag() const { return _M_imag; } +#endif + + void real(_Tp __val) { _M_real = __val; } + + void imag(_Tp __val) { _M_imag = __val; } + + // Assign this complex number with ap_fixed. + // Zero initialize image poarrt, so that `C c; c = 1; c == C(1,0);` + complex<_Tp> &operator=(const _Tp __t) { + _M_real = __t; + _M_imag = _Tp(0); + return *this; + } + + // 26.2.5/1 + // Add ap_fixed to this complex number. + complex<_Tp> &operator+=(const _Tp &__t) { + _M_real += __t; + return *this; + } + + // 26.2.5/3 + // Subtract ap_fixed from this complex number. + complex<_Tp> &operator-=(const _Tp &__t) { + _M_real -= __t; + return *this; + } + + // 26.2.5/5 + // Multiply this complex number by ap_fixed. + complex<_Tp> &operator*=(const _Tp &__t) { + _M_real *= __t; + _M_imag *= __t; + return *this; + } + + // 26.2.5/7 + // Divide this complex number by ap_fixed. + complex<_Tp> &operator/=(const _Tp &__t) { + _M_real /= __t; + _M_imag /= __t; + return *this; + } + + // Assign complex number to this complex number. + template + complex<_Tp> &operator=(const complex<_Up> &__z) { + _M_real = __z.real(); + _M_imag = __z.imag(); + return *this; + } + + // 26.2.5/9 + // Add complex number to this. + template + complex<_Tp> &operator+=(const complex<_Up> &__z) { + _M_real += __z.real(); + _M_imag += __z.imag(); + return *this; + } + + // 26.2.5/11 + // Subtract complex number from this. + template + complex<_Tp> &operator-=(const complex<_Up> &__z) { + _M_real -= __z.real(); + _M_imag -= __z.imag(); + return *this; + } + + // 26.2.5/13 + // Multiply this by complex number. + template + complex<_Tp> &operator*=(const complex<_Up> &__z) { + const _Tp __r = _M_real * __z.real() - _M_imag * __z.imag(); + _M_imag = _M_real * __z.imag() + _M_imag * __z.real(); + _M_real = __r; + return *this; + } + + // 26.2.5/15 + // Divide this by complex number. + template + complex<_Tp> &operator/=(const complex<_Up> &__z) { + complex<_Tp> cj (__z.real(), -__z.imag()); + complex<_Tp> a = (*this) * cj; + complex<_Tp> b = cj * __z; + _M_real = a.real() / b.real(); + _M_imag = a.imag() / b.real(); + return *this; + } + + private: + _Tp _M_real; + _Tp _M_imag; + +}; // class complex > + +/* + Non-member operations + These operations are not required by standard in 26.2.6, but libstdc++ + defines them for + float, double or long double's specialization. +*/ +// Compare complex number with ap_fixed. +template +inline bool operator==( + const complex > &__x, + const ap_fixed<_AP_W, _AP_I, _AP_Q, _AP_O, _AP_N> &__y) { + return __x.real() == __y && + __x.imag() == 0; +} + +// Compare ap_fixed with complex number. +template +inline bool operator==( + const ap_fixed<_AP_W, _AP_I, _AP_Q, _AP_O, _AP_N> &__x, + const complex > &__y) { + return __x == __y.real() && + 0 == __y.imag(); +} + +// Compare complex number with ap_fixed. +template +inline bool operator!=( + const complex > &__x, + const ap_fixed<_AP_W, _AP_I, _AP_Q, _AP_O, _AP_N> &__y) { + return __x.real() != __y || + __x.imag() != 0; +} + +// Compare ap_fixed with complex number. +template +inline bool operator!=( + const ap_fixed<_AP_W, _AP_I, _AP_Q, _AP_O, _AP_N> &__x, + const complex > &__y) { + return __x != __y.real() || + 0 != __y.imag(); +} + +} // namespace std + +#endif // ifndef __AP_FIXED_SPECIAL_H__ + +// -*- cpp -*- diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int.h new file mode 100644 index 00000000..db3044d4 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int.h @@ -0,0 +1,330 @@ +/* + * Copyright 2011-2019 Xilinx, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __AP_INT_H__ +#define __AP_INT_H__ + +#include +#include +#include + +//--------------------------------------------------------------- + +/// Sign Arbitrary Precision Type. +template +struct ap_int : ap_int_base<_AP_W, true> { + typedef ap_int_base<_AP_W, true> Base; + // Constructor + INLINE ap_int() : Base() {} + + // Copy ctor + INLINE ap_int(const ap_int& op) { Base::V = op.V; } + + template + INLINE ap_int(const ap_int<_AP_W2>& op) { + Base::V = op.V; + } + + template + INLINE ap_int(const volatile ap_int<_AP_W2>& op) { + Base::V = op.V; + } + + template + INLINE ap_int(const ap_uint<_AP_W2>& op) { + Base::V = op.V; + } + + template + INLINE ap_int(const volatile ap_uint<_AP_W2>& op) { + Base::V = op.V; + } + + template + INLINE ap_int(const ap_range_ref<_AP_W2, _AP_S2>& ref) : Base(ref) {} + + template + INLINE ap_int(const ap_bit_ref<_AP_W2, _AP_S2>& ref) : Base(ref) {} + + template + INLINE ap_int(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& ref) + : Base(ref) {} + + template + INLINE ap_int(const ap_fixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base((ap_fixed_base<_AP_W2, _AP_I2, true, _AP_Q2, _AP_O2, _AP_N2>)op) {} + + template + INLINE ap_int(const ap_ufixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base((ap_fixed_base<_AP_W2, _AP_I2, false, _AP_Q2, _AP_O2, _AP_N2>)op) { + } + + template + INLINE ap_int( + const volatile ap_fixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base((ap_fixed_base<_AP_W2, _AP_I2, true, _AP_Q2, _AP_O2, _AP_N2>)op) {} + + template + INLINE ap_int( + const volatile ap_ufixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base((ap_fixed_base<_AP_W2, _AP_I2, false, _AP_Q2, _AP_O2, _AP_N2>)op) { + } + + template + INLINE ap_int(const ap_int_base<_AP_W2, _AP_S2>& op) { + Base::V = op.V; + } + + template + INLINE ap_int( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base(op) {} + + template + INLINE ap_int( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base(op) {} + + template + INLINE ap_int( + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base(op) {} + +#define CTOR(TYPE) \ + INLINE ap_int(TYPE val) { Base::V = val; } + CTOR(bool) + CTOR(char) + CTOR(signed char) + CTOR(unsigned char) + CTOR(short) + CTOR(unsigned short) + CTOR(int) + CTOR(unsigned int) + CTOR(long) + CTOR(unsigned long) + CTOR(ap_slong) + CTOR(ap_ulong) +#undef CTOR + ap_int(double val) : Base(val) {} + ap_int(float val) : Base(val) {} +#if _AP_ENABLE_HALF_ == 1 + ap_int(half val) : Base(val) {} +#endif + + // ap_int_base will guess radix if radix is not provided. + INLINE ap_int(const char* s) : Base(s) {} + + INLINE ap_int(const char* s, signed char rd) : Base(s, rd) {} + + // Assignment + /* ctor will be used when right is not of proper type. */ + + INLINE ap_int& operator=(const ap_int<_AP_W>& op2) { + Base::V = op2.V; + return *this; + } + + /* cannot bind volatile reference to non-volatile type. */ + INLINE ap_int& operator=(const volatile ap_int<_AP_W>& op2) { + Base::V = op2.V; + return *this; + } + + /* cannot return volatile *this. */ + INLINE void operator=(const ap_int<_AP_W>& op2) volatile { Base::V = op2.V; } + + INLINE void operator=(const volatile ap_int<_AP_W>& op2) volatile { + Base::V = op2.V; + } + +}; // struct ap_int. + +//--------------------------------------------------------------- + +/// Unsigned Arbitrary Precision Type. +template +struct ap_uint : ap_int_base<_AP_W, false> { + typedef ap_int_base<_AP_W, false> Base; + // Constructor + INLINE ap_uint() : Base() {} + + // Copy ctor + INLINE ap_uint(const ap_uint& op) { Base::V = op.V; } + + template + INLINE ap_uint(const ap_uint<_AP_W2>& op) { + Base::V = op.V; + } + + template + INLINE ap_uint(const ap_int<_AP_W2>& op) { + Base::V = op.V; + } + + template + INLINE ap_uint(const volatile ap_uint<_AP_W2>& op) { + Base::V = op.V; + } + + template + INLINE ap_uint(const volatile ap_int<_AP_W2>& op) { + Base::V = op.V; + } + + template + INLINE ap_uint(const ap_range_ref<_AP_W2, _AP_S2>& ref) : Base(ref) {} + + template + INLINE ap_uint(const ap_bit_ref<_AP_W2, _AP_S2>& ref) : Base(ref) {} + + template + INLINE ap_uint(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& ref) + : Base(ref) {} + + template + INLINE ap_uint(const ap_fixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base((ap_fixed_base<_AP_W2, _AP_I2, true, _AP_Q2, _AP_O2, _AP_N2>)op) {} + + template + INLINE ap_uint(const ap_ufixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base((ap_fixed_base<_AP_W2, _AP_I2, false, _AP_Q2, _AP_O2, _AP_N2>)op) { + } + + template + INLINE ap_uint( + const volatile ap_fixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base((ap_fixed_base<_AP_W2, _AP_I2, true, _AP_Q2, _AP_O2, _AP_N2>)op) {} + + template + INLINE ap_uint( + const volatile ap_ufixed<_AP_W2, _AP_I2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base((ap_fixed_base<_AP_W2, _AP_I2, false, _AP_Q2, _AP_O2, _AP_N2>)op) { + } + + template + INLINE ap_uint(const ap_int_base<_AP_W2, _AP_S2>& op) { + Base::V = op.V; + } + + template + INLINE ap_uint( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base(op) {} + + template + INLINE ap_uint( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base(op) {} + + template + INLINE ap_uint( + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) + : Base(op) {} + +#define CTOR(TYPE) \ + INLINE ap_uint(TYPE val) { Base::V = val; } + CTOR(bool) + CTOR(char) + CTOR(signed char) + CTOR(unsigned char) + CTOR(short) + CTOR(unsigned short) + CTOR(int) + CTOR(unsigned int) + CTOR(long) + CTOR(unsigned long) + CTOR(ap_slong) + CTOR(ap_ulong) +#undef CTOR + ap_uint(double val) : Base(val) {} + ap_uint(float val) : Base(val) {} +#if _AP_ENABLE_HALF_ == 1 + ap_uint(half val) : Base(val) {} +#endif + + // ap_int_base will guess radix if radix is not provided. + INLINE ap_uint(const char* s) : Base(s) {} + + INLINE ap_uint(const char* s, signed char rd) : Base(s, rd) {} + + // Assignment + /* XXX ctor will be used when right is not of proper type. */ + + INLINE ap_uint& operator=(const ap_uint<_AP_W>& op2) { + Base::V = op2.V; + return *this; + } + + /* cannot bind volatile reference to non-volatile type. */ + INLINE ap_uint& operator=(const volatile ap_uint<_AP_W>& op2) { + Base::V = op2.V; + return *this; + } + + /* cannot return volatile *this. */ + INLINE void operator=(const ap_uint<_AP_W>& op2) volatile { Base::V = op2.V; } + + INLINE void operator=(const volatile ap_uint<_AP_W>& op2) volatile { + Base::V = op2.V; + } + +}; // struct ap_uint. + +#define ap_bigint ap_int +#define ap_biguint ap_uint + +#if !defined(__SYNTHESIS__) && (defined(SYSTEMC_H) || defined(SYSTEMC_INCLUDED)) +// XXX sc_trace overload for ap_fixed is already included in +// "ap_sysc/ap_sc_extras.h", so do not define in synthesis. +template +INLINE void sc_trace(sc_core::sc_trace_file* tf, const ap_int<_AP_W>& op, + const std::string& name) { + if (tf) tf->trace(sc_dt::sc_lv<_AP_W>(op.to_string(2).c_str()), name); +} + +template +INLINE void sc_trace(sc_core::sc_trace_file* tf, const ap_uint<_AP_W>& op, + const std::string& name) { + if (tf) tf->trace(sc_dt::sc_lv<_AP_W>(op.to_string(2).c_str()), name); +} +#endif // System C sim + +#include + +#endif // ifndef __AP_INT_H__ else + +// FIXME user should include ap_fixed.h when using ap_fixed. +// to avoid circular inclusion, must check whether this is required by +// ap_fixed.h +#ifndef __AP_FIXED_H__ +#include +#endif + +// -*- cpp -*- diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int_base.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int_base.h new file mode 100644 index 00000000..091552a8 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int_base.h @@ -0,0 +1,1885 @@ +/* + * Copyright 2011-2019 Xilinx, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __AP_INT_BASE_H__ +#define __AP_INT_BASE_H__ + +#ifndef __AP_INT_H__ +#error "Only ap_fixed.h and ap_int.h can be included directly in user code." +#endif + +#ifndef __cplusplus +#error "C++ is required to include this header file" +#else + +#include +#ifndef __SYNTHESIS__ +#if _AP_ENABLE_HALF_ == 1 +#include +#endif +#include +#include +#endif + +/* ---------------------------------------------------------------- + * ap_int_base: AutoPilot integer/Arbitrary precision integer. + * ---------------------------------------------------------------- + */ + +/* helper trait. Selecting the smallest C type that can hold the value, + * return 64 bit C type if not possible. + */ +template +struct retval; + +// at least 64 bit +template +struct retval<_AP_N, true> { + typedef ap_slong Type; +}; + +template +struct retval<_AP_N, false> { + typedef ap_ulong Type; +}; + +// at least 8 bit +template <> +struct retval<1, true> { + typedef signed char Type; +}; + +template <> +struct retval<1, false> { + typedef unsigned char Type; +}; + +// at least 16 bit +template <> +struct retval<2, true> { + typedef short Type; +}; + +template <> +struct retval<2, false> { + typedef unsigned short Type; +}; + +// at least 32 bit +template <> +struct retval<3, true> { + typedef long Type; +}; + +template <> +struct retval<3, false> { + typedef unsigned long Type; +}; + +template <> +struct retval<4, true> { + typedef long Type; +}; + +template <> +struct retval<4, false> { + typedef unsigned long Type; +}; + +// trait for letting base class to return derived class. +// Notice that derived class template is incomplete, and we cannot use +// the member of the derived class. +template +struct _ap_int_factory; +template +struct _ap_int_factory<_AP_W2,true> { typedef ap_int<_AP_W2> type; }; +template +struct _ap_int_factory<_AP_W2,false> { typedef ap_uint<_AP_W2> type; }; + +template +struct ap_int_base : public _AP_ROOT_TYPE<_AP_W, _AP_S> { + public: + typedef _AP_ROOT_TYPE<_AP_W, _AP_S> Base; + + /* ap_int_base<_AP_W, _AP_S, true> + * typedef typename retval<(_AP_W + 7) / 8, _AP_S>::Type RetType; + * + * ap_int_base<_AP_W, _AP_S, false> + * typedef typename retval<8, _AP_S>::Type RetType; + */ + typedef typename retval::Type RetType; + + static const int width = _AP_W; + + template + struct RType { + enum { + mult_w = _AP_W + _AP_W2, + mult_s = _AP_S || _AP_S2, + plus_w = + AP_MAX(_AP_W + (_AP_S2 && !_AP_S), _AP_W2 + (_AP_S && !_AP_S2)) + 1, + plus_s = _AP_S || _AP_S2, + minus_w = + AP_MAX(_AP_W + (_AP_S2 && !_AP_S), _AP_W2 + (_AP_S && !_AP_S2)) + 1, + minus_s = true, + div_w = _AP_W + _AP_S2, + div_s = _AP_S || _AP_S2, + mod_w = AP_MIN(_AP_W, _AP_W2 + (!_AP_S2 && _AP_S)), + mod_s = _AP_S, + logic_w = AP_MAX(_AP_W + (_AP_S2 && !_AP_S), _AP_W2 + (_AP_S && !_AP_S2)), + logic_s = _AP_S || _AP_S2 + }; + + + typedef ap_int_base mult_base; + typedef ap_int_base plus_base; + typedef ap_int_base minus_base; + typedef ap_int_base logic_base; + typedef ap_int_base div_base; + typedef ap_int_base mod_base; + typedef ap_int_base<_AP_W, _AP_S> arg1_base; + + typedef typename _ap_int_factory::type mult; + typedef typename _ap_int_factory::type plus; + typedef typename _ap_int_factory::type minus; + typedef typename _ap_int_factory::type logic; + typedef typename _ap_int_factory::type div; + typedef typename _ap_int_factory::type mod; + typedef typename _ap_int_factory<_AP_W, _AP_S>::type arg1; + typedef bool reduce; + }; + + /* Constructors. + * ---------------------------------------------------------------- + */ + /// default ctor + INLINE ap_int_base() { + /* + #ifdef __SC_COMPATIBLE__ + Base::V = 0; + #endif + */ + } + + /// copy ctor + template + INLINE ap_int_base(const ap_int_base<_AP_W2, _AP_S2>& op) { + Base::V = op.V; + } + + /// volatile copy ctor + template + INLINE ap_int_base(const volatile ap_int_base<_AP_W2, _AP_S2>& op) { + Base::V = op.V; + } + +// XXX C++11 feature. +// The explicit specifier specifies that a constructor or conversion function +// (since C++11) doesn't allow implicit conversions or copy-initialization. +// ap_int_base x = 1; +// ap_int_base foo() { return 1; } +// but allows +// ap_int_base x(1); +// ap_int_base y {1}; + +/// from all c types. +#define CTOR_FROM_INT(Type, Size, Signed) \ + INLINE ap_int_base(const Type op) { Base::V = op; } + + CTOR_FROM_INT(bool, 1, false) + CTOR_FROM_INT(char, 8, CHAR_IS_SIGNED) + CTOR_FROM_INT(signed char, 8, true) + CTOR_FROM_INT(unsigned char, 8, false) + CTOR_FROM_INT(short, _AP_SIZE_short, true) + CTOR_FROM_INT(unsigned short, _AP_SIZE_short, false) + CTOR_FROM_INT(int, _AP_SIZE_int, true) + CTOR_FROM_INT(unsigned int, _AP_SIZE_int, false) + CTOR_FROM_INT(long, _AP_SIZE_long, true) + CTOR_FROM_INT(unsigned long, _AP_SIZE_long, false) + CTOR_FROM_INT(ap_slong, _AP_SIZE_ap_slong, true) + CTOR_FROM_INT(ap_ulong, _AP_SIZE_ap_slong, false) +#undef CTOR_FROM_INT + +#if _AP_ENABLE_HALF_ == 1 + /// ctor from half. + // TODO optimize + INLINE ap_int_base(half op) { + ap_int_base<_AP_W, _AP_S> t((float)op); + Base::V = t.V; + } +#endif + + /// ctor from float. + INLINE ap_int_base(float op) { + const int BITS = FLOAT_MAN + FLOAT_EXP + 1; + ap_int_base reg; + reg.V = floatToRawBits(op); + bool is_neg = _AP_ROOT_op_get_bit(reg.V, BITS - 1); + + ap_int_base exp = 0; + exp.V = _AP_ROOT_op_get_range(reg.V, FLOAT_MAN, BITS - 2); + exp = exp - FLOAT_BIAS; + + ap_int_base man; + man.V = _AP_ROOT_op_get_range(reg.V, 0, FLOAT_MAN - 1); + // check for NaN + _AP_WARNING(exp == ((unsigned char)(FLOAT_BIAS + 1)) && man.V != 0, + "assign NaN to ap integer value"); + // set leading 1. + man.V = _AP_ROOT_op_set_bit(man.V, FLOAT_MAN, 1); + //if (is_neg) man = -man; + + if ((reg.V & 0x7ffffffful) == 0) { + Base::V = 0; + } else { + int sh_amt = FLOAT_MAN - exp.V; + if (sh_amt == 0) { + Base::V = man.V; + } else if (sh_amt > 0) { + if (sh_amt < FLOAT_MAN + 2) { + Base::V = man.V >> sh_amt; + } else { + if (is_neg) + Base::V = -1; + else + Base::V = 0; + } + } else { + sh_amt = -sh_amt; + if (sh_amt < _AP_W) { + Base::V = man.V; + Base::V <<= sh_amt; + } else { + Base::V = 0; + } + } + } + if (is_neg) *this = -(*this); + } + + /// ctor from double. + INLINE ap_int_base(double op) { + const int BITS = DOUBLE_MAN + DOUBLE_EXP + 1; + ap_int_base reg; + reg.V = doubleToRawBits(op); + bool is_neg = _AP_ROOT_op_get_bit(reg.V, BITS - 1); + + ap_int_base exp = 0; + exp.V = _AP_ROOT_op_get_range(reg.V, DOUBLE_MAN, BITS - 2); + exp = exp - DOUBLE_BIAS; + + ap_int_base man; + man.V = _AP_ROOT_op_get_range(reg.V, 0, DOUBLE_MAN - 1); + // check for NaN + _AP_WARNING(exp == ((unsigned char)(DOUBLE_BIAS + 1)) && man.V != 0, + "assign NaN to ap integer value"); + // set leading 1. + man.V = _AP_ROOT_op_set_bit(man.V, DOUBLE_MAN, 1); + //if (is_neg) man = -man; + + if ((reg.V & 0x7fffffffffffffffull) == 0) { + Base::V = 0; + } else { + int sh_amt = DOUBLE_MAN - exp.V; + if (sh_amt == 0) { + Base::V = man.V; + } else if (sh_amt > 0) { + if (sh_amt < DOUBLE_MAN + 2) { + Base::V = man.V >> sh_amt; + } else { + if (is_neg) + Base::V = -1; + else + Base::V = 0; + } + } else { + sh_amt = -sh_amt; + if (sh_amt < _AP_W) { + Base::V = man.V; + Base::V <<= sh_amt; + } else { + Base::V = 0; + } + } + } + if (is_neg) *this = -(*this); + } + + /// from higer rank type. + template + INLINE ap_int_base( + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) { + Base::V = op.to_ap_int_base().V; + } + + template + INLINE ap_int_base(const ap_range_ref<_AP_W2, _AP_S2>& ref) { + Base::V = (ref.get()).V; + } + + template + INLINE ap_int_base(const ap_bit_ref<_AP_W2, _AP_S2>& ref) { + Base::V = ref.operator bool(); + } + + template + INLINE ap_int_base(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& ref) { + const ap_int_base::_AP_WR, + false> + tmp = ref.get(); + Base::V = tmp.V; + } + + /* radix has default value in set */ + +#ifndef __SYNTHESIS__ + INLINE ap_int_base(const char* s, signed char rd = 0) { + if (rd == 0) + rd = guess_radix(s); + unsigned int length = strlen(s); + Base::V.fromString(s, length, rd); + } +#else + // XXX __builtin_bit_from_string(...) requires const C string and radix. + INLINE ap_int_base(const char* s) { + typeof(Base::V) t; + _ssdm_string2bits((void*)(&t), (const char*)(s), 10, _AP_W, _AP_S, + AP_TRN, AP_WRAP, 0, _AP_C99); + Base::V = t; + } + INLINE ap_int_base(const char* s, signed char rd) { + typeof(Base::V) t; + _ssdm_string2bits((void*)(&t), (const char*)(s), rd, _AP_W, _AP_S, + AP_TRN, AP_WRAP, 0, _AP_C99); + Base::V = t; + } +#endif + + template + INLINE ap_int_base( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { + Base::V = (val.get()).V; + } + + template + INLINE ap_int_base( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { + Base::V = val.operator bool(); + } + + INLINE ap_int_base read() volatile { + /*AP_DEBUG(printf("call read %d\n", Base::V););*/ + ap_int_base ret; + ret.V = Base::V; + return ret; + } + + INLINE void write(const ap_int_base<_AP_W, _AP_S>& op2) volatile { + /*AP_DEBUG(printf("call write %d\n", op2.V););*/ + Base::V = op2.V; + } + + /* Another form of "write".*/ + template + INLINE void operator=( + const volatile ap_int_base<_AP_W2, _AP_S2>& op2) volatile { + Base::V = op2.V; + } + + INLINE void operator=( + const volatile ap_int_base<_AP_W, _AP_S>& op2) volatile { + Base::V = op2.V; + } + + template + INLINE void operator=(const ap_int_base<_AP_W2, _AP_S2>& op2) volatile { + Base::V = op2.V; + } + + INLINE void operator=(const ap_int_base<_AP_W, _AP_S>& op2) volatile { + Base::V = op2.V; + } + + template + INLINE ap_int_base& operator=( + const volatile ap_int_base<_AP_W2, _AP_S2>& op2) { + Base::V = op2.V; + return *this; + } + + template + INLINE ap_int_base& operator=(const ap_int_base<_AP_W2, _AP_S2>& op2) { + Base::V = op2.V; + return *this; + } + + INLINE ap_int_base& operator=(const volatile ap_int_base<_AP_W, _AP_S>& op2) { + Base::V = op2.V; + return *this; + } + + INLINE ap_int_base& operator=(const ap_int_base<_AP_W, _AP_S>& op2) { + Base::V = op2.V; + return *this; + } + + +#define ASSIGN_OP_FROM_INT(Type, Size, Signed) \ + INLINE ap_int_base& operator=(Type op) { \ + Base::V = op; \ + return *this; \ + } + + ASSIGN_OP_FROM_INT(bool, 1, false) + ASSIGN_OP_FROM_INT(char, 8, CHAR_IS_SIGNED) + ASSIGN_OP_FROM_INT(signed char, 8, true) + ASSIGN_OP_FROM_INT(unsigned char, 8, false) + ASSIGN_OP_FROM_INT(short, _AP_SIZE_short, true) + ASSIGN_OP_FROM_INT(unsigned short, _AP_SIZE_short, false) + ASSIGN_OP_FROM_INT(int, _AP_SIZE_int, true) + ASSIGN_OP_FROM_INT(unsigned int, _AP_SIZE_int, false) + ASSIGN_OP_FROM_INT(long, _AP_SIZE_long, true) + ASSIGN_OP_FROM_INT(unsigned long, _AP_SIZE_long, false) + ASSIGN_OP_FROM_INT(ap_slong, _AP_SIZE_ap_slong, true) + ASSIGN_OP_FROM_INT(ap_ulong, _AP_SIZE_ap_slong, false) + +#undef ASSIGN_OP_FROM_INT + + template + INLINE ap_int_base& operator=(const ap_bit_ref<_AP_W2, _AP_S2>& op2) { + Base::V = (bool)op2; + return *this; + } + + template + INLINE ap_int_base& operator=(const ap_range_ref<_AP_W2, _AP_S2>& op2) { + Base::V = (ap_int_base<_AP_W2, false>(op2)).V; + return *this; + } + + template + INLINE ap_int_base& operator=( + const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& op2) { + Base::V = op2.get().V; + return *this; + } + + template + INLINE ap_int_base& operator=( + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) { + Base::V = op.to_ap_int_base().V; + return *this; + } + + template + INLINE ap_int_base& operator=( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) { + Base::V = (bool)op; + return *this; + } + + template + INLINE ap_int_base& operator=( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& op) { + Base::V = ((const ap_int_base<_AP_W2, false>)(op)).V; + return *this; + } + + // FIXME: UG902 has clearly required user to use to_int() to convert to built-in + // types, but this implicit conversion is relied on in hls_cordic.h and hls_rsr.h. + // For example: + // int d_exp = fps_x.exp - fps_y.exp; + INLINE operator RetType() const { return (RetType)(Base::V); } + + /* Explicit conversions to C types. + * ---------------------------------------------------------------- + */ + INLINE bool to_bool() const { return (bool)(Base::V); } + INLINE char to_char() const { return (char)(Base::V); } + INLINE signed char to_schar() const { return (signed char)(Base::V); } + INLINE unsigned char to_uchar() const { return (unsigned char)(Base::V); } + INLINE short to_short() const { return (short)(Base::V); } + INLINE unsigned short to_ushort() const { return (unsigned short)(Base::V); } + INLINE int to_int() const { return (int)(Base::V); } + INLINE unsigned to_uint() const { return (unsigned)(Base::V); } + INLINE long to_long() const { return (long)(Base::V); } + INLINE unsigned long to_ulong() const { return (unsigned long)(Base::V); } + INLINE ap_slong to_int64() const { return (ap_slong)(Base::V); } + INLINE ap_ulong to_uint64() const { return (ap_ulong)(Base::V); } + INLINE float to_float() const { return (float)(Base::V); } + INLINE double to_double() const { return (double)(Base::V); } + + // TODO decide if user-defined conversion should be provided. +#if 0 + INLINE operator char() const { return (char)(Base::V); } + INLINE operator signed char() const { return (signed char)(Base::V); } + INLINE operator unsigned char() const { return (unsigned char)(Base::V); } + INLINE operator short() const { return (short)(Base::V); } + INLINE operator unsigned short() const { return (unsigned short)(Base::V); } + INLINE operator int() const { return (int)(Base::V); } + INLINE operator unsigned int () const { return (unsigned)(Base::V); } + INLINE operator long () const { return (long)(Base::V); } + INLINE operator unsigned long () const { return (unsigned long)(Base::V); } + INLINE operator ap_slong () { return (ap_slong)(Base::V); } + INLINE operator ap_ulong () { return (ap_ulong)(Base::V); } +#endif + + /* Helper methods. + ---------------------------------------------------------------- + */ + /* we cannot call a non-volatile function on a volatile instance. + * but calling a volatile function is ok. + * XXX deleted non-volatile version. + */ + INLINE int length() const volatile { return _AP_W; } + + /*Return true if the value of ap_int_base instance is zero*/ + INLINE bool iszero() const { return Base::V == 0; } + + /*Return true if the value of ap_int_base instance is zero*/ + INLINE bool is_zero() const { return Base::V == 0; } + + /* x < 0 */ + INLINE bool sign() const { + if (_AP_S && + _AP_ROOT_op_get_bit(Base::V, _AP_W - 1)) + return true; + else + return false; + } + + /* x[i] = 0 */ + INLINE void clear(int i) { + AP_ASSERT(i >= 0 && i < _AP_W, "position out of range"); + Base::V = _AP_ROOT_op_set_bit(Base::V, i, 0); + } + + /* x[i] = !x[i]*/ + INLINE void invert(int i) { + AP_ASSERT(i >= 0 && i < _AP_W, "position out of range"); + bool val = _AP_ROOT_op_get_bit(Base::V, i); + if (val) + Base::V = _AP_ROOT_op_set_bit(Base::V, i, 0); + else + Base::V = _AP_ROOT_op_set_bit(Base::V, i, 1); + } + + INLINE bool test(int i) const { + AP_ASSERT(i >= 0 && i < _AP_W, "position out of range"); + return _AP_ROOT_op_get_bit(Base::V, i); + } + + // Get self. For ap_concat_ref expansion. + INLINE ap_int_base& get() { return *this; } + + // Set the ith bit into 1 + INLINE void set(int i) { + AP_ASSERT(i >= 0 && i < _AP_W, "position out of range"); + Base::V = _AP_ROOT_op_set_bit(Base::V, i, 1); + } + + // Set the ith bit into v + INLINE void set(int i, bool v) { + AP_ASSERT(i >= 0 && i < _AP_W, "position out of range"); + Base::V = _AP_ROOT_op_set_bit(Base::V, i, v); + } + + // This is used for sc_lv and sc_bv, which is implemented by sc_uint + // Rotate an ap_int_base object n places to the left + INLINE ap_int_base& lrotate(int n) { + AP_ASSERT(n >= 0 && n < _AP_W, "shift value out of range"); + // TODO unify this. +#ifdef __SYNTHESIS__ + typeof(Base::V) l_p = Base::V << n; + typeof(Base::V) r_p = Base::V >> (_AP_W - n); + Base::V = l_p | r_p; +#else + Base::V.lrotate(n); +#endif + return *this; + } + + // This is used for sc_lv and sc_bv, which is implemented by sc_uint + // Rotate an ap_int_base object n places to the right + INLINE ap_int_base& rrotate(int n) { + AP_ASSERT(n >= 0 && n < _AP_W, "shift value out of range"); + // TODO unify this. +#ifdef __SYNTHESIS__ + typeof(Base::V) l_p = Base::V << (_AP_W - n); + typeof(Base::V) r_p = Base::V >> n; + Base::V = l_p | r_p; +#else + Base::V.rrotate(n); +#endif + return *this; + } + + // Reverse the contents of ap_int_base instance. + // I.e. LSB becomes MSB and vise versa. + INLINE ap_int_base& reverse() { + Base::V = _AP_ROOT_op_get_range(Base::V, _AP_W - 1, 0); + return *this; + } + + // Set the ith bit into v + INLINE void set_bit(int i, bool v) { + Base::V = _AP_ROOT_op_set_bit(Base::V, i, v); + } + + // Get the value of ith bit + INLINE bool get_bit(int i) const { + return (bool)_AP_ROOT_op_get_bit(Base::V, i); + } + + // complements every bit + INLINE void b_not() { Base::V = ~Base::V; } + +#define OP_ASSIGN_AP(Sym) \ + template \ + INLINE ap_int_base& operator Sym(const ap_int_base<_AP_W2, _AP_S2>& op2) { \ + Base::V Sym op2.V; \ + return *this; \ + } + + /* Arithmetic assign. + * ---------------------------------------------------------------- + */ + OP_ASSIGN_AP(*=) + OP_ASSIGN_AP(+=) + OP_ASSIGN_AP(-=) + OP_ASSIGN_AP(/=) + OP_ASSIGN_AP(%=) +#undef OP_ASSIGN_AP + + /* Bitwise assign: and, or, xor. + * ---------------------------------------------------------------- + */ +#define OP_ASSIGN_AP_CHK(Sym) \ + template \ + INLINE ap_int_base& operator Sym(const ap_int_base<_AP_W2, _AP_S2>& op2) { \ + _AP_WARNING((_AP_W != _AP_W2), \ + "Bitsize mismatch for ap_[u]int" #Sym "ap_[u]int."); \ + Base::V Sym op2.V; \ + return *this; \ + } + OP_ASSIGN_AP_CHK(&=) + OP_ASSIGN_AP_CHK(|=) + OP_ASSIGN_AP_CHK(^=) +#undef OP_ASSIGN_AP_CHK + + /* Prefix increment, decrement. + * ---------------------------------------------------------------- + */ + INLINE ap_int_base& operator++() { + operator+=((ap_int_base<1, false>)1); + return *this; + } + INLINE ap_int_base& operator--() { + operator-=((ap_int_base<1, false>)1); + return *this; + } + + /* Postfix increment, decrement + * ---------------------------------------------------------------- + */ + INLINE const typename RType<_AP_W,_AP_S>::arg1 operator++(int) { + ap_int_base t = *this; + operator+=((ap_int_base<1, false>)1); + return t; + } + INLINE const typename RType<_AP_W,_AP_S>::arg1 operator--(int) { + ap_int_base t = *this; + operator-=((ap_int_base<1, false>)1); + return t; + } + + /* Unary arithmetic. + * ---------------------------------------------------------------- + */ + INLINE typename RType<_AP_W,_AP_S>::arg1 operator+() const { return *this; } + + // TODO used to be W>64 only... need check. + INLINE typename RType<1, false>::minus operator-() const { + return ap_int_base<1, false>(0) - *this; + } + + /* Not (!) + * ---------------------------------------------------------------- + */ + INLINE bool operator!() const { return Base::V == 0; } + + /* Bitwise (arithmetic) unary: complement + ---------------------------------------------------------------- + */ + // XXX different from Mentor's ac_int! + INLINE typename RType<_AP_W,_AP_S>::arg1 operator~() const { + ap_int_base<_AP_W, _AP_S> r; + r.V = ~Base::V; + return r; + } + + /* Shift (result constrained by left operand). + * ---------------------------------------------------------------- + */ + template + INLINE typename RType<_AP_W,_AP_S>::arg1 operator<<(const ap_int_base<_AP_W2, true>& op2) const { + bool isNeg = _AP_ROOT_op_get_bit(op2.V, _AP_W2 - 1); + ap_int_base<_AP_W2, false> sh = op2; + if (isNeg) { + sh = -op2; + return operator>>(sh); + } else + return operator<<(sh); + } + + template + INLINE typename RType<_AP_W,_AP_S>::arg1 operator<<(const ap_int_base<_AP_W2, false>& op2) const { + ap_int_base r; + r.V = Base::V << op2.to_uint(); + return r; + } + + template + INLINE typename RType<_AP_W,_AP_S>::arg1 operator>>(const ap_int_base<_AP_W2, true>& op2) const { + bool isNeg = _AP_ROOT_op_get_bit(op2.V, _AP_W2 - 1); + ap_int_base<_AP_W2, false> sh = op2; + if (isNeg) { + sh = -op2; + return operator<<(sh); + } + return operator>>(sh); + } + + template + INLINE typename RType<_AP_W,_AP_S>::arg1 operator>>(const ap_int_base<_AP_W2, false>& op2) const { + ap_int_base r; + r.V = Base::V >> op2.to_uint(); + return r; + } + + // FIXME we standalone operator>> for ap_int_base and ap_range_ref. +#if 0 + template + INLINE ap_int_base operator<<(const ap_range_ref<_AP_W2, _AP_S2>& op2) const { + return *this << (op2.operator ap_int_base<_AP_W2, false>()); + } + + template + INLINE ap_int_base operator>>(const ap_range_ref<_AP_W2, _AP_S2>& op2) const { + return *this >> (op2.operator ap_int_base<_AP_W2, false>()); + } +#endif + + /* Shift assign + * ---------------------------------------------------------------- + */ + template + INLINE ap_int_base& operator<<=(const ap_int_base<_AP_W2, true>& op2) { + bool isNeg = _AP_ROOT_op_get_bit(op2.V, _AP_W2 - 1); + ap_int_base<_AP_W2, false> sh = op2; + if (isNeg) { + sh = -op2; + return operator>>=(sh); + } else + return operator<<=(sh); + } + + template + INLINE ap_int_base& operator<<=(const ap_int_base<_AP_W2, false>& op2) { + Base::V <<= op2.to_uint(); + return *this; + } + + template + INLINE ap_int_base& operator>>=(const ap_int_base<_AP_W2, true>& op2) { + bool isNeg = _AP_ROOT_op_get_bit(op2.V, _AP_W2 - 1); + ap_int_base<_AP_W2, false> sh = op2; + if (isNeg) { + sh = -op2; + return operator<<=(sh); + } + return operator>>=(sh); + } + + template + INLINE ap_int_base& operator>>=(const ap_int_base<_AP_W2, false>& op2) { + Base::V >>= op2.to_uint(); + return *this; + } + + // FIXME we standalone operator>> for ap_int_base and ap_range_ref. +#if 0 + template + INLINE ap_int_base& operator<<=(const ap_range_ref<_AP_W2, _AP_S2>& op2) { + return *this <<= (op2.operator ap_int_base<_AP_W2, false>()); + } + template + INLINE ap_int_base& operator>>=(const ap_range_ref<_AP_W2, _AP_S2>& op2) { + return *this >>= (op2.operator ap_int_base<_AP_W2, false>()); + } +#endif + + /* Equality and Relational. + * ---------------------------------------------------------------- + */ + template + INLINE bool operator==(const ap_int_base<_AP_W2, _AP_S2>& op2) const { + return Base::V == op2.V; + } + template + INLINE bool operator!=(const ap_int_base<_AP_W2, _AP_S2>& op2) const { + return !(Base::V == op2.V); + } + template + INLINE bool operator<(const ap_int_base<_AP_W2, _AP_S2>& op2) const { + return Base::V < op2.V; + } + template + INLINE bool operator>=(const ap_int_base<_AP_W2, _AP_S2>& op2) const { + return Base::V >= op2.V; + } + template + INLINE bool operator>(const ap_int_base<_AP_W2, _AP_S2>& op2) const { + return Base::V > op2.V; + } + template + INLINE bool operator<=(const ap_int_base<_AP_W2, _AP_S2>& op2) const { + return Base::V <= op2.V; + } + + /* Bit and Part Select + * ---------------------------------------------------------------- + */ + INLINE ap_range_ref<_AP_W, _AP_S> range(int Hi, int Lo) { + _AP_ERROR(Hi >= _AP_W, "Hi(%d)out of bound(%d) in range()", Hi, _AP_W); + _AP_ERROR(Lo >= _AP_W, "Lo(%d)out of bound(%d) in range()", Lo, _AP_W); + return ap_range_ref<_AP_W, _AP_S>(this, Hi, Lo); + } + + // This is a must to strip constness to produce reference type. + INLINE ap_range_ref<_AP_W, _AP_S> range(int Hi, int Lo) const { + _AP_ERROR(Hi >= _AP_W, "Hi(%d)out of bound(%d) in range()", Hi, _AP_W); + _AP_ERROR(Lo >= _AP_W, "Lo(%d)out of bound(%d) in range()", Lo, _AP_W); + return ap_range_ref<_AP_W, _AP_S>(const_cast(this), Hi, Lo); + } + + template + INLINE ap_range_ref<_AP_W, _AP_S> range( + const ap_int_base<_AP_W2, _AP_S2>& HiIdx, + const ap_int_base<_AP_W3, _AP_S3>& LoIdx) { + int Hi = HiIdx.to_int(); + int Lo = LoIdx.to_int(); + return this->range(Hi, Lo); + } + + template + INLINE ap_range_ref<_AP_W, _AP_S> range( + const ap_int_base<_AP_W2, _AP_S2>& HiIdx, + const ap_int_base<_AP_W3, _AP_S3>& LoIdx) const { + int Hi = HiIdx.to_int(); + int Lo = LoIdx.to_int(); + return this->range(Hi, Lo); + } + + INLINE ap_range_ref<_AP_W, _AP_S> range() { + return this->range(_AP_W - 1, 0); + } + + INLINE ap_range_ref<_AP_W, _AP_S> range() const { + return this->range(_AP_W - 1, 0); + } + + INLINE ap_range_ref<_AP_W, _AP_S> operator()(int Hi, int Lo) { + return this->range(Hi, Lo); + } + + INLINE ap_range_ref<_AP_W, _AP_S> operator()(int Hi, int Lo) const { + return this->range(Hi, Lo); + } + + template + INLINE ap_range_ref<_AP_W, _AP_S> operator()( + const ap_int_base<_AP_W2, _AP_S2>& HiIdx, + const ap_int_base<_AP_W3, _AP_S3>& LoIdx) { + int Hi = HiIdx.to_int(); + int Lo = LoIdx.to_int(); + return this->range(Hi, Lo); + } + + template + INLINE ap_range_ref<_AP_W, _AP_S> operator()( + const ap_int_base<_AP_W2, _AP_S2>& HiIdx, + const ap_int_base<_AP_W3, _AP_S3>& LoIdx) const { + int Hi = HiIdx.to_int(); + int Lo = LoIdx.to_int(); + return this->range(Hi, Lo); + } + +#if 0 + template + INLINE ap_int_base slice() const { + AP_ASSERT(Hi >= Lo && Hi < _AP_W && Lo < _AP_W, "Out of bounds in slice()"); + ap_int_base tmp ; + tmp.V = _AP_ROOT_op_get_range(Base::V, Lo, Hi); + return tmp; + } + + INLINE ap_bit_ref<_AP_W,_AP_S> operator [] ( unsigned int uindex) { + AP_ASSERT(uindex < _AP_W, "Attempting to read bit beyond MSB"); + ap_bit_ref<_AP_W,_AP_S> bvh( this, uindex ); + return bvh; + } +#endif + + INLINE ap_bit_ref<_AP_W, _AP_S> operator[](int index) { + AP_ASSERT(index >= 0, "Attempting to read bit with negative index"); + AP_ASSERT(index < _AP_W, "Attempting to read bit beyond MSB"); + ap_bit_ref<_AP_W, _AP_S> bvh(this, index); + return bvh; + } + + template + INLINE ap_bit_ref<_AP_W, _AP_S> operator[]( + const ap_int_base<_AP_W2, _AP_S2>& index) { + AP_ASSERT(index >= 0, "Attempting to read bit with negative index"); + AP_ASSERT(index < _AP_W, "Attempting to read bit beyond MSB"); + ap_bit_ref<_AP_W, _AP_S> bvh(this, index.to_int()); + return bvh; + } + + INLINE bool operator[](int index) const { + AP_ASSERT(index >= 0, "Attempting to read bit with negative index"); + AP_ASSERT(index < _AP_W, "Attempting to read bit beyond MSB"); + ap_bit_ref<_AP_W, _AP_S> br(this, index); + return br.to_bool(); + } + template + INLINE bool operator[](const ap_int_base<_AP_W2, _AP_S2>& index) const { + AP_ASSERT(index < _AP_W, "Attempting to read bit beyond MSB"); + ap_bit_ref<_AP_W, _AP_S> br(this, index.to_int()); + return br.to_bool(); + } + + INLINE ap_bit_ref<_AP_W, _AP_S> bit(int index) { + AP_ASSERT(index >= 0, "Attempting to read bit with negative index"); + AP_ASSERT(index < _AP_W, "Attempting to read bit beyond MSB"); + ap_bit_ref<_AP_W, _AP_S> bvh(this, index); + return bvh; + } + template + INLINE ap_bit_ref<_AP_W, _AP_S> bit( + const ap_int_base<_AP_W2, _AP_S2>& index) { + AP_ASSERT(index >= 0, "Attempting to read bit with negative index"); + AP_ASSERT(index < _AP_W, "Attempting to read bit beyond MSB"); + ap_bit_ref<_AP_W, _AP_S> bvh(this, index.to_int()); + return bvh; + } + + INLINE bool bit(int index) const { + AP_ASSERT(index >= 0, "Attempting to read bit with negative index"); + AP_ASSERT(index < _AP_W, "Attempting to read bit beyond MSB"); + ap_bit_ref<_AP_W, _AP_S> br(this, index); + return br.to_bool(); + } + + template + INLINE bool bit(const ap_int_base<_AP_W2, _AP_S2>& index) const { + return bit(index.to_int()); + } + +#if 0 + template + INLINE bool operator[](_AP_T index) const { + AP_ASSERT(index < _AP_W, "Attempting to read bit beyond MSB"); + ap_bit_ref<_AP_W,_AP_S> br = operator[](index); + return br.to_bool(); + } +#endif + + // Count the number of zeros from the most significant bit + // to the first one bit. + INLINE int countLeadingZeros() { +#ifdef __SYNTHESIS__ + if (_AP_W <= 32) { + ap_int_base<32, false> t(-1UL), x; + x.V = _AP_ROOT_op_get_range(this->V, _AP_W - 1, 0); // reverse + t.V = _AP_ROOT_op_set_range(t.V, 0, _AP_W - 1, x.V); + return __builtin_ctz(t.V); // count trailing zeros. + } else if (_AP_W <= 64) { + ap_int_base<64, false> t(-1ULL); + ap_int_base<64, false> x; + x.V = _AP_ROOT_op_get_range(this->V, _AP_W - 1, 0); // reverse + t.V = _AP_ROOT_op_set_range(t.V, 0, _AP_W - 1, x.V); + return __builtin_ctzll(t.V); // count trailing zeros. + } else { + enum { __N = (_AP_W + 63) / 64 }; + int NZeros = 0; + int i = 0; + bool hitNonZero = false; + for (i = 0; i < __N - 1; ++i) { + ap_int_base<64, false> t; + t.V = _AP_ROOT_op_get_range(this->V, _AP_W - i * 64 - 64, _AP_W - i * 64 - 1); + NZeros += hitNonZero ? 0 : __builtin_clzll(t.V); // count leading zeros. + hitNonZero |= (t.V != 0); + } + if (!hitNonZero) { + ap_int_base<64, false> t(-1ULL); + enum { REST = (_AP_W - 1) % 64 }; + ap_int_base<64, false> x; + x.V = _AP_ROOT_op_get_range(this->V, 0, REST); + t.V = _AP_ROOT_op_set_range(t.V, 63 - REST, 63, x.V); + NZeros += __builtin_clzll(t.V); + } + return NZeros; + } +#else + return (Base::V).countLeadingZeros(); +#endif + } // countLeadingZeros + + template + INLINE ap_concat_ref<_AP_W, ap_int_base, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + concat(const ap_int_base<_AP_W2, _AP_S2>& a2) const { + return ap_concat_ref<_AP_W, ap_int_base, _AP_W2, + ap_int_base<_AP_W2, _AP_S2> >( + const_cast&>(*this), + const_cast&>(a2)); + } + + template + INLINE ap_concat_ref<_AP_W, ap_int_base, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + concat(ap_int_base<_AP_W2, _AP_S2>& a2) { + return ap_concat_ref<_AP_W, ap_int_base, _AP_W2, + ap_int_base<_AP_W2, _AP_S2> >(*this, a2); + } + + template + INLINE + ap_concat_ref<_AP_W, ap_int_base, _AP_W2, ap_range_ref<_AP_W2, _AP_S2> > + operator,(const ap_range_ref<_AP_W2, _AP_S2> &a2) const { + return ap_concat_ref<_AP_W, ap_int_base, _AP_W2, + ap_range_ref<_AP_W2, _AP_S2> >( + const_cast&>(*this), + const_cast&>(a2)); + } + + template + INLINE + ap_concat_ref<_AP_W, ap_int_base, _AP_W2, ap_range_ref<_AP_W2, _AP_S2> > + operator,(ap_range_ref<_AP_W2, _AP_S2> &a2) { + return ap_concat_ref<_AP_W, ap_int_base, _AP_W2, + ap_range_ref<_AP_W2, _AP_S2> >(*this, a2); + } + + template + INLINE ap_concat_ref<_AP_W, ap_int_base, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + operator,(const ap_int_base<_AP_W2, _AP_S2> &a2) { + return ap_concat_ref<_AP_W, ap_int_base, _AP_W2, + ap_int_base<_AP_W2, _AP_S2> >( + *this, const_cast&>(a2)); + } + + template + INLINE ap_concat_ref<_AP_W, ap_int_base, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + operator,(ap_int_base<_AP_W2, _AP_S2> &a2) const { + return ap_concat_ref<_AP_W, ap_int_base, _AP_W2, + ap_int_base<_AP_W2, _AP_S2> >( + const_cast&>(*this), a2); + } + + template + INLINE ap_concat_ref<_AP_W, ap_int_base, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + operator,(const ap_int_base<_AP_W2, _AP_S2> &a2) const { + return ap_concat_ref<_AP_W, ap_int_base, _AP_W2, + ap_int_base<_AP_W2, _AP_S2> >( + const_cast&>(*this), + const_cast&>(a2)); + } + + template + INLINE ap_concat_ref<_AP_W, ap_int_base, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + operator,(ap_int_base<_AP_W2, _AP_S2> &a2) { + return ap_concat_ref<_AP_W, ap_int_base, _AP_W2, + ap_int_base<_AP_W2, _AP_S2> >(*this, a2); + } + + template + INLINE ap_concat_ref<_AP_W, ap_int_base, 1, ap_bit_ref<_AP_W2, _AP_S2> > + operator,(const ap_bit_ref<_AP_W2, _AP_S2> &a2) const { + return ap_concat_ref<_AP_W, ap_int_base, 1, ap_bit_ref<_AP_W2, _AP_S2> >( + const_cast&>(*this), + const_cast&>(a2)); + } + + template + INLINE ap_concat_ref<_AP_W, ap_int_base, 1, ap_bit_ref<_AP_W2, _AP_S2> > + operator,(ap_bit_ref<_AP_W2, _AP_S2> &a2) { + return ap_concat_ref<_AP_W, ap_int_base, 1, ap_bit_ref<_AP_W2, _AP_S2> >( + *this, a2); + } + + template + INLINE ap_concat_ref<_AP_W, ap_int_base, _AP_W2 + _AP_W3, + ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> > + operator,(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> &a2) { + return ap_concat_ref<_AP_W, ap_int_base, _AP_W2 + _AP_W3, + ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> >( + const_cast&>(*this), + const_cast&>(a2)); + } + + template + INLINE ap_concat_ref<_AP_W, ap_int_base, _AP_W2 + _AP_W3, + ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> > + operator,(ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> &a2) { + return ap_concat_ref<_AP_W, ap_int_base, _AP_W2 + _AP_W3, + ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> >(*this, + a2); + } + + template + INLINE ap_concat_ref< + _AP_W, ap_int_base, _AP_W2, + af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > + operator,(const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> + &a2) const { + return ap_concat_ref< + _AP_W, ap_int_base, _AP_W2, + af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >( + const_cast&>(*this), + const_cast< + af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>&>(a2)); + } + + template + INLINE ap_concat_ref< + _AP_W, ap_int_base, _AP_W2, + af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > + operator,(af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> &a2) { + return ap_concat_ref< + _AP_W, ap_int_base, _AP_W2, + af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >(*this, + a2); + } + + template + INLINE + ap_concat_ref<_AP_W, ap_int_base, 1, + af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > + operator,(const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> + &a2) const { + return ap_concat_ref< + _AP_W, ap_int_base, 1, + af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >( + const_cast&>(*this), + const_cast&>( + a2)); + } + + template + INLINE + ap_concat_ref<_AP_W, ap_int_base, 1, + af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > + operator,( + af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> &a2) { + return ap_concat_ref< + _AP_W, ap_int_base, 1, + af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >(*this, a2); + } + + template + INLINE ap_int_base operator&( + const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& a2) { + return *this & a2.get(); + } + + template + INLINE ap_int_base operator|( + const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& a2) { + return *this | a2.get(); + } + + template + INLINE ap_int_base operator^( + const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& a2) { + return *this ^ a2.get(); + } + + template + INLINE void set(const ap_int_base<_AP_W3, false>& val) { + Base::V = val.V; + } + + /* Reduce operations. + * ---------------------------------------------------------------- + */ + // XXX non-const version deleted. + INLINE bool and_reduce() const { return _AP_ROOT_op_reduce(and, Base::V); } + INLINE bool nand_reduce() const { return _AP_ROOT_op_reduce(nand, Base::V); } + INLINE bool or_reduce() const { return _AP_ROOT_op_reduce(or, Base::V); } + INLINE bool nor_reduce() const { return !(_AP_ROOT_op_reduce(or, Base::V)); } + INLINE bool xor_reduce() const { return _AP_ROOT_op_reduce (xor, Base::V); } + INLINE bool xnor_reduce() const { + return !(_AP_ROOT_op_reduce (xor, Base::V)); + } + + /* Output as a string. + * ---------------------------------------------------------------- + */ +#ifndef __SYNTHESIS__ + std::string to_string(signed char rd = 2, bool sign = _AP_S) const { + // XXX in autosim/autowrap.tcl "(${name}).to_string(2).c_str()" is used to + // initialize sc_lv, which seems incapable of handling format "-0b". + if (rd == 2) sign = false; + return (Base::V).to_string(rd, sign); + } +#else + INLINE char* to_string(signed char rd = 2, bool sign = _AP_S) const { + return 0; + } +#endif +}; // struct ap_int_base + +// XXX apcc cannot handle global std::ios_base::Init() brought in by +#ifndef AP_AUTOCC +#ifndef __SYNTHESIS__ +template +INLINE std::ostream& operator<<(std::ostream& os, + const ap_int_base<_AP_W, _AP_S>& x) { + std::ios_base::fmtflags ff = std::cout.flags(); + if (ff & std::cout.hex) { + os << x.to_string(16); // don't print sign + } else if (ff & std::cout.oct) { + os << x.to_string(8); // don't print sign + } else { + os << x.to_string(10); + } + return os; +} +#endif // ifndef __SYNTHESIS__ + +#ifndef __SYNTHESIS__ +template +INLINE std::istream& operator>>(std::istream& in, + ap_int_base<_AP_W, _AP_S>& op) { + std::string str; + in >> str; + const std::ios_base::fmtflags basefield = in.flags() & std::ios_base::basefield; + unsigned radix = (basefield == std::ios_base::dec) ? 0 : ( + (basefield == std::ios_base::oct) ? 8 : ( + (basefield == std::ios_base::hex) ? 16 : 0)); + op = ap_int_base<_AP_W, _AP_S>(str.c_str(), radix); + return in; +} +#endif // ifndef __SYNTHESIS__ +#endif // ifndef AP_AUTOCC + +/* Operators with another ap_int_base. + * ---------------------------------------------------------------- + */ +#define OP_BIN_AP(Sym, Rty) \ + template \ + INLINE \ + typename ap_int_base<_AP_W, _AP_S>::template RType<_AP_W2, _AP_S2>::Rty \ + operator Sym(const ap_int_base<_AP_W, _AP_S>& op, \ + const ap_int_base<_AP_W2, _AP_S2>& op2) { \ + typename ap_int_base<_AP_W, _AP_S>::template RType< \ + _AP_W2, _AP_S2>::Rty##_base lhs(op); \ + typename ap_int_base<_AP_W, _AP_S>::template RType< \ + _AP_W2, _AP_S2>::Rty##_base rhs(op2); \ + typename ap_int_base<_AP_W, _AP_S>::template RType< \ + _AP_W2, _AP_S2>::Rty##_base ret; \ + ret.V = lhs.V Sym rhs.V; \ + return ret; \ + } + +OP_BIN_AP(*, mult) +OP_BIN_AP(+, plus) +OP_BIN_AP(-, minus) +OP_BIN_AP(&, logic) +OP_BIN_AP(|, logic) +OP_BIN_AP(^, logic) + +#define OP_BIN_AP2(Sym, Rty) \ + template \ + INLINE \ + typename ap_int_base<_AP_W, _AP_S>::template RType<_AP_W2, _AP_S2>::Rty \ + operator Sym(const ap_int_base<_AP_W, _AP_S>& op, \ + const ap_int_base<_AP_W2, _AP_S2>& op2) { \ + typename ap_int_base<_AP_W, _AP_S>::template RType< \ + _AP_W2, _AP_S2>::Rty##_base ret; \ + ret.V = op.V Sym op2.V; \ + return ret; \ + } + +OP_BIN_AP2(/, div) +OP_BIN_AP2(%, mod) + +// shift operators are defined inside class. +// compound assignment operators are defined inside class. + +/* Operators with a pointer type. + * ---------------------------------------------------------------- + * char a[100]; + * char* ptr = a; + * ap_int<2> n = 3; + * char* ptr2 = ptr + n*2; + * avoid ambiguous errors. + */ +#define OP_BIN_WITH_PTR(BIN_OP) \ + template \ + INLINE PTR_TYPE* operator BIN_OP(PTR_TYPE* i_op, \ + const ap_int_base<_AP_W, _AP_S>& op) { \ + ap_slong op2 = op.to_int64(); /* Not all implementation */ \ + return i_op BIN_OP op2; \ + } \ + template \ + INLINE PTR_TYPE* operator BIN_OP(const ap_int_base<_AP_W, _AP_S>& op, \ + PTR_TYPE* i_op) { \ + ap_slong op2 = op.to_int64(); /* Not all implementation */ \ + return op2 BIN_OP i_op; \ + } + +OP_BIN_WITH_PTR(+) +OP_BIN_WITH_PTR(-) + +/* Operators with a native floating point types. + * ---------------------------------------------------------------- + */ +// float OP ap_int +// when ap_int's width > 64, then trunc ap_int to ap_int<64> +#define OP_BIN_WITH_FLOAT(BIN_OP, C_TYPE) \ + template \ + INLINE C_TYPE operator BIN_OP(C_TYPE i_op, \ + const ap_int_base<_AP_W, _AP_S>& op) { \ + typename ap_int_base<_AP_W, _AP_S>::RetType op2 = op; \ + return i_op BIN_OP op2; \ + } \ + template \ + INLINE C_TYPE operator BIN_OP(const ap_int_base<_AP_W, _AP_S>& op, \ + C_TYPE i_op) { \ + typename ap_int_base<_AP_W, _AP_S>::RetType op2 = op; \ + return op2 BIN_OP i_op; \ + } + +#define ALL_OP_WITH_FLOAT(C_TYPE) \ + OP_BIN_WITH_FLOAT(*, C_TYPE) \ + OP_BIN_WITH_FLOAT(/, C_TYPE) \ + OP_BIN_WITH_FLOAT(+, C_TYPE) \ + OP_BIN_WITH_FLOAT(-, C_TYPE) + +#if _AP_ENABLE_HALF_ == 1 +ALL_OP_WITH_FLOAT(half) +#endif +ALL_OP_WITH_FLOAT(float) +ALL_OP_WITH_FLOAT(double) + +// TODO no shift? + +/* Operators with a native integral types. + * ---------------------------------------------------------------- + */ +// arithmetic and bitwise operators. +#define OP_BIN_WITH_INT(BIN_OP, C_TYPE, _AP_W2, _AP_S2, RTYPE) \ + template \ + INLINE typename ap_int_base<_AP_W, _AP_S>::template RType<_AP_W2, \ + _AP_S2>::RTYPE \ + operator BIN_OP(C_TYPE i_op, const ap_int_base<_AP_W, _AP_S>& op) { \ + return ap_int_base<_AP_W2, _AP_S2>(i_op) BIN_OP(op); \ + } \ + template \ + INLINE typename ap_int_base<_AP_W, _AP_S>::template RType<_AP_W2, \ + _AP_S2>::RTYPE \ + operator BIN_OP(const ap_int_base<_AP_W, _AP_S>& op, C_TYPE i_op) { \ + return op BIN_OP ap_int_base<_AP_W2, _AP_S2>(i_op); \ + } + +#define ALL_OP_BIN_WITH_INT(C_TYPE, _AP_W2, _AP_S2) \ + OP_BIN_WITH_INT(*, C_TYPE, _AP_W2, _AP_S2, mult) \ + OP_BIN_WITH_INT(+, C_TYPE, _AP_W2, _AP_S2, plus) \ + OP_BIN_WITH_INT(-, C_TYPE, _AP_W2, _AP_S2, minus) \ + OP_BIN_WITH_INT(/, C_TYPE, _AP_W2, _AP_S2, div) \ + OP_BIN_WITH_INT(%, C_TYPE, _AP_W2, _AP_S2, mod) \ + OP_BIN_WITH_INT(&, C_TYPE, _AP_W2, _AP_S2, logic) \ + OP_BIN_WITH_INT(|, C_TYPE, _AP_W2, _AP_S2, logic) \ + OP_BIN_WITH_INT(^, C_TYPE, _AP_W2, _AP_S2, logic) + +ALL_OP_BIN_WITH_INT(bool, 1, false) +ALL_OP_BIN_WITH_INT(char, 8, CHAR_IS_SIGNED) +ALL_OP_BIN_WITH_INT(signed char, 8, true) +ALL_OP_BIN_WITH_INT(unsigned char, 8, false) +ALL_OP_BIN_WITH_INT(short, _AP_SIZE_short, true) +ALL_OP_BIN_WITH_INT(unsigned short, _AP_SIZE_short, false) +ALL_OP_BIN_WITH_INT(int, _AP_SIZE_int, true) +ALL_OP_BIN_WITH_INT(unsigned int, _AP_SIZE_int, false) +ALL_OP_BIN_WITH_INT(long, _AP_SIZE_long, true) +ALL_OP_BIN_WITH_INT(unsigned long, _AP_SIZE_long, false) +ALL_OP_BIN_WITH_INT(ap_slong, _AP_SIZE_ap_slong, true) +ALL_OP_BIN_WITH_INT(ap_ulong, _AP_SIZE_ap_slong, false) + +#undef OP_BIN_WITH_INT +#undef ALL_OP_BIN_WITH_INT + +// shift operators. +#define ALL_OP_SHIFT_WITH_INT(C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE typename ap_int_base<_AP_W, _AP_S>::template RType<_AP_W,_AP_S>::arg1 operator<<( \ + const ap_int_base<_AP_W, _AP_S>& op, C_TYPE op2) { \ + ap_int_base<_AP_W, _AP_S> r; \ + if (_AP_S2) \ + r.V = op2 >= 0 ? (op.V << op2) : (op.V >> (-op2)); \ + else \ + r.V = op.V << op2; \ + return r; \ + } \ + template \ + INLINE typename ap_int_base<_AP_W, _AP_S>::template RType<_AP_W,_AP_S>::arg1 operator>>( \ + const ap_int_base<_AP_W, _AP_S>& op, C_TYPE op2) { \ + ap_int_base<_AP_W, _AP_S> r; \ + if (_AP_S2) \ + r.V = op2 >= 0 ? (op.V >> op2) : (op.V << (-op2)); \ + else \ + r.V = op.V >> op2; \ + return r; \ + } + +ALL_OP_SHIFT_WITH_INT(char, 8, CHAR_IS_SIGNED) +ALL_OP_SHIFT_WITH_INT(signed char, 8, true) +ALL_OP_SHIFT_WITH_INT(short, _AP_SIZE_short, true) +ALL_OP_SHIFT_WITH_INT(int, _AP_SIZE_int, true) +ALL_OP_SHIFT_WITH_INT(long, _AP_SIZE_long, true) +ALL_OP_SHIFT_WITH_INT(ap_slong, _AP_SIZE_ap_slong, true) + +#undef ALL_OP_SHIFT_WITH_INT + +#define ALL_OP_SHIFT_WITH_INT(C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE typename ap_int_base<_AP_W, _AP_S>::template RType<_AP_W,_AP_S>::arg1 operator<<( \ + const ap_int_base<_AP_W, _AP_S>& op, C_TYPE op2) { \ + ap_int_base<_AP_W, _AP_S> r; \ + r.V = op.V << op2; \ + return r; \ + } \ + template \ + INLINE typename ap_int_base<_AP_W, _AP_S>::template RType<_AP_W,_AP_S>::arg1 operator>>( \ + const ap_int_base<_AP_W, _AP_S>& op, C_TYPE op2) { \ + ap_int_base<_AP_W, _AP_S> r; \ + r.V = op.V >> op2; \ + return r; \ + } +ALL_OP_SHIFT_WITH_INT(bool, 1, false) +ALL_OP_SHIFT_WITH_INT(unsigned char, 8, false) +ALL_OP_SHIFT_WITH_INT(unsigned short, _AP_SIZE_short, false) +ALL_OP_SHIFT_WITH_INT(unsigned int, _AP_SIZE_int, false) +ALL_OP_SHIFT_WITH_INT(unsigned long, _AP_SIZE_long, false) +ALL_OP_SHIFT_WITH_INT(ap_ulong, _AP_SIZE_ap_slong, false) + +#undef ALL_OP_SHIFT_WITH_INT + +// compound assign operators. +#define OP_ASSIGN_WITH_INT(ASSIGN_OP, C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE ap_int_base<_AP_W, _AP_S>& operator ASSIGN_OP( \ + ap_int_base<_AP_W, _AP_S>& op, C_TYPE op2) { \ + return op ASSIGN_OP ap_int_base<_AP_W2, _AP_S2>(op2); \ + } + +// TODO int a; ap_int<16> b; a += b; + +#define ALL_OP_ASSIGN_WITH_INT(C_TYPE, _AP_W2, _AP_S2) \ + OP_ASSIGN_WITH_INT(+=, C_TYPE, _AP_W2, _AP_S2) \ + OP_ASSIGN_WITH_INT(-=, C_TYPE, _AP_W2, _AP_S2) \ + OP_ASSIGN_WITH_INT(*=, C_TYPE, _AP_W2, _AP_S2) \ + OP_ASSIGN_WITH_INT(/=, C_TYPE, _AP_W2, _AP_S2) \ + OP_ASSIGN_WITH_INT(%=, C_TYPE, _AP_W2, _AP_S2) \ + OP_ASSIGN_WITH_INT(&=, C_TYPE, _AP_W2, _AP_S2) \ + OP_ASSIGN_WITH_INT(|=, C_TYPE, _AP_W2, _AP_S2) \ + OP_ASSIGN_WITH_INT(^=, C_TYPE, _AP_W2, _AP_S2) \ + OP_ASSIGN_WITH_INT(>>=, C_TYPE, _AP_W2, _AP_S2) \ + OP_ASSIGN_WITH_INT(<<=, C_TYPE, _AP_W2, _AP_S2) + +ALL_OP_ASSIGN_WITH_INT(bool, 1, false) +ALL_OP_ASSIGN_WITH_INT(char, 8, CHAR_IS_SIGNED) +ALL_OP_ASSIGN_WITH_INT(signed char, 8, true) +ALL_OP_ASSIGN_WITH_INT(unsigned char, 8, false) +ALL_OP_ASSIGN_WITH_INT(short, _AP_SIZE_short, true) +ALL_OP_ASSIGN_WITH_INT(unsigned short, _AP_SIZE_short, false) +ALL_OP_ASSIGN_WITH_INT(int, _AP_SIZE_int, true) +ALL_OP_ASSIGN_WITH_INT(unsigned int, _AP_SIZE_int, false) +ALL_OP_ASSIGN_WITH_INT(long, _AP_SIZE_long, true) +ALL_OP_ASSIGN_WITH_INT(unsigned long, _AP_SIZE_long, false) +ALL_OP_ASSIGN_WITH_INT(ap_slong, _AP_SIZE_ap_slong, true) +ALL_OP_ASSIGN_WITH_INT(ap_ulong, _AP_SIZE_ap_slong, false) + +#undef OP_ASSIGN_WITH_INT +#undef ALL_OP_ASSIGN_WITH_INT + +// equality and relational operators. +#define OP_REL_WITH_INT(REL_OP, C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE bool operator REL_OP(C_TYPE i_op, \ + const ap_int_base<_AP_W, _AP_S>& op) { \ + return ap_int_base<_AP_W2, _AP_S2>(i_op) REL_OP op; \ + } \ + template \ + INLINE bool operator REL_OP(const ap_int_base<_AP_W, _AP_S>& op, \ + C_TYPE op2) { \ + return op REL_OP ap_int_base<_AP_W2, _AP_S2>(op2); \ + } + +#define ALL_OP_REL_WITH_INT(C_TYPE, _AP_W2, _AP_S2) \ + OP_REL_WITH_INT(>, C_TYPE, _AP_W2, _AP_S2) \ + OP_REL_WITH_INT(<, C_TYPE, _AP_W2, _AP_S2) \ + OP_REL_WITH_INT(>=, C_TYPE, _AP_W2, _AP_S2) \ + OP_REL_WITH_INT(<=, C_TYPE, _AP_W2, _AP_S2) \ + OP_REL_WITH_INT(==, C_TYPE, _AP_W2, _AP_S2) \ + OP_REL_WITH_INT(!=, C_TYPE, _AP_W2, _AP_S2) + +ALL_OP_REL_WITH_INT(bool, 1, false) +ALL_OP_REL_WITH_INT(char, 8, CHAR_IS_SIGNED) +ALL_OP_REL_WITH_INT(signed char, 8, true) +ALL_OP_REL_WITH_INT(unsigned char, 8, false) +ALL_OP_REL_WITH_INT(short, _AP_SIZE_short, true) +ALL_OP_REL_WITH_INT(unsigned short, _AP_SIZE_short, false) +ALL_OP_REL_WITH_INT(int, _AP_SIZE_int, true) +ALL_OP_REL_WITH_INT(unsigned int, _AP_SIZE_int, false) +ALL_OP_REL_WITH_INT(long, _AP_SIZE_long, true) +ALL_OP_REL_WITH_INT(unsigned long, _AP_SIZE_long, false) +ALL_OP_REL_WITH_INT(ap_slong, _AP_SIZE_ap_slong, true) +ALL_OP_REL_WITH_INT(ap_ulong, _AP_SIZE_ap_slong, false) + +#undef OP_REL_WITH_INT +#undef ALL_OP_BIN_WITH_INT + +#define OP_REL_WITH_DOUBLE_OR_FLOAT(Sym) \ + template \ + INLINE bool operator Sym(const ap_int_base<_AP_W, _AP_S>& op1, \ + double op2) { \ + return op1.to_double() Sym op2 ; \ + } \ + template \ + INLINE bool operator Sym(double op1, \ + const ap_int_base<_AP_W, _AP_S>& op2) { \ + return op1 Sym op2.to_double() ; \ + } \ + template \ + INLINE bool operator Sym(const ap_int_base<_AP_W, _AP_S>& op1, \ + float op2) { \ + return op1.to_double() Sym op2 ; \ + } \ + template \ + INLINE bool operator Sym(float op1, \ + const ap_int_base<_AP_W, _AP_S>& op2) { \ + return op1 Sym op2.to_double() ; \ + } + OP_REL_WITH_DOUBLE_OR_FLOAT(>) + OP_REL_WITH_DOUBLE_OR_FLOAT(<) + OP_REL_WITH_DOUBLE_OR_FLOAT(>=) + OP_REL_WITH_DOUBLE_OR_FLOAT(<=) + OP_REL_WITH_DOUBLE_OR_FLOAT(==) + OP_REL_WITH_DOUBLE_OR_FLOAT(!=) + +#undef OP_REL_WITH_DOUBLE_OR_FLOAT + + +/* Operators with ap_bit_ref. + * ------------------------------------------------------------ + */ +// arithmetic, bitwise and shift operators. +#define OP_BIN_WITH_RANGE(BIN_OP, RTYPE) \ + template \ + INLINE typename ap_int_base<_AP_W1, _AP_S1>::template RType<_AP_W2, \ + _AP_S2>::RTYPE \ + operator BIN_OP(const ap_range_ref<_AP_W1, _AP_S1>& op1, \ + const ap_int_base<_AP_W2, _AP_S2>& op2) { \ + return ap_int_base<_AP_W1, false>(op1) BIN_OP op2; \ + } \ + template \ + INLINE typename ap_int_base<_AP_W1, _AP_S1>::template RType<_AP_W2, \ + _AP_S2>::RTYPE \ + operator BIN_OP(const ap_int_base<_AP_W1, _AP_S1>& op1, \ + const ap_range_ref<_AP_W2, _AP_S2>& op2) { \ + return op1 BIN_OP ap_int_base<_AP_W2, false>(op2); \ + } + +OP_BIN_WITH_RANGE(+, plus) +OP_BIN_WITH_RANGE(-, minus) +OP_BIN_WITH_RANGE(*, mult) +OP_BIN_WITH_RANGE(/, div) +OP_BIN_WITH_RANGE(%, mod) +OP_BIN_WITH_RANGE(&, logic) +OP_BIN_WITH_RANGE(|, logic) +OP_BIN_WITH_RANGE(^, logic) +OP_BIN_WITH_RANGE(>>, arg1) +OP_BIN_WITH_RANGE(<<, arg1) + +#undef OP_BIN_WITH_RANGE + +// compound assignment operators. +#define OP_ASSIGN_WITH_RANGE(ASSIGN_OP) \ + template \ + INLINE ap_int_base<_AP_W1, _AP_S1>& operator ASSIGN_OP( \ + ap_int_base<_AP_W1, _AP_S1>& op1, ap_range_ref<_AP_W2, _AP_S2>& op2) { \ + return op1 ASSIGN_OP ap_int_base<_AP_W2, false>(op2); \ + } \ + template \ + INLINE ap_range_ref<_AP_W1, _AP_S1>& operator ASSIGN_OP( \ + ap_range_ref<_AP_W1, _AP_S1>& op1, ap_int_base<_AP_W2, _AP_S2>& op2) { \ + ap_int_base<_AP_W1, false> tmp(op1); \ + tmp ASSIGN_OP op2; \ + op1 = tmp; \ + return op1; \ + } + +OP_ASSIGN_WITH_RANGE(+=) +OP_ASSIGN_WITH_RANGE(-=) +OP_ASSIGN_WITH_RANGE(*=) +OP_ASSIGN_WITH_RANGE(/=) +OP_ASSIGN_WITH_RANGE(%=) +OP_ASSIGN_WITH_RANGE(&=) +OP_ASSIGN_WITH_RANGE(|=) +OP_ASSIGN_WITH_RANGE(^=) +OP_ASSIGN_WITH_RANGE(>>=) +OP_ASSIGN_WITH_RANGE(<<=) + +#undef OP_ASSIGN_WITH_RANGE + +// equality and relational operators +#define OP_REL_WITH_RANGE(REL_OP) \ + template \ + INLINE bool operator REL_OP(const ap_range_ref<_AP_W1, _AP_S1>& op1, \ + const ap_int_base<_AP_W2, _AP_S2>& op2) { \ + return ap_int_base<_AP_W1, false>(op1).operator REL_OP(op2); \ + } \ + template \ + INLINE bool operator REL_OP(const ap_int_base<_AP_W1, _AP_S1>& op1, \ + const ap_range_ref<_AP_W2, _AP_S2>& op2) { \ + return op1.operator REL_OP(op2.operator ap_int_base<_AP_W2, false>()); \ + } + +OP_REL_WITH_RANGE(==) +OP_REL_WITH_RANGE(!=) +OP_REL_WITH_RANGE(>) +OP_REL_WITH_RANGE(>=) +OP_REL_WITH_RANGE(<) +OP_REL_WITH_RANGE(<=) + +#undef OP_REL_WITH_RANGE + +/* Operators with ap_bit_ref. + * ------------------------------------------------------------ + */ +// arithmetic, bitwise and shift operators. +#define OP_BIN_WITH_BIT(BIN_OP, RTYPE) \ + template \ + INLINE typename ap_int_base<_AP_W1, _AP_S1>::template RType<1, false>::RTYPE \ + operator BIN_OP(const ap_int_base<_AP_W1, _AP_S1>& op1, \ + const ap_bit_ref<_AP_W2, _AP_S2>& op2) { \ + return op1 BIN_OP ap_int_base<1, false>(op2); \ + } \ + template \ + INLINE typename ap_int_base<1, false>::template RType<_AP_W2, _AP_S2>::RTYPE \ + operator BIN_OP(const ap_bit_ref<_AP_W1, _AP_S1>& op1, \ + const ap_int_base<_AP_W2, _AP_S2>& op2) { \ + return ap_int_base<1, false>(op1) BIN_OP op2; \ + } + +OP_BIN_WITH_BIT(+, plus) +OP_BIN_WITH_BIT(-, minus) +OP_BIN_WITH_BIT(*, mult) +OP_BIN_WITH_BIT(/, div) +OP_BIN_WITH_BIT(%, mod) +OP_BIN_WITH_BIT(&, logic) +OP_BIN_WITH_BIT(|, logic) +OP_BIN_WITH_BIT(^, logic) +OP_BIN_WITH_BIT(>>, arg1) +OP_BIN_WITH_BIT(<<, arg1) + +#undef OP_BIN_WITH_BIT + +// compound assignment operators. +#define OP_ASSIGN_WITH_BIT(ASSIGN_OP) \ + template \ + INLINE ap_int_base<_AP_W1, _AP_S1>& operator ASSIGN_OP( \ + ap_int_base<_AP_W1, _AP_S1>& op1, ap_bit_ref<_AP_W2, _AP_S2>& op2) { \ + return op1 ASSIGN_OP ap_int_base<1, false>(op2); \ + } \ + template \ + INLINE ap_bit_ref<_AP_W1, _AP_S1>& operator ASSIGN_OP( \ + ap_bit_ref<_AP_W1, _AP_S1>& op1, ap_int_base<_AP_W2, _AP_S2>& op2) { \ + ap_int_base<1, false> tmp(op1); \ + tmp ASSIGN_OP op2; \ + op1 = tmp; \ + return op1; \ + } + +OP_ASSIGN_WITH_BIT(+=) +OP_ASSIGN_WITH_BIT(-=) +OP_ASSIGN_WITH_BIT(*=) +OP_ASSIGN_WITH_BIT(/=) +OP_ASSIGN_WITH_BIT(%=) +OP_ASSIGN_WITH_BIT(&=) +OP_ASSIGN_WITH_BIT(|=) +OP_ASSIGN_WITH_BIT(^=) +OP_ASSIGN_WITH_BIT(>>=) +OP_ASSIGN_WITH_BIT(<<=) + +#undef OP_ASSIGN_WITH_BIT + +// equality and relational operators. +#define OP_REL_WITH_BIT(REL_OP) \ + template \ + INLINE bool operator REL_OP(const ap_int_base<_AP_W1, _AP_S1>& op1, \ + const ap_bit_ref<_AP_W2, _AP_S2>& op2) { \ + return op1 REL_OP ap_int_base<1, false>(op2); \ + } \ + template \ + INLINE bool operator REL_OP(const ap_bit_ref<_AP_W1, _AP_S1>& op1, \ + const ap_int_base<_AP_W2, _AP_S2>& op2) { \ + return ap_int_base<1, false>(op1) REL_OP op2; \ + } + +OP_REL_WITH_BIT(==) +OP_REL_WITH_BIT(!=) +OP_REL_WITH_BIT(>) +OP_REL_WITH_BIT(>=) +OP_REL_WITH_BIT(<) +OP_REL_WITH_BIT(<=) + +#undef OP_REL_WITH_BIT + + +/* Operators with ap_concat_ref. + * ------------------------------------------------------------ + */ +// arithmetic, bitwise and shift operators. +// bitwise operators are defined in struct. +// TODO specify whether to define arithmetic and bitwise operators. +#if 0 +#define OP_BIN_WITH_CONCAT(BIN_OP, RTYPE) \ + template \ + INLINE typename ap_int_base<_AP_W3, _AP_S3>::template RType<_AP_W1 + _AP_W2, \ + false>::RTYPE \ + operator BIN_OP(const ap_int_base<_AP_W3, _AP_S3>& op1, \ + const ap_concat_ref<_AP_W1, _AP_T1, _AP_W2, _AP_T2>& op2) { \ + /* convert ap_concat_ref to ap_int_base */ \ + return op1 BIN_OP op2.get(); \ + } \ + template \ + INLINE typename ap_int_base<_AP_W1 + _AP_W2, \ + false>::template RType<_AP_W3, _AP_S3>::RTYPE \ + operator BIN_OP(const ap_concat_ref<_AP_W1, _AP_T1, _AP_W2, _AP_T2>& op1, \ + const ap_int_base<_AP_W3, _AP_S3>& op2) { \ + /* convert ap_concat_ref to ap_int_base */ \ + return op1.get() BIN_OP op2; \ + } + +OP_BIN_WITH_CONCAT(+, plus) +OP_BIN_WITH_CONCAT(-, minus) +OP_BIN_WITH_CONCAT(*, mult) +OP_BIN_WITH_CONCAT(/, div) +OP_BIN_WITH_CONCAT(%, mod) +OP_BIN_WITH_CONCAT(&, logic) +OP_BIN_WITH_CONCAT(|, logic) +OP_BIN_WITH_CONCAT(^, logic) +OP_BIN_WITH_CONCAT(>>, arg1) +OP_BIN_WITH_CONCAT(<<, arg1) + +#undef OP_BIN_WITH_CONCAT + +// compound assignment operators. +#define OP_ASSIGN_WITH_CONCAT(ASSIGN_OP) \ + template \ + INLINE typename ap_int_base<_AP_W3, _AP_S3>::template RType<_AP_W1 + _AP_W2, \ + false>::RTYPE \ + operator ASSIGN_OP( \ + const ap_int_base<_AP_W3, _AP_S3>& op1, \ + const ap_concat_ref<_AP_W1, _AP_T1, _AP_W2, _AP_T2>& op2) { \ + /* convert ap_concat_ref to ap_int_base */ \ + return op1 ASSIGN_OP op2.get(); \ + } \ + template \ + INLINE typename ap_int_base<_AP_W1 + _AP_W2, \ + false>::template RType<_AP_W3, _AP_S3>::RTYPE \ + operator ASSIGN_OP(const ap_concat_ref<_AP_W1, _AP_T1, _AP_W2, _AP_T2>& op1, \ + const ap_int_base<_AP_W3, _AP_S3>& op2) { \ + /* convert ap_concat_ref to ap_int_base */ \ + ap_int_base<_AP_W1 + _AP_W2, false> tmp = op1.get(); \ + tmp ASSIGN_OP op2; \ + op1 = tmp; \ + return op1; \ + } + +OP_ASSIGN_WITH_CONCAT(+=) +OP_ASSIGN_WITH_CONCAT(-=) +OP_ASSIGN_WITH_CONCAT(*=) +OP_ASSIGN_WITH_CONCAT(/=) +OP_ASSIGN_WITH_CONCAT(%=) +OP_ASSIGN_WITH_CONCAT(&=) +OP_ASSIGN_WITH_CONCAT(|=) +OP_ASSIGN_WITH_CONCAT(^=) +OP_ASSIGN_WITH_CONCAT(>>=) +OP_ASSIGN_WITH_CONCAT(<<=) + +#undef OP_ASSIGN_WITH_CONCAT +#endif + +// equality and relational operators. +#define OP_REL_WITH_CONCAT(REL_OP) \ + template \ + INLINE bool operator REL_OP( \ + const ap_int_base<_AP_W3, _AP_S3>& op1, \ + const ap_concat_ref<_AP_W1, _AP_T1, _AP_W2, _AP_T2>& op2) { \ + /* convert ap_concat_ref to ap_int_base */ \ + return op1 REL_OP op2.get(); \ + } \ + template \ + INLINE bool operator REL_OP( \ + const ap_concat_ref<_AP_W1, _AP_T1, _AP_W2, _AP_T2>& op1, \ + const ap_int_base<_AP_W3, _AP_S3>& op2) { \ + /* convert ap_concat_ref to ap_int_base */ \ + return op1.get() REL_OP op2; \ + } + +OP_REL_WITH_CONCAT(==) +OP_REL_WITH_CONCAT(!=) +OP_REL_WITH_CONCAT(>) +OP_REL_WITH_CONCAT(>=) +OP_REL_WITH_CONCAT(<) +OP_REL_WITH_CONCAT(<=) + +#undef OP_REL_WITH_CONCAT + +#endif // ifndef __cplusplus +#endif // ifndef __AP_INT_BASE_H__ + +// -*- cpp -*- diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int_ref.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int_ref.h new file mode 100644 index 00000000..421f09fd --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int_ref.h @@ -0,0 +1,1346 @@ +/* + * Copyright 2011-2019 Xilinx, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __AP_INT_REF_H__ +#define __AP_INT_REF_H__ + +#ifndef __AP_INT_H__ +#error "Only ap_fixed.h and ap_int.h can be included directly in user code." +#endif + +#ifndef __cplusplus +#error "C++ is required to include this header file" + +#else + +#ifndef __SYNTHESIS__ +#include +#endif + +/* Concatination reference. + ---------------------------------------------------------------- +*/ +template +struct ap_concat_ref { + enum { + _AP_WR = _AP_W1 + _AP_W2, + }; + + _AP_T1& mbv1; + _AP_T2& mbv2; + + INLINE ap_concat_ref(const ap_concat_ref<_AP_W1, _AP_T1, _AP_W2, _AP_T2>& ref) + : mbv1(ref.mbv1), mbv2(ref.mbv2) {} + + INLINE ap_concat_ref(_AP_T1& bv1, _AP_T2& bv2) : mbv1(bv1), mbv2(bv2) {} + + template + INLINE ap_concat_ref& operator=(const ap_int_base<_AP_W3, _AP_S3>& val) { + ap_int_base<_AP_W1 + _AP_W2, false> vval(val); + int W_ref1 = mbv1.length(); + int W_ref2 = mbv2.length(); + ap_int_base<_AP_W1, false> Part1; + Part1.V = _AP_ROOT_op_get_range(vval.V, W_ref2, W_ref1 + W_ref2 - 1); + mbv1.set(Part1); + ap_int_base<_AP_W2, false> Part2; + Part2.V = _AP_ROOT_op_get_range(vval.V, 0, W_ref2 - 1); + mbv2.set(Part2); + return *this; + } + + // assign op from hls supported C integral types. + // FIXME disabled to support legacy code directly assign from sc_signal + //template + //INLINE typename _ap_type::enable_if<_ap_type::is_integral::value, + // ap_concat_ref&>::type + //operator=(T val) { + // ap_int_base<_AP_W1 + _AP_W2, false> tmpVal(val); + // return operator=(tmpVal); + //} +#define ASSIGN_WITH_CTYPE(_Tp) \ + INLINE ap_concat_ref& operator=(_Tp val) { \ + ap_int_base<_AP_W1 + _AP_W2, false> tmpVal(val); \ + return operator=(tmpVal); \ + } + + ASSIGN_WITH_CTYPE(bool) + ASSIGN_WITH_CTYPE(char) + ASSIGN_WITH_CTYPE(signed char) + ASSIGN_WITH_CTYPE(unsigned char) + ASSIGN_WITH_CTYPE(short) + ASSIGN_WITH_CTYPE(unsigned short) + ASSIGN_WITH_CTYPE(int) + ASSIGN_WITH_CTYPE(unsigned int) + ASSIGN_WITH_CTYPE(long) + ASSIGN_WITH_CTYPE(unsigned long) + ASSIGN_WITH_CTYPE(ap_slong) + ASSIGN_WITH_CTYPE(ap_ulong) +#if _AP_ENABLE_HALF_ == 1 + ASSIGN_WITH_CTYPE(half) +#endif + ASSIGN_WITH_CTYPE(float) + ASSIGN_WITH_CTYPE(double) + +#undef ASSIGN_WITH_CTYPE + + // Be explicit to prevent it from being deleted, as field d_bv + // is of reference type. + INLINE ap_concat_ref& operator=( + const ap_concat_ref<_AP_W1, _AP_T1, _AP_W2, _AP_T2>& val) { + ap_int_base<_AP_W1 + _AP_W2, false> tmpVal(val); + return operator=(tmpVal); + } + + template + INLINE ap_concat_ref& operator=( + const ap_concat_ref<_AP_W3, _AP_T3, _AP_W4, _AP_T4>& val) { + ap_int_base<_AP_W1 + _AP_W2, false> tmpVal(val); + return operator=(tmpVal); + } + + template + INLINE ap_concat_ref& operator=(const ap_bit_ref<_AP_W3, _AP_S3>& val) { + ap_int_base<_AP_W1 + _AP_W2, false> tmpVal(val); + return operator=(tmpVal); + } + template + INLINE ap_concat_ref& operator=(const ap_range_ref<_AP_W3, _AP_S3>& val) { + ap_int_base<_AP_W1 + _AP_W2, false> tmpVal(val); + return operator=(tmpVal); + } + + template + INLINE ap_concat_ref& operator=( + const af_range_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3>& val) { + return operator=((const ap_int_base<_AP_W3, false>)(val)); + } + + template + INLINE ap_concat_ref& operator=( + const ap_fixed_base<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3>& + val) { + return operator=(val.to_ap_int_base()); + } + + template + INLINE ap_concat_ref& operator=( + const af_bit_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3>& val) { + return operator=((ap_ulong)(bool)(val)); + } + + INLINE operator ap_int_base<_AP_WR, false>() const { return get(); } + + INLINE operator ap_ulong() const { return get().to_uint64(); } + + template + INLINE ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, + ap_range_ref<_AP_W3, _AP_S3> > + operator,(const ap_range_ref<_AP_W3, _AP_S3> &a2) { + return ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, + ap_range_ref<_AP_W3, _AP_S3> >( + *this, const_cast&>(a2)); + } + + template + INLINE + ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, ap_int_base<_AP_W3, _AP_S3> > + operator,(ap_int_base<_AP_W3, _AP_S3> &a2) { + return ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, + ap_int_base<_AP_W3, _AP_S3> >(*this, a2); + } + + template + INLINE + ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, ap_int_base<_AP_W3, _AP_S3> > + operator,(volatile ap_int_base<_AP_W3, _AP_S3> &a2) { + return ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, + ap_int_base<_AP_W3, _AP_S3> >( + *this, const_cast&>(a2)); + } + + template + INLINE + ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, ap_int_base<_AP_W3, _AP_S3> > + operator,(const ap_int_base<_AP_W3, _AP_S3> &a2) { + return ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, + ap_int_base<_AP_W3, _AP_S3> >( + *this, const_cast&>(a2)); + } + + template + INLINE + ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, ap_int_base<_AP_W3, _AP_S3> > + operator,(const volatile ap_int_base<_AP_W3, _AP_S3> &a2) { + // FIXME op's life does not seem long enough + ap_int_base<_AP_W3, _AP_S3> op(a2); + return ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, + ap_int_base<_AP_W3, _AP_S3> >( + *this, const_cast&>(op)); + } + + template + INLINE ap_concat_ref<_AP_WR, ap_concat_ref, 1, ap_bit_ref<_AP_W3, _AP_S3> > + operator,(const ap_bit_ref<_AP_W3, _AP_S3> &a2) { + return ap_concat_ref<_AP_WR, ap_concat_ref, 1, ap_bit_ref<_AP_W3, _AP_S3> >( + *this, const_cast&>(a2)); + } + + template + INLINE ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3 + _AP_W4, + ap_concat_ref<_AP_W3, _AP_T3, _AP_W4, _AP_T4> > + operator,(const ap_concat_ref<_AP_W3, _AP_T3, _AP_W4, _AP_T4> &a2) { + return ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3 + _AP_W4, + ap_concat_ref<_AP_W3, _AP_T3, _AP_W4, _AP_T4> >( + *this, const_cast&>(a2)); + } + + template + INLINE ap_concat_ref< + _AP_WR, ap_concat_ref, _AP_W3, + af_range_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3> > + operator,( + const af_range_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3> &a2) { + return ap_concat_ref< + _AP_WR, ap_concat_ref, _AP_W3, + af_range_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3> >( + *this, + const_cast< + af_range_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3>&>(a2)); + } + + template + INLINE + ap_concat_ref<_AP_WR, ap_concat_ref, 1, + af_bit_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3> > + operator,(const af_bit_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3> + &a2) { + return ap_concat_ref< + _AP_WR, ap_concat_ref, 1, + af_bit_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3> >( + *this, + const_cast&>( + a2)); + } + + template + INLINE ap_int_base operator&( + const ap_int_base<_AP_W3, _AP_S3>& a2) { + return get() & a2; + } + + template + INLINE ap_int_base operator|( + const ap_int_base<_AP_W3, _AP_S3>& a2) { + return get() | a2; + } + + template + INLINE ap_int_base operator^( + const ap_int_base<_AP_W3, _AP_S3>& a2) { + return get() ^ a2; + } + +#if 0 + template + INLINE ap_int_base slice() { + ap_int_base<_AP_WR, false> bv = get(); + return bv.slice(); + } +#endif + + INLINE ap_int_base<_AP_WR, false> get() const { + ap_int_base<_AP_WR, false> tmpVal(0); + int W_ref1 = mbv1.length(); + int W_ref2 = mbv2.length(); + ap_int_base<_AP_W2, false> v2(mbv2); + ap_int_base<_AP_W1, false> v1(mbv1); + tmpVal.V = _AP_ROOT_op_set_range(tmpVal.V, 0, W_ref2 - 1, v2.V); + tmpVal.V = + _AP_ROOT_op_set_range(tmpVal.V, W_ref2, W_ref1 + W_ref2 - 1, v1.V); + return tmpVal; + } + + template + INLINE void set(const ap_int_base<_AP_W3, false>& val) { + ap_int_base<_AP_W1 + _AP_W2, false> vval(val); + int W_ref1 = mbv1.length(); + int W_ref2 = mbv2.length(); + ap_int_base<_AP_W1, false> tmpVal1; + tmpVal1.V = _AP_ROOT_op_get_range(vval.V, W_ref2, W_ref1 + W_ref2 - 1); + mbv1.set(tmpVal1); + ap_int_base<_AP_W2, false> tmpVal2; + tmpVal2.V = _AP_ROOT_op_get_range(vval.V, 0, W_ref2 - 1); + mbv2.set(tmpVal2); + } + + INLINE int length() const { return mbv1.length() + mbv2.length(); } +}; // struct ap_concat_ref + +/* Range (slice) reference. + ---------------------------------------------------------------- +*/ +template +struct ap_range_ref { + // struct ssdm_int or its sim model. + // TODO make it possible to reference to ap_fixed_base/ap_fixed/ap_ufixed + // and then we can retire af_range_ref. + typedef ap_int_base<_AP_W, _AP_S> ref_type; + ref_type& d_bv; + int l_index; + int h_index; + + public: + INLINE ap_range_ref(const ap_range_ref<_AP_W, _AP_S>& ref) + : d_bv(ref.d_bv), l_index(ref.l_index), h_index(ref.h_index) {} + + INLINE ap_range_ref(ref_type* bv, int h, int l) + : d_bv(*bv), l_index(l), h_index(h) {} + + INLINE ap_range_ref(const ref_type* bv, int h, int l) + : d_bv(*const_cast(bv)), l_index(l), h_index(h) {} + + INLINE operator ap_int_base<_AP_W, false>() const { + ap_int_base<_AP_W, false> ret; + ret.V = _AP_ROOT_op_get_range(d_bv.V, l_index, h_index); + return ret; + } + + INLINE operator ap_ulong() const { return to_uint64(); } + + /// @name assign operators + // @{ + + // FIXME disabled to work-around lagacy code assigning from sc_signal, + // which dependes on implicit type conversion. + // + // /// assign from hls supported C integral types. + // template + // INLINE typename _ap_type::enable_if<_ap_type::is_integral::value, + // ap_range_ref&>::type + // operator=(T val) { + // ap_int_base<_AP_W, false> tmp(val); + // d_bv.V = _AP_ROOT_op_set_range(d_bv.V, l_index, h_index, tmp.V); + // return *this; + // } +#define ASSIGN_WITH_CTYPE(_Tp) \ + INLINE ap_range_ref& operator=(_Tp val) { \ + ap_int_base<_AP_W, false> tmp(val); \ + d_bv.V = _AP_ROOT_op_set_range(d_bv.V, l_index, h_index, tmp.V); \ + return *this; \ + } + + ASSIGN_WITH_CTYPE(bool) + ASSIGN_WITH_CTYPE(char) + ASSIGN_WITH_CTYPE(signed char) + ASSIGN_WITH_CTYPE(unsigned char) + ASSIGN_WITH_CTYPE(short) + ASSIGN_WITH_CTYPE(unsigned short) + ASSIGN_WITH_CTYPE(int) + ASSIGN_WITH_CTYPE(unsigned int) + ASSIGN_WITH_CTYPE(long) + ASSIGN_WITH_CTYPE(unsigned long) + ASSIGN_WITH_CTYPE(ap_slong) + ASSIGN_WITH_CTYPE(ap_ulong) +#if _AP_ENABLE_HALF_ == 1 + ASSIGN_WITH_CTYPE(half) +#endif + ASSIGN_WITH_CTYPE(float) + ASSIGN_WITH_CTYPE(double) + +#undef ASSIGN_WITH_CTYPE + + /// assign using string. XXX crucial for cosim. + INLINE ap_range_ref& operator=(const char* val) { + const ap_int_base<_AP_W, false> tmp(val); // XXX figure out radix + d_bv.V = _AP_ROOT_op_set_range(d_bv.V, l_index, h_index, tmp.V); + return *this; + } + + /// assign from ap_int_base. + template + INLINE ap_range_ref& operator=(const ap_int_base<_AP_W2, _AP_S2>& val) { + ap_int_base<_AP_W, false> tmp(val); + d_bv.V = _AP_ROOT_op_set_range(d_bv.V, l_index, h_index, tmp.V); + return *this; + } + + /// copy assign operator + // XXX Be explicit to prevent it from being deleted, as field d_bv + // is of reference type. + INLINE ap_range_ref& operator=(const ap_range_ref& val) { + return operator=((const ap_int_base<_AP_W, false>)val); + } + + /// assign from range reference to ap_int_base. + template + INLINE ap_range_ref& operator=(const ap_range_ref<_AP_W2, _AP_S2>& val) { + return operator=((const ap_int_base<_AP_W2, false>)val); + } + + /// assign from bit reference to ap_int_base. + template + INLINE ap_range_ref& operator=(const ap_bit_ref<_AP_W2, _AP_S2>& val) { + return operator=((ap_ulong)(bool)(val)); + } + + /// assign from ap_fixed_base. + template + INLINE ap_range_ref& operator=( + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& + val) { + return operator=(val.to_ap_int_base()); + } + + /// assign from range reference to ap_fixed_base. + template + INLINE ap_range_ref& operator=( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { + return operator=((const ap_int_base<_AP_W2, false>)val); + } + + /// assign from bit reference to ap_fixed_base. + template + INLINE ap_range_ref& operator=( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { + return operator=((ap_ulong)(bool)(val)); + } + + /// assign from compound reference. + template + INLINE ap_range_ref& operator=( + const ap_concat_ref<_AP_W2, _AP_T3, _AP_W3, _AP_T3>& val) { + return operator=((const ap_int_base<_AP_W2 + _AP_W3, false>)(val)); + } + // @} + + template + INLINE + ap_concat_ref<_AP_W, ap_range_ref, _AP_W2, ap_range_ref<_AP_W2, _AP_S2> > + operator,(const ap_range_ref<_AP_W2, _AP_S2> &a2) { + return ap_concat_ref<_AP_W, ap_range_ref, _AP_W2, + ap_range_ref<_AP_W2, _AP_S2> >( + *this, const_cast&>(a2)); + } + + template + INLINE + ap_concat_ref<_AP_W, ap_range_ref, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + operator,(ap_int_base<_AP_W2, _AP_S2> &a2) { + return ap_concat_ref<_AP_W, ap_range_ref, _AP_W2, + ap_int_base<_AP_W2, _AP_S2> >(*this, a2); + } + + INLINE + ap_concat_ref<_AP_W, ap_range_ref, _AP_W, ap_int_base<_AP_W, _AP_S> > + operator,(ap_int_base<_AP_W, _AP_S>& a2) { + return ap_concat_ref<_AP_W, ap_range_ref, _AP_W, + ap_int_base<_AP_W, _AP_S> >(*this, a2); + } + + template + INLINE + ap_concat_ref<_AP_W, ap_range_ref, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + operator,(volatile ap_int_base<_AP_W2, _AP_S2> &a2) { + return ap_concat_ref<_AP_W, ap_range_ref, _AP_W2, + ap_int_base<_AP_W2, _AP_S2> >( + *this, const_cast&>(a2)); + } + + template + INLINE + ap_concat_ref<_AP_W, ap_range_ref, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + operator,(const ap_int_base<_AP_W2, _AP_S2> &a2) { + return ap_concat_ref<_AP_W, ap_range_ref, _AP_W2, + ap_int_base<_AP_W2, _AP_S2> >( + *this, const_cast&>(a2)); + } + + template + INLINE + ap_concat_ref<_AP_W, ap_range_ref, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + operator,(const volatile ap_int_base<_AP_W2, _AP_S2> &a2) { + return ap_concat_ref<_AP_W, ap_range_ref, _AP_W2, + ap_int_base<_AP_W2, _AP_S2> >( + *this, const_cast&>(a2)); + } + + template + INLINE ap_concat_ref<_AP_W, ap_range_ref, 1, ap_bit_ref<_AP_W2, _AP_S2> > + operator,(const ap_bit_ref<_AP_W2, _AP_S2> &a2) { + return ap_concat_ref<_AP_W, ap_range_ref, 1, ap_bit_ref<_AP_W2, _AP_S2> >( + *this, const_cast&>(a2)); + } + + template + INLINE ap_concat_ref<_AP_W, ap_range_ref, _AP_W2 + _AP_W3, + ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> > + operator,(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> &a2) { + return ap_concat_ref<_AP_W, ap_range_ref, _AP_W2 + _AP_W3, + ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> >( + *this, const_cast&>(a2)); + } + + template + INLINE ap_concat_ref< + _AP_W, ap_range_ref, _AP_W2, + af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > + operator,( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> a2) { + return ap_concat_ref< + _AP_W, ap_range_ref, _AP_W2, + af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >( + *this, + const_cast< + af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>&>(a2)); + } + + template + INLINE + ap_concat_ref<_AP_W, ap_range_ref, 1, + af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > + operator,(const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> + &a2) { + return ap_concat_ref< + _AP_W, ap_range_ref, 1, + af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >( + *this, + const_cast&>( + a2)); + } + + template + INLINE bool operator==(const ap_range_ref<_AP_W2, _AP_S2>& op2) { + ap_int_base<_AP_W, false> lop(*this); + ap_int_base<_AP_W2, false> hop(op2); + return lop == hop; + } + + template + INLINE bool operator!=(const ap_range_ref<_AP_W2, _AP_S2>& op2) { + return !(operator==(op2)); + } + + template + INLINE bool operator<(const ap_range_ref<_AP_W2, _AP_S2>& op2) { + ap_int_base<_AP_W, false> lop(*this); + ap_int_base<_AP_W2, false> hop(op2); + return lop < hop; + } + + template + INLINE bool operator<=(const ap_range_ref<_AP_W2, _AP_S2>& op2) { + ap_int_base<_AP_W, false> lop(*this); + ap_int_base<_AP_W2, false> hop(op2); + return lop <= hop; + } + + template + INLINE bool operator>(const ap_range_ref<_AP_W2, _AP_S2>& op2) { + return !(operator<=(op2)); + } + + template + INLINE bool operator>=(const ap_range_ref<_AP_W2, _AP_S2>& op2) { + return !(operator<(op2)); + } + + template + INLINE ap_range_ref<_AP_W, _AP_S>& operator|=( + const ap_range_ref<_AP_W2, _AP_S2>& op2) { + (this->d_bv).V |= (op2.d_bv).V; + return *this; + }; + + template + INLINE ap_range_ref<_AP_W, _AP_S>& operator|=( + const ap_int_base<_AP_W2, _AP_S2>& op2) { + (this->d_bv).V |= op2.V; + return *this; + }; + + template + INLINE ap_range_ref<_AP_W, _AP_S>& operator&=( + const ap_range_ref<_AP_W2, _AP_S2>& op2) { + (this->d_bv).V &= (op2.d_bv).V; + return *this; + }; + + template + INLINE ap_range_ref<_AP_W, _AP_S>& operator&=( + const ap_int_base<_AP_W2, _AP_S2>& op2) { + (this->d_bv).V &= op2.V; + return *this; + }; + + template + INLINE ap_range_ref<_AP_W, _AP_S>& operator^=( + const ap_range_ref<_AP_W2, _AP_S2>& op2) { + (this->d_bv).V ^= (op2.d_bv).V; + return *this; + }; + + template + INLINE ap_range_ref<_AP_W, _AP_S>& operator^=( + const ap_int_base<_AP_W2, _AP_S2>& op2) { + (this->d_bv).V ^= op2.V; + return *this; + }; + + INLINE ap_int_base<_AP_W, false> get() const { + ap_int_base<_AP_W, false> ret; + ret.V = _AP_ROOT_op_get_range(d_bv.V, l_index, h_index); + return ret; + } + + template + INLINE void set(const ap_int_base<_AP_W2, false>& val) { + d_bv.V = _AP_ROOT_op_set_range(d_bv.V, l_index, h_index, val.V); + } + + INLINE int length() const { + return h_index >= l_index ? h_index - l_index + 1 : l_index - h_index + 1; + } + + INLINE int to_int() const { + return (int)(_AP_ROOT_op_get_range(d_bv.V, l_index, h_index)); + } + + INLINE unsigned to_uint() const { + return (unsigned)(_AP_ROOT_op_get_range(d_bv.V, l_index, h_index)); + } + + INLINE long to_long() const { + return (long)(_AP_ROOT_op_get_range(d_bv.V, l_index, h_index)); + } + + INLINE unsigned long to_ulong() const { + return (unsigned long)(_AP_ROOT_op_get_range(d_bv.V, l_index, h_index)); + } + + INLINE ap_slong to_int64() const { + return (ap_slong)(_AP_ROOT_op_get_range(d_bv.V, l_index, h_index)); + } + + INLINE ap_ulong to_uint64() const { + return (ap_ulong)(_AP_ROOT_op_get_range(d_bv.V, l_index, h_index)); + } + + INLINE bool and_reduce() const { + bool ret = true; + bool reverse = l_index > h_index; + unsigned low = reverse ? h_index : l_index; + unsigned high = reverse ? l_index : h_index; + for (unsigned i = low; i != high; ++i) { +#ifdef __SYNTHESIS__ +#pragma HLS unroll +#endif + ret &= _AP_ROOT_op_get_bit(d_bv.V, i); + } + return ret; + } + + INLINE bool or_reduce() const { + bool ret = false; + bool reverse = l_index > h_index; + unsigned low = reverse ? h_index : l_index; + unsigned high = reverse ? l_index : h_index; + for (unsigned i = low; i != high; ++i) { +#ifdef __SYNTHESIS__ +#pragma HLS unroll +#endif + ret |= _AP_ROOT_op_get_bit(d_bv.V, i); + } + return ret; + } + + INLINE bool xor_reduce() const { + bool ret = false; + bool reverse = l_index > h_index; + unsigned low = reverse ? h_index : l_index; + unsigned high = reverse ? l_index : h_index; + for (unsigned i = low; i != high; ++i) { +#ifdef __SYNTHESIS__ +#pragma HLS unroll +#endif + ret ^= _AP_ROOT_op_get_bit(d_bv.V, i); + } + return ret; + } +#ifndef __SYNTHESIS__ + std::string to_string(signed char radix = 2) const { + ap_int_base<_AP_W, false> ret; + ret.V = _AP_ROOT_op_get_range(d_bv.V, l_index, h_index); + return ret.to_string(radix); + } +#else + // XXX HLS will delete this in synthesis + INLINE char* to_string(signed char radix = 2) const { + return 0; + } +#endif +}; // struct ap_range_ref + +// XXX apcc cannot handle global std::ios_base::Init() brought in by +#ifndef AP_AUTOCC +#ifndef __SYNTHESIS__ +template +INLINE std::ostream& operator<<(std::ostream& os, + const ap_range_ref<_AP_W, _AP_S>& x) { + std::ios_base::fmtflags ff = std::cout.flags(); + if (ff & std::cout.hex) { + os << x.to_string(16); // don't print sign + } else if (ff & std::cout.oct) { + os << x.to_string(8); // don't print sign + } else { + os << x.to_string(10); + } + return os; +} +#endif // ifndef __SYNTHESIS__ + +#ifndef __SYNTHESIS__ +template +INLINE std::istream& operator>>(std::istream& in, + ap_range_ref<_AP_W, _AP_S>& op) { + std::string str; + in >> str; + op = ap_int_base<_AP_W, _AP_S>(str.c_str()); + return in; +} +#endif // ifndef __SYNTHESIS__ +#endif // ifndef AP_AUTOCC + +/* Bit reference. + ---------------------------------------------------------------- +*/ +template +struct ap_bit_ref { + // struct ssdm_int or its sim model. + // TODO make it possible to reference to ap_fixed_base/ap_fixed/ap_ufixed + // and then we can retire af_bit_ref. + typedef ap_int_base<_AP_W, _AP_S> ref_type; + ref_type& d_bv; + int d_index; + + public: + // copy ctor + INLINE ap_bit_ref(const ap_bit_ref<_AP_W, _AP_S>& ref) + : d_bv(ref.d_bv), d_index(ref.d_index) {} + + INLINE ap_bit_ref(ref_type* bv, int index = 0) : d_bv(*bv), d_index(index) {} + + INLINE ap_bit_ref(const ref_type* bv, int index = 0) + : d_bv(*const_cast(bv)), d_index(index) {} + + INLINE operator bool() const { return _AP_ROOT_op_get_bit(d_bv.V, d_index); } + INLINE bool to_bool() const { return _AP_ROOT_op_get_bit(d_bv.V, d_index); } + + // assign op from hls supported C integral types. + // FIXME disabled to support sc_signal. + // NOTE this used to be unsigned long long. + //template + //INLINE typename _ap_type::enable_if<_ap_type::is_integral::value, + // ap_bit_ref&>::type + //operator=(T val) { + // d_bv.V = _AP_ROOT_op_set_bit(d_bv.V, d_index, val); + // return *this; + //} +#define ASSIGN_WITH_CTYPE(_Tp) \ + INLINE ap_bit_ref& operator=(_Tp val) { \ + d_bv.V = _AP_ROOT_op_set_bit(d_bv.V, d_index, val); \ + return *this; \ + } + + ASSIGN_WITH_CTYPE(bool) + ASSIGN_WITH_CTYPE(char) + ASSIGN_WITH_CTYPE(signed char) + ASSIGN_WITH_CTYPE(unsigned char) + ASSIGN_WITH_CTYPE(short) + ASSIGN_WITH_CTYPE(unsigned short) + ASSIGN_WITH_CTYPE(int) + ASSIGN_WITH_CTYPE(unsigned int) + ASSIGN_WITH_CTYPE(long) + ASSIGN_WITH_CTYPE(unsigned long) + ASSIGN_WITH_CTYPE(ap_slong) + ASSIGN_WITH_CTYPE(ap_ulong) + +#undef ASSIGN_WITH_CTYPE + +#define ASSIGN_WITH_CTYPE_FP(_Tp) \ + INLINE ap_bit_ref& operator=(_Tp val) { \ + bool tmp_val = val; \ + d_bv.V = _AP_ROOT_op_set_bit(d_bv.V, d_index,tmp_val); \ + return *this; \ + } + +#if _AP_ENABLE_HALF_ == 1 + ASSIGN_WITH_CTYPE_FP(half) +#endif + ASSIGN_WITH_CTYPE_FP(float) + ASSIGN_WITH_CTYPE_FP(double) + +#undef ASSIGN_WITH_CTYPE_FP + + + template + INLINE ap_bit_ref& operator=(const ap_int_base<_AP_W2, _AP_S2>& val) { + return operator=((ap_ulong)(val.V != 0)); + } + + template + INLINE ap_bit_ref& operator=(const ap_range_ref<_AP_W2, _AP_S2>& val) { + return operator=((ap_int_base<_AP_W2, false>)val); + } + + // Be explicit to prevent it from being deleted, as field d_bv + // is of reference type. + INLINE ap_bit_ref& operator=(const ap_bit_ref& val) { + return operator=((ap_ulong)(bool)val); + } + + template + INLINE ap_bit_ref& operator=(const ap_bit_ref<_AP_W2, _AP_S2>& val) { + return operator=((ap_ulong)(bool)val); + } + + template + INLINE ap_bit_ref& operator=( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { + return operator=((const ap_int_base<_AP_W2, false>)val); + } + + template + INLINE ap_bit_ref& operator=( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { + return operator=((ap_ulong)(bool)val); + } + + template + INLINE ap_bit_ref& operator=( + const ap_concat_ref<_AP_W2, _AP_T3, _AP_W3, _AP_T3>& val) { + return operator=((const ap_int_base<_AP_W2 + _AP_W3, false>)val); + } + + template + INLINE ap_concat_ref<1, ap_bit_ref, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + operator,(ap_int_base<_AP_W2, _AP_S2> &a2) { + return ap_concat_ref<1, ap_bit_ref, _AP_W2, ap_int_base<_AP_W2, _AP_S2> >( + *this, a2); + } + + template + INLINE ap_concat_ref<1, ap_bit_ref, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + operator,(volatile ap_int_base<_AP_W2, _AP_S2> &a2) { + return ap_concat_ref<1, ap_bit_ref, _AP_W2, ap_int_base<_AP_W2, _AP_S2> >( + *this, const_cast&>(a2)); + } + + template + INLINE ap_concat_ref<1, ap_bit_ref, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + operator,(const ap_int_base<_AP_W2, _AP_S2> &a2) { + ap_int_base<_AP_W2, _AP_S2> op(a2); + return ap_concat_ref<1, ap_bit_ref, _AP_W2, ap_int_base<_AP_W2, _AP_S2> >( + *this, const_cast&>(op)); + } + + template + INLINE ap_concat_ref<1, ap_bit_ref, _AP_W2, ap_int_base<_AP_W2, _AP_S2> > + operator,(const volatile ap_int_base<_AP_W2, _AP_S2> &a2) { + ap_int_base<_AP_W2, _AP_S2> op(a2); + return ap_concat_ref<1, ap_bit_ref, _AP_W2, ap_int_base<_AP_W2, _AP_S2> >( + *this, const_cast&>(op)); + } + + template + INLINE ap_concat_ref<1, ap_bit_ref, _AP_W2, ap_range_ref<_AP_W2, _AP_S2> > + operator,(const ap_range_ref<_AP_W2, _AP_S2> &a2) { + return ap_concat_ref<1, ap_bit_ref, _AP_W2, ap_range_ref<_AP_W2, _AP_S2> >( + *this, const_cast&>(a2)); + } + + template + INLINE ap_concat_ref<1, ap_bit_ref, 1, ap_bit_ref<_AP_W2, _AP_S2> > operator,( + const ap_bit_ref<_AP_W2, _AP_S2> &a2) { + return ap_concat_ref<1, ap_bit_ref, 1, ap_bit_ref<_AP_W2, _AP_S2> >( + *this, const_cast&>(a2)); + } + + template + INLINE ap_concat_ref<1, ap_bit_ref, _AP_W2 + _AP_W3, + ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> > + operator,(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> &a2) { + return ap_concat_ref<1, ap_bit_ref, _AP_W2 + _AP_W3, + ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> >( + *this, const_cast&>(a2)); + } + + template + INLINE ap_concat_ref< + 1, ap_bit_ref, _AP_W2, + af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > + operator,( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> &a2) { + return ap_concat_ref< + 1, ap_bit_ref, _AP_W2, + af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >( + *this, + const_cast< + af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>&>(a2)); + } + + template + INLINE ap_concat_ref<1, ap_bit_ref, 1, af_bit_ref<_AP_W2, _AP_I2, _AP_S2, + _AP_Q2, _AP_O2, _AP_N2> > + operator,( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> &a2) { + return ap_concat_ref<1, ap_bit_ref, 1, af_bit_ref<_AP_W2, _AP_I2, _AP_S2, + _AP_Q2, _AP_O2, _AP_N2> >( + *this, + const_cast&>( + a2)); + } + + template + INLINE bool operator==(const ap_bit_ref<_AP_W2, _AP_S2>& op) { + return get() == op.get(); + } + + template + INLINE bool operator!=(const ap_bit_ref<_AP_W2, _AP_S2>& op) { + return get() != op.get(); + } + + INLINE bool get() const { return _AP_ROOT_op_get_bit(d_bv.V, d_index); } + + INLINE bool get() { return _AP_ROOT_op_get_bit(d_bv.V, d_index); } + + template + INLINE void set(const ap_int_base<_AP_W3, false>& val) { + operator=(val); + } + + INLINE bool operator~() const { + bool bit = _AP_ROOT_op_get_bit(d_bv.V, d_index); + return bit ? false : true; + } + + INLINE int length() const { return 1; } + +#ifndef __SYNTHESIS__ + std::string to_string() const { return get() ? "1" : "0"; } +#else + // XXX HLS will delete this in synthesis + INLINE char* to_string() const { return 0; } +#endif +}; // struct ap_bit_ref + +/* ap_range_ref with int. + * ------------------------------------------------------------ + */ +// equality and relational operators. +#define REF_REL_OP_WITH_INT(REL_OP, C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE bool operator REL_OP(const ap_range_ref<_AP_W, _AP_S>& op, \ + C_TYPE op2) { \ + return ap_int_base<_AP_W, false>(op) \ + REL_OP ap_int_base<_AP_W2, _AP_S2>(op2); \ + } \ + template \ + INLINE bool operator REL_OP(const ap_bit_ref<_AP_W, _AP_S>& op, \ + C_TYPE op2) { \ + return bool(op) REL_OP op2; \ + } \ + template \ + INLINE bool operator REL_OP(C_TYPE op2, \ + const ap_bit_ref<_AP_W, _AP_S>& op) { \ + return op2 REL_OP bool(op); \ + } \ + template \ + INLINE bool operator REL_OP( \ + const ap_concat_ref<_AP_W, _AP_T, _AP_W1, _AP_T1>& op, C_TYPE op2) { \ + return ap_int_base<_AP_W + _AP_W1, false>(op) \ + REL_OP ap_int_base<_AP_W2, _AP_S2>(op2); \ + } + +// Make the line shorter than 5000 chars +#define REF_REL_WITH_INT_1(C_TYPE, _AP_WI, _AP_SI) \ + REF_REL_OP_WITH_INT(>, C_TYPE, _AP_WI, _AP_SI) \ + REF_REL_OP_WITH_INT(<, C_TYPE, _AP_WI, _AP_SI) \ + REF_REL_OP_WITH_INT(>=, C_TYPE, _AP_WI, _AP_SI) \ + REF_REL_OP_WITH_INT(<=, C_TYPE, _AP_WI, _AP_SI) + +REF_REL_WITH_INT_1(bool, 1, false) +REF_REL_WITH_INT_1(char, 8, CHAR_IS_SIGNED) +REF_REL_WITH_INT_1(signed char, 8, true) +REF_REL_WITH_INT_1(unsigned char, 8, false) +REF_REL_WITH_INT_1(short, _AP_SIZE_short, true) +REF_REL_WITH_INT_1(unsigned short, _AP_SIZE_short, false) +REF_REL_WITH_INT_1(int, _AP_SIZE_int, true) +REF_REL_WITH_INT_1(unsigned int, _AP_SIZE_int, false) +REF_REL_WITH_INT_1(long, _AP_SIZE_long, true) +REF_REL_WITH_INT_1(unsigned long, _AP_SIZE_long, false) +REF_REL_WITH_INT_1(ap_slong, _AP_SIZE_ap_slong, true) +REF_REL_WITH_INT_1(ap_ulong, _AP_SIZE_ap_slong, false) + +// Make the line shorter than 5000 chars +#define REF_REL_WITH_INT_2(C_TYPE, _AP_WI, _AP_SI) \ + REF_REL_OP_WITH_INT(==, C_TYPE, _AP_WI, _AP_SI) \ + REF_REL_OP_WITH_INT(!=, C_TYPE, _AP_WI, _AP_SI) + +REF_REL_WITH_INT_2(bool, 1, false) +REF_REL_WITH_INT_2(char, 8, CHAR_IS_SIGNED) +REF_REL_WITH_INT_2(signed char, 8, true) +REF_REL_WITH_INT_2(unsigned char, 8, false) +REF_REL_WITH_INT_2(short, _AP_SIZE_short, true) +REF_REL_WITH_INT_2(unsigned short, _AP_SIZE_short, false) +REF_REL_WITH_INT_2(int, _AP_SIZE_int, true) +REF_REL_WITH_INT_2(unsigned int, _AP_SIZE_int, false) +REF_REL_WITH_INT_2(long, _AP_SIZE_long, true) +REF_REL_WITH_INT_2(unsigned long, _AP_SIZE_long, false) +REF_REL_WITH_INT_2(ap_slong, _AP_SIZE_ap_slong, true) +REF_REL_WITH_INT_2(ap_ulong, _AP_SIZE_ap_slong, false) + +#undef REF_REL_OP_WITH_INT +#undef REF_REL_WITH_INT_1 +#undef REF_REL_WITH_INT_2 + +#define REF_BIN_OP_WITH_INT(BIN_OP, RTYPE, C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE typename ap_int_base<_AP_W, false>::template RType<_AP_W2, \ + _AP_S2>::RTYPE \ + operator BIN_OP(const ap_range_ref<_AP_W, _AP_S>& op, C_TYPE op2) { \ + return ap_int_base<_AP_W, false>(op) \ + BIN_OP ap_int_base<_AP_W2, _AP_S2>(op2); \ + } \ + template \ + INLINE typename ap_int_base<_AP_W2, _AP_S2>::template RType<_AP_W, \ + false>::RTYPE \ + operator BIN_OP(C_TYPE op2, const ap_range_ref<_AP_W, _AP_S>& op) { \ + return ap_int_base<_AP_W2, _AP_S2>(op2) \ + BIN_OP ap_int_base<_AP_W, false>(op); \ + } + +// arithmetic operators. +#define REF_BIN_OP_WITH_INT_ARITH(C_TYPE, _AP_W2, _AP_S2) \ + REF_BIN_OP_WITH_INT(+, plus, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_WITH_INT(-, minus, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_WITH_INT(*, mult, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_WITH_INT(/, div, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_WITH_INT(%, mod, C_TYPE, (_AP_W2), (_AP_S2)) + +REF_BIN_OP_WITH_INT_ARITH(bool, 1, false) +REF_BIN_OP_WITH_INT_ARITH(char, 8, CHAR_IS_SIGNED) +REF_BIN_OP_WITH_INT_ARITH(signed char, 8, true) +REF_BIN_OP_WITH_INT_ARITH(unsigned char, 8, false) +REF_BIN_OP_WITH_INT_ARITH(short, _AP_SIZE_short, true) +REF_BIN_OP_WITH_INT_ARITH(unsigned short, _AP_SIZE_short, false) +REF_BIN_OP_WITH_INT_ARITH(int, _AP_SIZE_int, true) +REF_BIN_OP_WITH_INT_ARITH(unsigned int, _AP_SIZE_int, false) +REF_BIN_OP_WITH_INT_ARITH(long, _AP_SIZE_long, true) +REF_BIN_OP_WITH_INT_ARITH(unsigned long, _AP_SIZE_long, false) +REF_BIN_OP_WITH_INT_ARITH(ap_slong, _AP_SIZE_ap_slong, true) +REF_BIN_OP_WITH_INT_ARITH(ap_ulong, _AP_SIZE_ap_slong, false) + +#undef REF_BIN_OP_WITH_INT_ARITH + +// bitwise and shift operators +#define REF_BIN_OP_WITH_INT_BITS(C_TYPE, _AP_W2, _AP_S2) \ + REF_BIN_OP_WITH_INT(&, logic, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_WITH_INT(|, logic, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_WITH_INT(^, logic, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_WITH_INT(>>, arg1, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_WITH_INT(<<, arg1, C_TYPE, (_AP_W2), (_AP_S2)) + +REF_BIN_OP_WITH_INT_BITS(bool, 1, false) +REF_BIN_OP_WITH_INT_BITS(char, 8, CHAR_IS_SIGNED) +REF_BIN_OP_WITH_INT_BITS(signed char, 8, true) +REF_BIN_OP_WITH_INT_BITS(unsigned char, 8, false) +REF_BIN_OP_WITH_INT_BITS(short, _AP_SIZE_short, true) +REF_BIN_OP_WITH_INT_BITS(unsigned short, _AP_SIZE_short, false) +REF_BIN_OP_WITH_INT_BITS(int, _AP_SIZE_int, true) +REF_BIN_OP_WITH_INT_BITS(unsigned int, _AP_SIZE_int, false) +REF_BIN_OP_WITH_INT_BITS(long, _AP_SIZE_long, true) +REF_BIN_OP_WITH_INT_BITS(unsigned long, _AP_SIZE_long, false) +REF_BIN_OP_WITH_INT_BITS(ap_slong, _AP_SIZE_ap_slong, true) +REF_BIN_OP_WITH_INT_BITS(ap_ulong, _AP_SIZE_ap_slong, false) + +#undef REF_BIN_OP_WITH_INT_BITS + +/* ap_range_ref with ap_range_ref + * ------------------------------------------------------------ + */ +#define REF_BIN_OP(BIN_OP, RTYPE) \ + template \ + INLINE \ + typename ap_int_base<_AP_W, false>::template RType<_AP_W2, false>::RTYPE \ + operator BIN_OP(const ap_range_ref<_AP_W, _AP_S>& lhs, \ + const ap_range_ref<_AP_W2, _AP_S2>& rhs) { \ + return (lhs.operator ap_int_base<_AP_W, false>())BIN_OP( \ + rhs.operator ap_int_base<_AP_W2, false>()); \ + } + +REF_BIN_OP(+, plus) +REF_BIN_OP(-, minus) +REF_BIN_OP(*, mult) +REF_BIN_OP(/, div) +REF_BIN_OP(%, mod) +REF_BIN_OP(&, logic) +REF_BIN_OP(|, logic) +REF_BIN_OP(^, logic) +REF_BIN_OP(>>, arg1) +REF_BIN_OP(<<, arg1) + +/* ap_concat_ref with ap_concat_ref. + * ------------------------------------------------------------ + */ + +//************************************************************************ +// Implement +// ap_int_base = ap_concat_ref OP ap_concat_ref +// for operators +, -, *, /, %, >>, <<, &, |, ^ +// Without these operators the operands are converted to int64 and +// larger results lose informations (higher order bits). +// +// operand OP +// / | +// left-concat right-concat +// / | / | +// +// +// _AP_LW1, _AP_LT1 (width and type of left-concat's left side) +// _AP_LW2, _AP_LT2 (width and type of left-concat's right side) +// Similarly for RHS of operand OP: _AP_RW1, AP_RW2, _AP_RT1, _AP_RT2 +// +// In Verilog 2001 result of concatenation is always unsigned even +// when both sides are signed. +//************************************************************************ + +#undef SYN_CONCAT_REF_BIN_OP + +#define SYN_CONCAT_REF_BIN_OP(BIN_OP, RTYPE) \ + template \ + INLINE typename ap_int_base<_AP_LW1 + _AP_LW2, false>::template RType< \ + _AP_RW1 + _AP_RW2, false>::RTYPE \ + operator BIN_OP( \ + const ap_concat_ref<_AP_LW1, _AP_LT1, _AP_LW2, _AP_LT2>& lhs, \ + const ap_concat_ref<_AP_RW1, _AP_RT1, _AP_RW2, _AP_RT2>& rhs) { \ + return lhs.get() BIN_OP rhs.get(); \ + } + +SYN_CONCAT_REF_BIN_OP(+, plus) +SYN_CONCAT_REF_BIN_OP(-, minus) +SYN_CONCAT_REF_BIN_OP(*, mult) +SYN_CONCAT_REF_BIN_OP(/, div) +SYN_CONCAT_REF_BIN_OP(%, mod) +SYN_CONCAT_REF_BIN_OP(&, logic) +SYN_CONCAT_REF_BIN_OP(|, logic) +SYN_CONCAT_REF_BIN_OP(^, logic) +SYN_CONCAT_REF_BIN_OP(>>, arg1) +SYN_CONCAT_REF_BIN_OP(<<, arg1) + +#undef SYN_CONCAT_REF_BIN_OP + +#define CONCAT_OP_WITH_INT(C_TYPE, _AP_WI, _AP_SI) \ + template \ + INLINE ap_int_base<_AP_W + _AP_WI, false> operator,( \ + const ap_int_base<_AP_W, _AP_S> &op1, C_TYPE op2) { \ + ap_int_base<_AP_WI + _AP_W, false> val(op2); \ + ap_int_base<_AP_WI + _AP_W, false> ret(op1); \ + ret <<= _AP_WI; \ + if (_AP_SI) { \ + val <<= _AP_W; \ + val >>= _AP_W; \ + } \ + ret |= val; \ + return ret; \ + } \ + template \ + INLINE ap_int_base<_AP_W + _AP_WI, false> operator,( \ + C_TYPE op1, const ap_int_base<_AP_W, _AP_S> &op2) { \ + ap_int_base<_AP_WI + _AP_W, false> val(op1); \ + ap_int_base<_AP_WI + _AP_W, false> ret(op2); \ + if (_AP_S) { \ + ret <<= _AP_WI; \ + ret >>= _AP_WI; \ + } \ + ret |= val << _AP_W; \ + return ret; \ + } \ + template \ + INLINE ap_int_base<_AP_W + _AP_WI, false> operator,( \ + const ap_range_ref<_AP_W, _AP_S> &op1, C_TYPE op2) { \ + ap_int_base<_AP_WI + _AP_W, false> val(op2); \ + ap_int_base<_AP_WI + _AP_W, false> ret(op1); \ + ret <<= _AP_WI; \ + if (_AP_SI) { \ + val <<= _AP_W; \ + val >>= _AP_W; \ + } \ + ret |= val; \ + return ret; \ + } \ + template \ + INLINE ap_int_base<_AP_W + _AP_WI, false> operator,( \ + C_TYPE op1, const ap_range_ref<_AP_W, _AP_S> &op2) { \ + ap_int_base<_AP_WI + _AP_W, false> val(op1); \ + ap_int_base<_AP_WI + _AP_W, false> ret(op2); \ + int len = op2.length(); \ + val <<= len; \ + ret |= val; \ + return ret; \ + } \ + template \ + INLINE ap_int_base<_AP_WI + 1, false> operator,( \ + const ap_bit_ref<_AP_W, _AP_S> &op1, C_TYPE op2) { \ + ap_int_base<_AP_WI + 1, false> val(op2); \ + val[_AP_WI] = op1; \ + return val; \ + } \ + template \ + INLINE ap_int_base<_AP_WI + 1, false> operator,( \ + C_TYPE op1, const ap_bit_ref<_AP_W, _AP_S> &op2) { \ + ap_int_base<_AP_WI + 1, false> val(op1); \ + val <<= 1; \ + val[0] = op2; \ + return val; \ + } \ + template \ + INLINE ap_int_base<_AP_W + _AP_W2 + _AP_WI, false> operator,( \ + const ap_concat_ref<_AP_W, _AP_T, _AP_W2, _AP_T2> &op1, C_TYPE op2) { \ + ap_int_base<_AP_WI + _AP_W + _AP_W2, _AP_SI> val(op2); \ + ap_int_base<_AP_WI + _AP_W + _AP_W2, _AP_SI> ret(op1); \ + if (_AP_SI) { \ + val <<= _AP_W + _AP_W2; \ + val >>= _AP_W + _AP_W2; \ + } \ + ret <<= _AP_WI; \ + ret |= val; \ + return ret; \ + } \ + template \ + INLINE ap_int_base<_AP_W + _AP_W2 + _AP_WI, false> operator,( \ + C_TYPE op1, const ap_concat_ref<_AP_W, _AP_T, _AP_W2, _AP_T2> &op2) { \ + ap_int_base<_AP_WI + _AP_W + _AP_W2, _AP_SI> val(op1); \ + ap_int_base<_AP_WI + _AP_W + _AP_W2, _AP_SI> ret(op2); \ + int len = op2.length(); \ + val <<= len; \ + ret |= val; \ + return ret; \ + } \ + template \ + INLINE ap_int_base<_AP_W + _AP_WI, false> operator,( \ + const af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> &op1, \ + C_TYPE op2) { \ + ap_int_base<_AP_WI + _AP_W, false> val(op2); \ + ap_int_base<_AP_WI + _AP_W, false> ret(op1); \ + if (_AP_SI) { \ + val <<= _AP_W; \ + val >>= _AP_W; \ + } \ + ret <<= _AP_WI; \ + ret |= val; \ + return ret; \ + } \ + template \ + INLINE ap_int_base<_AP_W + _AP_WI, false> operator,( \ + C_TYPE op1, \ + const af_range_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> &op2) { \ + ap_int_base<_AP_WI + _AP_W, false> val(op1); \ + ap_int_base<_AP_WI + _AP_W, false> ret(op2); \ + int len = op2.length(); \ + val <<= len; \ + ret |= val; \ + return ret; \ + } \ + template \ + INLINE ap_int_base<1 + _AP_WI, false> operator,( \ + const af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> &op1, \ + C_TYPE op2) { \ + ap_int_base<_AP_WI + 1, _AP_SI> val(op2); \ + val[_AP_WI] = op1; \ + return val; \ + } \ + template \ + INLINE ap_int_base<1 + _AP_WI, false> operator,( \ + C_TYPE op1, \ + const af_bit_ref<_AP_W, _AP_I, _AP_S, _AP_Q, _AP_O, _AP_N> &op2) { \ + ap_int_base<_AP_WI + 1, _AP_SI> val(op1); \ + val <<= 1; \ + val[0] = op2; \ + return val; \ + } + +CONCAT_OP_WITH_INT(bool, 1, false) +CONCAT_OP_WITH_INT(char, 8, CHAR_IS_SIGNED) +CONCAT_OP_WITH_INT(signed char, 8, true) +CONCAT_OP_WITH_INT(unsigned char, 8, false) +CONCAT_OP_WITH_INT(short, _AP_SIZE_short, true) +CONCAT_OP_WITH_INT(unsigned short, _AP_SIZE_short, false) +CONCAT_OP_WITH_INT(int, _AP_SIZE_int, true) +CONCAT_OP_WITH_INT(unsigned int, _AP_SIZE_int, false) +CONCAT_OP_WITH_INT(long, _AP_SIZE_long, true) +CONCAT_OP_WITH_INT(unsigned long, _AP_SIZE_long, false) +CONCAT_OP_WITH_INT(ap_slong, _AP_SIZE_ap_slong, true) +CONCAT_OP_WITH_INT(ap_ulong, _AP_SIZE_ap_slong, false) + +#undef CONCAT_OP_WITH_INT + +#define CONCAT_SHIFT_WITH_INT(C_TYPE, OP) \ + template \ + INLINE ap_uint<_AP_W + _AP_W1> operator OP( \ + const ap_concat_ref<_AP_W, _AP_T, _AP_W1, _AP_T1> lhs, C_TYPE rhs) { \ + return ap_uint<_AP_W + _AP_W1>(lhs).get() OP int(rhs); \ + } + +// FIXME int(rhs) may loose precision. + +CONCAT_SHIFT_WITH_INT(int, <<) +CONCAT_SHIFT_WITH_INT(unsigned int, <<) +CONCAT_SHIFT_WITH_INT(long, <<) +CONCAT_SHIFT_WITH_INT(unsigned long, <<) +CONCAT_SHIFT_WITH_INT(ap_slong, <<) +CONCAT_SHIFT_WITH_INT(ap_ulong, <<) + +CONCAT_SHIFT_WITH_INT(int, >>) +CONCAT_SHIFT_WITH_INT(unsigned int, >>) +CONCAT_SHIFT_WITH_INT(long, >>) +CONCAT_SHIFT_WITH_INT(unsigned long, >>) +CONCAT_SHIFT_WITH_INT(ap_slong, >>) +CONCAT_SHIFT_WITH_INT(ap_ulong, >>) + +#endif // ifndef __cplusplus +#endif // ifndef __AP_INT_REF_H__ + +// -*- cpp -*- diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int_special.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int_special.h new file mode 100644 index 00000000..3afc6192 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_int_special.h @@ -0,0 +1,223 @@ +/* + * Copyright 2011-2019 Xilinx, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __AP_INT_SPECIAL_H__ +#define __AP_INT_SPECIAL_H__ + +#ifndef __AP_INT_H__ +#error "Only ap_fixed.h and ap_int.h can be included directly in user code." +#endif + +#ifndef __SYNTHESIS__ +#include +#include +#endif +// FIXME AP_AUTOCC cannot handle many standard headers, so declare instead of +// include. +// #include +namespace std { +template class complex; +} + +/* + TODO: Modernize the code using C++11/C++14 + 1. constexpr http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0415r0.html + 2. move constructor +*/ + +namespace std { +/* + Specialize std::complex to zero initialization ap_int. + + To reduce the area cost, ap_int is not zero initialized, just like basic + types float or double. However, libstdc++ provides specialization for float, + double and long double, initializing image part to 0 when not specified. + + This has become a difficulty in switching legacy code from these C types to + ap_int. To ease the tranform of legacy code, we have to implement + specialization of std::complex<> for our type. + + As ap_int is a template, it is impossible to specialize only the methods + that causes default initialization of value type in std::complex<>. An + explicit full specialization of the template class has to be done, covering + all the member functions and operators of std::complex<> as specified + in standard 26.2.4 and 26.2.5. +*/ +template +class complex > { + public: + typedef ap_int<_AP_W> _Tp; + typedef _Tp value_type; + + // 26.2.4/1 + // Constructor without argument + // Default initialize, so that in dataflow, the variable is only written once. + complex() : _M_real(_Tp()), _M_imag(_Tp()) {} + // Constructor with ap_int. + // Zero initialize image part when not specified, so that `C(1) == C(1,0)` + complex(const _Tp &__r, const _Tp &__i = _Tp(0)) + : _M_real(__r), _M_imag(__i) {} + + // Constructor with another complex number + template + complex(const complex<_Up> &__z) : _M_real(__z.real()), _M_imag(__z.imag()) {} + +#if __cplusplus >= 201103L + const _Tp& real() const { return _M_real; } + const _Tp& imag() const { return _M_imag; } +#else + _Tp& real() { return _M_real; } + const _Tp& real() const { return _M_real; } + _Tp& imag() { return _M_imag; } + const _Tp& imag() const { return _M_imag; } +#endif + + void real(_Tp __val) { _M_real = __val; } + + void imag(_Tp __val) { _M_imag = __val; } + + // Assign this complex number with ap_int. + // Zero initialize image poarrt, so that `C c; c = 1; c == C(1,0);` + complex<_Tp> &operator=(const _Tp __t) { + _M_real = __t; + _M_imag = _Tp(0); + return *this; + } + + // 26.2.5/1 + // Add ap_int to this complex number. + complex<_Tp> &operator+=(const _Tp &__t) { + _M_real += __t; + return *this; + } + + // 26.2.5/3 + // Subtract ap_int from this complex number. + complex<_Tp> &operator-=(const _Tp &__t) { + _M_real -= __t; + return *this; + } + + // 26.2.5/5 + // Multiply this complex number by ap_int. + complex<_Tp> &operator*=(const _Tp &__t) { + _M_real *= __t; + _M_imag *= __t; + return *this; + } + + // 26.2.5/7 + // Divide this complex number by ap_int. + complex<_Tp> &operator/=(const _Tp &__t) { + _M_real /= __t; + _M_imag /= __t; + return *this; + } + + // Assign complex number to this complex number. + template + complex<_Tp> &operator=(const complex<_Up> &__z) { + _M_real = __z.real(); + _M_imag = __z.imag(); + return *this; + } + + // 26.2.5/9 + // Add complex number to this. + template + complex<_Tp> &operator+=(const complex<_Up> &__z) { + _M_real += __z.real(); + _M_imag += __z.imag(); + return *this; + } + + // 26.2.5/11 + // Subtract complex number from this. + template + complex<_Tp> &operator-=(const complex<_Up> &__z) { + _M_real -= __z.real(); + _M_imag -= __z.imag(); + return *this; + } + + // 26.2.5/13 + // Multiply this by complex number. + template + complex<_Tp> &operator*=(const complex<_Up> &__z) { + const _Tp __r = _M_real * __z.real() - _M_imag * __z.imag(); + _M_imag = _M_real * __z.imag() + _M_imag * __z.real(); + _M_real = __r; + return *this; + } + + // 26.2.5/15 + // Divide this by complex number. + template + complex<_Tp> &operator/=(const complex<_Up> &__z) { + complex<_Tp> cj (__z.real(), -__z.imag()); + complex<_Tp> a = (*this) * cj; + complex<_Tp> b = cj * __z; + _M_real = a.real() / b.real(); + _M_imag = a.imag() / b.real(); + return *this; + } + + private: + _Tp _M_real; + _Tp _M_imag; + +}; // class complex > + + +/* + Non-member operations + These operations are not required by standard in 26.2.6, but libstdc++ + defines them for + float, double or long double's specialization. +*/ +// Compare complex number with ap_int. +template +inline bool operator==(const complex > &__x, const ap_int<_AP_W> &__y) { + return __x.real() == __y && + __x.imag() == 0; +} + +// Compare ap_int with complex number. +template +inline bool operator==(const ap_int<_AP_W> &__x, const complex > &__y) { + return __x == __y.real() && + 0 == __y.imag(); +} + +// Compare complex number with ap_int. +template +inline bool operator!=(const complex > &__x, const ap_int<_AP_W> &__y) { + return __x.real() != __y || + __x.imag() != 0; +} + +// Compare ap_int with complex number. +template +inline bool operator!=(const ap_int<_AP_W> &__x, const complex > &__y) { + return __x != __y.real() || + 0 != __y.imag(); +} + +} // namespace std + +#endif // ifndef __AP_INT_SPECIAL_H__ + +// -*- cpp -*- diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_shift_reg.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_shift_reg.h new file mode 100644 index 00000000..94dba51e --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/ap_shift_reg.h @@ -0,0 +1,138 @@ +/* +#- (c) Copyright 2011-2019 Xilinx, Inc. All rights reserved. +#- +#- This file contains confidential and proprietary information +#- of Xilinx, Inc. and is protected under U.S. and +#- international copyright and other intellectual property +#- laws. +#- +#- DISCLAIMER +#- This disclaimer is not a license and does not grant any +#- rights to the materials distributed herewith. Except as +#- otherwise provided in a valid license issued to you by +#- Xilinx, and to the maximum extent permitted by applicable +#- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +#- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +#- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +#- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +#- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +#- (2) Xilinx shall not be liable (whether in contract or tort, +#- including negligence, or under any other theory of +#- liability) for any loss or damage of any kind or nature +#- related to, arising under or in connection with these +#- materials, including for any direct, or any indirect, +#- special, incidental, or consequential loss or damage +#- (including loss of data, profits, goodwill, or any type of +#- loss or damage suffered as a result of any action brought +#- by a third party) even if such damage or loss was +#- reasonably foreseeable or Xilinx had been advised of the +#- possibility of the same. +#- +#- CRITICAL APPLICATIONS +#- Xilinx products are not designed or intended to be fail- +#- safe, or for use in any application requiring fail-safe +#- performance, such as life-support or safety devices or +#- systems, Class III medical devices, nuclear facilities, +#- applications related to the deployment of airbags, or any +#- other applications that could lead to death, personal +#- injury, or severe property or environmental damage +#- (individually and collectively, "Critical +#- Applications"). Customer assumes the sole risk and +#- liability of any use of Xilinx products in Critical +#- Applications, subject only to applicable laws and +#- regulations governing limitations on product liability. +#- +#- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +#- PART OF THIS FILE AT ALL TIMES. +#- ************************************************************************ + + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef __SIM_AP_SHIFT_REG_H__ +#define __SIM_AP_SHIFT_REG_H__ + + +/* + * This file contains a C++ model of shift register. + * It defines C level simulation model. + */ +#ifndef __cplusplus +#error C++ is required to include this header file +#else + +#include + +////////////////////////////////////////////// +// C level simulation model for ap_shift_reg +////////////////////////////////////////////// +template +class ap_shift_reg +{ + public: + /// Constructors + ap_shift_reg() { } + ap_shift_reg(const char* name) { } + /// Destructor + virtual ~ap_shift_reg() { } + + private: + /// Make copy constructor and assignment operator private + ap_shift_reg(const ap_shift_reg< __SHIFT_T__, __SHIFT_DEPTH__ >& shreg) + { + for (unsigned i = 0; i < __SHIFT_DEPTH__; ++i) + Array[i] = shreg.Array[i]; + } + + ap_shift_reg& operator = (const ap_shift_reg< __SHIFT_T__, + __SHIFT_DEPTH__ >& shreg) + { + for (unsigned i = 0; i < __SHIFT_DEPTH__; ++i) + Array[i] = shreg.Array[i]; + return *this; + } + + public: + // Shift the queue, push to back and read from a given address. + __SHIFT_T__ shift(__SHIFT_T__ DataIn, + unsigned int Addr = __SHIFT_DEPTH__ - 1, bool Enable = true) + { + assert(Addr < __SHIFT_DEPTH__ && + "Out-of-bound shift is found in ap_shift_reg."); + __SHIFT_T__ ret = Array[Addr]; + if (Enable) { + for (unsigned int i = __SHIFT_DEPTH__ - 1; i > 0; --i) + Array[i] = Array[i-1]; + Array[0] = DataIn; + } + return ret; + } + + // Read from a given address. + __SHIFT_T__ read(unsigned int Addr = __SHIFT_DEPTH__ - 1) const + { + assert(Addr < __SHIFT_DEPTH__ && + "Out-of-bound read is found in ap_shift_reg."); + return Array[Addr]; + } + + protected: + __SHIFT_T__ Array[__SHIFT_DEPTH__]; +}; + +#endif //__cplusplus + +#endif //__SIM_AP_SHIFT_REG_H__ + + diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/etc/ap_private.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/etc/ap_private.h new file mode 100644 index 00000000..0c29a0ac --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/etc/ap_private.h @@ -0,0 +1,7199 @@ +/* + * Copyright 2011-2019 Xilinx, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __AP_PRIVATE_H__ +#define __AP_PRIVATE_H__ + +// common macros and type declarations are now defined in ap_common.h, and +// ap_private becomes part of it. +#ifndef __AP_COMMON_H__ +#error "etc/ap_private.h cannot be included directly." +#endif + +// forward declarations +//template +//class ap_private; // moved to ap_common.h +template +struct _private_range_ref; +template +struct _private_bit_ref; + +// TODO clean up this part. +#ifndef LLVM_SUPPORT_MATHEXTRAS_H +#define LLVM_SUPPORT_MATHEXTRAS_H + +#ifdef _MSC_VER +#if _MSC_VER <= 1500 +typedef __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#else +#include +#endif +#else +#include +#endif + +#ifndef INLINE +#define INLINE inline +// Enable to debug ap_int/ap_fixed +// #define INLINE __attribute__((weak)) +#endif + +// NOTE: The following support functions use the _32/_64 extensions instead of +// type overloading so that signed and unsigned integers can be used without +// ambiguity. +namespace AESL_std { +template +DataType INLINE min(DataType a, DataType b) { + return (a >= b) ? b : a; +} + +template +DataType INLINE max(DataType a, DataType b) { + return (a >= b) ? a : b; +} +} // namespace AESL_std + +// TODO clean up included headers. +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace ap_private_ops { +/// Hi_32 - This function returns the high 32 bits of a 64 bit value. +static INLINE uint32_t Hi_32(uint64_t Value) { + return static_cast(Value >> 32); +} + +/// Lo_32 - This function returns the low 32 bits of a 64 bit value. +static INLINE uint32_t Lo_32(uint64_t Value) { + return static_cast(Value); +} + +template +INLINE bool isNegative(const ap_private<_AP_W, false>& a) { + return false; +} + +template +INLINE bool isNegative(const ap_private<_AP_W, true>& a) { + enum { + APINT_BITS_PER_WORD = 64, + _AP_N = (_AP_W + APINT_BITS_PER_WORD - 1) / APINT_BITS_PER_WORD + }; + static const uint64_t sign_mask = 1ULL << ((_AP_W - 1) % APINT_BITS_PER_WORD); + return (sign_mask & a.get_pVal(_AP_N - 1)) != 0; +} + +/// CountLeadingZeros_32 - this function performs the platform optimal form of +/// counting the number of zeros from the most significant bit to the first one +/// bit. Ex. CountLeadingZeros_32(0x00F000FF) == 8. +/// Returns 32 if the word is zero. +static INLINE unsigned CountLeadingZeros_32(uint32_t Value) { + unsigned Count; // result +#if __GNUC__ >= 4 +// PowerPC is defined for __builtin_clz(0) +#if !defined(__ppc__) && !defined(__ppc64__) + if (Value == 0) return 32; +#endif + Count = __builtin_clz(Value); +#else + if (Value == 0) return 32; + Count = 0; + // bisecton method for count leading zeros + for (unsigned Shift = 32 >> 1; Shift; Shift >>= 1) { + uint32_t Tmp = (Value) >> (Shift); + if (Tmp) { + Value = Tmp; + } else { + Count |= Shift; + } + } +#endif + return Count; +} + +/// CountLeadingZeros_64 - This function performs the platform optimal form +/// of counting the number of zeros from the most significant bit to the first +/// one bit (64 bit edition.) +/// Returns 64 if the word is zero. +static INLINE unsigned CountLeadingZeros_64(uint64_t Value) { + unsigned Count; // result +#if __GNUC__ >= 4 +// PowerPC is defined for __builtin_clzll(0) +#if !defined(__ppc__) && !defined(__ppc64__) + if (!Value) return 64; +#endif + Count = __builtin_clzll(Value); +#else + if (sizeof(long) == sizeof(int64_t)) { + if (!Value) return 64; + Count = 0; + // bisecton method for count leading zeros + for (unsigned Shift = 64 >> 1; Shift; Shift >>= 1) { + uint64_t Tmp = (Value) >> (Shift); + if (Tmp) { + Value = Tmp; + } else { + Count |= Shift; + } + } + } else { + // get hi portion + uint32_t Hi = Hi_32(Value); + + // if some bits in hi portion + if (Hi) { + // leading zeros in hi portion plus all bits in lo portion + Count = CountLeadingZeros_32(Hi); + } else { + // get lo portion + uint32_t Lo = Lo_32(Value); + // same as 32 bit value + Count = CountLeadingZeros_32(Lo) + 32; + } + } +#endif + return Count; +} + +/// CountTrailingZeros_64 - This function performs the platform optimal form +/// of counting the number of zeros from the least significant bit to the first +/// one bit (64 bit edition.) +/// Returns 64 if the word is zero. +static INLINE unsigned CountTrailingZeros_64(uint64_t Value) { +#if __GNUC__ >= 4 + return (Value != 0) ? __builtin_ctzll(Value) : 64; +#else + static const unsigned Mod67Position[] = { + 64, 0, 1, 39, 2, 15, 40, 23, 3, 12, 16, 59, 41, 19, 24, 54, 4, + 64, 13, 10, 17, 62, 60, 28, 42, 30, 20, 51, 25, 44, 55, 47, 5, 32, + 65, 38, 14, 22, 11, 58, 18, 53, 63, 9, 61, 27, 29, 50, 43, 46, 31, + 37, 21, 57, 52, 8, 26, 49, 45, 36, 56, 7, 48, 35, 6, 34, 33, 0}; + return Mod67Position[(uint64_t)(-(int64_t)Value & (int64_t)Value) % 67]; +#endif +} + +/// CountPopulation_64 - this function counts the number of set bits in a value, +/// (64 bit edition.) +static INLINE unsigned CountPopulation_64(uint64_t Value) { +#if __GNUC__ >= 4 + return __builtin_popcountll(Value); +#else + uint64_t v = Value - (((Value) >> 1) & 0x5555555555555555ULL); + v = (v & 0x3333333333333333ULL) + (((v) >> 2) & 0x3333333333333333ULL); + v = (v + ((v) >> 4)) & 0x0F0F0F0F0F0F0F0FULL; + return unsigned((uint64_t)(v * 0x0101010101010101ULL) >> 56); +#endif +} + +static INLINE uint32_t countLeadingOnes_64(uint64_t __V, uint32_t skip) { + uint32_t Count = 0; + if (skip) (__V) <<= (skip); + while (__V && (__V & (1ULL << 63))) { + Count++; + (__V) <<= 1; + } + return Count; +} + +static INLINE std::string oct2Bin(char oct) { + switch (oct) { + case '\0': { + return ""; + } + case '.': { + return "."; + } + case '0': { + return "000"; + } + case '1': { + return "001"; + } + case '2': { + return "010"; + } + case '3': { + return "011"; + } + case '4': { + return "100"; + } + case '5': { + return "101"; + } + case '6': { + return "110"; + } + case '7': { + return "111"; + } + } + assert(0 && "Invalid character in digit string"); + return ""; +} + +static INLINE std::string hex2Bin(char hex) { + switch (hex) { + case '\0': { + return ""; + } + case '.': { + return "."; + } + case '0': { + return "0000"; + } + case '1': { + return "0001"; + } + case '2': { + return "0010"; + } + case '3': { + return "0011"; + } + case '4': { + return "0100"; + } + case '5': { + return "0101"; + } + case '6': { + return "0110"; + } + case '7': { + return "0111"; + } + case '8': { + return "1000"; + } + case '9': { + return "1001"; + } + case 'A': + case 'a': { + return "1010"; + } + case 'B': + case 'b': { + return "1011"; + } + case 'C': + case 'c': { + return "1100"; + } + case 'D': + case 'd': { + return "1101"; + } + case 'E': + case 'e': { + return "1110"; + } + case 'F': + case 'f': { + return "1111"; + } + } + assert(0 && "Invalid character in digit string"); + return ""; +} + +static INLINE uint32_t decode_digit(char cdigit, int radix) { + uint32_t digit = 0; + if (radix == 16) { +#define isxdigit(c) \ + (((c) >= '0' && (c) <= '9') || ((c) >= 'a' && (c) <= 'f') || \ + ((c) >= 'A' && (c) <= 'F')) +#define isdigit(c) ((c) >= '0' && (c) <= '9') + if (!isxdigit(cdigit)) assert(0 && "Invalid hex digit in string"); + if (isdigit(cdigit)) + digit = cdigit - '0'; + else if (cdigit >= 'a') + digit = cdigit - 'a' + 10; + else if (cdigit >= 'A') + digit = cdigit - 'A' + 10; + else + assert(0 && "huh? we shouldn't get here"); + } else if (isdigit(cdigit)) { + digit = cdigit - '0'; + } else { + assert(0 && "Invalid character in digit string"); + } +#undef isxdigit +#undef isdigit + return digit; +} + +// Determine the radix of "val". +static INLINE std::string parseString(const std::string& input, unsigned char& radix) { + size_t len = input.length(); + if (len == 0) { + if (radix == 0) radix = 10; + return input; + } + + size_t startPos = 0; + // Trim whitespace + while (input[startPos] == ' ' && startPos < len) startPos++; + while (input[len - 1] == ' ' && startPos < len) len--; + + std::string val = input.substr(startPos, len - startPos); + // std::cout << "val = " << val << "\n"; + len = val.length(); + startPos = 0; + + // If the length of the string is less than 2, then radix + // is decimal and there is no exponent. + if (len < 2) { + if (radix == 0) radix = 10; + return val; + } + + bool isNegative = false; + std::string ans; + + // First check to see if we start with a sign indicator + if (val[0] == '-') { + ans = "-"; + ++startPos; + isNegative = true; + } else if (val[0] == '+') + ++startPos; + + if (len - startPos < 2) { + if (radix == 0) radix = 10; + return val; + } + + if (val.substr(startPos, 2) == "0x" || val.substr(startPos, 2) == "0X") { + // If we start with "0x", then the radix is hex. + radix = 16; + startPos += 2; + } else if (val.substr(startPos, 2) == "0b" || + val.substr(startPos, 2) == "0B") { + // If we start with "0b", then the radix is binary. + radix = 2; + startPos += 2; + } else if (val.substr(startPos, 2) == "0o" || + val.substr(startPos, 2) == "0O") { + // If we start with "0o", then the radix is octal. + radix = 8; + startPos += 2; + } else if (radix == 0) { + radix = 10; + } + + int exp = 0; + if (radix == 10) { + // If radix is decimal, then see if there is an + // exponent indicator. + size_t expPos = val.find('e'); + bool has_exponent = true; + if (expPos == std::string::npos) expPos = val.find('E'); + if (expPos == std::string::npos) { + // No exponent indicator, so the mantissa goes to the end. + expPos = len; + has_exponent = false; + } + // std::cout << "startPos = " << startPos << " " << expPos << "\n"; + + ans += val.substr(startPos, expPos - startPos); + if (has_exponent) { + // Parse the exponent. + std::istringstream iss(val.substr(expPos + 1, len - expPos - 1)); + iss >> exp; + } + } else { + // Check for a binary exponent indicator. + size_t expPos = val.find('p'); + bool has_exponent = true; + if (expPos == std::string::npos) expPos = val.find('P'); + if (expPos == std::string::npos) { + // No exponent indicator, so the mantissa goes to the end. + expPos = len; + has_exponent = false; + } + + // std::cout << "startPos = " << startPos << " " << expPos << "\n"; + + assert(startPos <= expPos); + // Convert to binary as we go. + for (size_t i = startPos; i < expPos; ++i) { + if (radix == 16) { + ans += hex2Bin(val[i]); + } else if (radix == 8) { + ans += oct2Bin(val[i]); + } else { // radix == 2 + ans += val[i]; + } + } + // End in binary + radix = 2; + if (has_exponent) { + // Parse the exponent. + std::istringstream iss(val.substr(expPos + 1, len - expPos - 1)); + iss >> exp; + } + } + if (exp == 0) return ans; + + size_t decPos = ans.find('.'); + if (decPos == std::string::npos) decPos = ans.length(); + if ((int)decPos + exp >= (int)ans.length()) { + int i = decPos; + for (; i < (int)ans.length() - 1; ++i) ans[i] = ans[i + 1]; + for (; i < (int)ans.length(); ++i) ans[i] = '0'; + for (; i < (int)decPos + exp; ++i) ans += '0'; + return ans; + } else if ((int)decPos + exp < (int)isNegative) { + std::string dupAns = "0."; + if (ans[0] == '-') dupAns = "-0."; + for (int i = 0; i < isNegative - (int)decPos - exp; ++i) dupAns += '0'; + for (size_t i = isNegative; i < ans.length(); ++i) + if (ans[i] != '.') dupAns += ans[i]; + return dupAns; + } + + if (exp > 0) + for (size_t i = decPos; i < decPos + exp; ++i) ans[i] = ans[i + 1]; + else { + if (decPos == ans.length()) ans += ' '; + for (int i = decPos; i > (int)decPos + exp; --i) ans[i] = ans[i - 1]; + } + ans[decPos + exp] = '.'; + return ans; +} + +/// sub_1 - This function subtracts a single "digit" (64-bit word), y, from +/// the multi-digit integer array, x[], propagating the borrowed 1 value until +/// no further borrowing is neeeded or it runs out of "digits" in x. The result +/// is 1 if "borrowing" exhausted the digits in x, or 0 if x was not exhausted. +/// In other words, if y > x then this function returns 1, otherwise 0. +/// @returns the borrow out of the subtraction +static INLINE bool sub_1(uint64_t x[], uint32_t len, uint64_t y) { + for (uint32_t i = 0; i < len; ++i) { + uint64_t __X = x[i]; + x[i] -= y; + if (y > __X) + y = 1; // We have to "borrow 1" from next "digit" + else { + y = 0; // No need to borrow + break; // Remaining digits are unchanged so exit early + } + } + return (y != 0); +} + +/// add_1 - This function adds a single "digit" integer, y, to the multiple +/// "digit" integer array, x[]. x[] is modified to reflect the addition and +/// 1 is returned if there is a carry out, otherwise 0 is returned. +/// @returns the carry of the addition. +static INLINE bool add_1(uint64_t dest[], uint64_t x[], uint32_t len, + uint64_t y) { + for (uint32_t i = 0; i < len; ++i) { + dest[i] = y + x[i]; + if (dest[i] < y) + y = 1; // Carry one to next digit. + else { + y = 0; // No need to carry so exit early + break; + } + } + return (y != 0); +} + +/// add - This function adds the integer array x to the integer array Y and +/// places the result in dest. +/// @returns the carry out from the addition +/// @brief General addition of 64-bit integer arrays +static INLINE bool add(uint64_t* dest, const uint64_t* x, const uint64_t* y, + uint32_t destlen, uint32_t xlen, uint32_t ylen, + bool xsigned, bool ysigned) { + bool carry = false; + uint32_t len = AESL_std::min(xlen, ylen); + uint32_t i; + for (i = 0; i < len && i < destlen; ++i) { + uint64_t limit = + AESL_std::min(x[i], y[i]); // must come first in case dest == x + dest[i] = x[i] + y[i] + carry; + carry = dest[i] < limit || (carry && dest[i] == limit); + } + if (xlen > ylen) { + const uint64_t yext = ysigned && int64_t(y[ylen - 1]) < 0 ? -1 : 0; + for (i = ylen; i < xlen && i < destlen; i++) { + uint64_t limit = AESL_std::min(x[i], yext); + dest[i] = x[i] + yext + carry; + carry = (dest[i] < limit) || (carry && dest[i] == limit); + } + } else if (ylen > xlen) { + const uint64_t xext = xsigned && int64_t(x[xlen - 1]) < 0 ? -1 : 0; + for (i = xlen; i < ylen && i < destlen; i++) { + uint64_t limit = AESL_std::min(xext, y[i]); + dest[i] = xext + y[i] + carry; + carry = (dest[i] < limit) || (carry && dest[i] == limit); + } + } + return carry; +} + +/// @returns returns the borrow out. +/// @brief Generalized subtraction of 64-bit integer arrays. +static INLINE bool sub(uint64_t* dest, const uint64_t* x, const uint64_t* y, + uint32_t destlen, uint32_t xlen, uint32_t ylen, + bool xsigned, bool ysigned) { + bool borrow = false; + uint32_t i; + uint32_t len = AESL_std::min(xlen, ylen); + for (i = 0; i < len && i < destlen; ++i) { + uint64_t x_tmp = borrow ? x[i] - 1 : x[i]; + borrow = y[i] > x_tmp || (borrow && x[i] == 0); + dest[i] = x_tmp - y[i]; + } + if (xlen > ylen) { + const uint64_t yext = ysigned && int64_t(y[ylen - 1]) < 0 ? -1 : 0; + for (i = ylen; i < xlen && i < destlen; i++) { + uint64_t x_tmp = borrow ? x[i] - 1 : x[i]; + borrow = yext > x_tmp || (borrow && x[i] == 0); + dest[i] = x_tmp - yext; + } + } else if (ylen > xlen) { + const uint64_t xext = xsigned && int64_t(x[xlen - 1]) < 0 ? -1 : 0; + for (i = xlen; i < ylen && i < destlen; i++) { + uint64_t x_tmp = borrow ? xext - 1 : xext; + borrow = y[i] > x_tmp || (borrow && xext == 0); + dest[i] = x_tmp - y[i]; + } + } + return borrow; +} + +/// Subtracts the RHS ap_private from this ap_private +/// @returns this, after subtraction +/// @brief Subtraction assignment operator. + +/// Multiplies an integer array, x by a a uint64_t integer and places the result +/// into dest. +/// @returns the carry out of the multiplication. +/// @brief Multiply a multi-digit ap_private by a single digit (64-bit) integer. +static INLINE uint64_t mul_1(uint64_t dest[], const uint64_t x[], uint32_t len, + uint64_t y) { + // Split y into high 32-bit part (hy) and low 32-bit part (ly) + uint64_t ly = y & 0xffffffffULL, hy = (y) >> 32; + uint64_t carry = 0; + static const uint64_t two_power_32 = 1ULL << 32; + // For each digit of x. + for (uint32_t i = 0; i < len; ++i) { + // Split x into high and low words + uint64_t lx = x[i] & 0xffffffffULL; + uint64_t hx = (x[i]) >> 32; + // hasCarry - A flag to indicate if there is a carry to the next digit. + // hasCarry == 0, no carry + // hasCarry == 1, has carry + // hasCarry == 2, no carry and the calculation result == 0. + uint8_t hasCarry = 0; + dest[i] = carry + lx * ly; + // Determine if the add above introduces carry. + hasCarry = (dest[i] < carry) ? 1 : 0; + carry = hx * ly + ((dest[i]) >> 32) + (hasCarry ? two_power_32 : 0); + // The upper limit of carry can be (2^32 - 1)(2^32 - 1) + + // (2^32 - 1) + 2^32 = 2^64. + hasCarry = (!carry && hasCarry) ? 1 : (!carry ? 2 : 0); + + carry += (lx * hy) & 0xffffffffULL; + dest[i] = ((carry) << 32) | (dest[i] & 0xffffffffULL); + carry = (((!carry && hasCarry != 2) || hasCarry == 1) ? two_power_32 : 0) + + ((carry) >> 32) + ((lx * hy) >> 32) + hx * hy; + } + return carry; +} + +/// Multiplies integer array x by integer array y and stores the result into +/// the integer array dest. Note that dest's size must be >= xlen + ylen in +/// order to +/// do a full precision computation. If it is not, then only the low-order words +/// are returned. +/// @brief Generalized multiplicate of integer arrays. +static INLINE void mul(uint64_t dest[], const uint64_t x[], uint32_t xlen, + const uint64_t y[], uint32_t ylen, uint32_t destlen) { + assert(xlen > 0); + assert(ylen > 0); + assert(destlen >= xlen + ylen); + if (xlen < destlen) dest[xlen] = mul_1(dest, x, xlen, y[0]); + for (uint32_t i = 1; i < ylen; ++i) { + uint64_t ly = y[i] & 0xffffffffULL, hy = (y[i]) >> 32; + uint64_t carry = 0, lx = 0, hx = 0; + for (uint32_t j = 0; j < xlen; ++j) { + lx = x[j] & 0xffffffffULL; + hx = (x[j]) >> 32; + // hasCarry - A flag to indicate if has carry. + // hasCarry == 0, no carry + // hasCarry == 1, has carry + // hasCarry == 2, no carry and the calculation result == 0. + uint8_t hasCarry = 0; + uint64_t resul = carry + lx * ly; + hasCarry = (resul < carry) ? 1 : 0; + carry = (hasCarry ? (1ULL << 32) : 0) + hx * ly + ((resul) >> 32); + hasCarry = (!carry && hasCarry) ? 1 : (!carry ? 2 : 0); + carry += (lx * hy) & 0xffffffffULL; + resul = ((carry) << 32) | (resul & 0xffffffffULL); + if (i + j < destlen) dest[i + j] += resul; + carry = + (((!carry && hasCarry != 2) || hasCarry == 1) ? (1ULL << 32) : 0) + + ((carry) >> 32) + (dest[i + j] < resul ? 1 : 0) + ((lx * hy) >> 32) + + hx * hy; + } + if (i + xlen < destlen) dest[i + xlen] = carry; + } +} + +/// Implementation of Knuth's Algorithm D (Division of nonnegative integers) +/// from "Art of Computer Programming, Volume 2", section 4.3.1, p. 272. The +/// variables here have the same names as in the algorithm. Comments explain +/// the algorithm and any deviation from it. +static INLINE void KnuthDiv(uint32_t* u, uint32_t* v, uint32_t* q, uint32_t* r, + uint32_t m, uint32_t n) { + assert(u && "Must provide dividend"); + assert(v && "Must provide divisor"); + assert(q && "Must provide quotient"); + assert(u != v && u != q && v != q && "Must us different memory"); + assert(n > 1 && "n must be > 1"); + + // Knuth uses the value b as the base of the number system. In our case b + // is 2^31 so we just set it to -1u. + uint64_t b = uint64_t(1) << 32; + + // DEBUG(cerr << "KnuthDiv: m=" << m << " n=" << n << '\n'); + // DEBUG(cerr << "KnuthDiv: original:"); + // DEBUG(for (int i = m+n; i >=0; i--) cerr << " " << std::setbase(16) << + // u[i]); + // DEBUG(cerr << " by"); + // DEBUG(for (int i = n; i >0; i--) cerr << " " << std::setbase(16) << + // v[i-1]); + // DEBUG(cerr << '\n'); + // D1. [Normalize.] Set d = b / (v[n-1] + 1) and multiply all the digits of + // u and v by d. Note that we have taken Knuth's advice here to use a power + // of 2 value for d such that d * v[n-1] >= b/2 (b is the base). A power of + // 2 allows us to shift instead of multiply and it is easy to determine the + // shift amount from the leading zeros. We are basically normalizing the u + // and v so that its high bits are shifted to the top of v's range without + // overflow. Note that this can require an extra word in u so that u must + // be of length m+n+1. + uint32_t shift = CountLeadingZeros_32(v[n - 1]); + uint32_t v_carry = 0; + uint32_t u_carry = 0; + if (shift) { + for (uint32_t i = 0; i < m + n; ++i) { + uint32_t u_tmp = (u[i]) >> (32 - shift); + u[i] = ((u[i]) << (shift)) | u_carry; + u_carry = u_tmp; + } + for (uint32_t i = 0; i < n; ++i) { + uint32_t v_tmp = (v[i]) >> (32 - shift); + v[i] = ((v[i]) << (shift)) | v_carry; + v_carry = v_tmp; + } + } + u[m + n] = u_carry; + // DEBUG(cerr << "KnuthDiv: normal:"); + // DEBUG(for (int i = m+n; i >=0; i--) cerr << " " << std::setbase(16) << + // u[i]); + // DEBUG(cerr << " by"); + // DEBUG(for (int i = n; i >0; i--) cerr << " " << std::setbase(16) << + // v[i-1]); + // DEBUG(cerr << '\n'); + + // D2. [Initialize j.] Set j to m. This is the loop counter over the places. + int j = m; + do { + // DEBUG(cerr << "KnuthDiv: quotient digit #" << j << '\n'); + // D3. [Calculate q'.]. + // Set qp = (u[j+n]*b + u[j+n-1]) / v[n-1]. (qp=qprime=q') + // Set rp = (u[j+n]*b + u[j+n-1]) % v[n-1]. (rp=rprime=r') + // Now test if qp == b or qp*v[n-2] > b*rp + u[j+n-2]; if so, decrease + // qp by 1, inrease rp by v[n-1], and repeat this test if rp < b. The test + // on v[n-2] determines at high speed most of the cases in which the trial + // value qp is one too large, and it eliminates all cases where qp is two + // too large. + uint64_t dividend = ((uint64_t(u[j + n]) << 32) + u[j + n - 1]); + // DEBUG(cerr << "KnuthDiv: dividend == " << dividend << '\n'); + uint64_t qp = dividend / v[n - 1]; + uint64_t rp = dividend % v[n - 1]; + if (qp == b || qp * v[n - 2] > b * rp + u[j + n - 2]) { + qp--; + rp += v[n - 1]; + if (rp < b && (qp == b || qp * v[n - 2] > b * rp + u[j + n - 2])) qp--; + } + // DEBUG(cerr << "KnuthDiv: qp == " << qp << ", rp == " << rp << '\n'); + + // D4. [Multiply and subtract.] Replace (u[j+n]u[j+n-1]...u[j]) with + // (u[j+n]u[j+n-1]..u[j]) - qp * (v[n-1]...v[1]v[0]). This computation + // consists of a simple multiplication by a one-place number, combined with + // a subtraction. + bool isNeg = false; + for (uint32_t i = 0; i < n; ++i) { + uint64_t u_tmp = uint64_t(u[j + i]) | ((uint64_t(u[j + i + 1])) << 32); + uint64_t subtrahend = uint64_t(qp) * uint64_t(v[i]); + bool borrow = subtrahend > u_tmp; + /*DEBUG(cerr << "KnuthDiv: u_tmp == " << u_tmp + << ", subtrahend == " << subtrahend + << ", borrow = " << borrow << '\n');*/ + + uint64_t result = u_tmp - subtrahend; + uint32_t k = j + i; + u[k++] = (uint32_t)(result & (b - 1)); // subtract low word + u[k++] = (uint32_t)((result) >> 32); // subtract high word + while (borrow && k <= m + n) { // deal with borrow to the left + borrow = u[k] == 0; + u[k]--; + k++; + } + isNeg |= borrow; + /*DEBUG(cerr << "KnuthDiv: u[j+i] == " << u[j+i] << ", u[j+i+1] == " << + u[j+i+1] << '\n');*/ + } + /*DEBUG(cerr << "KnuthDiv: after subtraction:"); + DEBUG(for (int i = m+n; i >=0; i--) cerr << " " << u[i]); + DEBUG(cerr << '\n');*/ + // The digits (u[j+n]...u[j]) should be kept positive; if the result of + // this step is actually negative, (u[j+n]...u[j]) should be left as the + // true value plus b**(n+1), namely as the b's complement of + // the true value, and a "borrow" to the left should be remembered. + // + if (isNeg) { + bool carry = true; // true because b's complement is "complement + 1" + for (uint32_t i = 0; i <= m + n; ++i) { + u[i] = ~u[i] + carry; // b's complement + carry = carry && u[i] == 0; + } + } + /*DEBUG(cerr << "KnuthDiv: after complement:"); + DEBUG(for (int i = m+n; i >=0; i--) cerr << " " << u[i]); + DEBUG(cerr << '\n');*/ + + // D5. [Test remainder.] Set q[j] = qp. If the result of step D4 was + // negative, go to step D6; otherwise go on to step D7. + q[j] = (uint32_t)qp; + if (isNeg) { + // D6. [Add back]. The probability that this step is necessary is very + // small, on the order of only 2/b. Make sure that test data accounts for + // this possibility. Decrease q[j] by 1 + q[j]--; + // and add (0v[n-1]...v[1]v[0]) to (u[j+n]u[j+n-1]...u[j+1]u[j]). + // A carry will occur to the left of u[j+n], and it should be ignored + // since it cancels with the borrow that occurred in D4. + bool carry = false; + for (uint32_t i = 0; i < n; i++) { + uint32_t limit = AESL_std::min(u[j + i], v[i]); + u[j + i] += v[i] + carry; + carry = u[j + i] < limit || (carry && u[j + i] == limit); + } + u[j + n] += carry; + } + /*DEBUG(cerr << "KnuthDiv: after correction:"); + DEBUG(for (int i = m+n; i >=0; i--) cerr <<" " << u[i]); + DEBUG(cerr << "\nKnuthDiv: digit result = " << q[j] << '\n');*/ + + // D7. [Loop on j.] Decrease j by one. Now if j >= 0, go back to D3. + } while (--j >= 0); + + /*DEBUG(cerr << "KnuthDiv: quotient:"); + DEBUG(for (int i = m; i >=0; i--) cerr <<" " << q[i]); + DEBUG(cerr << '\n');*/ + + // D8. [Unnormalize]. Now q[...] is the desired quotient, and the desired + // remainder may be obtained by dividing u[...] by d. If r is non-null we + // compute the remainder (urem uses this). + if (r) { + // The value d is expressed by the "shift" value above since we avoided + // multiplication by d by using a shift left. So, all we have to do is + // shift right here. In order to mak + if (shift) { + uint32_t carry = 0; + // DEBUG(cerr << "KnuthDiv: remainder:"); + for (int i = n - 1; i >= 0; i--) { + r[i] = ((u[i]) >> (shift)) | carry; + carry = (u[i]) << (32 - shift); + // DEBUG(cerr << " " << r[i]); + } + } else { + for (int i = n - 1; i >= 0; i--) { + r[i] = u[i]; + // DEBUG(cerr << " " << r[i]); + } + } + // DEBUG(cerr << '\n'); + } + // DEBUG(cerr << std::setbase(10) << '\n'); +} + +template +void divide(const ap_private<_AP_W, _AP_S>& LHS, uint32_t lhsWords, + const ap_private<_AP_W, _AP_S>& RHS, uint32_t rhsWords, + ap_private<_AP_W, _AP_S>* Quotient, + ap_private<_AP_W, _AP_S>* Remainder) { + assert(lhsWords >= rhsWords && "Fractional result"); + enum { APINT_BITS_PER_WORD = 64 }; + // First, compose the values into an array of 32-bit words instead of + // 64-bit words. This is a necessity of both the "short division" algorithm + // and the the Knuth "classical algorithm" which requires there to be native + // operations for +, -, and * on an m bit value with an m*2 bit result. We + // can't use 64-bit operands here because we don't have native results of + // 128-bits. Furthremore, casting the 64-bit values to 32-bit values won't + // work on large-endian machines. + uint64_t mask = ~0ull >> (sizeof(uint32_t) * 8); + uint32_t n = rhsWords * 2; + uint32_t m = (lhsWords * 2) - n; + + // Allocate space for the temporary values we need either on the stack, if + // it will fit, or on the heap if it won't. + uint32_t SPACE[128]; + uint32_t* __U = 0; + uint32_t* __V = 0; + uint32_t* __Q = 0; + uint32_t* __R = 0; + if ((Remainder ? 4 : 3) * n + 2 * m + 1 <= 128) { + __U = &SPACE[0]; + __V = &SPACE[m + n + 1]; + __Q = &SPACE[(m + n + 1) + n]; + if (Remainder) __R = &SPACE[(m + n + 1) + n + (m + n)]; + } else { + __U = new uint32_t[m + n + 1]; + __V = new uint32_t[n]; + __Q = new uint32_t[m + n]; + if (Remainder) __R = new uint32_t[n]; + } + + // Initialize the dividend + memset(__U, 0, (m + n + 1) * sizeof(uint32_t)); + for (unsigned i = 0; i < lhsWords; ++i) { + uint64_t tmp = LHS.get_pVal(i); + __U[i * 2] = (uint32_t)(tmp & mask); + __U[i * 2 + 1] = (tmp) >> (sizeof(uint32_t) * 8); + } + __U[m + n] = 0; // this extra word is for "spill" in the Knuth algorithm. + + // Initialize the divisor + memset(__V, 0, (n) * sizeof(uint32_t)); + for (unsigned i = 0; i < rhsWords; ++i) { + uint64_t tmp = RHS.get_pVal(i); + __V[i * 2] = (uint32_t)(tmp & mask); + __V[i * 2 + 1] = (tmp) >> (sizeof(uint32_t) * 8); + } + + // initialize the quotient and remainder + memset(__Q, 0, (m + n) * sizeof(uint32_t)); + if (Remainder) memset(__R, 0, n * sizeof(uint32_t)); + + // Now, adjust m and n for the Knuth division. n is the number of words in + // the divisor. m is the number of words by which the dividend exceeds the + // divisor (i.e. m+n is the length of the dividend). These sizes must not + // contain any zero words or the Knuth algorithm fails. + for (unsigned i = n; i > 0 && __V[i - 1] == 0; i--) { + n--; + m++; + } + for (unsigned i = m + n; i > 0 && __U[i - 1] == 0; i--) m--; + + // If we're left with only a single word for the divisor, Knuth doesn't work + // so we implement the short division algorithm here. This is much simpler + // and faster because we are certain that we can divide a 64-bit quantity + // by a 32-bit quantity at hardware speed and short division is simply a + // series of such operations. This is just like doing short division but we + // are using base 2^32 instead of base 10. + assert(n != 0 && "Divide by zero?"); + if (n == 1) { + uint32_t divisor = __V[0]; + uint32_t remainder = 0; + for (int i = m + n - 1; i >= 0; i--) { + uint64_t partial_dividend = (uint64_t(remainder)) << 32 | __U[i]; + if (partial_dividend == 0) { + __Q[i] = 0; + remainder = 0; + } else if (partial_dividend < divisor) { + __Q[i] = 0; + remainder = (uint32_t)partial_dividend; + } else if (partial_dividend == divisor) { + __Q[i] = 1; + remainder = 0; + } else { + __Q[i] = (uint32_t)(partial_dividend / divisor); + remainder = (uint32_t)(partial_dividend - (__Q[i] * divisor)); + } + } + if (__R) __R[0] = remainder; + } else { + // Now we're ready to invoke the Knuth classical divide algorithm. In this + // case n > 1. + KnuthDiv(__U, __V, __Q, __R, m, n); + } + + // If the caller wants the quotient + if (Quotient) { + // Set up the Quotient value's memory. + if (Quotient->BitWidth != LHS.BitWidth) { + if (Quotient->isSingleWord()) Quotient->set_VAL(0); + } else + Quotient->clear(); + + // The quotient is in Q. Reconstitute the quotient into Quotient's low + // order words. + if (lhsWords == 1) { + uint64_t tmp = + uint64_t(__Q[0]) | ((uint64_t(__Q[1])) << (APINT_BITS_PER_WORD / 2)); + Quotient->set_VAL(tmp); + } else { + assert(!Quotient->isSingleWord() && + "Quotient ap_private not large enough"); + for (unsigned i = 0; i < lhsWords; ++i) + Quotient->set_pVal( + i, uint64_t(__Q[i * 2]) | + ((uint64_t(__Q[i * 2 + 1])) << (APINT_BITS_PER_WORD / 2))); + } + Quotient->clearUnusedBits(); + } + + // If the caller wants the remainder + if (Remainder) { + // Set up the Remainder value's memory. + if (Remainder->BitWidth != RHS.BitWidth) { + if (Remainder->isSingleWord()) Remainder->set_VAL(0); + } else + Remainder->clear(); + + // The remainder is in R. Reconstitute the remainder into Remainder's low + // order words. + if (rhsWords == 1) { + uint64_t tmp = + uint64_t(__R[0]) | ((uint64_t(__R[1])) << (APINT_BITS_PER_WORD / 2)); + Remainder->set_VAL(tmp); + } else { + assert(!Remainder->isSingleWord() && + "Remainder ap_private not large enough"); + for (unsigned i = 0; i < rhsWords; ++i) + Remainder->set_pVal( + i, uint64_t(__R[i * 2]) | + ((uint64_t(__R[i * 2 + 1])) << (APINT_BITS_PER_WORD / 2))); + } + Remainder->clearUnusedBits(); + } + + // Clean up the memory we allocated. + if (__U != &SPACE[0]) { + delete[] __U; + delete[] __V; + delete[] __Q; + delete[] __R; + } +} + +template +void divide(const ap_private<_AP_W, _AP_S>& LHS, uint32_t lhsWords, + uint64_t RHS, ap_private<_AP_W, _AP_S>* Quotient, + ap_private<_AP_W, _AP_S>* Remainder) { + uint32_t rhsWords = 1; + assert(lhsWords >= rhsWords && "Fractional result"); + enum { APINT_BITS_PER_WORD = 64 }; + // First, compose the values into an array of 32-bit words instead of + // 64-bit words. This is a necessity of both the "short division" algorithm + // and the the Knuth "classical algorithm" which requires there to be native + // operations for +, -, and * on an m bit value with an m*2 bit result. We + // can't use 64-bit operands here because we don't have native results of + // 128-bits. Furthremore, casting the 64-bit values to 32-bit values won't + // work on large-endian machines. + uint64_t mask = ~0ull >> (sizeof(uint32_t) * 8); + uint32_t n = 2; + uint32_t m = (lhsWords * 2) - n; + + // Allocate space for the temporary values we need either on the stack, if + // it will fit, or on the heap if it won't. + uint32_t SPACE[128]; + uint32_t* __U = 0; + uint32_t* __V = 0; + uint32_t* __Q = 0; + uint32_t* __R = 0; + if ((Remainder ? 4 : 3) * n + 2 * m + 1 <= 128) { + __U = &SPACE[0]; + __V = &SPACE[m + n + 1]; + __Q = &SPACE[(m + n + 1) + n]; + if (Remainder) __R = &SPACE[(m + n + 1) + n + (m + n)]; + } else { + __U = new uint32_t[m + n + 1]; + __V = new uint32_t[n]; + __Q = new uint32_t[m + n]; + if (Remainder) __R = new uint32_t[n]; + } + + // Initialize the dividend + memset(__U, 0, (m + n + 1) * sizeof(uint32_t)); + for (unsigned i = 0; i < lhsWords; ++i) { + uint64_t tmp = LHS.get_pVal(i); + __U[i * 2] = tmp & mask; + __U[i * 2 + 1] = (tmp) >> (sizeof(uint32_t) * 8); + } + __U[m + n] = 0; // this extra word is for "spill" in the Knuth algorithm. + + // Initialize the divisor + memset(__V, 0, (n) * sizeof(uint32_t)); + __V[0] = RHS & mask; + __V[1] = (RHS) >> (sizeof(uint32_t) * 8); + + // initialize the quotient and remainder + memset(__Q, 0, (m + n) * sizeof(uint32_t)); + if (Remainder) memset(__R, 0, n * sizeof(uint32_t)); + + // Now, adjust m and n for the Knuth division. n is the number of words in + // the divisor. m is the number of words by which the dividend exceeds the + // divisor (i.e. m+n is the length of the dividend). These sizes must not + // contain any zero words or the Knuth algorithm fails. + for (unsigned i = n; i > 0 && __V[i - 1] == 0; i--) { + n--; + m++; + } + for (unsigned i = m + n; i > 0 && __U[i - 1] == 0; i--) m--; + + // If we're left with only a single word for the divisor, Knuth doesn't work + // so we implement the short division algorithm here. This is much simpler + // and faster because we are certain that we can divide a 64-bit quantity + // by a 32-bit quantity at hardware speed and short division is simply a + // series of such operations. This is just like doing short division but we + // are using base 2^32 instead of base 10. + assert(n != 0 && "Divide by zero?"); + if (n == 1) { + uint32_t divisor = __V[0]; + uint32_t remainder = 0; + for (int i = m + n - 1; i >= 0; i--) { + uint64_t partial_dividend = (uint64_t(remainder)) << 32 | __U[i]; + if (partial_dividend == 0) { + __Q[i] = 0; + remainder = 0; + } else if (partial_dividend < divisor) { + __Q[i] = 0; + remainder = partial_dividend; + } else if (partial_dividend == divisor) { + __Q[i] = 1; + remainder = 0; + } else { + __Q[i] = partial_dividend / divisor; + remainder = partial_dividend - (__Q[i] * divisor); + } + } + if (__R) __R[0] = remainder; + } else { + // Now we're ready to invoke the Knuth classical divide algorithm. In this + // case n > 1. + KnuthDiv(__U, __V, __Q, __R, m, n); + } + + // If the caller wants the quotient + if (Quotient) { + // Set up the Quotient value's memory. + if (Quotient->BitWidth != LHS.BitWidth) { + if (Quotient->isSingleWord()) Quotient->set_VAL(0); + } else + Quotient->clear(); + + // The quotient is in Q. Reconstitute the quotient into Quotient's low + // order words. + if (lhsWords == 1) { + uint64_t tmp = + uint64_t(__Q[0]) | ((uint64_t(__Q[1])) << (APINT_BITS_PER_WORD / 2)); + Quotient->set_VAL(tmp); + } else { + assert(!Quotient->isSingleWord() && + "Quotient ap_private not large enough"); + for (unsigned i = 0; i < lhsWords; ++i) + Quotient->set_pVal( + i, uint64_t(__Q[i * 2]) | + ((uint64_t(__Q[i * 2 + 1])) << (APINT_BITS_PER_WORD / 2))); + } + Quotient->clearUnusedBits(); + } + + // If the caller wants the remainder + if (Remainder) { + // Set up the Remainder value's memory. + if (Remainder->BitWidth != 64 /* RHS.BitWidth */) { + if (Remainder->isSingleWord()) Remainder->set_VAL(0); + } else + Remainder->clear(); + + // The remainder is in __R. Reconstitute the remainder into Remainder's low + // order words. + if (rhsWords == 1) { + uint64_t tmp = + uint64_t(__R[0]) | ((uint64_t(__R[1])) << (APINT_BITS_PER_WORD / 2)); + Remainder->set_VAL(tmp); + } else { + assert(!Remainder->isSingleWord() && + "Remainder ap_private not large enough"); + for (unsigned i = 0; i < rhsWords; ++i) + Remainder->set_pVal( + i, uint64_t(__R[i * 2]) | + ((uint64_t(__R[i * 2 + 1])) << (APINT_BITS_PER_WORD / 2))); + } + Remainder->clearUnusedBits(); + } + + // Clean up the memory we allocated. + if (__U != &SPACE[0]) { + delete[] __U; + delete[] __V; + delete[] __Q; + delete[] __R; + } +} + +/// @brief Logical right-shift function. +template +INLINE ap_private<_AP_W, _AP_S, _AP_C> lshr( + const ap_private<_AP_W, _AP_S, _AP_C>& LHS, uint32_t shiftAmt) { + return LHS.lshr(shiftAmt); +} + +/// Left-shift the ap_private by shiftAmt. +/// @brief Left-shift function. +template +INLINE ap_private<_AP_W, _AP_S, _AP_C> shl( + const ap_private<_AP_W, _AP_S, _AP_C>& LHS, uint32_t shiftAmt) { + return LHS.shl(shiftAmt); +} + +} // namespace ap_private_ops + +#endif // LLVM_SUPPORT_MATHEXTRAS_H + +/// This enumeration just provides for internal constants used in this +/// translation unit. +enum { + MIN_INT_BITS = 1, ///< Minimum number of bits that can be specified + ///< Note that this must remain synchronized with IntegerType::MIN_INT_BITS + MAX_INT_BITS = (1 << 23) - 1 ///< Maximum number of bits that can be specified + ///< Note that this must remain synchronized with IntegerType::MAX_INT_BITS +}; + +//===----------------------------------------------------------------------===// +// ap_private Class +//===----------------------------------------------------------------------===// + +/// ap_private - This class represents arbitrary precision constant integral +/// values. +/// It is a functional replacement for common case unsigned integer type like +/// "unsigned", "unsigned long" or "uint64_t", but also allows non-byte-width +/// integer sizes and large integer value types such as 3-bits, 15-bits, or more +/// than 64-bits of precision. ap_private provides a variety of arithmetic +/// operators +/// and methods to manipulate integer values of any bit-width. It supports both +/// the typical integer arithmetic and comparison operations as well as bitwise +/// manipulation. +/// +/// The class has several invariants worth noting: +/// * All bit, byte, and word positions are zero-based. +/// * Once the bit width is set, it doesn't change except by the Truncate, +/// SignExtend, or ZeroExtend operations. +/// * All binary operators must be on ap_private instances of the same bit +/// width. +/// Attempting to use these operators on instances with different bit +/// widths will yield an assertion. +/// * The value is stored canonically as an unsigned value. For operations +/// where it makes a difference, there are both signed and unsigned variants +/// of the operation. For example, sdiv and udiv. However, because the bit +/// widths must be the same, operations such as Mul and Add produce the same +/// results regardless of whether the values are interpreted as signed or +/// not. +/// * In general, the class tries to follow the style of computation that LLVM +/// uses in its IR. This simplifies its use for LLVM. +/// +/// @brief Class for arbitrary precision integers. + +#if defined(_MSC_VER) +#if _MSC_VER < 1400 && !defined(for) +#define for if (0); else for +#endif +typedef unsigned __int64 ap_ulong; +typedef signed __int64 ap_slong; +#else +typedef unsigned long long ap_ulong; +typedef signed long long ap_slong; +#endif +template +struct valtype; + +template +struct valtype<_AP_N8, false> { + typedef uint64_t Type; +}; + +template +struct valtype<_AP_N8, true> { + typedef int64_t Type; +}; + +template <> +struct valtype<1, false> { + typedef unsigned char Type; +}; +template <> +struct valtype<2, false> { + typedef unsigned short Type; +}; +template <> +struct valtype<3, false> { + typedef unsigned int Type; +}; +template <> +struct valtype<4, false> { + typedef unsigned int Type; +}; +template <> +struct valtype<1, true> { + typedef signed char Type; +}; +template <> +struct valtype<2, true> { + typedef short Type; +}; +template <> +struct valtype<3, true> { + typedef int Type; +}; +template <> +struct valtype<4, true> { + typedef int Type; +}; + +template +struct ap_private_enable_if {}; +template <> +struct ap_private_enable_if { + static const bool isValid = true; +}; + +// When bitwidth < 64 +template +class ap_private<_AP_W, _AP_S, true> { + // SFINAE pattern. Only consider this class when _AP_W <= 64 + const static bool valid = ap_private_enable_if<_AP_W <= 64>::isValid; + +#ifdef _MSC_VER +#pragma warning(disable : 4521 4522) +#endif + public: + typedef typename valtype<(_AP_W + 7) / 8, _AP_S>::Type ValType; + typedef ap_private<_AP_W, _AP_S> Type; + template + struct RType { + enum { + mult_w = _AP_W + _AP_W2, + mult_s = _AP_S || _AP_S2, + plus_w = + AP_MAX(_AP_W + (_AP_S2 && !_AP_S), _AP_W2 + (_AP_S && !_AP_S2)) + 1, + plus_s = _AP_S || _AP_S2, + minus_w = + AP_MAX(_AP_W + (_AP_S2 && !_AP_S), _AP_W2 + (_AP_S && !_AP_S2)) + 1, + minus_s = true, + div_w = _AP_W + _AP_S2, + div_s = _AP_S || _AP_S2, + mod_w = AP_MIN(_AP_W, _AP_W2 + (!_AP_S2 && _AP_S)), + mod_s = _AP_S, + logic_w = AP_MAX(_AP_W + (_AP_S2 && !_AP_S), _AP_W2 + (_AP_S && !_AP_S2)), + logic_s = _AP_S || _AP_S2 + }; + typedef ap_private mult; + typedef ap_private plus; + typedef ap_private minus; + typedef ap_private logic; + typedef ap_private div; + typedef ap_private mod; + typedef ap_private<_AP_W, _AP_S> arg1; + typedef bool reduce; + }; + enum { APINT_BITS_PER_WORD = sizeof(uint64_t) * 8 }; + enum { + excess_bits = (_AP_W % APINT_BITS_PER_WORD) + ? APINT_BITS_PER_WORD - (_AP_W % APINT_BITS_PER_WORD) + : 0 + }; + static const uint64_t mask = ((uint64_t)~0ULL >> (excess_bits)); + static const uint64_t not_mask = ~mask; + static const uint64_t sign_bit_mask = 1ULL << (APINT_BITS_PER_WORD - 1); + template + struct sign_ext_mask { + static const uint64_t mask = ~0ULL << _AP_W1; + }; + static const int width = _AP_W; + + enum { + BitWidth = _AP_W, + _AP_N = 1, + }; + ValType VAL; ///< Used to store the <= 64 bits integer value. +#ifdef AP_CANARY + ValType CANARY; + void check_canary() { assert(CANARY == (ValType)0xDEADBEEFDEADBEEF); } + void set_canary() { CANARY = (ValType)0xDEADBEEFDEADBEEF; } +#else + void check_canary() {} + void set_canary() {} +#endif + + INLINE ValType& get_VAL(void) { return VAL; } + INLINE ValType get_VAL(void) const { return VAL; } + INLINE ValType get_VAL(void) const volatile { return VAL; } + INLINE void set_VAL(uint64_t value) { VAL = (ValType)value; } + INLINE ValType& get_pVal(int i) { return VAL; } + INLINE ValType get_pVal(int i) const { return VAL; } + INLINE const uint64_t* get_pVal() const { + assert(0 && "invalid usage"); + return 0; + } + INLINE ValType get_pVal(int i) const volatile { return VAL; } + INLINE uint64_t* get_pVal() const volatile { + assert(0 && "invalid usage"); + return 0; + } + INLINE void set_pVal(int i, uint64_t value) { VAL = (ValType)value; } + + INLINE uint32_t getBitWidth() const { return BitWidth; } + + template + ap_private<_AP_W, _AP_S>& operator=(const ap_private<_AP_W1, _AP_S1>& RHS) { + VAL = (ValType)(RHS.get_VAL()); + clearUnusedBits(); + return *this; + } + + template + ap_private<_AP_W, _AP_S>& operator=( + const volatile ap_private<_AP_W1, _AP_S1>& RHS) { + VAL = (ValType)(RHS.get_VAL()); // TODO check here about ap_private + clearUnusedBits(); + return *this; + } + + void operator=(const ap_private& RHS) volatile { + // Don't do anything for X = X + VAL = RHS.get_VAL(); // No need to check because no harm done by copying. + clearUnusedBits(); + } + + ap_private& operator=(const ap_private& RHS) { + // Don't do anything for X = X + VAL = RHS.get_VAL(); // No need to check because no harm done by copying. + clearUnusedBits(); + return *this; + } + + void operator=(const volatile ap_private& RHS) volatile { + // Don't do anything for X = X + VAL = RHS.get_VAL(); // No need to check because no harm done by copying. + clearUnusedBits(); + } + + ap_private& operator=(const volatile ap_private& RHS) { + // Don't do anything for X = X + VAL = RHS.get_VAL(); // No need to check because no harm done by copying. + clearUnusedBits(); + return *this; + } + + template + INLINE ap_private& operator=(const _private_range_ref<_AP_W2, _AP_S2>& op2) { + *this = ap_private<_AP_W2, false>(op2); + return *this; + } + +#define ASSIGN_OP_FROM_INT(C_TYPE) \ + INLINE ap_private& operator=(const C_TYPE v) { \ + set_canary(); \ + this->VAL = (ValType)v; \ + clearUnusedBits(); \ + check_canary(); \ + return *this; \ + } + +ASSIGN_OP_FROM_INT(bool) +ASSIGN_OP_FROM_INT(char) +ASSIGN_OP_FROM_INT(signed char) +ASSIGN_OP_FROM_INT(unsigned char) +ASSIGN_OP_FROM_INT(short) +ASSIGN_OP_FROM_INT(unsigned short) +ASSIGN_OP_FROM_INT(int) +ASSIGN_OP_FROM_INT(unsigned int) +ASSIGN_OP_FROM_INT(long) +ASSIGN_OP_FROM_INT(unsigned long) +ASSIGN_OP_FROM_INT(ap_slong) +ASSIGN_OP_FROM_INT(ap_ulong) +#if 0 +ASSIGN_OP_FROM_INT(half) +ASSIGN_OP_FROM_INT(float) +ASSIGN_OP_FROM_INT(double) +#endif +#undef ASSIGN_OP_FROM_INT + + // XXX This is a must to prevent pointer being converted to bool. + INLINE ap_private& operator=(const char* s) { + ap_private tmp(s); // XXX direct-initialization, as ctor is explicit. + operator=(tmp); + return *this; + } + + private: + explicit INLINE ap_private(uint64_t* val) : VAL(val[0]) { + set_canary(); + clearUnusedBits(); + check_canary(); + } + + INLINE bool isSingleWord() const { return true; } + + public: + INLINE void fromString(const char* strStart, uint32_t slen, uint8_t radix) { + bool isNeg = strStart[0] == '-'; + if (isNeg) { + strStart++; + slen--; + } + + if (strStart[0] == '0' && (strStart[1] == 'b' || strStart[1] == 'B')) { + //if(radix == 0) radix = 2; + _AP_WARNING(radix != 2, "%s seems to have base %d, but %d given.", strStart, 2, radix); + strStart += 2; + slen -=2; + } else if (strStart[0] == '0' && (strStart[1] == 'o' || strStart[1] == 'O')) { + //if (radix == 0) radix = 8; + _AP_WARNING(radix != 8, "%s seems to have base %d, but %d given.", strStart, 8, radix); + strStart += 2; + slen -=2; + } else if (strStart[0] == '0' && (strStart[1] == 'x' || strStart[1] == 'X')) { + //if (radix == 0) radix = 16; + _AP_WARNING(radix != 16, "%s seems to have base %d, but %d given.", strStart, 16, radix); + strStart += 2; + slen -=2; + } else if (strStart[0] == '0' && (strStart[1] == 'd' || strStart[1] == 'D')) { + //if (radix == 0) radix = 10; + _AP_WARNING(radix != 10, "%s seems to have base %d, but %d given.", strStart, 10, radix); + strStart += 2; + slen -=2; + } else if (radix == 0) { + //radix = 2; // XXX default value + } + + // Check our assumptions here + assert((radix == 10 || radix == 8 || radix == 16 || radix == 2) && + "Radix should be 2, 8, 10, or 16!"); + assert(strStart && "String is null?"); + + // Clear bits. + uint64_t tmpVAL = VAL = 0; + + switch (radix) { + case 2: + // sscanf(strStart,"%b",&VAL); + // tmpVAL = *strStart =='1' ? ~0ULL : 0; + for (; *strStart; ++strStart) { + assert((*strStart == '0' || *strStart == '1') && + ("Wrong binary number")); + tmpVAL <<= 1; + tmpVAL |= (*strStart - '0'); + } + break; + case 8: +#ifdef _MSC_VER + sscanf_s(strStart, "%llo", &tmpVAL, slen + 1); +#else +#if defined(__x86_64__) && !defined(__MINGW32__) && !defined(__WIN32__) + sscanf(strStart, "%lo", &tmpVAL); +#else + sscanf(strStart, "%llo", &tmpVAL); +#endif //__x86_64__ +#endif //_MSC_VER + break; + case 10: +#ifdef _MSC_VER + sscanf_s(strStart, "%llu", &tmpVAL, slen + 1); +#else +#if defined(__x86_64__) && !defined(__MINGW32__) && !defined(__WIN32__) + sscanf(strStart, "%lu", &tmpVAL); +#else + sscanf(strStart, "%llu", &tmpVAL); +#endif //__x86_64__ +#endif //_MSC_VER + break; + case 16: +#ifdef _MSC_VER + sscanf_s(strStart, "%llx", &tmpVAL, slen + 1); +#else +#if defined(__x86_64__) && !defined(__MINGW32__) && !defined(__WIN32__) + sscanf(strStart, "%lx", &tmpVAL); +#else + sscanf(strStart, "%llx", &tmpVAL); +#endif //__x86_64__ +#endif //_MSC_VER + break; + default: + assert(true && "Unknown radix"); + // error + } + VAL = isNeg ? (ValType)(-tmpVAL) : (ValType)(tmpVAL); + + clearUnusedBits(); + } + + private: + INLINE ap_private(const std::string& val, uint8_t radix = 2) : VAL(0) { + assert(!val.empty() && "String empty?"); + set_canary(); + fromString(val.c_str(), val.size(), radix); + check_canary(); + } + + INLINE ap_private(const char strStart[], uint32_t slen, uint8_t radix) + : VAL(0) { + set_canary(); + fromString(strStart, slen, radix); + check_canary(); + } + + INLINE ap_private(uint32_t numWords, const uint64_t bigVal[]) + : VAL(bigVal[0]) { + set_canary(); + clearUnusedBits(); + check_canary(); + } + + public: + INLINE ap_private() { + set_canary(); + clearUnusedBits(); + check_canary(); + } + +#define CTOR(TYPE) \ + INLINE ap_private(TYPE v) : VAL((ValType)v) { \ + set_canary(); \ + clearUnusedBits(); \ + check_canary(); \ + } + CTOR(bool) + CTOR(char) + CTOR(signed char) + CTOR(unsigned char) + CTOR(short) + CTOR(unsigned short) + CTOR(int) + CTOR(unsigned int) + CTOR(long) + CTOR(unsigned long) + CTOR(ap_slong) + CTOR(ap_ulong) +#if 0 + CTOR(half) + CTOR(float) + CTOR(double) +#endif +#undef CTOR + + template + INLINE ap_private(const ap_private<_AP_W1, _AP_S1, _AP_OPT>& that) + : VAL((ValType)that.get_VAL()) { + set_canary(); + clearUnusedBits(); + check_canary(); + } + + template + INLINE ap_private(const volatile ap_private<_AP_W1, _AP_S1, _AP_OPT>& that) + : VAL((ValType)that.get_VAL()) { + set_canary(); + clearUnusedBits(); + check_canary(); + } + + explicit INLINE ap_private(const char* val) { + set_canary(); + unsigned char radix = 10; + std::string str = ap_private_ops::parseString(val, radix); // will set radix. + std::string::size_type pos = str.find('.'); + // trunc all fraction part + if (pos != std::string::npos) str = str.substr(pos); + + ap_private<_AP_W, _AP_S> ap_private_val(str, radix); + operator=(ap_private_val); + check_canary(); + } + + INLINE ap_private(const char* val, signed char rd) { + set_canary(); + unsigned char radix = rd; + std::string str = ap_private_ops::parseString(val, radix); // will set radix. + std::string::size_type pos = str.find('.'); + // trunc all fraction part + if (pos != std::string::npos) str = str.substr(pos); + + ap_private<_AP_W, _AP_S> ap_private_val(str, radix); + operator=(ap_private_val); + check_canary(); + } + + INLINE ~ap_private() { check_canary(); } + + INLINE bool isNegative() const { + static const uint64_t sign_mask = 1ULL << (_AP_W - 1); + return _AP_S && (sign_mask & VAL); + } + + INLINE bool isPositive() const { return !isNegative(); } + + INLINE bool isStrictlyPositive() const { return !isNegative() && VAL != 0; } + + INLINE bool isAllOnesValue() const { return (mask & VAL) == mask; } + + INLINE bool operator==(const ap_private<_AP_W, _AP_S>& RHS) const { + return VAL == RHS.get_VAL(); + } + INLINE bool operator==(const ap_private<_AP_W, !_AP_S>& RHS) const { + return (uint64_t)VAL == (uint64_t)RHS.get_VAL(); + } + + INLINE bool operator==(uint64_t Val) const { return ((uint64_t)VAL == Val); } + INLINE bool operator!=(uint64_t Val) const { return ((uint64_t)VAL != Val); } + INLINE bool operator!=(const ap_private<_AP_W, _AP_S>& RHS) const { + return VAL != RHS.get_VAL(); + } + INLINE bool operator!=(const ap_private<_AP_W, !_AP_S>& RHS) const { + return (uint64_t)VAL != (uint64_t)RHS.get_VAL(); + } + + /// postfix increment. + const ap_private operator++(int) { + ap_private orig(*this); + VAL++; + clearUnusedBits(); + return orig; + } + + /// prefix increment. + const ap_private operator++() { + ++VAL; + clearUnusedBits(); + return *this; + } + + /// postfix decrement. + const ap_private operator--(int) { + ap_private orig(*this); + --VAL; + clearUnusedBits(); + return orig; + } + + /// prefix decrement. + const ap_private operator--() { + --VAL; + clearUnusedBits(); + return *this; + } + + /// one's complement. + INLINE ap_private<_AP_W + !_AP_S, true> operator~() const { + ap_private<_AP_W + !_AP_S, true> Result(*this); + Result.flip(); + return Result; + } + + /// two's complement. + INLINE typename RType<1, false>::minus operator-() const { + return ap_private<1, false>(0) - (*this); + } + + /// logic negation. + INLINE bool operator!() const { return !VAL; } + + INLINE std::string toString(uint8_t radix, bool wantSigned) const; + INLINE std::string toStringUnsigned(uint8_t radix = 10) const { + return toString(radix, false); + } + INLINE std::string toStringSigned(uint8_t radix = 10) const { + return toString(radix, true); + } + INLINE void clear() { VAL = 0; } + INLINE ap_private& clear(uint32_t bitPosition) { + VAL &= ~(1ULL << (bitPosition)); + clearUnusedBits(); + return *this; + } + + INLINE ap_private ashr(uint32_t shiftAmt) const { + if (_AP_S) + return ap_private((shiftAmt == BitWidth) ? 0 + : ((int64_t)VAL) >> (shiftAmt)); + else + return ap_private((shiftAmt == BitWidth) ? 0 + : ((uint64_t)VAL) >> (shiftAmt)); + } + + INLINE ap_private lshr(uint32_t shiftAmt) const { + return ap_private((shiftAmt == BitWidth) + ? ap_private(0) + : ap_private((VAL & mask) >> (shiftAmt))); + } + + INLINE ap_private shl(uint32_t shiftAmt) const +// just for clang compiler +#if defined(__clang__) && !defined(__CLANG_3_1__) + __attribute__((no_sanitize("undefined"))) +#endif + { + if (shiftAmt > BitWidth) { + if (!isNegative()) + return ap_private(0); + else + return ap_private(-1); + } + if (shiftAmt == BitWidth) + return ap_private(0); + else + return ap_private((VAL) << (shiftAmt)); + // return ap_private((shiftAmt == BitWidth) ? ap_private(0ULL) : + // ap_private(VAL << shiftAmt)); + } + + INLINE int64_t getSExtValue() const { return VAL; } + + // XXX XXX this function is used in CBE + INLINE uint64_t getZExtValue() const { return VAL & mask; } + + template + INLINE ap_private(const _private_range_ref<_AP_W2, _AP_S2>& ref) { + set_canary(); + *this = ref.get(); + check_canary(); + } + + template + INLINE ap_private(const _private_bit_ref<_AP_W2, _AP_S2>& ref) { + set_canary(); + *this = ((uint64_t)(bool)ref); + check_canary(); + } + +// template +// INLINE ap_private(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& ref) { +// set_canary(); +// *this = ref.get(); +// check_canary(); +// } +// +// template +// INLINE ap_private( +// const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { +// set_canary(); +// *this = ((val.operator ap_private<_AP_W2, false>())); +// check_canary(); +// } +// +// template +// INLINE ap_private( +// const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { +// set_canary(); +// *this = (uint64_t)(bool)val; +// check_canary(); +// } + + INLINE void write(const ap_private<_AP_W, _AP_S>& op2) volatile { + *this = (op2); + } + + // Explicit conversions to C interger types + //----------------------------------------------------------- + INLINE operator ValType() const { return get_VAL(); } + + INLINE int to_uchar() const { return (unsigned char)get_VAL(); } + + INLINE int to_char() const { return (signed char)get_VAL(); } + + INLINE int to_ushort() const { return (unsigned short)get_VAL(); } + + INLINE int to_short() const { return (short)get_VAL(); } + + INLINE int to_int() const { + // ap_private<64 /* _AP_W */, _AP_S> res(V); + return (int)get_VAL(); + } + + INLINE unsigned to_uint() const { return (unsigned)get_VAL(); } + + INLINE long to_long() const { return (long)get_VAL(); } + + INLINE unsigned long to_ulong() const { return (unsigned long)get_VAL(); } + + INLINE ap_slong to_int64() const { return (ap_slong)get_VAL(); } + + INLINE ap_ulong to_uint64() const { return (ap_ulong)get_VAL(); } + + INLINE double to_double() const { + if (isNegative()) + return roundToDouble(true); + else + return roundToDouble(false); + } + + INLINE unsigned length() const { return _AP_W; } + + INLINE bool isMinValue() const { return VAL == 0; } + template + INLINE ap_private& operator&=(const ap_private<_AP_W1, _AP_S1>& RHS) { + VAL = (ValType)(((uint64_t)VAL) & RHS.get_VAL()); + clearUnusedBits(); + return *this; + } + + template + INLINE ap_private& operator|=(const ap_private<_AP_W1, _AP_S1>& RHS) { + VAL = (ValType)(((uint64_t)VAL) | RHS.get_VAL()); + clearUnusedBits(); + return *this; + } + + template + INLINE ap_private& operator^=(const ap_private<_AP_W1, _AP_S1>& RHS) { + VAL = (ValType)(((uint64_t)VAL) ^ RHS.get_VAL()); + clearUnusedBits(); + return *this; + } + + template + INLINE ap_private& operator*=(const ap_private<_AP_W1, _AP_S1>& RHS) { + VAL = (ValType)(((uint64_t)VAL) * RHS.get_VAL()); + clearUnusedBits(); + return *this; + } + + template + INLINE ap_private& operator+=(const ap_private<_AP_W1, _AP_S1>& RHS) { + VAL = (ValType)(((uint64_t)VAL) + RHS.get_VAL()); + clearUnusedBits(); + return *this; + } + + template + INLINE ap_private& operator-=(const ap_private<_AP_W1, _AP_S1>& RHS) { + VAL = (ValType)(((uint64_t)VAL) - RHS.get_VAL()); + clearUnusedBits(); + return *this; + } + + template + INLINE typename RType<_AP_W1, _AP_S1>::logic operator&( + const ap_private<_AP_W1, _AP_S1>& RHS) const { + if (RType<_AP_W1, _AP_S1>::logic_w <= 64) { + typename RType<_AP_W1, _AP_S1>::logic Ret(((uint64_t)VAL) & + RHS.get_VAL()); + return Ret; + } else { + typename RType<_AP_W1, _AP_S1>::logic Ret = *this; + return Ret & RHS; + } + } + + template + INLINE typename RType<_AP_W1, _AP_S1>::logic operator^( + const ap_private<_AP_W1, _AP_S1>& RHS) const { + if (RType<_AP_W1, _AP_S1>::logic_w <= 64) { + typename RType<_AP_W1, _AP_S1>::logic Ret(((uint64_t)VAL) ^ + RHS.get_VAL()); + return Ret; + } else { + typename RType<_AP_W1, _AP_S1>::logic Ret = *this; + return Ret ^ RHS; + } + } + + template + INLINE typename RType<_AP_W1, _AP_S1>::logic operator|( + const ap_private<_AP_W1, _AP_S1>& RHS) const { + if (RType<_AP_W1, _AP_S1>::logic_w <= 64) { + typename RType<_AP_W1, _AP_S1>::logic Ret(((uint64_t)VAL) | + RHS.get_VAL()); + return Ret; + } else { + typename RType<_AP_W1, _AP_S1>::logic Ret = *this; + return Ret | RHS; + } + } + + INLINE ap_private And(const ap_private& RHS) const { + return ap_private(VAL & RHS.get_VAL()); + } + + INLINE ap_private Or(const ap_private& RHS) const { + return ap_private(VAL | RHS.get_VAL()); + } + + INLINE ap_private Xor(const ap_private& RHS) const { + return ap_private(VAL ^ RHS.get_VAL()); + } +#if 1 + template + INLINE typename RType<_AP_W1, _AP_S1>::mult operator*( + const ap_private<_AP_W1, _AP_S1>& RHS) const { + if (RType<_AP_W1, _AP_S1>::mult_w <= 64) { + typename RType<_AP_W1, _AP_S1>::mult Result(((uint64_t)VAL) * + RHS.get_VAL()); + return Result; + } else { + typename RType<_AP_W1, _AP_S1>::mult Result(*this); + Result *= RHS; + return Result; + } + } +#endif + INLINE ap_private Mul(const ap_private& RHS) const { + return ap_private(VAL * RHS.get_VAL()); + } + + INLINE ap_private Add(const ap_private& RHS) const { + return ap_private(VAL + RHS.get_VAL()); + } + + INLINE ap_private Sub(const ap_private& RHS) const { + return ap_private(VAL - RHS.get_VAL()); + } + + INLINE ap_private& operator&=(uint64_t RHS) { + VAL &= (ValType)RHS; + clearUnusedBits(); + return *this; + } + INLINE ap_private& operator|=(uint64_t RHS) { + VAL |= (ValType)RHS; + clearUnusedBits(); + return *this; + } + INLINE ap_private& operator^=(uint64_t RHS) { + VAL ^= (ValType)RHS; + clearUnusedBits(); + return *this; + } + INLINE ap_private& operator*=(uint64_t RHS) { + VAL *= (ValType)RHS; + clearUnusedBits(); + return *this; + } + INLINE ap_private& operator+=(uint64_t RHS) { + VAL += (ValType)RHS; + clearUnusedBits(); + return *this; + } + INLINE ap_private& operator-=(uint64_t RHS) { + VAL -= (ValType)RHS; + clearUnusedBits(); + return *this; + } + + INLINE bool isMinSignedValue() const { + static const uint64_t min_mask = ~(~0ULL << (_AP_W - 1)); + return BitWidth == 1 ? VAL == 1 + : (ap_private_ops::isNegative<_AP_W>(*this) && + ((min_mask & VAL) == 0)); + } + + template + INLINE typename RType<_AP_W1, _AP_S1>::plus operator+( + const ap_private<_AP_W1, _AP_S1>& RHS) const { + if (RType<_AP_W1, _AP_S1>::plus_w <= 64) + return typename RType<_AP_W1, _AP_S1>::plus( + RType<_AP_W1, _AP_S1>::plus_s + ? int64_t(((uint64_t)VAL) + RHS.get_VAL()) + : uint64_t(((uint64_t)VAL) + RHS.get_VAL())); + typename RType<_AP_W1, _AP_S1>::plus Result = RHS; + Result += VAL; + return Result; + } + + template + INLINE typename RType<_AP_W1, _AP_S1>::minus operator-( + const ap_private<_AP_W1, _AP_S1>& RHS) const { + if (RType<_AP_W1, _AP_S1>::minus_w <= 64) + return typename RType<_AP_W1, _AP_S1>::minus( + int64_t(((uint64_t)VAL) - RHS.get_VAL())); + typename RType<_AP_W1, _AP_S1>::minus Result = *this; + Result -= RHS; + return Result; + } + + INLINE uint32_t countPopulation() const { + return ap_private_ops::CountPopulation_64(VAL); + } + INLINE uint32_t countLeadingZeros() const { + int remainder = BitWidth % 64; + int excessBits = (64 - remainder) % 64; + uint32_t Count = ap_private_ops::CountLeadingZeros_64(VAL); + if (Count) Count -= excessBits; + return AESL_std::min(Count, (uint32_t)_AP_W); + } + + /// HiBits - This function returns the high "numBits" bits of this ap_private. + INLINE ap_private<_AP_W, _AP_S> getHiBits(uint32_t numBits) const { + ap_private<_AP_W, _AP_S> ret(*this); + ret = (ret) >> (BitWidth - numBits); + return ret; + } + + /// LoBits - This function returns the low "numBits" bits of this ap_private. + INLINE ap_private<_AP_W, _AP_S> getLoBits(uint32_t numBits) const { + ap_private<_AP_W, _AP_S> ret(((uint64_t)VAL) << (BitWidth - numBits)); + ret = (ret) >> (BitWidth - numBits); + return ret; + // return ap_private(numBits, (VAL << (BitWidth - numBits))>> (BitWidth - + // numBits)); + } + + INLINE ap_private<_AP_W, _AP_S>& set(uint32_t bitPosition) { + VAL |= (1ULL << (bitPosition)); + clearUnusedBits(); + return *this; // clearUnusedBits(); + } + + INLINE void set() { + VAL = (ValType)~0ULL; + clearUnusedBits(); + } + + template + INLINE void set(const ap_private<_AP_W3, false>& val) { + operator=(ap_private<_AP_W3, _AP_S>(val)); + } + + INLINE void set(const ap_private& val) { operator=(val); } + + INLINE void clearUnusedBits(void) volatile +// just for clang compiler +#if defined(__clang__) && !defined(__CLANG_3_1__) + __attribute__((no_sanitize("undefined"))) +#endif + { + enum { excess_bits = (_AP_W % 64) ? 64 - _AP_W % 64 : 0 }; + VAL = (ValType)( + _AP_S + ? ((((int64_t)VAL) << (excess_bits)) >> (excess_bits)) + : (excess_bits ? (((uint64_t)VAL) << (excess_bits)) >> (excess_bits) + : (uint64_t)VAL)); + } + + INLINE void clearUnusedBitsToZero(void) { + enum { excess_bits = (_AP_W % 64) ? 64 - _AP_W % 64 : 0 }; + static uint64_t mask = ~0ULL >> (excess_bits); + VAL &= mask; + } + + INLINE ap_private udiv(const ap_private& RHS) const { + return ap_private((uint64_t)VAL / RHS.get_VAL()); + } + + /// Signed divide this ap_private by ap_private RHS. + /// @brief Signed division function for ap_private. + INLINE ap_private sdiv(const ap_private& RHS) const { + if (isNegative()) + if (RHS.isNegative()) + return ((uint64_t)(0 - (*this))) / (uint64_t)(0 - RHS); + else + return 0 - ((uint64_t)(0 - (*this)) / (uint64_t)(RHS)); + else if (RHS.isNegative()) + return 0 - (this->udiv((ap_private)(0 - RHS))); + return this->udiv(RHS); + } + + template + INLINE ap_private urem(const ap_private<_AP_W, _AP_S2>& RHS) const { + assert(RHS.get_VAL() != 0 && "Divide by 0"); + return ap_private(((uint64_t)VAL) % ((uint64_t)RHS.get_VAL())); + } + + /// Signed remainder operation on ap_private. + /// @brief Function for signed remainder operation. + template + INLINE ap_private srem(const ap_private<_AP_W, _AP_S2>& RHS) const { + if (isNegative()) { + ap_private lhs = 0 - (*this); + if (RHS.isNegative()) { + ap_private rhs = 0 - RHS; + return 0 - (lhs.urem(rhs)); + } else + return 0 - (lhs.urem(RHS)); + } else if (RHS.isNegative()) { + ap_private rhs = 0 - RHS; + return this->urem(rhs); + } + return this->urem(RHS); + } + + template + INLINE bool eq(const ap_private<_AP_W1, _AP_S1>& RHS) const { + return (*this) == RHS; + } + + template + INLINE bool ne(const ap_private<_AP_W1, _AP_S1>& RHS) const { + return !((*this) == RHS); + } + + /// Regards both *this and RHS as unsigned quantities and compares them for + /// the validity of the less-than relationship. + /// @returns true if *this < RHS when both are considered unsigned. + /// @brief Unsigned less than comparison + template + INLINE bool ult(const ap_private<_AP_W1, _AP_S1>& RHS) const { + if (_AP_W1 <= 64) { + uint64_t lhsZext = ((uint64_t(VAL)) << (64 - _AP_W)) >> (64 - _AP_W); + uint64_t rhsZext = + ((uint64_t(RHS.get_VAL())) << (64 - _AP_W1)) >> (64 - _AP_W1); + return lhsZext < rhsZext; + } else + return RHS.uge(*this); + } + + /// Regards both *this and RHS as signed quantities and compares them for + /// validity of the less-than relationship. + /// @returns true if *this < RHS when both are considered signed. + /// @brief Signed less than comparison + template + INLINE bool slt(const ap_private<_AP_W1, _AP_S1>& RHS) const +// just for clang compiler +#if defined(__clang__) && !defined(__CLANG_3_1__) + __attribute__((no_sanitize("undefined"))) +#endif + { + if (_AP_W1 <= 64) { + int64_t lhsSext = ((int64_t(VAL)) << (64 - _AP_W)) >> (64 - _AP_W); + int64_t rhsSext = + ((int64_t(RHS.get_VAL())) << (64 - _AP_W1)) >> (64 - _AP_W1); + return lhsSext < rhsSext; + } else + return RHS.sge(*this); + } + + /// Regards both *this and RHS as unsigned quantities and compares them for + /// validity of the less-or-equal relationship. + /// @returns true if *this <= RHS when both are considered unsigned. + /// @brief Unsigned less or equal comparison + template + INLINE bool ule(const ap_private<_AP_W1, _AP_S1>& RHS) const { + return ult(RHS) || eq(RHS); + } + + /// Regards both *this and RHS as signed quantities and compares them for + /// validity of the less-or-equal relationship. + /// @returns true if *this <= RHS when both are considered signed. + /// @brief Signed less or equal comparison + template + INLINE bool sle(const ap_private<_AP_W1, _AP_S1>& RHS) const { + return slt(RHS) || eq(RHS); + } + + /// Regards both *this and RHS as unsigned quantities and compares them for + /// the validity of the greater-than relationship. + /// @returns true if *this > RHS when both are considered unsigned. + /// @brief Unsigned greather than comparison + template + INLINE bool ugt(const ap_private<_AP_W1, _AP_S1>& RHS) const { + return !ult(RHS) && !eq(RHS); + } + + /// Regards both *this and RHS as signed quantities and compares them for + /// the validity of the greater-than relationship. + /// @returns true if *this > RHS when both are considered signed. + /// @brief Signed greather than comparison + template + INLINE bool sgt(const ap_private<_AP_W1, _AP_S1>& RHS) const { + return !slt(RHS) && !eq(RHS); + } + + /// Regards both *this and RHS as unsigned quantities and compares them for + /// validity of the greater-or-equal relationship. + /// @returns true if *this >= RHS when both are considered unsigned. + /// @brief Unsigned greater or equal comparison + template + INLINE bool uge(const ap_private<_AP_W1, _AP_S1>& RHS) const { + return !ult(RHS); + } + + /// Regards both *this and RHS as signed quantities and compares them for + /// validity of the greater-or-equal relationship. + /// @returns true if *this >= RHS when both are considered signed. + /// @brief Signed greather or equal comparison + template + INLINE bool sge(const ap_private<_AP_W1, _AP_S1>& RHS) const { + return !slt(RHS); + } + + INLINE ap_private abs() const { + if (isNegative()) return -(*this); + return *this; + } + + INLINE ap_private<_AP_W, false> get() const { + ap_private<_AP_W, false> ret(*this); + return ret; + } + + INLINE static uint32_t getBitsNeeded(const char* str, uint32_t slen, + uint8_t radix) { + return _AP_W; + } + + INLINE uint32_t getActiveBits() const { + uint32_t bits = _AP_W - countLeadingZeros(); + return bits ? bits : 1; + } + + INLINE double roundToDouble(bool isSigned = false) const { + return isSigned ? double((int64_t)VAL) : double((uint64_t)VAL); + } + + /*Reverse the contents of ap_private instance. I.e. LSB becomes MSB and vise + * versa*/ + INLINE ap_private& reverse() { + for (int i = 0; i < _AP_W / 2; ++i) { + bool tmp = operator[](i); + if (operator[](_AP_W - 1 - i)) + set(i); + else + clear(i); + if (tmp) + set(_AP_W - 1 - i); + else + clear(_AP_W - 1 - i); + } + clearUnusedBits(); + return *this; + } + + /*Return true if the value of ap_private instance is zero*/ + INLINE bool iszero() const { return isMinValue(); } + + INLINE bool to_bool() const { return !iszero(); } + + /* x < 0 */ + INLINE bool sign() const { + if (isNegative()) return true; + return false; + } + + /* x[i] = !x[i] */ + INLINE void invert(int i) { + assert(i >= 0 && "Attempting to read bit with negative index"); + assert(i < _AP_W && "Attempting to read bit beyond MSB"); + flip(i); + } + + /* x[i] */ + INLINE bool test(int i) const { + assert(i >= 0 && "Attempting to read bit with negative index"); + assert(i < _AP_W && "Attempting to read bit beyond MSB"); + return operator[](i); + } + + // This is used for sc_lv and sc_bv, which is implemented by sc_uint + // Rotate an ap_private object n places to the left + INLINE void lrotate(int n) { + assert(n >= 0 && "Attempting to shift negative index"); + assert(n < _AP_W && "Shift value larger than bit width"); + operator=(shl(n) | lshr(_AP_W - n)); + } + + // This is used for sc_lv and sc_bv, which is implemented by sc_uint + // Rotate an ap_private object n places to the right + INLINE void rrotate(int n) { + assert(n >= 0 && "Attempting to shift negative index"); + assert(n < _AP_W && "Shift value larger than bit width"); + operator=(lshr(n) | shl(_AP_W - n)); + } + + // Set the ith bit into v + INLINE void set(int i, bool v) { + assert(i >= 0 && "Attempting to write bit with negative index"); + assert(i < _AP_W && "Attempting to write bit beyond MSB"); + v ? set(i) : clear(i); + } + + // Set the ith bit into v + INLINE void set_bit(int i, bool v) { + assert(i >= 0 && "Attempting to write bit with negative index"); + assert(i < _AP_W && "Attempting to write bit beyond MSB"); + v ? set(i) : clear(i); + } + + // Get the value of ith bit + INLINE bool get_bit(int i) const { + assert(i >= 0 && "Attempting to read bit with negative index"); + assert(i < _AP_W && "Attempting to read bit beyond MSB"); + return (((1ULL << i) & VAL) != 0); + } + + /// Toggle all bits. + INLINE ap_private& flip() { + VAL = (ValType)((~0ULL ^ VAL) & mask); + clearUnusedBits(); + return *this; + } + + /// Toggles a given bit to its opposite value. + INLINE ap_private& flip(uint32_t bitPosition) { + assert(bitPosition < BitWidth && "Out of the bit-width range!"); + set_bit(bitPosition, !get_bit(bitPosition)); + return *this; + } + + // complements every bit + INLINE void b_not() { flip(); } + +// Binary Arithmetic +//----------------------------------------------------------- +#define OP_BIN_AP(Sym, Rty, Fun) \ + template \ + INLINE typename RType<_AP_W2, _AP_S2>::Rty operator Sym( \ + const ap_private<_AP_W2, _AP_S2>& op) const { \ + typename RType<_AP_W2, _AP_S2>::Rty lhs(*this); \ + typename RType<_AP_W2, _AP_S2>::Rty rhs(op); \ + return lhs.Fun(rhs); \ + } + +/// Bitwise and, or, xor +// OP_BIN_AP(&,logic, And) +// OP_BIN_AP(|,logic, Or) +// OP_BIN_AP(^,logic, Xor) +#undef OP_BIN_AP + + template + INLINE typename RType<_AP_W2, _AP_S2>::div operator/( + const ap_private<_AP_W2, _AP_S2>& op) const { + ap_private _AP_W2 ? _AP_S + : (_AP_W2 > _AP_W ? _AP_S2 : _AP_S || _AP_S2))> + lhs = *this; + ap_private _AP_W2 ? _AP_S + : (_AP_W2 > _AP_W ? _AP_S2 : _AP_S || _AP_S2))> + rhs = op; + return typename RType<_AP_W2, _AP_S2>::div( + (_AP_S || _AP_S2) ? lhs.sdiv(rhs) : lhs.udiv(rhs)); + } + + template + INLINE typename RType<_AP_W2, _AP_S2>::mod operator%( + const ap_private<_AP_W2, _AP_S2>& op) const { + ap_private _AP_W2 ? _AP_S + : (_AP_W2 > _AP_W ? _AP_S2 : _AP_S || _AP_S2))> + lhs = *this; + ap_private _AP_W2 ? _AP_S + : (_AP_W2 > _AP_W ? _AP_S2 : _AP_S || _AP_S2))> + rhs = op; + typename RType<_AP_W2, _AP_S2>::mod res = + typename RType<_AP_W2, _AP_S2>::mod(_AP_S ? lhs.srem(rhs) + : lhs.urem(rhs)); + return res; + } + +#define OP_ASSIGN_AP_2(Sym) \ + template \ + INLINE ap_private<_AP_W, _AP_S>& operator Sym##=( \ + const ap_private<_AP_W2, _AP_S2>& op) { \ + *this = operator Sym(op); \ + return *this; \ + } + + OP_ASSIGN_AP_2(/) + OP_ASSIGN_AP_2(%) +#undef OP_ASSIGN_AP_2 + +/// Bitwise assign: and, or, xor +//------------------------------------------------------------- +// OP_ASSIGN_AP(&) +// OP_ASSIGN_AP(^) +// OP_ASSIGN_AP(|) + +#define OP_LEFT_SHIFT_CTYPE(TYPE, SIGNED) \ + INLINE ap_private operator<<(const TYPE op) const { \ + if (op >= _AP_W) return ap_private(0); \ + if (SIGNED && op < 0) return *this >> (0 - op); \ + return shl(op); \ + } + + // OP_LEFT_SHIFT_CTYPE(bool, false) + OP_LEFT_SHIFT_CTYPE(char, CHAR_IS_SIGNED) + OP_LEFT_SHIFT_CTYPE(signed char, true) + OP_LEFT_SHIFT_CTYPE(unsigned char, false) + OP_LEFT_SHIFT_CTYPE(short, true) + OP_LEFT_SHIFT_CTYPE(unsigned short, false) + OP_LEFT_SHIFT_CTYPE(int, true) + OP_LEFT_SHIFT_CTYPE(unsigned int, false) + OP_LEFT_SHIFT_CTYPE(long, true) + OP_LEFT_SHIFT_CTYPE(unsigned long, false) + OP_LEFT_SHIFT_CTYPE(long long, true) + OP_LEFT_SHIFT_CTYPE(unsigned long long, false) +#if 0 + OP_LEFT_SHIFT_CTYPE(half, false) + OP_LEFT_SHIFT_CTYPE(float, false) + OP_LEFT_SHIFT_CTYPE(double, false) +#endif + +#undef OP_LEFT_SHIFT_CTYPE + + template + INLINE ap_private operator<<(const ap_private<_AP_W2, _AP_S2>& op2) const { + if (_AP_S2 == false) { + uint32_t sh = op2.to_uint(); + return *this << sh; + } else { + int sh = op2.to_int(); + return *this << sh; + } + } + +#define OP_RIGHT_SHIFT_CTYPE(TYPE, SIGNED) \ + INLINE ap_private operator>>(const TYPE op) const { \ + if (op >= _AP_W) { \ + if (isNegative()) \ + return ap_private(-1); \ + else \ + return ap_private(0); \ + } \ + if ((SIGNED) && op < 0) return *this << (0 - op); \ + if (_AP_S) \ + return ashr(op); \ + else \ + return lshr(op); \ + } + + // OP_RIGHT_SHIFT_CTYPE(bool, false) + OP_RIGHT_SHIFT_CTYPE(char, CHAR_IS_SIGNED) + OP_RIGHT_SHIFT_CTYPE(signed char, true) + OP_RIGHT_SHIFT_CTYPE(unsigned char, false) + OP_RIGHT_SHIFT_CTYPE(short, true) + OP_RIGHT_SHIFT_CTYPE(unsigned short, false) + OP_RIGHT_SHIFT_CTYPE(int, true) + OP_RIGHT_SHIFT_CTYPE(unsigned int, false) + OP_RIGHT_SHIFT_CTYPE(long, true) + OP_RIGHT_SHIFT_CTYPE(unsigned long, false) + OP_RIGHT_SHIFT_CTYPE(unsigned long long, false) + OP_RIGHT_SHIFT_CTYPE(long long, true) +#if 0 + OP_RIGHT_SHIFT_CTYPE(half, false) + OP_RIGHT_SHIFT_CTYPE(float, false) + OP_RIGHT_SHIFT_CTYPE(double, false) +#endif + +#undef OP_RIGHT_SHIFT_CTYPE + + template + INLINE ap_private operator>>(const ap_private<_AP_W2, _AP_S2>& op2) const { + if (_AP_S2 == false) { + uint32_t sh = op2.to_uint(); + return *this >> sh; + } else { + int sh = op2.to_int(); + return *this >> sh; + } + } + + /// Shift assign + //----------------------------------------------------------------- + + //INLINE const ap_private& operator<<=(uint32_t shiftAmt) { + // VAL <<= shiftAmt; + // clearUnusedBits(); + // return *this; + //} + +#define OP_ASSIGN_AP(Sym) \ + template \ + INLINE ap_private& operator Sym##=(int op) { \ + *this = operator Sym(op); \ + clearUnusedBits(); \ + return *this; \ + } \ + INLINE ap_private& operator Sym##=(unsigned int op) { \ + *this = operator Sym(op); \ + clearUnusedBits(); \ + return *this; \ + } \ + template \ + INLINE ap_private& operator Sym##=(const ap_private<_AP_W2, _AP_S2>& op) { \ + *this = operator Sym(op); \ + clearUnusedBits(); \ + return *this; \ + } + + OP_ASSIGN_AP(>>) + OP_ASSIGN_AP(<<) +#undef OP_ASSIGN_AP + + /// Comparisons + //----------------------------------------------------------------- + template + INLINE bool operator==(const ap_private<_AP_W1, _AP_S1>& op) const { + enum { _AP_MAX_W = AP_MAX(AP_MAX(_AP_W, _AP_W1), 32) }; + ap_private<_AP_MAX_W, false> lhs(*this); + ap_private<_AP_MAX_W, false> rhs(op); + if (_AP_MAX_W <= 64) { + return (uint64_t)lhs.get_VAL() == (uint64_t)rhs.get_VAL(); + } else + return lhs == rhs; + } + + template + INLINE bool operator!=(const ap_private<_AP_W2, _AP_S2>& op) const { + return !(*this == op); + } + + template + INLINE bool operator>(const ap_private<_AP_W2, _AP_S2>& op) const { + enum { + _AP_MAX_W = AP_MAX(_AP_W + (_AP_S || _AP_S2), _AP_W2 + (_AP_S || _AP_S2)) + }; + ap_private<_AP_MAX_W, _AP_S> lhs(*this); + ap_private<_AP_MAX_W, _AP_S2> rhs(op); + // this will follow gcc rule for comparison + // between different bitwidth and signness + if (_AP_S == _AP_S2) + return _AP_S ? lhs.sgt(rhs) : lhs.ugt(rhs); + else if (_AP_W < 32 && _AP_W2 < 32) + // different signness but both bitwidth is less than 32 + return lhs.sgt(rhs); + else + // different signness but bigger bitwidth + // is greater or equal to 32 + if (_AP_S) + if (_AP_W2 >= _AP_W) + return lhs.ugt(rhs); + else + return lhs.sgt(rhs); + else if (_AP_W >= _AP_W2) + return lhs.ugt(rhs); + else + return lhs.sgt(rhs); + } + + template + INLINE bool operator<=(const ap_private<_AP_W2, _AP_S2>& op) const { + return !(*this > op); + } + + template + INLINE bool operator<(const ap_private<_AP_W2, _AP_S2>& op) const { + enum { + _AP_MAX_W = AP_MAX(_AP_W + (_AP_S || _AP_S2), _AP_W2 + (_AP_S || _AP_S2)) + }; + ap_private<_AP_MAX_W, _AP_S> lhs(*this); + ap_private<_AP_MAX_W, _AP_S2> rhs(op); + if (_AP_S == _AP_S2) + return _AP_S ? lhs.slt(rhs) : lhs.ult(rhs); + else if (_AP_W < 32 && _AP_W2 < 32) + return lhs.slt(rhs); + else if (_AP_S) + if (_AP_W2 >= _AP_W) + return lhs.ult(rhs); + else + return lhs.slt(rhs); + else if (_AP_W >= _AP_W2) + return lhs.ult(rhs); + else + return lhs.slt(rhs); + } + + template + INLINE bool operator>=(const ap_private<_AP_W2, _AP_S2>& op) const { + return !(*this < op); + } + + /// Bit and Part Select + //-------------------------------------------------------------- + // FIXME now _private_range_ref refs to _AP_ROOT_TYPE(struct ssdm_int). + INLINE _private_range_ref<_AP_W, _AP_S> operator()(int Hi, int Lo) { + return _private_range_ref<_AP_W, _AP_S>(this, Hi, Lo); + } + + INLINE _private_range_ref<_AP_W, _AP_S> operator()(int Hi, int Lo) const { + return _private_range_ref<_AP_W, _AP_S>( + const_cast*>(this), Hi, Lo); + } + + INLINE _private_range_ref<_AP_W, _AP_S> range(int Hi, int Lo) const { + return _private_range_ref<_AP_W, _AP_S>( + (const_cast*>(this)), Hi, Lo); + } + + INLINE _private_range_ref<_AP_W, _AP_S> range(int Hi, int Lo) { + return _private_range_ref<_AP_W, _AP_S>(this, Hi, Lo); + } + + INLINE _private_bit_ref<_AP_W, _AP_S> operator[](int index) { + return _private_bit_ref<_AP_W, _AP_S>(*this, index); + } + + template + INLINE _private_bit_ref<_AP_W, _AP_S> operator[]( + const ap_private<_AP_W2, _AP_S2>& index) { + return _private_bit_ref<_AP_W, _AP_S>(*this, index.to_int()); + } + + INLINE const _private_bit_ref<_AP_W, _AP_S> operator[](int index) const { + return _private_bit_ref<_AP_W, _AP_S>( + const_cast&>(*this), index); + } + + template + INLINE const _private_bit_ref<_AP_W, _AP_S> operator[]( + const ap_private<_AP_W2, _AP_S2>& index) const { + return _private_bit_ref<_AP_W, _AP_S>( + const_cast&>(*this), index.to_int()); + } + + INLINE _private_bit_ref<_AP_W, _AP_S> bit(int index) { + return _private_bit_ref<_AP_W, _AP_S>(*this, index); + } + + template + INLINE _private_bit_ref<_AP_W, _AP_S> bit(const ap_private<_AP_W2, _AP_S2>& index) { + return _private_bit_ref<_AP_W, _AP_S>(*this, index.to_int()); + } + + INLINE const _private_bit_ref<_AP_W, _AP_S> bit(int index) const { + return _private_bit_ref<_AP_W, _AP_S>( + const_cast&>(*this), index); + } + + template + INLINE const _private_bit_ref<_AP_W, _AP_S> bit( + const ap_private<_AP_W2, _AP_S2>& index) const { + return _private_bit_ref<_AP_W, _AP_S>( + const_cast&>(*this), index.to_int()); + } + +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// ap_private<_AP_W2, _AP_S2> > +// concat(const ap_private<_AP_W2, _AP_S2>& a2) const { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// ap_private<_AP_W2, _AP_S2> >( +// const_cast&>(*this), +// const_cast&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// ap_private<_AP_W2, _AP_S2> > +// concat(ap_private<_AP_W2, _AP_S2>& a2) { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// ap_private<_AP_W2, _AP_S2> >(*this, a2); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private, _AP_W2, ap_private<_AP_W2, _AP_S2> > +// operator,(const ap_private<_AP_W2, _AP_S2> &a2) const { +// return ap_concat_ref<_AP_W, ap_private, _AP_W2, +// ap_private<_AP_W2, _AP_S2> >( +// const_cast&>(*this), +// const_cast&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private, _AP_W2, ap_private<_AP_W2, _AP_S2> > +// operator,(const ap_private<_AP_W2, _AP_S2> &a2) { +// return ap_concat_ref<_AP_W, ap_private, _AP_W2, +// ap_private<_AP_W2, _AP_S2> >( +// *this, const_cast&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private, _AP_W2, ap_private<_AP_W2, _AP_S2> > +// operator,(ap_private<_AP_W2, _AP_S2> &a2) const { +// return ap_concat_ref<_AP_W, ap_private, _AP_W2, +// ap_private<_AP_W2, _AP_S2> >( +// const_cast&>(*this), a2); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private, _AP_W2, ap_private<_AP_W2, _AP_S2> > +// operator,(ap_private<_AP_W2, _AP_S2> &a2) { +// return ap_concat_ref<_AP_W, ap_private, _AP_W2, +// ap_private<_AP_W2, _AP_S2> >(*this, a2); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// _private_range_ref<_AP_W2, _AP_S2> > +// operator,(const _private_range_ref<_AP_W2, _AP_S2> &a2) const { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// _private_range_ref<_AP_W2, _AP_S2> >( +// const_cast&>(*this), +// const_cast<_private_range_ref<_AP_W2, _AP_S2>&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// _private_range_ref<_AP_W2, _AP_S2> > +// operator,(_private_range_ref<_AP_W2, _AP_S2> &a2) { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// _private_range_ref<_AP_W2, _AP_S2> >(*this, a2); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, 1, +// _private_bit_ref<_AP_W2, _AP_S2> > +// operator,(const _private_bit_ref<_AP_W2, _AP_S2> &a2) const { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, 1, +// _private_bit_ref<_AP_W2, _AP_S2> >( +// const_cast&>(*this), +// const_cast<_private_bit_ref<_AP_W2, _AP_S2>&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, 1, +// _private_bit_ref<_AP_W2, _AP_S2> > +// operator,(_private_bit_ref<_AP_W2, _AP_S2> &a2) { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, 1, +// _private_bit_ref<_AP_W2, _AP_S2> >(*this, a2); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2 + _AP_W3, +// ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> > +// operator,(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> &a2) const { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2 + _AP_W3, +// ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> >( +// const_cast&>(*this), +// const_cast&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2 + _AP_W3, +// ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> > +// operator,(ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> &a2) { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2 + _AP_W3, +// ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> >(*this, +// a2); +// } +// +// template +// INLINE ap_concat_ref< +// _AP_W, ap_private, _AP_W2, +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > +// operator,(const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> +// &a2) const { +// return ap_concat_ref< +// _AP_W, ap_private, _AP_W2, +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >( +// const_cast&>(*this), +// const_cast< +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>&>(a2)); +// } +// +// template +// INLINE ap_concat_ref< +// _AP_W, ap_private, _AP_W2, +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > +// operator,(af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> &a2) { +// return ap_concat_ref< +// _AP_W, ap_private, _AP_W2, +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >(*this, +// a2); +// } +// +// template +// INLINE +// ap_concat_ref<_AP_W, ap_private, 1, +// af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > +// operator,(const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> +// &a2) const { +// return ap_concat_ref< +// _AP_W, ap_private, 1, +// af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >( +// const_cast&>(*this), +// const_cast&>( +// a2)); +// } +// +// template +// INLINE +// ap_concat_ref<_AP_W, ap_private, 1, +// af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > +// operator,( +// af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> &a2) { +// return ap_concat_ref< +// _AP_W, ap_private, 1, +// af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >(*this, a2); +// } +// +// template +// INLINE ap_private operator&( +// const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& a2) { +// return *this & a2.get(); +// } +// +// template +// INLINE ap_private operator|( +// const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& a2) { +// return *this | a2.get(); +// } +// +// template +// INLINE ap_private operator^( +// const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& a2) { +// return *this ^ a2.get(); +// } + + // Reduce operation + //----------------------------------------------------------- + INLINE bool and_reduce() const { return (VAL & mask) == mask; } + + INLINE bool nand_reduce() const { return (VAL & mask) != mask; } + + INLINE bool or_reduce() const { return (bool)VAL; } + + INLINE bool nor_reduce() const { return VAL == 0; } + + INLINE bool xor_reduce() const { + unsigned int i = countPopulation(); + return (i % 2) ? true : false; + } + + INLINE bool xnor_reduce() const { + unsigned int i = countPopulation(); + return (i % 2) ? false : true; + } + + INLINE std::string to_string(uint8_t radix = 2, bool sign = false) const { + return toString(radix, radix == 10 ? _AP_S : sign); + } +}; // End of class ap_private <_AP_W, _AP_S, true> + +template +std::string ap_private<_AP_W, _AP_S, true>::toString(uint8_t radix, + bool wantSigned) const { + assert((radix == 10 || radix == 8 || radix == 16 || radix == 2) && + "Radix should be 2, 8, 10, or 16!"); + static const char* digits[] = {"0", "1", "2", "3", "4", "5", "6", "7", + "8", "9", "a", "b", "c", "d", "e", "f"}; + std::string result; + if (radix != 10) { + // For the 2, 8 and 16 bit cases, we can just shift instead of divide + // because the number of bits per digit (1,3 and 4 respectively) divides + // equaly. We just shift until there value is zero. + + // First, check for a zero value and just short circuit the logic below. + if (*this == (uint64_t)(0)) { + // Always generate a radix indicator because fixed-point + // formats require it. + switch (radix) { + case 2: + result = "0b0"; + break; + case 8: + result = "0o0"; + break; + case 16: + result = "0x0"; + break; + default: + assert("invalid radix" && 0); + } + } else { + ap_private<_AP_W, false, true> tmp(*this); + size_t insert_at = 0; + bool leading_zero = true; + if (wantSigned && isNegative()) { + // They want to print the signed version and it is a negative value + // Flip the bits and add one to turn it into the equivalent positive + // value and put a '-' in the result. + tmp.flip(); + tmp++; + result = "-"; + insert_at = 1; + leading_zero = false; + } + switch (radix) { + case 2: + result += "0b"; + break; + case 8: + result += "0o"; + break; + case 16: + result += "0x"; + break; + default: + assert("invalid radix" && 0); + } + insert_at += 2; + + // Just shift tmp right for each digit width until it becomes zero + uint32_t shift = (radix == 16 ? 4 : (radix == 8 ? 3 : 1)); + uint64_t mask = radix - 1; + ap_private<_AP_W, false, true> zero(0); + unsigned bits = 0; + bool msb = false; + while (tmp.ne(zero)) { + unsigned digit = (unsigned)(tmp.get_VAL() & mask); + result.insert(insert_at, digits[digit]); + tmp = tmp.lshr(shift); + bits++; + msb = (digit >> (shift - 1)) == 1; + } + bits *= shift; + if (bits < _AP_W && leading_zero && msb) + result.insert(insert_at, digits[0]); + } + return result; + } + + ap_private<_AP_W, false, true> tmp(*this); + ap_private<6, false, true> divisor(radix); + ap_private<_AP_W, _AP_S, true> zero(0); + size_t insert_at = 0; + if (wantSigned && isNegative()) { + // They want to print the signed version and it is a negative value + // Flip the bits and add one to turn it into the equivalent positive + // value and put a '-' in the result. + tmp.flip(); + tmp++; + result = "-"; + insert_at = 1; + } + if (tmp == ap_private<_AP_W, false, true>(0ULL)) + result = "0"; + else + while (tmp.ne(zero)) { + ap_private<_AP_W, false, true> APdigit = tmp % divisor; + ap_private<_AP_W, false, true> tmp2 = tmp / divisor; + uint32_t digit = (uint32_t)(APdigit.getZExtValue()); + assert(digit < radix && "divide failed"); + result.insert(insert_at, digits[digit]); + tmp = tmp2; + } + return result; + +} // End of ap_private<_AP_W, _AP_S, true>::toString() + +// bitwidth > 64 +template +class ap_private<_AP_W, _AP_S, false> { + // SFINAE pattern. Only consider this class when _AP_W > 64 + const static bool valid = ap_private_enable_if<(_AP_W > 64)>::isValid; + +#ifdef _MSC_VER +#pragma warning(disable : 4521 4522) +#endif + public: + enum { BitWidth = _AP_W, _AP_N = (_AP_W + 63) / 64 }; + static const int width = _AP_W; + + private: + /// This constructor is used only internally for speed of construction of + /// temporaries. It is unsafe for general use so it is not public. + + /* Constructors */ + /// Note that numWords can be smaller or larger than the corresponding bit + /// width but any extraneous bits will be dropped. + /// @param numWords the number of words in bigVal + /// @param bigVal a sequence of words to form the initial value of the + /// ap_private + /// @brief Construct an ap_private, initialized as bigVal[]. + INLINE ap_private(uint32_t numWords, const uint64_t bigVal[]) { + set_canary(); + assert(bigVal && "Null pointer detected!"); + { + // Get memory, cleared to 0 + memset(pVal, 0, _AP_N * sizeof(uint64_t)); + + // Calculate the number of words to copy + uint32_t words = AESL_std::min(numWords, _AP_N); + // Copy the words from bigVal to pVal + memcpy(pVal, bigVal, words * APINT_WORD_SIZE); + if (words >= _AP_W) clearUnusedBits(); + // Make sure unused high bits are cleared + } + check_canary(); + } + + /// This constructor interprets Val as a string in the given radix. The + /// interpretation stops when the first charater that is not suitable for the + /// radix is encountered. Acceptable radix values are 2, 8, 10 and 16. It is + /// an error for the value implied by the string to require more bits than + /// numBits. + /// @param val the string to be interpreted + /// @param radix the radix of Val to use for the intepretation + /// @brief Construct an ap_private from a string representation. + INLINE ap_private(const std::string& val, uint8_t radix = 2) { + set_canary(); + assert(!val.empty() && "The input string is empty."); + const char* c_str = val.c_str(); + fromString(c_str, val.size(), radix); + check_canary(); + } + + /// This constructor interprets the slen characters starting at StrStart as + /// a string in the given radix. The interpretation stops when the first + /// character that is not suitable for the radix is encountered. Acceptable + /// radix values are 2, 8, 10 and 16. It is an error for the value implied by + /// the string to require more bits than numBits. + /// @param strStart the start of the string to be interpreted + /// @param slen the maximum number of characters to interpret + /// @param radix the radix to use for the conversion + /// @brief Construct an ap_private from a string representation. + /// This method does not consider whether it is negative or not. + INLINE ap_private(const char strStart[], uint32_t slen, uint8_t radix) { + set_canary(); + fromString(strStart, slen, radix); + check_canary(); + } + + INLINE void report() { + _AP_ERROR(_AP_W > MAX_MODE(AP_INT_MAX_W) * 1024, + "ap_%sint<%d>: Bitwidth exceeds the " + "default max value %d. Please use macro " + "AP_INT_MAX_W to set a larger max value.", + _AP_S ? "" : "u", _AP_W, MAX_MODE(AP_INT_MAX_W) * 1024); + } + /// This union is used to store the integer value. When the + /// integer bit-width <= 64, it uses VAL, otherwise it uses pVal. + + /// This enum is used to hold the constants we needed for ap_private. + // uint64_t VAL; ///< Used to store the <= 64 bits integer value. + uint64_t pVal[_AP_N]; ///< Used to store the >64 bits integer value. +#ifdef AP_CANARY + uint64_t CANARY; + INLINE void check_canary() { assert(CANARY == (uint64_t)0xDEADBEEFDEADBEEF); } + INLINE void set_canary() { CANARY = (uint64_t)0xDEADBEEFDEADBEEF; } +#else + INLINE void check_canary() {} + INLINE void set_canary() {} +#endif + + public: + typedef typename valtype<8, _AP_S>::Type ValType; + typedef ap_private<_AP_W, _AP_S> Type; + // FIXME remove friend type? + template + friend struct ap_fixed_base; + /// return type of variety of operations + //---------------------------------------------------------- + template + struct RType { + enum { + mult_w = _AP_W + _AP_W2, + mult_s = _AP_S || _AP_S2, + plus_w = + AP_MAX(_AP_W + (_AP_S2 && !_AP_S), _AP_W2 + (_AP_S && !_AP_S2)) + 1, + plus_s = _AP_S || _AP_S2, + minus_w = + AP_MAX(_AP_W + (_AP_S2 && !_AP_S), _AP_W2 + (_AP_S && !_AP_S2)) + 1, + minus_s = true, + div_w = _AP_W + _AP_S2, + div_s = _AP_S || _AP_S2, + mod_w = AP_MIN(_AP_W, _AP_W2 + (!_AP_S2 && _AP_S)), + mod_s = _AP_S, + logic_w = AP_MAX(_AP_W + (_AP_S2 && !_AP_S), _AP_W2 + (_AP_S && !_AP_S2)), + logic_s = _AP_S || _AP_S2 + }; + typedef ap_private mult; + typedef ap_private plus; + typedef ap_private minus; + typedef ap_private logic; + typedef ap_private div; + typedef ap_private mod; + typedef ap_private<_AP_W, _AP_S> arg1; + typedef bool reduce; + }; + + INLINE uint64_t& get_VAL(void) { return pVal[0]; } + INLINE uint64_t get_VAL(void) const { return pVal[0]; } + INLINE uint64_t get_VAL(void) const volatile { return pVal[0]; } + INLINE void set_VAL(uint64_t value) { pVal[0] = value; } + INLINE uint64_t& get_pVal(int index) { return pVal[index]; } + INLINE uint64_t* get_pVal() { return pVal; } + INLINE const uint64_t* get_pVal() const { return pVal; } + INLINE uint64_t get_pVal(int index) const { return pVal[index]; } + INLINE uint64_t* get_pVal() const volatile { return pVal; } + INLINE uint64_t get_pVal(int index) const volatile { return pVal[index]; } + INLINE void set_pVal(int i, uint64_t value) { pVal[i] = value; } + + /// This enum is used to hold the constants we needed for ap_private. + enum { + APINT_BITS_PER_WORD = sizeof(uint64_t) * 8, ///< Bits in a word + APINT_WORD_SIZE = sizeof(uint64_t) ///< Byte size of a word + }; + + enum { + excess_bits = (_AP_W % APINT_BITS_PER_WORD) + ? APINT_BITS_PER_WORD - (_AP_W % APINT_BITS_PER_WORD) + : 0 + }; + static const uint64_t mask = ((uint64_t)~0ULL >> (excess_bits)); + + public: + // NOTE changed to explicit to be consistent with ap_private + explicit INLINE ap_private(const char* val) { + set_canary(); + unsigned char radix = 10; + std::string str = ap_private_ops::parseString(val, radix); // determine radix. + std::string::size_type pos = str.find('.'); + if (pos != std::string::npos) str = str.substr(pos); + ap_private ap_private_val(str, radix); + operator=(ap_private_val); + report(); + check_canary(); + } + + INLINE ap_private(const char* val, unsigned char rd) { + set_canary(); + unsigned char radix = rd; + std::string str = ap_private_ops::parseString(val, radix); // determine radix. + std::string::size_type pos = str.find('.'); + if (pos != std::string::npos) str = str.substr(pos); + ap_private ap_private_val(str, radix); + operator=(ap_private_val); + report(); + + report(); + check_canary(); + } + + template + INLINE ap_private(const _private_range_ref<_AP_W2, _AP_S2>& ref) { + set_canary(); + *this = ref.get(); + report(); + check_canary(); + } + + template + INLINE ap_private(const _private_bit_ref<_AP_W2, _AP_S2>& ref) { + set_canary(); + *this = ((uint64_t)(bool)ref); + report(); + check_canary(); + } + +// template +// INLINE ap_private(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& ref) { +// set_canary(); +// *this = ref.get(); +// report(); +// check_canary(); +// } +// +// template +// INLINE ap_private( +// const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { +// set_canary(); +// *this = ((val.operator ap_private<_AP_W2, false>())); +// report(); +// check_canary(); +// } +// +// template +// INLINE ap_private( +// const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { +// set_canary(); +// *this = (uint64_t)(bool)val; +// report(); +// check_canary(); +// } + + /// Simply makes *this a copy of that. + /// @brief Copy Constructor. + INLINE ap_private(const ap_private& that) { + set_canary(); + memcpy(pVal, that.get_pVal(), _AP_N * APINT_WORD_SIZE); + clearUnusedBits(); + check_canary(); + } + + template + INLINE ap_private(const ap_private<_AP_W1, _AP_S1, false>& that) { + set_canary(); + operator=(that); + check_canary(); + } + + template + INLINE ap_private(const volatile ap_private<_AP_W1, _AP_S1, false>& that) { + set_canary(); + operator=(const_cast&>(that)); + check_canary(); + } + + template + INLINE ap_private(const ap_private<_AP_W1, _AP_S1, true>& that) { + set_canary(); + static const uint64_t that_sign_ext_mask = + (_AP_W1 == APINT_BITS_PER_WORD) + ? 0 + : ~0ULL >> (_AP_W1 % APINT_BITS_PER_WORD) + << (_AP_W1 % APINT_BITS_PER_WORD); + if (that.isNegative()) { + pVal[0] = that.get_VAL() | that_sign_ext_mask; + memset(pVal + 1, ~0, sizeof(uint64_t) * (_AP_N - 1)); + } else { + pVal[0] = that.get_VAL(); + memset(pVal + 1, 0, sizeof(uint64_t) * (_AP_N - 1)); + } + clearUnusedBits(); + check_canary(); + } + + template + INLINE ap_private(const volatile ap_private<_AP_W1, _AP_S1, true>& that) { + set_canary(); + operator=(const_cast&>(that)); + check_canary(); + } + + /// @brief Destructor. + // virtual ~ap_private() {} + INLINE ~ap_private() { check_canary(); } + + /// @name Constructors + /// @{ + + /// Default constructor that creates an uninitialized ap_private. This is + /// useful + /// for object deserialization (pair this with the static method Read). + INLINE ap_private() { + set_canary(); + clearUnusedBits(); + check_canary(); + } + + INLINE ap_private(uint64_t* val, uint32_t bits = _AP_W) { assert(0); } + INLINE ap_private(const uint64_t* const val, uint32_t bits) { assert(0); } + +/// If isSigned is true then val is treated as if it were a signed value +/// (i.e. as an int64_t) and the appropriate sign extension to the bit width +/// will be done. Otherwise, no sign extension occurs (high order bits beyond +/// the range of val are zero filled). +/// @param numBits the bit width of the constructed ap_private +/// @param val the initial value of the ap_private +/// @param isSigned how to treat signedness of val +/// @brief Create a new ap_private of numBits width, initialized as val. +#define CTOR(TYPE, SIGNED) \ + INLINE ap_private(TYPE val, bool isSigned = SIGNED) { \ + set_canary(); \ + pVal[0] = (ValType)val; \ + if (isSigned && int64_t(pVal[0]) < 0) { \ + memset(pVal + 1, ~0, sizeof(uint64_t) * (_AP_N - 1)); \ + } else { \ + memset(pVal + 1, 0, sizeof(uint64_t) * (_AP_N - 1)); \ + } \ + clearUnusedBits(); \ + check_canary(); \ + } + + CTOR(bool, false) + CTOR(char, CHAR_IS_SIGNED) + CTOR(signed char, true) + CTOR(unsigned char, false) + CTOR(short, true) + CTOR(unsigned short, false) + CTOR(int, true) + CTOR(unsigned int, false) + CTOR(long, true) + CTOR(unsigned long, false) + CTOR(ap_slong, true) + CTOR(ap_ulong, false) +#if 0 + CTOR(half, false) + CTOR(float, false) + CTOR(double, false) +#endif +#undef CTOR + + /// @returns true if the number of bits <= 64, false otherwise. + /// @brief Determine if this ap_private just has one word to store value. + INLINE bool isSingleWord() const { return false; } + + /// @returns the word position for the specified bit position. + /// @brief Determine which word a bit is in. + static INLINE uint32_t whichWord(uint32_t bitPosition) { + // return bitPosition / APINT_BITS_PER_WORD; + return (bitPosition) >> 6; + } + + /// @returns the bit position in a word for the specified bit position + /// in the ap_private. + /// @brief Determine which bit in a word a bit is in. + static INLINE uint32_t whichBit(uint32_t bitPosition) { + // return bitPosition % APINT_BITS_PER_WORD; + return bitPosition & 0x3f; + } + + /// bit at a specific bit position. This is used to mask the bit in the + /// corresponding word. + /// @returns a uint64_t with only bit at "whichBit(bitPosition)" set + /// @brief Get a single bit mask. + static INLINE uint64_t maskBit(uint32_t bitPosition) { + return 1ULL << (whichBit(bitPosition)); + } + + /// @returns the corresponding word for the specified bit position. + /// @brief Get the word corresponding to a bit position + INLINE uint64_t getWord(uint32_t bitPosition) const { + return pVal[whichWord(bitPosition)]; + } + + /// This method is used internally to clear the to "N" bits in the high order + /// word that are not used by the ap_private. This is needed after the most + /// significant word is assigned a value to ensure that those bits are + /// zero'd out. + /// @brief Clear unused high order bits + INLINE void clearUnusedBits(void) volatile +// just for clang compiler +#if defined(__clang__) && !defined(__CLANG_3_1__) + __attribute__((no_sanitize("undefined"))) +#endif + { + pVal[_AP_N - 1] = + _AP_S ? ((((int64_t)pVal[_AP_N - 1]) << (excess_bits)) >> excess_bits) + : (excess_bits + ? ((pVal[_AP_N - 1]) << (excess_bits)) >> (excess_bits) + : pVal[_AP_N - 1]); + } + + INLINE void clearUnusedBitsToZero(void) { pVal[_AP_N - 1] &= mask; } + + INLINE void clearUnusedBitsToOne(void) { pVal[_AP_N - 1] |= mask; } + + /// This is used by the constructors that take string arguments. + /// @brief Convert a char array into an ap_private + INLINE void fromString(const char* str, uint32_t slen, uint8_t radix) { + enum { numbits = _AP_W }; + bool isNeg = str[0] == '-'; + if (isNeg) { + str++; + slen--; + } + + if (str[0] == '0' && (str[1] == 'b' || str[1] == 'B')) { + //if(radix == 0) radix = 2; + _AP_WARNING(radix != 2, "%s seems to have base %d, but %d given.", str, 2, radix); + str += 2; + slen -=2; + } else if (str[0] == '0' && (str[1] == 'o' || str[1] == 'O')) { + //if (radix == 0) radix = 8; + _AP_WARNING(radix != 8, "%s seems to have base %d, but %d given.", str, 8, radix); + str += 2; + slen -=2; + } else if (str[0] == '0' && (str[1] == 'x' || str[1] == 'X')) { + //if (radix == 0) radix = 16; + _AP_WARNING(radix != 16, "%s seems to have base %d, but %d given.", str, 16, radix); + str += 2; + slen -=2; + } else if (str[0] == '0' && (str[1] == 'd' || str[1] == 'D')) { + //if (radix == 0) radix = 10; + _AP_WARNING(radix != 10, "%s seems to have base %d, but %d given.", str, 10, radix); + str += 2; + slen -=2; + } else if (radix == 0) { + //radix = 2; // XXX default value + } + + // Check our assumptions here + assert((radix == 10 || radix == 8 || radix == 16 || radix == 2) && + "Radix should be 2, 8, 10, or 16!"); + assert(str && "String is null?"); + + // skip any leading zero + while (*str == '0' && *(str + 1) != '\0') { + str++; + slen--; + } + assert((slen <= numbits || radix != 2) && "Insufficient bit width"); + assert(((slen - 1) * 3 <= numbits || radix != 8) && + "Insufficient bit width"); + assert(((slen - 1) * 4 <= numbits || radix != 16) && + "Insufficient bit width"); + assert((((slen - 1) * 64) / 22 <= numbits || radix != 10) && + "Insufficient bit width"); + + // clear bits + memset(pVal, 0, _AP_N * sizeof(uint64_t)); + + // Figure out if we can shift instead of multiply + uint32_t shift = (radix == 16 ? 4 : radix == 8 ? 3 : radix == 2 ? 1 : 0); + + // Set up an ap_private for the digit to add outside the loop so we don't + // constantly construct/destruct it. + uint64_t bigVal[_AP_N]; + memset(bigVal, 0, _AP_N * sizeof(uint64_t)); + ap_private<_AP_W, _AP_S> apdigit(getBitWidth(), bigVal); + ap_private<_AP_W, _AP_S> apradix(radix); + + // Enter digit traversal loop + for (unsigned i = 0; i < slen; i++) { + // Get a digit + uint32_t digit = 0; + char cdigit = str[i]; + if (radix == 16) { +#define isxdigit(c) \ + (((c) >= '0' && (c) <= '9') || ((c) >= 'a' && (c) <= 'f') || \ + ((c) >= 'A' && (c) <= 'F')) +#define isdigit(c) ((c) >= '0' && (c) <= '9') + if (!isxdigit(cdigit)) assert(0 && "Invalid hex digit in string"); + if (isdigit(cdigit)) + digit = cdigit - '0'; + else if (cdigit >= 'a') + digit = cdigit - 'a' + 10; + else if (cdigit >= 'A') + digit = cdigit - 'A' + 10; + else + assert(0 && "huh? we shouldn't get here"); + } else if (isdigit(cdigit)) { + digit = cdigit - '0'; + } else if (cdigit != '\0') { + assert(0 && "Invalid character in digit string"); + } +#undef isxdigit +#undef isdigit + // Shift or multiply the value by the radix + if (shift) + *this <<= shift; + else + *this *= apradix; + + // Add in the digit we just interpreted + apdigit.set_VAL(digit); + *this += apdigit; + } + // If its negative, put it in two's complement form + if (isNeg) { + (*this)--; + this->flip(); + } + clearUnusedBits(); + } + + INLINE ap_private read() volatile { return *this; } + + INLINE void write(const ap_private& op2) volatile { *this = (op2); } + + INLINE operator ValType() const { return get_VAL(); } + + INLINE int to_uchar() const { return (unsigned char)get_VAL(); } + + INLINE int to_char() const { return (signed char)get_VAL(); } + + INLINE int to_ushort() const { return (unsigned short)get_VAL(); } + + INLINE int to_short() const { return (short)get_VAL(); } + + INLINE int to_int() const { return (int)get_VAL(); } + + INLINE unsigned to_uint() const { return (unsigned)get_VAL(); } + + INLINE long to_long() const { return (long)get_VAL(); } + + INLINE unsigned long to_ulong() const { return (unsigned long)get_VAL(); } + + INLINE ap_slong to_int64() const { return (ap_slong)get_VAL(); } + + INLINE ap_ulong to_uint64() const { return (ap_ulong)get_VAL(); } + + INLINE double to_double() const { + if (isNegative()) + return roundToDouble(true); + else + return roundToDouble(false); + } + + INLINE unsigned length() const { return _AP_W; } + + /*Reverse the contents of ap_private instance. I.e. LSB becomes MSB and vise + * versa*/ + INLINE ap_private& reverse() { + for (int i = 0; i < _AP_W / 2; ++i) { + bool tmp = operator[](i); + if (operator[](_AP_W - 1 - i)) + set(i); + else + clear(i); + if (tmp) + set(_AP_W - 1 - i); + else + clear(_AP_W - 1 - i); + } + clearUnusedBits(); + return *this; + } + + /*Return true if the value of ap_private instance is zero*/ + INLINE bool iszero() const { return isMinValue(); } + + INLINE bool to_bool() const { return !iszero(); } + + /* x < 0 */ + INLINE bool sign() const { + if (isNegative()) return true; + return false; + } + + /* x[i] = !x[i] */ + INLINE void invert(int i) { + assert(i >= 0 && "Attempting to read bit with negative index"); + assert(i < _AP_W && "Attempting to read bit beyond MSB"); + flip(i); + } + + /* x[i] */ + INLINE bool test(int i) const { + assert(i >= 0 && "Attempting to read bit with negative index"); + assert(i < _AP_W && "Attempting to read bit beyond MSB"); + return operator[](i); + } + + // Set the ith bit into v + INLINE void set(int i, bool v) { + assert(i >= 0 && "Attempting to write bit with negative index"); + assert(i < _AP_W && "Attempting to write bit beyond MSB"); + v ? set(i) : clear(i); + } + + // Set the ith bit into v + INLINE void set_bit(int i, bool v) { + assert(i >= 0 && "Attempting to write bit with negative index"); + assert(i < _AP_W && "Attempting to write bit beyond MSB"); + v ? set(i) : clear(i); + } + + // FIXME different argument for different action? + INLINE ap_private& set(uint32_t bitPosition) { + pVal[whichWord(bitPosition)] |= maskBit(bitPosition); + clearUnusedBits(); + return *this; + } + + INLINE void set() { + for (int i = 0; i < _AP_N; ++i) pVal[i] = ~0ULL; + clearUnusedBits(); + } + + // Get the value of ith bit + INLINE bool get(int i) const { + assert(i >= 0 && "Attempting to read bit with negative index"); + assert(i < _AP_W && "Attempting to read bit beyond MSB"); + return ((maskBit(i) & (pVal[whichWord(i)])) != 0); + } + + // Get the value of ith bit + INLINE bool get_bit(int i) const { + assert(i >= 0 && "Attempting to read bit with negative index"); + assert(i < _AP_W && "Attempting to read bit beyond MSB"); + return ((maskBit(i) & (pVal[whichWord(i)])) != 0); + } + + // This is used for sc_lv and sc_bv, which is implemented by sc_uint + // Rotate an ap_private object n places to the left + INLINE void lrotate(int n) { + assert(n >= 0 && "Attempting to shift negative index"); + assert(n < _AP_W && "Shift value larger than bit width"); + operator=(shl(n) | lshr(_AP_W - n)); + } + + // This is used for sc_lv and sc_bv, which is implemented by sc_uint + // Rotate an ap_private object n places to the right + INLINE void rrotate(int n) { + assert(n >= 0 && "Attempting to shift negative index"); + assert(n < _AP_W && "Shift value larger than bit width"); + operator=(lshr(n) | shl(_AP_W - n)); + } + + /// Set the given bit to 0 whose position is given as "bitPosition". + /// @brief Set a given bit to 0. + INLINE ap_private& clear(uint32_t bitPosition) { + pVal[whichWord(bitPosition)] &= ~maskBit(bitPosition); + clearUnusedBits(); + return *this; + } + + /// @brief Set every bit to 0. + INLINE void clear() { memset(pVal, 0, _AP_N * APINT_WORD_SIZE); } + + /// @brief Toggle every bit to its opposite value. + ap_private& flip() { + for (int i = 0; i < _AP_N; ++i) pVal[i] ^= ~0ULL; + clearUnusedBits(); + return *this; + } + + /// @brief Toggles a given bit to its opposite value. + INLINE ap_private& flip(uint32_t bitPosition) { + assert(bitPosition < BitWidth && "Out of the bit-width range!"); + set_bit(bitPosition, !get_bit(bitPosition)); + return *this; + } + + // complements every bit + INLINE void b_not() { flip(); } + + INLINE ap_private getLoBits(uint32_t numBits) const { + return ap_private_ops::lshr(ap_private_ops::shl(*this, _AP_W - numBits), + _AP_W - numBits); + } + + INLINE ap_private getHiBits(uint32_t numBits) const { + return ap_private_ops::lshr(*this, _AP_W - numBits); + } + + // Binary Arithmetic + //----------------------------------------------------------- + +// template +// INLINE ap_private operator&( +// const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& a2) { +// return *this & a2.get(); +// } +// +// template +// INLINE ap_private operator|( +// const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& a2) { +// return *this | a2.get(); +// } +// +// template +// INLINE ap_private operator^( +// const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3>& a2) { +// return *this ^ a2.get(); +// } + +/// Arithmetic assign +//------------------------------------------------------------- + +#define OP_BIN_LOGIC_ASSIGN_AP(Sym) \ + template \ + INLINE ap_private& operator Sym(const ap_private<_AP_W1, _AP_S1>& RHS) { \ + const int _AP_N1 = ap_private<_AP_W1, _AP_S1>::_AP_N; \ + uint32_t numWords = AESL_std::min((int)_AP_N, _AP_N1); \ + uint32_t i; \ + if (_AP_W != _AP_W1) \ + fprintf(stderr, \ + "Warning! Bitsize mismach for ap_[u]int " #Sym " ap_[u]int.\n"); \ + for (i = 0; i < numWords; ++i) pVal[i] Sym RHS.get_pVal(i); \ + if (_AP_N1 < _AP_N) { \ + uint64_t ext = RHS.isNegative() ? ~0ULL : 0; \ + for (; i < _AP_N; i++) pVal[i] Sym ext; \ + } \ + clearUnusedBits(); \ + return *this; \ + } + + OP_BIN_LOGIC_ASSIGN_AP(&=); + OP_BIN_LOGIC_ASSIGN_AP(|=); + OP_BIN_LOGIC_ASSIGN_AP(^=); +#undef OP_BIN_LOGIC_ASSIGN_AP + + /// Adds the RHS APint to this ap_private. + /// @returns this, after addition of RHS. + /// @brief Addition assignment operator. + template + INLINE ap_private& operator+=(const ap_private<_AP_W1, _AP_S1>& RHS) { + const int _AP_N1 = ap_private<_AP_W1, _AP_S1>::_AP_N; + uint64_t RHSpVal[_AP_N1]; + for (int i = 0; i < _AP_N1; ++i) RHSpVal[i] = RHS.get_pVal(i); + ap_private_ops::add(pVal, pVal, RHSpVal, _AP_N, _AP_N, _AP_N1, _AP_S, + _AP_S1); + clearUnusedBits(); + return *this; + } + + template + INLINE ap_private& operator-=(const ap_private<_AP_W1, _AP_S1>& RHS) { + const int _AP_N1 = ap_private<_AP_W1, _AP_S1>::_AP_N; + uint64_t RHSpVal[_AP_N1]; + for (int i = 0; i < _AP_N1; ++i) RHSpVal[i] = RHS.get_pVal(i); + ap_private_ops::sub(pVal, pVal, RHSpVal, _AP_N, _AP_N, _AP_N1, _AP_S, + _AP_S1); + clearUnusedBits(); + return *this; + } + + template + INLINE ap_private& operator*=(const ap_private<_AP_W1, _AP_S1>& RHS) { + // Get some bit facts about LHS and check for zero + uint32_t lhsBits = getActiveBits(); + uint32_t lhsWords = !lhsBits ? 0 : whichWord(lhsBits - 1) + 1; + if (!lhsWords) { + // 0 * X ===> 0 + return *this; + } + + ap_private dupRHS = RHS; + // Get some bit facts about RHS and check for zero + uint32_t rhsBits = dupRHS.getActiveBits(); + uint32_t rhsWords = !rhsBits ? 0 : whichWord(rhsBits - 1) + 1; + if (!rhsWords) { + // X * 0 ===> 0 + clear(); + return *this; + } + + // Allocate space for the result + uint32_t destWords = rhsWords + lhsWords; + uint64_t* dest = (uint64_t*)malloc(destWords * sizeof(uint64_t)); + + // Perform the long multiply + ap_private_ops::mul(dest, pVal, lhsWords, dupRHS.get_pVal(), rhsWords, + destWords); + + // Copy result back into *this + clear(); + uint32_t wordsToCopy = destWords >= _AP_N ? _AP_N : destWords; + + memcpy(pVal, dest, wordsToCopy * APINT_WORD_SIZE); + + uint64_t ext = (isNegative() ^ RHS.isNegative()) ? ~0ULL : 0ULL; + for (int i = wordsToCopy; i < _AP_N; i++) pVal[i] = ext; + clearUnusedBits(); + // delete dest array and return + free(dest); + return *this; + } + +#define OP_ASSIGN_AP(Sym) \ + template \ + INLINE ap_private& operator Sym##=(const ap_private<_AP_W2, _AP_S2>& op) { \ + *this = operator Sym(op); \ + return *this; \ + } + + OP_ASSIGN_AP(/) + OP_ASSIGN_AP(%) +#undef OP_ASSIGN_AP + +#define OP_BIN_LOGIC_AP(Sym) \ + template \ + INLINE typename RType<_AP_W1, _AP_S1>::logic operator Sym( \ + const ap_private<_AP_W1, _AP_S1>& RHS) const { \ + enum { \ + numWords = (RType<_AP_W1, _AP_S1>::logic_w + APINT_BITS_PER_WORD - 1) / \ + APINT_BITS_PER_WORD \ + }; \ + typename RType<_AP_W1, _AP_S1>::logic Result; \ + uint32_t i; \ + const int _AP_N1 = ap_private<_AP_W1, _AP_S1>::_AP_N; \ + uint32_t min_N = std::min((int)_AP_N, _AP_N1); \ + uint32_t max_N = std::max((int)_AP_N, _AP_N1); \ + for (i = 0; i < min_N; ++i) \ + Result.set_pVal(i, pVal[i] Sym RHS.get_pVal(i)); \ + if (numWords > i) { \ + uint64_t ext = ((_AP_N < _AP_N1 && isNegative()) || \ + (_AP_N1 < _AP_N && RHS.isNegative())) \ + ? ~0ULL \ + : 0; \ + if (_AP_N > _AP_N1) \ + for (; i < max_N; i++) Result.set_pVal(i, pVal[i] Sym ext); \ + else \ + for (; i < max_N; i++) Result.set_pVal(i, RHS.get_pVal(i) Sym ext); \ + if (numWords > i) { \ + uint64_t ext2 = ((_AP_N > _AP_N1 && isNegative()) || \ + (_AP_N1 > _AP_N && RHS.isNegative())) \ + ? ~0ULL \ + : 0; \ + Result.set_pVal(i, ext Sym ext2); \ + } \ + } \ + Result.clearUnusedBits(); \ + return Result; \ + } + + OP_BIN_LOGIC_AP(|); + OP_BIN_LOGIC_AP(&); + OP_BIN_LOGIC_AP(^); + +#undef OP_BIN_LOGIC_AP + + template + INLINE typename RType<_AP_W1, _AP_S1>::plus operator+( + const ap_private<_AP_W1, _AP_S1>& RHS) const { + typename RType<_AP_W1, _AP_S1>::plus Result, lhs(*this), rhs(RHS); + const int Result_AP_N = (RType<_AP_W1, _AP_S1>::plus_w + 63) / 64; + ap_private_ops::add(Result.get_pVal(), lhs.get_pVal(), rhs.get_pVal(), + Result_AP_N, Result_AP_N, Result_AP_N, _AP_S, _AP_S1); + Result.clearUnusedBits(); + return Result; + } + + template + INLINE typename RType<_AP_W1, _AP_S1>::minus operator-( + const ap_private<_AP_W1, _AP_S1>& RHS) const { + typename RType<_AP_W1, _AP_S1>::minus Result, lhs(*this), rhs(RHS); + const int Result_AP_N = (RType<_AP_W1, _AP_S1>::minus_w + 63) / 64; + ap_private_ops::sub(Result.get_pVal(), lhs.get_pVal(), rhs.get_pVal(), + Result_AP_N, Result_AP_N, Result_AP_N, _AP_S, _AP_S1); + Result.clearUnusedBits(); + return Result; + } + + template + INLINE typename RType<_AP_W1, _AP_S1>::mult operator*( + const ap_private<_AP_W1, _AP_S1>& RHS) const { + typename RType<_AP_W1, _AP_S1>::mult temp = *this; + temp *= RHS; + return temp; + } + + template + INLINE typename RType<_AP_W2, _AP_S2>::div operator/( + const ap_private<_AP_W2, _AP_S2>& op) const { + ap_private _AP_W2 ? _AP_S + : (_AP_W2 > _AP_W ? _AP_S2 : _AP_S || _AP_S2))> + lhs = *this; + ap_private _AP_W2 ? _AP_S + : (_AP_W2 > _AP_W ? _AP_S2 : _AP_S || _AP_S2))> + rhs = op; + return typename RType<_AP_W2, _AP_S2>::div( + (_AP_S || _AP_S2) ? lhs.sdiv(rhs) : lhs.udiv(rhs)); + } + + template + INLINE typename RType<_AP_W2, _AP_S2>::mod operator%( + const ap_private<_AP_W2, _AP_S2>& op) const { + ap_private _AP_W2 ? _AP_S + : (_AP_W2 > _AP_W ? _AP_S2 : _AP_S || _AP_S2))> + lhs = *this; + ap_private _AP_W2 ? _AP_S + : (_AP_W2 > _AP_W ? _AP_S2 : _AP_S || _AP_S2))> + rhs = op; + typename RType<_AP_W2, _AP_S2>::mod res = + typename RType<_AP_W2, _AP_S2>::mod(_AP_S ? lhs.srem(rhs) + : lhs.urem(rhs)); + return res; + } + +#define OP_LEFT_SHIFT_CTYPE(TYPE, SIGNED) \ + INLINE ap_private operator<<(const TYPE op) const { \ + if (op >= _AP_W) return ap_private(0); \ + if (SIGNED && op < 0) return *this >> (0 - op); \ + return shl(op); \ + } + + OP_LEFT_SHIFT_CTYPE(int, true) + // OP_LEFT_SHIFT_CTYPE(bool, false) + OP_LEFT_SHIFT_CTYPE(signed char, true) + OP_LEFT_SHIFT_CTYPE(unsigned char, false) + OP_LEFT_SHIFT_CTYPE(short, true) + OP_LEFT_SHIFT_CTYPE(unsigned short, false) + OP_LEFT_SHIFT_CTYPE(unsigned int, false) + OP_LEFT_SHIFT_CTYPE(long, true) + OP_LEFT_SHIFT_CTYPE(unsigned long, false) + OP_LEFT_SHIFT_CTYPE(unsigned long long, false) + OP_LEFT_SHIFT_CTYPE(long long, true) +#if 0 + OP_LEFT_SHIFT_CTYPE(half, false) + OP_LEFT_SHIFT_CTYPE(float, false) + OP_LEFT_SHIFT_CTYPE(double, false) +#endif +#undef OP_LEFT_SHIFT_CTYPE + + template + INLINE ap_private operator<<(const ap_private<_AP_W2, _AP_S2>& op2) const { + if (_AP_S2 == false) { + uint32_t sh = op2.to_uint(); + return *this << sh; + } else { + int sh = op2.to_int(); + return *this << sh; + } + } + +#define OP_RIGHT_SHIFT_CTYPE(TYPE, SIGNED) \ + INLINE ap_private operator>>(const TYPE op) const { \ + if (op >= _AP_W) { \ + if (isNegative()) \ + return ap_private(-1); \ + else \ + return ap_private(0); \ + } \ + if ((SIGNED) && op < 0) return *this << (0 - op); \ + if (_AP_S) \ + return ashr(op); \ + else \ + return lshr(op); \ + } + + // OP_RIGHT_SHIFT_CTYPE(bool, false) + OP_RIGHT_SHIFT_CTYPE(char, CHAR_IS_SIGNED) + OP_RIGHT_SHIFT_CTYPE(signed char, true) + OP_RIGHT_SHIFT_CTYPE(unsigned char, false) + OP_RIGHT_SHIFT_CTYPE(short, true) + OP_RIGHT_SHIFT_CTYPE(unsigned short, false) + OP_RIGHT_SHIFT_CTYPE(int, true) + OP_RIGHT_SHIFT_CTYPE(unsigned int, false) + OP_RIGHT_SHIFT_CTYPE(long, true) + OP_RIGHT_SHIFT_CTYPE(unsigned long, false) + OP_RIGHT_SHIFT_CTYPE(unsigned long long, false) + OP_RIGHT_SHIFT_CTYPE(long long, true) +#if 0 + OP_RIGHT_SHIFT_CTYPE(half, false) + OP_RIGHT_SHIFT_CTYPE(float, false) + OP_RIGHT_SHIFT_CTYPE(double, false) +#endif +#undef OP_RIGHT_SHIFT_CTYPE + + template + INLINE ap_private operator>>(const ap_private<_AP_W2, _AP_S2>& op2) const { + if (_AP_S2 == false) { + uint32_t sh = op2.to_uint(); + return *this >> sh; + } else { + int sh = op2.to_int(); + return *this >> sh; + } + } + + /// Shift assign + //------------------------------------------------------------------ + // TODO call clearUnusedBits ? +#define OP_ASSIGN_AP(Sym) \ + template \ + INLINE ap_private& operator Sym##=(int op) { \ + *this = operator Sym(op); \ + return *this; \ + } \ + INLINE ap_private& operator Sym##=(unsigned int op) { \ + *this = operator Sym(op); \ + return *this; \ + } \ + template \ + INLINE ap_private& operator Sym##=(const ap_private<_AP_W2, _AP_S2>& op) { \ + *this = operator Sym(op); \ + return *this; \ + } + OP_ASSIGN_AP(>>) + OP_ASSIGN_AP(<<) +#undef OP_ASSIGN_AP + + /// Comparisons + //----------------------------------------------------------------- + INLINE bool operator==(const ap_private& RHS) const { + // Get some facts about the number of bits used in the two operands. + uint32_t n1 = getActiveBits(); + uint32_t n2 = RHS.getActiveBits(); + + // If the number of bits isn't the same, they aren't equal + if (n1 != n2) return false; + + // If the number of bits fits in a word, we only need to compare the low + // word. + if (n1 <= APINT_BITS_PER_WORD) return pVal[0] == RHS.get_pVal(0); + + // Otherwise, compare everything + for (int i = whichWord(n1 - 1); i >= 0; --i) + if (pVal[i] != RHS.get_pVal(i)) return false; + return true; + } + + template + INLINE bool operator==(const ap_private<_AP_W2, _AP_S2>& op) const { + enum { + _AP_MAX_W = AP_MAX(_AP_W, _AP_W2), + }; + ap_private<_AP_MAX_W, false> lhs(*this); + ap_private<_AP_MAX_W, false> rhs(op); + return lhs == rhs; + } + + INLINE bool operator==(uint64_t Val) const { + uint32_t n = getActiveBits(); + if (n <= APINT_BITS_PER_WORD) + return pVal[0] == Val; + else + return false; + } + + template + INLINE bool operator!=(const ap_private<_AP_W2, _AP_S2>& op) const { + return !(*this == op); + } + + template + INLINE bool operator!=(const ap_private<_AP_W, _AP_S1>& RHS) const { + return !((*this) == RHS); + } + + INLINE bool operator!=(uint64_t Val) const { return !((*this) == Val); } + + template + INLINE bool operator<=(const ap_private<_AP_W2, _AP_S2>& op) const { + return !(*this > op); + } + + INLINE bool operator<(const ap_private& op) const { + return _AP_S ? slt(op) : ult(op); + } + + template + INLINE bool operator<(const ap_private<_AP_W2, _AP_S2>& op) const { + enum { + _AP_MAX_W = AP_MAX(_AP_W + (_AP_S || _AP_S2), _AP_W2 + (_AP_S || _AP_S2)) + }; + ap_private<_AP_MAX_W, _AP_S> lhs(*this); + ap_private<_AP_MAX_W, _AP_S2> rhs(op); + if (_AP_S == _AP_S2) + return _AP_S ? lhs.slt(rhs) : lhs.ult(rhs); + else if (_AP_S) + if (_AP_W2 >= _AP_W) + return lhs.ult(rhs); + else + return lhs.slt(rhs); + else if (_AP_W >= _AP_W2) + return lhs.ult(rhs); + else + return lhs.slt(rhs); + } + + template + INLINE bool operator>=(const ap_private<_AP_W2, _AP_S2>& op) const { + return !(*this < op); + } + + INLINE bool operator>(const ap_private& op) const { + return _AP_S ? sgt(op) : ugt(op); + } + + template + INLINE bool operator>(const ap_private<_AP_W2, _AP_S2>& op) const { + enum { + _AP_MAX_W = AP_MAX(_AP_W + (_AP_S || _AP_S2), _AP_W2 + (_AP_S || _AP_S2)) + }; + ap_private<_AP_MAX_W, _AP_S> lhs(*this); + ap_private<_AP_MAX_W, _AP_S2> rhs(op); + if (_AP_S == _AP_S2) + return _AP_S ? lhs.sgt(rhs) : lhs.ugt(rhs); + else if (_AP_S) + if (_AP_W2 >= _AP_W) + return lhs.ugt(rhs); + else + return lhs.sgt(rhs); + else if (_AP_W >= _AP_W2) + return lhs.ugt(rhs); + else + return lhs.sgt(rhs); + } + + /// Bit and Part Select + //-------------------------------------------------------------- + INLINE _private_range_ref<_AP_W, _AP_S> operator()(int Hi, int Lo) { + return _private_range_ref<_AP_W, _AP_S>(this, Hi, Lo); + } + + INLINE _private_range_ref<_AP_W, _AP_S> operator()(int Hi, int Lo) const { + return _private_range_ref<_AP_W, _AP_S>( + const_cast*>(this), Hi, Lo); + } + + INLINE _private_range_ref<_AP_W, _AP_S> range(int Hi, int Lo) const { + return _private_range_ref<_AP_W, _AP_S>( + (const_cast*>(this)), Hi, Lo); + } + + INLINE _private_range_ref<_AP_W, _AP_S> range(int Hi, int Lo) { + return _private_range_ref<_AP_W, _AP_S>(this, Hi, Lo); + } + + template + INLINE _private_range_ref<_AP_W, _AP_S> range( + const ap_private<_AP_W2, _AP_S2>& HiIdx, + const ap_private<_AP_W3, _AP_S3>& LoIdx) { + int Hi = HiIdx.to_int(); + int Lo = LoIdx.to_int(); + return _private_range_ref<_AP_W, _AP_S>(this, Hi, Lo); + } + + template + INLINE _private_range_ref<_AP_W, _AP_S> operator()( + const ap_private<_AP_W2, _AP_S2>& HiIdx, + const ap_private<_AP_W3, _AP_S3>& LoIdx) { + int Hi = HiIdx.to_int(); + int Lo = LoIdx.to_int(); + return _private_range_ref<_AP_W, _AP_S>(this, Hi, Lo); + } + + template + INLINE _private_range_ref<_AP_W, _AP_S> range( + const ap_private<_AP_W2, _AP_S2>& HiIdx, + const ap_private<_AP_W3, _AP_S3>& LoIdx) const { + int Hi = HiIdx.to_int(); + int Lo = LoIdx.to_int(); + return _private_range_ref<_AP_W, _AP_S>(const_cast(this), Hi, Lo); + } + + template + INLINE _private_range_ref<_AP_W, _AP_S> operator()( + const ap_private<_AP_W2, _AP_S2>& HiIdx, + const ap_private<_AP_W3, _AP_S3>& LoIdx) const { + int Hi = HiIdx.to_int(); + int Lo = LoIdx.to_int(); + return this->range(Hi, Lo); + } + + INLINE _private_bit_ref<_AP_W, _AP_S> operator[](int index) { + return _private_bit_ref<_AP_W, _AP_S>(*this, index); + } + + template + INLINE _private_bit_ref<_AP_W, _AP_S> operator[]( + const ap_private<_AP_W2, _AP_S2>& index) { + return _private_bit_ref<_AP_W, _AP_S>(*this, index.to_int()); + } + + template + INLINE const _private_bit_ref<_AP_W, _AP_S> operator[]( + const ap_private<_AP_W2, _AP_S2>& index) const { + return _private_bit_ref<_AP_W, _AP_S>( + const_cast&>(*this), index.to_int()); + } + + INLINE const _private_bit_ref<_AP_W, _AP_S> operator[](int index) const { + return _private_bit_ref<_AP_W, _AP_S>( + const_cast&>(*this), index); + } + + INLINE _private_bit_ref<_AP_W, _AP_S> bit(int index) { + return _private_bit_ref<_AP_W, _AP_S>(*this, index); + } + + template + INLINE _private_bit_ref<_AP_W, _AP_S> bit(const ap_private<_AP_W2, _AP_S2>& index) { + return _private_bit_ref<_AP_W, _AP_S>(*this, index.to_int()); + } + + INLINE const _private_bit_ref<_AP_W, _AP_S> bit(int index) const { + return _private_bit_ref<_AP_W, _AP_S>( + const_cast&>(*this), index); + } + + template + INLINE const _private_bit_ref<_AP_W, _AP_S> bit( + const ap_private<_AP_W2, _AP_S2>& index) const { + return _private_bit_ref<_AP_W, _AP_S>( + const_cast&>(*this), index.to_int()); + } + +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// ap_private<_AP_W2, _AP_S2> > +// concat(ap_private<_AP_W2, _AP_S2>& a2) { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// ap_private<_AP_W2, _AP_S2> >(*this, a2); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// ap_private<_AP_W2, _AP_S2> > +// concat(const ap_private<_AP_W2, _AP_S2>& a2) const { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// ap_private<_AP_W2, _AP_S2> >( +// const_cast&>(*this), +// const_cast&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private, _AP_W2, ap_private<_AP_W2, _AP_S2> > +// operator,(ap_private<_AP_W2, _AP_S2> &a2) { +// return ap_concat_ref<_AP_W, ap_private, _AP_W2, +// ap_private<_AP_W2, _AP_S2> >(*this, a2); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private, _AP_W2, ap_private<_AP_W2, _AP_S2> > +// operator,(ap_private<_AP_W2, _AP_S2> &a2) const { +// return ap_concat_ref<_AP_W, ap_private, _AP_W2, +// ap_private<_AP_W2, _AP_S2> >( +// const_cast&>(*this), a2); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private, _AP_W2, ap_private<_AP_W2, _AP_S2> > +// operator,(const ap_private<_AP_W2, _AP_S2> &a2) { +// return ap_concat_ref<_AP_W, ap_private, _AP_W2, +// ap_private<_AP_W2, _AP_S2> >( +// *this, const_cast&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private, _AP_W2, ap_private<_AP_W2, _AP_S2> > +// operator,(const ap_private<_AP_W2, _AP_S2> &a2) const { +// return ap_concat_ref<_AP_W, ap_private, _AP_W2, +// ap_private<_AP_W2, _AP_S2> >( +// const_cast&>(*this), +// const_cast&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// _private_range_ref<_AP_W2, _AP_S2> > +// operator,(const _private_range_ref<_AP_W2, _AP_S2> &a2) const { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// _private_range_ref<_AP_W2, _AP_S2> >( +// const_cast&>(*this), +// const_cast<_private_range_ref<_AP_W2, _AP_S2>&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// _private_range_ref<_AP_W2, _AP_S2> > +// operator,(_private_range_ref<_AP_W2, _AP_S2> &a2) { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2, +// _private_range_ref<_AP_W2, _AP_S2> >(*this, a2); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, 1, +// _private_bit_ref<_AP_W2, _AP_S2> > +// operator,(const _private_bit_ref<_AP_W2, _AP_S2> &a2) const { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, 1, +// _private_bit_ref<_AP_W2, _AP_S2> >( +// const_cast&>(*this), +// const_cast<_private_bit_ref<_AP_W2, _AP_S2>&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, 1, +// _private_bit_ref<_AP_W2, _AP_S2> > +// operator,(_private_bit_ref<_AP_W2, _AP_S2> &a2) { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, 1, +// _private_bit_ref<_AP_W2, _AP_S2> >(*this, a2); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2 + _AP_W3, +// ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> > +// operator,(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> &a2) const { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2 + _AP_W3, +// ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> >( +// const_cast&>(*this), +// const_cast&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2 + _AP_W3, +// ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> > +// operator,(ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> &a2) { +// return ap_concat_ref<_AP_W, ap_private<_AP_W, _AP_S>, _AP_W2 + _AP_W3, +// ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> >(*this, +// a2); +// } +// +// template +// INLINE ap_concat_ref< +// _AP_W, ap_private, _AP_W2, +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > +// operator,(const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> +// &a2) const { +// return ap_concat_ref< +// _AP_W, ap_private, _AP_W2, +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >( +// const_cast&>(*this), +// const_cast< +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>&>(a2)); +// } +// +// template +// INLINE ap_concat_ref< +// _AP_W, ap_private, _AP_W2, +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > +// operator,(af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> &a2) { +// return ap_concat_ref< +// _AP_W, ap_private, _AP_W2, +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >(*this, +// a2); +// } +// +// template +// INLINE +// ap_concat_ref<_AP_W, ap_private, 1, +// af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > +// operator,(const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> +// &a2) const { +// return ap_concat_ref< +// _AP_W, ap_private, 1, +// af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >( +// const_cast&>(*this), +// const_cast&>( +// a2)); +// } +// +// template +// INLINE +// ap_concat_ref<_AP_W, ap_private, 1, +// af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > +// operator,( +// af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> &a2) { +// return ap_concat_ref< +// _AP_W, ap_private, 1, +// af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >(*this, a2); +// } + + INLINE ap_private<_AP_W, false> get() const { + ap_private<_AP_W, false> ret(*this); + return ret; + } + + template + INLINE void set(const ap_private<_AP_W3, false>& val) { + operator=(ap_private<_AP_W3, _AP_S>(val)); + } + + /// + /// @name Value Tests + /// + /// This tests the high bit of this ap_private to determine if it is set. + /// @returns true if this ap_private is negative, false otherwise + /// @brief Determine sign of this ap_private. + INLINE bool isNegative() const { + // just for get rid of warnings + enum { shift = (_AP_W - APINT_BITS_PER_WORD * (_AP_N - 1) - 1) }; + static const uint64_t mask = 1ULL << (shift); + return _AP_S && (pVal[_AP_N - 1] & mask); + } + + /// This tests the high bit of the ap_private to determine if it is unset. + /// @brief Determine if this ap_private Value is positive (not negative). + INLINE bool isPositive() const { return !isNegative(); } + + /// This tests if the value of this ap_private is strictly positive (> 0). + /// @returns true if this ap_private is Positive and not zero. + /// @brief Determine if this ap_private Value is strictly positive. + INLINE bool isStrictlyPositive() const { + return isPositive() && (*this) != 0; + } + + /// This checks to see if the value has all bits of the ap_private are set or + /// not. + /// @brief Determine if all bits are set + INLINE bool isAllOnesValue() const { return countPopulation() == _AP_W; } + + /// This checks to see if the value of this ap_private is the maximum unsigned + /// value for the ap_private's bit width. + /// @brief Determine if this is the largest unsigned value. + INLINE bool isMaxValue() const { return countPopulation() == _AP_W; } + + /// This checks to see if the value of this ap_private is the maximum signed + /// value for the ap_private's bit width. + /// @brief Determine if this is the largest signed value. + INLINE bool isMaxSignedValue() const { + return !isNegative() && countPopulation() == _AP_W - 1; + } + + /// This checks to see if the value of this ap_private is the minimum unsigned + /// value for the ap_private's bit width. + /// @brief Determine if this is the smallest unsigned value. + INLINE bool isMinValue() const { return countPopulation() == 0; } + + /// This checks to see if the value of this ap_private is the minimum signed + /// value for the ap_private's bit width. + /// @brief Determine if this is the smallest signed value. + INLINE bool isMinSignedValue() const { + return isNegative() && countPopulation() == 1; + } + + /// This function returns a pointer to the internal storage of the ap_private. + /// This is useful for writing out the ap_private in binary form without any + /// conversions. + INLINE const uint64_t* getRawData() const { return &pVal[0]; } + + // Square Root - this method computes and returns the square root of "this". + // Three mechanisms are used for computation. For small values (<= 5 bits), + // a table lookup is done. This gets some performance for common cases. For + // values using less than 52 bits, the value is converted to double and then + // the libc sqrt function is called. The result is rounded and then converted + // back to a uint64_t which is then used to construct the result. Finally, + // the Babylonian method for computing square roots is used. + INLINE ap_private sqrt() const { + // Determine the magnitude of the value. + uint32_t magnitude = getActiveBits(); + + // Use a fast table for some small values. This also gets rid of some + // rounding errors in libc sqrt for small values. + if (magnitude <= 5) { + static const uint8_t results[32] = { + /* 0 */ 0, + /* 1- 2 */ 1, 1, + /* 3- 6 */ 2, 2, 2, 2, + /* 7-12 */ 3, 3, 3, 3, 3, 3, + /* 13-20 */ 4, 4, 4, 4, 4, 4, 4, 4, + /* 21-30 */ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + /* 31 */ 6}; + return ap_private<_AP_W, _AP_S>(/*BitWidth,*/ results[get_VAL()]); + } + + // If the magnitude of the value fits in less than 52 bits (the precision of + // an IEEE double precision floating point value), then we can use the + // libc sqrt function which will probably use a hardware sqrt computation. + // This should be faster than the algorithm below. + if (magnitude < 52) { +#ifdef _MSC_VER + // Amazingly, VC++ doesn't have round(). + return ap_private<_AP_W, _AP_S>(/*BitWidth,*/ + uint64_t(::sqrt(double(get_VAL()))) + + 0.5); +#else + return ap_private<_AP_W, _AP_S>(/*BitWidth,*/ + uint64_t( + ::round(::sqrt(double(get_VAL()))))); +#endif + } + + // Okay, all the short cuts are exhausted. We must compute it. The following + // is a classical Babylonian method for computing the square root. This code + // was adapted to APINt from a wikipedia article on such computations. + // See http://www.wikipedia.org/ and go to the page named + // Calculate_an_integer_square_root. + uint32_t nbits = BitWidth, i = 4; + ap_private<_AP_W, _AP_S> testy(16); + ap_private<_AP_W, _AP_S> x_old(/*BitWidth,*/ 1); + ap_private<_AP_W, _AP_S> x_new(0); + ap_private<_AP_W, _AP_S> two(/*BitWidth,*/ 2); + + // Select a good starting value using binary logarithms. + for (;; i += 2, testy = testy.shl(2)) + if (i >= nbits || this->ule(testy)) { + x_old = x_old.shl(i / 2); + break; + } + + // Use the Babylonian method to arrive at the integer square root: + for (;;) { + x_new = (this->udiv(x_old) + x_old).udiv(two); + if (x_old.ule(x_new)) break; + x_old = x_new; + } + + // Make sure we return the closest approximation + // NOTE: The rounding calculation below is correct. It will produce an + // off-by-one discrepancy with results from pari/gp. That discrepancy has + // been + // determined to be a rounding issue with pari/gp as it begins to use a + // floating point representation after 192 bits. There are no discrepancies + // between this algorithm and pari/gp for bit widths < 192 bits. + ap_private<_AP_W, _AP_S> square(x_old * x_old); + ap_private<_AP_W, _AP_S> nextSquare((x_old + 1) * (x_old + 1)); + if (this->ult(square)) + return x_old; + else if (this->ule(nextSquare)) { + ap_private<_AP_W, _AP_S> midpoint((nextSquare - square).udiv(two)); + ap_private<_AP_W, _AP_S> offset(*this - square); + if (offset.ult(midpoint)) + return x_old; + else + return x_old + 1; + } else + assert(0 && "Error in ap_private<_AP_W, _AP_S>::sqrt computation"); + return x_old + 1; + } + + /// + /// @Assignment Operators + /// + /// @returns *this after assignment of RHS. + /// @brief Copy assignment operator. + INLINE ap_private& operator=(const ap_private& RHS) { + if (this != &RHS) memcpy(pVal, RHS.get_pVal(), _AP_N * APINT_WORD_SIZE); + clearUnusedBits(); + return *this; + } + INLINE ap_private& operator=(const volatile ap_private& RHS) { + if (this != &RHS) + for (int i = 0; i < _AP_N; ++i) pVal[i] = RHS.get_pVal(i); + clearUnusedBits(); + return *this; + } + INLINE void operator=(const ap_private& RHS) volatile { + if (this != &RHS) + for (int i = 0; i < _AP_N; ++i) pVal[i] = RHS.get_pVal(i); + clearUnusedBits(); + } + INLINE void operator=(const volatile ap_private& RHS) volatile { + if (this != &RHS) + for (int i = 0; i < _AP_N; ++i) pVal[i] = RHS.get_pVal(i); + clearUnusedBits(); + } + + template + INLINE ap_private& operator=(const ap_private<_AP_W1, _AP_S1>& RHS) { + if (_AP_S1) + cpSextOrTrunc(RHS); + else + cpZextOrTrunc(RHS); + clearUnusedBits(); + return *this; + } + + template + INLINE ap_private& operator=(const volatile ap_private<_AP_W1, _AP_S1>& RHS) { + if (_AP_S1) + cpSextOrTrunc(RHS); + else + cpZextOrTrunc(RHS); + clearUnusedBits(); + return *this; + } + + template + INLINE ap_private& operator=(const _private_range_ref<_AP_W2, _AP_S2>& op2) { + *this = ap_private<_AP_W2, false>(op2); + return *this; + } + +#if 0 + template + INLINE ap_private& operator=(const ap_private<_AP_W1, _AP_S1, true>& RHS) { + static const uint64_t that_sign_ext_mask = (_AP_W1==APINT_BITS_PER_WORD)?0:~0ULL>>(_AP_W1%APINT_BITS_PER_WORD)<<(_AP_W1%APINT_BITS_PER_WORD); + if (RHS.isNegative()) { + pVal[0] = RHS.get_VAL() | that_sign_ext_mask; + memset(pVal+1,~0, APINT_WORD_SIZE*(_AP_N-1)); + } else { + pVal[0] = RHS.get_VAL(); + memset(pVal+1, 0, APINT_WORD_SIZE*(_AP_N-1)); + } + clearUnusedBits(); + return *this; + } + + template + INLINE ap_private& operator=(const volatile ap_private<_AP_W1, _AP_S1, true>& RHS) { + static const uint64_t that_sign_ext_mask = (_AP_W1==APINT_BITS_PER_WORD)?0:~0ULL>>(_AP_W1%APINT_BITS_PER_WORD)<<(_AP_W1%APINT_BITS_PER_WORD); + if (RHS.isNegative()) { + pVal[0] = RHS.get_VAL() | that_sign_ext_mask; + memset(pVal+1,~0, APINT_WORD_SIZE*(_AP_N-1)); + } else { + pVal[0] = RHS.get_VAL(); + memset(pVal+1, 0, APINT_WORD_SIZE*(_AP_N-1)); + } + clearUnusedBits(); + return *this; + } +#endif + +/// from all c types. +#define ASSIGN_OP_FROM_INT(C_TYPE, _AP_W2, _AP_S2) \ + INLINE ap_private& operator=(const C_TYPE rhs) { \ + ap_private<(_AP_W2), (_AP_S2)> tmp = rhs; \ + operator=(tmp); \ + return *this; \ + } + + ASSIGN_OP_FROM_INT(bool, 1, false) + ASSIGN_OP_FROM_INT(char, 8, CHAR_IS_SIGNED) + ASSIGN_OP_FROM_INT(signed char, 8, true) + ASSIGN_OP_FROM_INT(unsigned char, 8, false) + ASSIGN_OP_FROM_INT(short, sizeof(short) * 8, true) + ASSIGN_OP_FROM_INT(unsigned short, sizeof(unsigned short) * 8, false) + ASSIGN_OP_FROM_INT(int, sizeof(int) * 8, true) + ASSIGN_OP_FROM_INT(unsigned int, sizeof(unsigned int) * 8, false) + ASSIGN_OP_FROM_INT(long, sizeof(long) * 8, true) + ASSIGN_OP_FROM_INT(unsigned long, sizeof(unsigned long) * 8, false) + ASSIGN_OP_FROM_INT(ap_slong, sizeof(ap_slong) * 8, true) + ASSIGN_OP_FROM_INT(ap_ulong, sizeof(ap_ulong) * 8, false) +#undef ASSIGN_OP_FROM_INT + + /// from c string. + // XXX this is a must, to prevent pointer being converted to bool. + INLINE ap_private& operator=(const char* s) { + ap_private tmp(s); // XXX direct initialization, as ctor is explicit. + operator=(tmp); + return *this; + } + + /// + /// @name Unary Operators + /// + /// @returns a new ap_private value representing *this incremented by one + /// @brief Postfix increment operator. + INLINE const ap_private operator++(int) { + ap_private API(*this); + ++(*this); + return API; + } + + /// @returns *this incremented by one + /// @brief Prefix increment operator. + INLINE ap_private& operator++() { + ap_private_ops::add_1(pVal, pVal, _AP_N, 1); + clearUnusedBits(); + return *this; + } + + /// @returns a new ap_private representing *this decremented by one. + /// @brief Postfix decrement operator. + INLINE const ap_private operator--(int) { + ap_private API(*this); + --(*this); + return API; + } + + /// @returns *this decremented by one. + /// @brief Prefix decrement operator. + INLINE ap_private& operator--() { + ap_private_ops::sub_1(pVal, _AP_N, 1); + clearUnusedBits(); + return *this; + } + + /// Performs a bitwise complement operation on this ap_private. + /// @returns an ap_private that is the bitwise complement of *this + /// @brief Unary bitwise complement operator. + INLINE ap_private<_AP_W + !_AP_S, true> operator~() const { + ap_private<_AP_W + !_AP_S, true> Result(*this); + Result.flip(); + return Result; + } + + /// Negates *this using two's complement logic. + /// @returns An ap_private value representing the negation of *this. + /// @brief Unary negation operator + INLINE typename RType<1, false>::minus operator-() const { + return ap_private<1, false>(0) - (*this); + } + + /// Performs logical negation operation on this ap_private. + /// @returns true if *this is zero, false otherwise. + /// @brief Logical negation operator. + INLINE bool operator!() const { + for (int i = 0; i < _AP_N; ++i) + if (pVal[i]) return false; + return true; + } + + template + INLINE ap_private<_AP_W, _AP_S || _AP_S1> And( + const ap_private<_AP_W, _AP_S1>& RHS) const { + return this->operator&(RHS); + } + template + INLINE ap_private Or(const ap_private<_AP_W, _AP_S1>& RHS) const { + return this->operator|(RHS); + } + template + INLINE ap_private Xor(const ap_private<_AP_W, _AP_S1>& RHS) const { + return this->operator^(RHS); + } + + INLINE ap_private Mul(const ap_private& RHS) const { + ap_private Result(*this); + Result *= RHS; + return Result; + } + + INLINE ap_private Add(const ap_private& RHS) const { + ap_private Result(0); + ap_private_ops::add(Result.get_pVal(), pVal, RHS.get_pVal(), _AP_N, _AP_N, + _AP_N, _AP_S, _AP_S); + Result.clearUnusedBits(); + return Result; + } + + INLINE ap_private Sub(const ap_private& RHS) const { + ap_private Result(0); + ap_private_ops::sub(Result.get_pVal(), pVal, RHS.get_pVal(), _AP_N, _AP_N, + _AP_N, _AP_S, _AP_S); + Result.clearUnusedBits(); + return Result; + } + + /// Arithmetic right-shift this ap_private by shiftAmt. + /// @brief Arithmetic right-shift function. + INLINE ap_private ashr(uint32_t shiftAmt) const { + assert(shiftAmt <= BitWidth && "Invalid shift amount, too big"); + // Handle a degenerate case + if (shiftAmt == 0) return ap_private(*this); + + // If all the bits were shifted out, the result is, technically, undefined. + // We return -1 if it was negative, 0 otherwise. We check this early to + // avoid + // issues in the algorithm below. + if (shiftAmt == BitWidth) { + if (isNegative()) + return ap_private(-1); + else + return ap_private(0); + } + + // Create some space for the result. + ap_private Retval(0); + uint64_t* val = Retval.get_pVal(); + + // Compute some values needed by the following shift algorithms + uint32_t wordShift = + shiftAmt % APINT_BITS_PER_WORD; // bits to shift per word + uint32_t offset = shiftAmt / APINT_BITS_PER_WORD; // word offset for shift + uint32_t breakWord = _AP_N - 1 - offset; // last word affected + uint32_t bitsInWord = whichBit(BitWidth); // how many bits in last word? + if (bitsInWord == 0) bitsInWord = APINT_BITS_PER_WORD; + + // If we are shifting whole words, just move whole words + if (wordShift == 0) { + // Move the words containing significant bits + for (uint32_t i = 0; i <= breakWord; ++i) + val[i] = pVal[i + offset]; // move whole word + + // Adjust the top significant word for sign bit fill, if negative + if (isNegative()) + if (bitsInWord < APINT_BITS_PER_WORD) + val[breakWord] |= ~0ULL << (bitsInWord); // set high bits + } else { + // Shift the low order words + for (uint32_t i = 0; i < breakWord; ++i) { + // This combines the shifted corresponding word with the low bits from + // the next word (shifted into this word's high bits). + val[i] = ((pVal[i + offset]) >> (wordShift)); + val[i] |= ((pVal[i + offset + 1]) << (APINT_BITS_PER_WORD - wordShift)); + } + + // Shift the break word. In this case there are no bits from the next word + // to include in this word. + val[breakWord] = (pVal[breakWord + offset]) >> (wordShift); + + // Deal with sign extenstion in the break word, and possibly the word + // before + // it. + if (isNegative()) { + if (wordShift > bitsInWord) { + if (breakWord > 0) + val[breakWord - 1] |= + ~0ULL << (APINT_BITS_PER_WORD - (wordShift - bitsInWord)); + val[breakWord] |= ~0ULL; + } else + val[breakWord] |= (~0ULL << (bitsInWord - wordShift)); + } + } + + // Remaining words are 0 or -1, just assign them. + uint64_t fillValue = (isNegative() ? ~0ULL : 0); + for (int i = breakWord + 1; i < _AP_N; ++i) val[i] = fillValue; + Retval.clearUnusedBits(); + return Retval; + } + + /// Logical right-shift this ap_private by shiftAmt. + /// @brief Logical right-shift function. + INLINE ap_private lshr(uint32_t shiftAmt) const { + // If all the bits were shifted out, the result is 0. This avoids issues + // with shifting by the size of the integer type, which produces undefined + // results. We define these "undefined results" to always be 0. + if (shiftAmt == BitWidth) return ap_private(0); + + // If none of the bits are shifted out, the result is *this. This avoids + // issues with shifting byt he size of the integer type, which produces + // undefined results in the code below. This is also an optimization. + if (shiftAmt == 0) return ap_private(*this); + + // Create some space for the result. + ap_private Retval(0); + uint64_t* val = Retval.get_pVal(); + + // If we are shifting less than a word, compute the shift with a simple + // carry + if (shiftAmt < APINT_BITS_PER_WORD) { + uint64_t carry = 0; + for (int i = _AP_N - 1; i >= 0; --i) { + val[i] = ((pVal[i]) >> (shiftAmt)) | carry; + carry = (pVal[i]) << (APINT_BITS_PER_WORD - shiftAmt); + } + Retval.clearUnusedBits(); + return Retval; + } + + // Compute some values needed by the remaining shift algorithms + uint32_t wordShift = shiftAmt % APINT_BITS_PER_WORD; + uint32_t offset = shiftAmt / APINT_BITS_PER_WORD; + + // If we are shifting whole words, just move whole words + if (wordShift == 0) { + for (uint32_t i = 0; i < _AP_N - offset; ++i) val[i] = pVal[i + offset]; + for (uint32_t i = _AP_N - offset; i < _AP_N; i++) val[i] = 0; + Retval.clearUnusedBits(); + return Retval; + } + + // Shift the low order words + uint32_t breakWord = _AP_N - offset - 1; + for (uint32_t i = 0; i < breakWord; ++i) + val[i] = ((pVal[i + offset]) >> (wordShift)) | + ((pVal[i + offset + 1]) << (APINT_BITS_PER_WORD - wordShift)); + // Shift the break word. + val[breakWord] = (pVal[breakWord + offset]) >> (wordShift); + + // Remaining words are 0 + for (int i = breakWord + 1; i < _AP_N; ++i) val[i] = 0; + Retval.clearUnusedBits(); + return Retval; + } + + /// Left-shift this ap_private by shiftAmt. + /// @brief Left-shift function. + INLINE ap_private shl(uint32_t shiftAmt) const { + assert(shiftAmt <= BitWidth && "Invalid shift amount, too big"); + // If all the bits were shifted out, the result is 0. This avoids issues + // with shifting by the size of the integer type, which produces undefined + // results. We define these "undefined results" to always be 0. + if (shiftAmt == BitWidth) return ap_private(0); + + // If none of the bits are shifted out, the result is *this. This avoids a + // lshr by the words size in the loop below which can produce incorrect + // results. It also avoids the expensive computation below for a common + // case. + if (shiftAmt == 0) return ap_private(*this); + + // Create some space for the result. + ap_private Retval(0); + uint64_t* val = Retval.get_pVal(); + // If we are shifting less than a word, do it the easy way + if (shiftAmt < APINT_BITS_PER_WORD) { + uint64_t carry = 0; + for (int i = 0; i < _AP_N; i++) { + val[i] = ((pVal[i]) << (shiftAmt)) | carry; + carry = (pVal[i]) >> (APINT_BITS_PER_WORD - shiftAmt); + } + Retval.clearUnusedBits(); + return Retval; + } + + // Compute some values needed by the remaining shift algorithms + uint32_t wordShift = shiftAmt % APINT_BITS_PER_WORD; + uint32_t offset = shiftAmt / APINT_BITS_PER_WORD; + + // If we are shifting whole words, just move whole words + if (wordShift == 0) { + for (uint32_t i = 0; i < offset; i++) val[i] = 0; + for (int i = offset; i < _AP_N; i++) val[i] = pVal[i - offset]; + Retval.clearUnusedBits(); + return Retval; + } + + // Copy whole words from this to Result. + uint32_t i = _AP_N - 1; + for (; i > offset; --i) + val[i] = (pVal[i - offset]) << (wordShift) | + (pVal[i - offset - 1]) >> (APINT_BITS_PER_WORD - wordShift); + val[offset] = (pVal[0]) << (wordShift); + for (i = 0; i < offset; ++i) val[i] = 0; + Retval.clearUnusedBits(); + return Retval; + } + + INLINE ap_private rotl(uint32_t rotateAmt) const { + if (rotateAmt == 0) return ap_private(*this); + // Don't get too fancy, just use existing shift/or facilities + ap_private hi(*this); + ap_private lo(*this); + hi.shl(rotateAmt); + lo.lshr(BitWidth - rotateAmt); + return hi | lo; + } + + INLINE ap_private rotr(uint32_t rotateAmt) const { + if (rotateAmt == 0) return ap_private(*this); + // Don't get too fancy, just use existing shift/or facilities + ap_private hi(*this); + ap_private lo(*this); + lo.lshr(rotateAmt); + hi.shl(BitWidth - rotateAmt); + return hi | lo; + } + + /// Perform an unsigned divide operation on this ap_private by RHS. Both this + /// and + /// RHS are treated as unsigned quantities for purposes of this division. + /// @returns a new ap_private value containing the division result + /// @brief Unsigned division operation. + INLINE ap_private udiv(const ap_private& RHS) const { + // Get some facts about the LHS and RHS number of bits and words + uint32_t rhsBits = RHS.getActiveBits(); + uint32_t rhsWords = !rhsBits ? 0 : (whichWord(rhsBits - 1) + 1); + assert(rhsWords && "Divided by zero???"); + uint32_t lhsBits = this->getActiveBits(); + uint32_t lhsWords = !lhsBits ? 0 : (whichWord(lhsBits - 1) + 1); + + // Deal with some degenerate cases + if (!lhsWords) + // 0 / X ===> 0 + return ap_private(0); + else if (lhsWords < rhsWords || this->ult(RHS)) { + // X / Y ===> 0, iff X < Y + return ap_private(0); + } else if (*this == RHS) { + // X / X ===> 1 + return ap_private(1); + } else if (lhsWords == 1 && rhsWords == 1) { + // All high words are zero, just use native divide + return ap_private(this->pVal[0] / RHS.get_pVal(0)); + } + + // We have to compute it the hard way. Invoke the Knuth divide algorithm. + ap_private Quotient(0); // to hold result. + ap_private_ops::divide(*this, lhsWords, RHS, rhsWords, &Quotient, + (ap_private*)0); + return Quotient; + } + + /// Signed divide this ap_private by ap_private RHS. + /// @brief Signed division function for ap_private. + INLINE ap_private sdiv(const ap_private& RHS) const { + if (isNegative()) + if (RHS.isNegative()) + return (-(*this)).udiv(-RHS); + else + return -((-(*this)).udiv(RHS)); + else if (RHS.isNegative()) + return -(this->udiv((ap_private)(-RHS))); + return this->udiv(RHS); + } + + /// Perform an unsigned remainder operation on this ap_private with RHS being + /// the + /// divisor. Both this and RHS are treated as unsigned quantities for purposes + /// of this operation. Note that this is a true remainder operation and not + /// a modulo operation because the sign follows the sign of the dividend + /// which is *this. + /// @returns a new ap_private value containing the remainder result + /// @brief Unsigned remainder operation. + INLINE ap_private urem(const ap_private& RHS) const { + // Get some facts about the LHS + uint32_t lhsBits = getActiveBits(); + uint32_t lhsWords = !lhsBits ? 0 : (whichWord(lhsBits - 1) + 1); + + // Get some facts about the RHS + uint32_t rhsBits = RHS.getActiveBits(); + uint32_t rhsWords = !rhsBits ? 0 : (whichWord(rhsBits - 1) + 1); + assert(rhsWords && "Performing remainder operation by zero ???"); + + // Check the degenerate cases + if (lhsWords == 0) { + // 0 % Y ===> 0 + return ap_private(0); + } else if (lhsWords < rhsWords || this->ult(RHS)) { + // X % Y ===> X, iff X < Y + return *this; + } else if (*this == RHS) { + // X % X == 0; + return ap_private(0); + } else if (lhsWords == 1) { + // All high words are zero, just use native remainder + return ap_private(pVal[0] % RHS.get_pVal(0)); + } + + // We have to compute it the hard way. Invoke the Knuth divide algorithm. + ap_private Remainder(0); + ap_private_ops::divide(*this, lhsWords, RHS, rhsWords, (ap_private*)(0), + &Remainder); + return Remainder; + } + + INLINE ap_private urem(uint64_t RHS) const { + // Get some facts about the LHS + uint32_t lhsBits = getActiveBits(); + uint32_t lhsWords = !lhsBits ? 0 : (whichWord(lhsBits - 1) + 1); + // Get some facts about the RHS + uint32_t rhsWords = 1; //! rhsBits ? 0 : (ap_private<_AP_W, + //! _AP_S>::whichWord(rhsBits - 1) + 1); + assert(rhsWords && "Performing remainder operation by zero ???"); + // Check the degenerate cases + if (lhsWords == 0) { + // 0 % Y ===> 0 + return ap_private(0); + } else if (lhsWords < rhsWords || this->ult(RHS)) { + // X % Y ===> X, iff X < Y + return *this; + } else if (*this == RHS) { + // X % X == 0; + return ap_private(0); + } else if (lhsWords == 1) { + // All high words are zero, just use native remainder + return ap_private(pVal[0] % RHS); + } + + // We have to compute it the hard way. Invoke the Knuth divide algorithm. + ap_private Remainder(0); + divide(*this, lhsWords, RHS, (ap_private*)(0), &Remainder); + return Remainder; + } + + /// Signed remainder operation on ap_private. + /// @brief Function for signed remainder operation. + INLINE ap_private srem(const ap_private& RHS) const { + if (isNegative()) { + ap_private lhs = -(*this); + if (RHS.isNegative()) { + ap_private rhs = -RHS; + return -(lhs.urem(rhs)); + } else + return -(lhs.urem(RHS)); + } else if (RHS.isNegative()) { + ap_private rhs = -RHS; + return this->urem(rhs); + } + return this->urem(RHS); + } + + /// Signed remainder operation on ap_private. + /// @brief Function for signed remainder operation. + INLINE ap_private srem(int64_t RHS) const { + if (isNegative()) + if (RHS < 0) + return -((-(*this)).urem(-RHS)); + else + return -((-(*this)).urem(RHS)); + else if (RHS < 0) + return this->urem(-RHS); + return this->urem(RHS); + } + + /// Compares this ap_private with RHS for the validity of the equality + /// relationship. + /// @returns true if *this == Val + /// @brief Equality comparison. + template + INLINE bool eq(const ap_private<_AP_W, _AP_S1>& RHS) const { + return (*this) == RHS; + } + + /// Compares this ap_private with RHS for the validity of the inequality + /// relationship. + /// @returns true if *this != Val + /// @brief Inequality comparison + template + INLINE bool ne(const ap_private<_AP_W, _AP_S1>& RHS) const { + return !((*this) == RHS); + } + + /// Regards both *this and RHS as unsigned quantities and compares them for + /// the validity of the less-than relationship. + /// @returns true if *this < RHS when both are considered unsigned. + /// @brief Unsigned less than comparison + template + INLINE bool ult(const ap_private<_AP_W, _AP_S1>& RHS) const { + // Get active bit length of both operands + uint32_t n1 = getActiveBits(); + uint32_t n2 = RHS.getActiveBits(); + + // If magnitude of LHS is less than RHS, return true. + if (n1 < n2) return true; + + // If magnitude of RHS is greather than LHS, return false. + if (n2 < n1) return false; + + // If they bot fit in a word, just compare the low order word + if (n1 <= APINT_BITS_PER_WORD && n2 <= APINT_BITS_PER_WORD) + return pVal[0] < RHS.get_pVal(0); + + // Otherwise, compare all words + uint32_t topWord = whichWord(AESL_std::max(n1, n2) - 1); + for (int i = topWord; i >= 0; --i) { + if (pVal[i] > RHS.get_pVal(i)) return false; + if (pVal[i] < RHS.get_pVal(i)) return true; + } + return false; + } + + INLINE bool ult(uint64_t RHS) const { + // Get active bit length of both operands + uint32_t n1 = getActiveBits(); + uint32_t n2 = + 64 - ap_private_ops::CountLeadingZeros_64(RHS); // RHS.getActiveBits(); + + // If magnitude of LHS is less than RHS, return true. + if (n1 < n2) return true; + + // If magnitude of RHS is greather than LHS, return false. + if (n2 < n1) return false; + + // If they bot fit in a word, just compare the low order word + if (n1 <= APINT_BITS_PER_WORD && n2 <= APINT_BITS_PER_WORD) + return pVal[0] < RHS; + assert(0); + } + + template + INLINE bool slt(const ap_private<_AP_W, _AP_S1>& RHS) const { + ap_private lhs(*this); + ap_private<_AP_W, _AP_S1> rhs(RHS); + bool lhsNeg = isNegative(); + bool rhsNeg = rhs.isNegative(); + if (lhsNeg) { + // Sign bit is set so perform two's complement to make it positive + lhs.flip(); + lhs++; + } + if (rhsNeg) { + // Sign bit is set so perform two's complement to make it positive + rhs.flip(); + rhs++; + } + + // Now we have unsigned values to compare so do the comparison if necessary + // based on the negativeness of the values. + if (lhsNeg) + if (rhsNeg) + return lhs.ugt(rhs); + else + return true; + else if (rhsNeg) + return false; + else + return lhs.ult(rhs); + } + + /// Regards both *this and RHS as unsigned quantities and compares them for + /// validity of the less-or-equal relationship. + /// @returns true if *this <= RHS when both are considered unsigned. + /// @brief Unsigned less or equal comparison + template + INLINE bool ule(const ap_private<_AP_W, _AP_S1>& RHS) const { + return ult(RHS) || eq(RHS); + } + + /// Regards both *this and RHS as signed quantities and compares them for + /// validity of the less-or-equal relationship. + /// @returns true if *this <= RHS when both are considered signed. + /// @brief Signed less or equal comparison + template + INLINE bool sle(const ap_private<_AP_W, _AP_S1>& RHS) const { + return slt(RHS) || eq(RHS); + } + + /// Regards both *this and RHS as unsigned quantities and compares them for + /// the validity of the greater-than relationship. + /// @returns true if *this > RHS when both are considered unsigned. + /// @brief Unsigned greather than comparison + template + INLINE bool ugt(const ap_private<_AP_W, _AP_S1>& RHS) const { + return !ult(RHS) && !eq(RHS); + } + + /// Regards both *this and RHS as signed quantities and compares them for + /// the validity of the greater-than relationship. + /// @returns true if *this > RHS when both are considered signed. + /// @brief Signed greather than comparison + template + INLINE bool sgt(const ap_private<_AP_W, _AP_S1>& RHS) const { + return !slt(RHS) && !eq(RHS); + } + + /// Regards both *this and RHS as unsigned quantities and compares them for + /// validity of the greater-or-equal relationship. + /// @returns true if *this >= RHS when both are considered unsigned. + /// @brief Unsigned greater or equal comparison + template + INLINE bool uge(const ap_private<_AP_W, _AP_S>& RHS) const { + return !ult(RHS); + } + + /// Regards both *this and RHS as signed quantities and compares them for + /// validity of the greater-or-equal relationship. + /// @returns true if *this >= RHS when both are considered signed. + /// @brief Signed greather or equal comparison + template + INLINE bool sge(const ap_private<_AP_W, _AP_S1>& RHS) const { + return !slt(RHS); + } + + // Sign extend to a new width. + template + INLINE void cpSext(const ap_private<_AP_W1, _AP_S1>& that) { + assert(_AP_W1 < BitWidth && "Invalid ap_private SignExtend request"); + assert(_AP_W1 <= MAX_INT_BITS && "Too many bits"); + // If the sign bit isn't set, this is the same as zext. + if (!that.isNegative()) { + cpZext(that); + return; + } + + // The sign bit is set. First, get some facts + enum { wordBits = _AP_W1 % APINT_BITS_PER_WORD }; + const int _AP_N1 = ap_private<_AP_W1, _AP_S1>::_AP_N; + // Mask the high order word appropriately + if (_AP_N1 == _AP_N) { + enum { newWordBits = _AP_W % APINT_BITS_PER_WORD }; + // The extension is contained to the wordsBefore-1th word. + static const uint64_t mask = wordBits ? (~0ULL << (wordBits)) : 0ULL; + for (int i = 0; i < _AP_N; ++i) pVal[i] = that.get_pVal(i); + pVal[_AP_N - 1] |= mask; + return; + } + + enum { newWordBits = _AP_W % APINT_BITS_PER_WORD }; + // The extension is contained to the wordsBefore-1th word. + static const uint64_t mask = wordBits ? (~0ULL << (wordBits)) : 0ULL; + int i; + for (i = 0; i < _AP_N1; ++i) pVal[i] = that.get_pVal(i); + pVal[i - 1] |= mask; + for (; i < _AP_N - 1; i++) pVal[i] = ~0ULL; + pVal[i] = ~0ULL; + clearUnusedBits(); + return; + } + + // Zero extend to a new width. + template + INLINE void cpZext(const ap_private<_AP_W1, _AP_S1>& that) { + assert(_AP_W1 < BitWidth && "Invalid ap_private ZeroExtend request"); + assert(_AP_W1 <= MAX_INT_BITS && "Too many bits"); + const int _AP_N1 = ap_private<_AP_W1, _AP_S1>::_AP_N; + int i = 0; + for (; i < _AP_N1; ++i) pVal[i] = that.get_pVal(i); + for (; i < _AP_N; ++i) pVal[i] = 0; + clearUnusedBits(); + } + + template + INLINE void cpZextOrTrunc(const ap_private<_AP_W1, _AP_S1>& that) { + if (BitWidth > _AP_W1) + cpZext(that); + else { + for (int i = 0; i < _AP_N; ++i) pVal[i] = that.get_pVal(i); + clearUnusedBits(); + } + } + + template + INLINE void cpSextOrTrunc(const ap_private<_AP_W1, _AP_S1>& that) { + if (BitWidth > _AP_W1) + cpSext(that); + else { + for (int i = 0; i < _AP_N; ++i) pVal[i] = that.get_pVal(i); + clearUnusedBits(); + } + } + + /// @} + /// @name Value Characterization Functions + /// @{ + + /// @returns the total number of bits. + INLINE uint32_t getBitWidth() const { return BitWidth; } + + /// Here one word's bitwidth equals to that of uint64_t. + /// @returns the number of words to hold the integer value of this ap_private. + /// @brief Get the number of words. + INLINE uint32_t getNumWords() const { + return (BitWidth + APINT_BITS_PER_WORD - 1) / APINT_BITS_PER_WORD; + } + + /// This function returns the number of active bits which is defined as the + /// bit width minus the number of leading zeros. This is used in several + /// computations to see how "wide" the value is. + /// @brief Compute the number of active bits in the value + INLINE uint32_t getActiveBits() const { + uint32_t bits = BitWidth - countLeadingZeros(); + return bits ? bits : 1; + } + + /// This method attempts to return the value of this ap_private as a zero + /// extended + /// uint64_t. The bitwidth must be <= 64 or the value must fit within a + /// uint64_t. Otherwise an assertion will result. + /// @brief Get zero extended value + INLINE uint64_t getZExtValue() const { + assert(getActiveBits() <= 64 && "Too many bits for uint64_t"); + return *pVal; + } + + /// This method attempts to return the value of this ap_private as a sign + /// extended + /// int64_t. The bit width must be <= 64 or the value must fit within an + /// int64_t. Otherwise an assertion will result. + /// @brief Get sign extended value + INLINE int64_t getSExtValue() const { + assert(getActiveBits() <= 64 && "Too many bits for int64_t"); + return int64_t(pVal[0]); + } + + /// This method determines how many bits are required to hold the ap_private + /// equivalent of the string given by \p str of length \p slen. + /// @brief Get bits required for string value. + INLINE static uint32_t getBitsNeeded(const char* str, uint32_t slen, + uint8_t radix) { + assert(str != 0 && "Invalid value string"); + assert(slen > 0 && "Invalid string length"); + + // Each computation below needs to know if its negative + uint32_t isNegative = str[0] == '-'; + if (isNegative) { + slen--; + str++; + } + // For radixes of power-of-two values, the bits required is accurately and + // easily computed + if (radix == 2) return slen + isNegative; + if (radix == 8) return slen * 3 + isNegative; + if (radix == 16) return slen * 4 + isNegative; + + // Otherwise it must be radix == 10, the hard case + assert(radix == 10 && "Invalid radix"); + + // Convert to the actual binary value. + // ap_private<_AP_W, _AP_S> tmp(sufficient, str, slen, radix); + + // Compute how many bits are required. + // return isNegative + tmp.logBase2() + 1; + return isNegative + slen * 4; + } + + /// countLeadingZeros - This function is an ap_private version of the + /// countLeadingZeros_{32,64} functions in MathExtras.h. It counts the number + /// of zeros from the most significant bit to the first one bit. + /// @returns BitWidth if the value is zero. + /// @returns the number of zeros from the most significant bit to the first + /// one bits. + INLINE uint32_t countLeadingZeros() const { + enum { + msw_bits = (BitWidth % APINT_BITS_PER_WORD) + ? (BitWidth % APINT_BITS_PER_WORD) + : APINT_BITS_PER_WORD, + excessBits = APINT_BITS_PER_WORD - msw_bits + }; + uint32_t Count = ap_private_ops::CountLeadingZeros_64(pVal[_AP_N - 1]); + if (Count >= excessBits) Count -= excessBits; + if (!pVal[_AP_N - 1]) { + for (int i = _AP_N - 1; i; --i) { + if (!pVal[i - 1]) + Count += APINT_BITS_PER_WORD; + else { + Count += ap_private_ops::CountLeadingZeros_64(pVal[i - 1]); + break; + } + } + } + return Count; + } + + /// countLeadingOnes - This function counts the number of contiguous 1 bits + /// in the high order bits. The count stops when the first 0 bit is reached. + /// @returns 0 if the high order bit is not set + /// @returns the number of 1 bits from the most significant to the least + /// @brief Count the number of leading one bits. + INLINE uint32_t countLeadingOnes() const { + if (isSingleWord()) + return countLeadingOnes_64(get_VAL(), APINT_BITS_PER_WORD - BitWidth); + + uint32_t highWordBits = BitWidth % APINT_BITS_PER_WORD; + uint32_t shift = + (highWordBits == 0 ? 0 : APINT_BITS_PER_WORD - highWordBits); + int i = _AP_N - 1; + uint32_t Count = countLeadingOnes_64(get_pVal(i), shift); + if (Count == highWordBits) { + for (i--; i >= 0; --i) { + if (get_pVal(i) == ~0ULL) + Count += APINT_BITS_PER_WORD; + else { + Count += countLeadingOnes_64(get_pVal(i), 0); + break; + } + } + } + return Count; + } + + /// countTrailingZeros - This function is an ap_private version of the + /// countTrailingZoers_{32,64} functions in MathExtras.h. It counts + /// the number of zeros from the least significant bit to the first set bit. + /// @returns BitWidth if the value is zero. + /// @returns the number of zeros from the least significant bit to the first + /// one bit. + /// @brief Count the number of trailing zero bits. + INLINE uint32_t countTrailingZeros() const { + uint32_t Count = 0; + uint32_t i = 0; + for (; i < _AP_N && get_pVal(i) == 0; ++i) Count += APINT_BITS_PER_WORD; + if (i < _AP_N) Count += ap_private_ops::CountTrailingZeros_64(get_pVal(i)); + return AESL_std::min(Count, BitWidth); + } + /// countPopulation - This function is an ap_private version of the + /// countPopulation_{32,64} functions in MathExtras.h. It counts the number + /// of 1 bits in the ap_private value. + /// @returns 0 if the value is zero. + /// @returns the number of set bits. + /// @brief Count the number of bits set. + INLINE uint32_t countPopulation() const { + uint32_t Count = 0; + for (int i = 0; i < _AP_N - 1; ++i) + Count += ap_private_ops::CountPopulation_64(pVal[i]); + Count += ap_private_ops::CountPopulation_64(pVal[_AP_N - 1] & mask); + return Count; + } + + /// @} + /// @name Conversion Functions + /// @ + + /// This is used internally to convert an ap_private to a string. + /// @brief Converts an ap_private to a std::string + INLINE std::string toString(uint8_t radix, bool wantSigned) const; + + /// Considers the ap_private to be unsigned and converts it into a string in + /// the + /// radix given. The radix can be 2, 8, 10 or 16. + /// @returns a character interpretation of the ap_private + /// @brief Convert unsigned ap_private to string representation. + INLINE std::string toStringUnsigned(uint8_t radix = 10) const { + return toString(radix, false); + } + + /// Considers the ap_private to be unsigned and converts it into a string in + /// the + /// radix given. The radix can be 2, 8, 10 or 16. + /// @returns a character interpretation of the ap_private + /// @brief Convert unsigned ap_private to string representation. + INLINE std::string toStringSigned(uint8_t radix = 10) const { + return toString(radix, true); + } + + /// @brief Converts this ap_private to a double value. + INLINE double roundToDouble(bool isSigned) const { + // Handle the simple case where the value is contained in one uint64_t. + if (isSingleWord() || getActiveBits() <= APINT_BITS_PER_WORD) { + uint64_t val = pVal[0]; + if (isSigned) { + int64_t sext = ((int64_t(val)) << (64 - BitWidth)) >> (64 - BitWidth); + return double(sext); + } else + return double(val); + } + + // Determine if the value is negative. + bool isNeg = isSigned ? (*this)[BitWidth - 1] : false; + + // Construct the absolute value if we're negative. + ap_private<_AP_W, _AP_S> Tmp(isNeg ? -(*this) : (*this)); + + // Figure out how many bits we're using. + uint32_t n = Tmp.getActiveBits(); + + // The exponent (without bias normalization) is just the number of bits + // we are using. Note that the sign bit is gone since we constructed the + // absolute value. + uint64_t exp = n; + + // Return infinity for exponent overflow + if (exp > 1023) { + if (!isSigned || !isNeg) + return std::numeric_limits::infinity(); + else + return -std::numeric_limits::infinity(); + } + exp += 1023; // Increment for 1023 bias + + // Number of bits in mantissa is 52. To obtain the mantissa value, we must + // extract the high 52 bits from the correct words in pVal. + uint64_t mantissa; + unsigned hiWord = whichWord(n - 1); + if (hiWord == 0) { + mantissa = Tmp.get_pVal(0); + if (n > 52) + (mantissa) >>= (n - 52); // shift down, we want the top 52 bits. + } else { + assert(hiWord > 0 && "High word is negative?"); + uint64_t hibits = (Tmp.get_pVal(hiWord)) + << (52 - n % APINT_BITS_PER_WORD); + uint64_t lobits = + (Tmp.get_pVal(hiWord - 1)) >> (11 + n % APINT_BITS_PER_WORD); + mantissa = hibits | lobits; + } + + // The leading bit of mantissa is implicit, so get rid of it. + uint64_t sign = isNeg ? (1ULL << (APINT_BITS_PER_WORD - 1)) : 0; + union { + double __D; + uint64_t __I; + } __T; + __T.__I = sign | ((exp) << 52) | mantissa; + return __T.__D; + } + + /// @brief Converts this unsigned ap_private to a double value. + INLINE double roundToDouble() const { return roundToDouble(false); } + + /// @brief Converts this signed ap_private to a double value. + INLINE double signedRoundToDouble() const { return roundToDouble(true); } + + /// The conversion does not do a translation from integer to double, it just + /// re-interprets the bits as a double. Note that it is valid to do this on + /// any bit width. Exactly 64 bits will be translated. + /// @brief Converts ap_private bits to a double + INLINE double bitsToDouble() const { + union { + uint64_t __I; + double __D; + } __T; + __T.__I = pVal[0]; + return __T.__D; + } + + /// The conversion does not do a translation from integer to float, it just + /// re-interprets the bits as a float. Note that it is valid to do this on + /// any bit width. Exactly 32 bits will be translated. + /// @brief Converts ap_private bits to a double + INLINE float bitsToFloat() const { + union { + uint32_t __I; + float __F; + } __T; + __T.__I = uint32_t(pVal[0]); + return __T.__F; + } + + /// The conversion does not do a translation from double to integer, it just + /// re-interprets the bits of the double. Note that it is valid to do this on + /// any bit width but bits from V may get truncated. + /// @brief Converts a double to ap_private bits. + INLINE ap_private& doubleToBits(double __V) { + union { + uint64_t __I; + double __D; + } __T; + __T.__D = __V; + pVal[0] = __T.__I; + return *this; + } + + /// The conversion does not do a translation from float to integer, it just + /// re-interprets the bits of the float. Note that it is valid to do this on + /// any bit width but bits from V may get truncated. + /// @brief Converts a float to ap_private bits. + INLINE ap_private& floatToBits(float __V) { + union { + uint32_t __I; + float __F; + } __T; + __T.__F = __V; + pVal[0] = __T.__I; + } + + // Reduce operation + //----------------------------------------------------------- + INLINE bool and_reduce() const { return isMaxValue(); } + + INLINE bool nand_reduce() const { return isMinValue(); } + + INLINE bool or_reduce() const { return (bool)countPopulation(); } + + INLINE bool nor_reduce() const { return countPopulation() == 0; } + + INLINE bool xor_reduce() const { + unsigned int i = countPopulation(); + return (i % 2) ? true : false; + } + + INLINE bool xnor_reduce() const { + unsigned int i = countPopulation(); + return (i % 2) ? false : true; + } + INLINE std::string to_string(uint8_t radix = 16, bool sign = false) const { + return toString(radix, radix == 10 ? _AP_S : sign); + } +}; // End of class ap_private <_AP_W, _AP_S, false> + +namespace ap_private_ops { + +enum { APINT_BITS_PER_WORD = 64 }; +template +INLINE bool operator==(uint64_t V1, const ap_private<_AP_W, _AP_S>& V2) { + return V2 == V1; +} + +template +INLINE bool operator!=(uint64_t V1, const ap_private<_AP_W, _AP_S>& V2) { + return V2 != V1; +} + +template +INLINE bool get(const ap_private<_AP_W, _AP_S>& a) { + static const uint64_t mask = 1ULL << (index & 0x3f); + return ((mask & a.get_pVal((index) >> 6)) != 0); +} + +template +INLINE void set(ap_private<_AP_W, _AP_S>& a, + const ap_private& mark1 = 0, + const ap_private& mark2 = 0) { + enum { + APINT_BITS_PER_WORD = 64, + lsb_word = lsb_index / APINT_BITS_PER_WORD, + msb_word = msb_index / APINT_BITS_PER_WORD, + msb = msb_index % APINT_BITS_PER_WORD, + lsb = lsb_index % APINT_BITS_PER_WORD + }; + if (msb_word == lsb_word) { + const uint64_t mask = ~0ULL >> + (lsb) << (APINT_BITS_PER_WORD - msb + lsb - 1) >> + (APINT_BITS_PER_WORD - msb - 1); + // a.set_pVal(msb_word, a.get_pVal(msb_word) | mask); + a.get_pVal(msb_word) |= mask; + } else { + const uint64_t lsb_mask = ~0ULL >> (lsb) << (lsb); + const uint64_t msb_mask = ~0ULL << (APINT_BITS_PER_WORD - msb - 1) >> + (APINT_BITS_PER_WORD - msb - 1); + // a.set_pVal(lsb_word, a.get_pVal(lsb_word) | lsb_mask); + a.get_pVal(lsb_word) |= lsb_mask; + for (int i = lsb_word + 1; i < msb_word; i++) { + a.set_pVal(i, ~0ULL); + // a.get_pVal(i)=0; + } + // a.set_pVal(msb_word, a.get_pVal(msb_word) | msb_mask); + + a.get_pVal(msb_word) |= msb_mask; + } + a.clearUnusedBits(); +} + +template +INLINE void clear(ap_private<_AP_W, _AP_S>& a, + const ap_private& mark1 = 0, + const ap_private& mark2 = 0) { + enum { + APINT_BITS_PER_WORD = 64, + lsb_word = lsb_index / APINT_BITS_PER_WORD, + msb_word = msb_index / APINT_BITS_PER_WORD, + msb = msb_index % APINT_BITS_PER_WORD, + lsb = lsb_index % APINT_BITS_PER_WORD + }; + if (msb_word == lsb_word) { + const uint64_t mask = + ~(~0ULL >> (lsb) << (APINT_BITS_PER_WORD - msb + lsb - 1) >> + (APINT_BITS_PER_WORD - msb - 1)); + // a.set_pVal(msb_word, a.get_pVal(msb_word) & mask); + a.get_pVal(msb_word) &= mask; + } else { + const uint64_t lsb_mask = ~(~0ULL >> (lsb) << (lsb)); + const uint64_t msb_mask = ~(~0ULL << (APINT_BITS_PER_WORD - msb - 1) >> + (APINT_BITS_PER_WORD - msb - 1)); + // a.set_pVal(lsb_word, a.get_pVal(lsb_word) & lsb_mask); + a.get_pVal(lsb_word) &= lsb_mask; + for (int i = lsb_word + 1; i < msb_word; i++) { + // a.set_pVal(i, 0); + a.get_pVal(i) = 0; + } + // a.set_pVal(msb_word, a.get_pVal(msb_word) & msb_mask); + a.get_pVal(msb_word) &= msb_mask; + } + a.clearUnusedBits(); +} + +template +INLINE void set(ap_private<_AP_W, _AP_S>& a, + const ap_private& mark = 0) { + enum { APINT_BITS_PER_WORD = 64, word = index / APINT_BITS_PER_WORD }; + static const uint64_t mask = 1ULL << (index % APINT_BITS_PER_WORD); + // a.set_pVal(word, a.get_pVal(word) | mask); + a.get_pVal(word) |= mask; + a.clearUnusedBits(); +} + +template +INLINE void clear(ap_private<_AP_W, _AP_S>& a, + const ap_private& mark = 0) { + enum { APINT_BITS_PER_WORD = 64, word = index / APINT_BITS_PER_WORD }; + static const uint64_t mask = ~(1ULL << (index % APINT_BITS_PER_WORD)); + // a.set_pVal(word, a.get_pVal(word) & mask); + a.get_pVal(word) &= mask; + a.clearUnusedBits(); +} + +} // End of ap_private_ops namespace + +template +INLINE std::string ap_private<_AP_W, _AP_S, false>::toString( + uint8_t radix, bool wantSigned) const { + assert((radix == 10 || radix == 8 || radix == 16 || radix == 2) && + "Radix should be 2, 8, 10, or 16!"); + static const char* digits[] = {"0", "1", "2", "3", "4", "5", "6", "7", + "8", "9", "A", "B", "C", "D", "E", "F"}; + std::string result; + + if (radix != 10) { + // For the 2, 8 and 16 bit cases, we can just shift instead of divide + // because the number of bits per digit (1,3 and 4 respectively) divides + // equaly. We just shift until there value is zero. + + // First, check for a zero value and just short circuit the logic below. + if (*this == (uint64_t)(0)) + result = "0"; + else { + ap_private<_AP_W, false> tmp(*this); + size_t insert_at = 0; + bool leading_zero = true; + if (wantSigned && isNegative()) { + // They want to print the signed version and it is a negative value + // Flip the bits and add one to turn it into the equivalent positive + // value and put a '-' in the result. + tmp.flip(); + tmp++; + tmp.clearUnusedBitsToZero(); + result = "-"; + insert_at = 1; + leading_zero = false; + } + switch (radix) { + case 2: + result += "0b"; + break; + case 8: + result += "0o"; + break; + case 16: + result += "0x"; + break; + default: + assert("invalid radix" && 0); + } + insert_at += 2; + // Just shift tmp right for each digit width until it becomes zero + uint32_t shift = (radix == 16 ? 4 : (radix == 8 ? 3 : 1)); + uint64_t mask = radix - 1; + ap_private<_AP_W, false> zero(0); + unsigned bits = 0; + while (tmp.ne(zero)) { + uint64_t digit = tmp.get_VAL() & mask; + result.insert(insert_at, digits[digit]); + tmp = tmp.lshr(shift); + ++bits; + } + bits *= shift; + if (bits < _AP_W && leading_zero) result.insert(insert_at, digits[0]); + } + return result; + } + + ap_private<_AP_W, false> tmp(*this); + ap_private<_AP_W, false> divisor(radix); + ap_private<_AP_W, false> zero(0); + size_t insert_at = 0; + if (wantSigned && isNegative()) { + // They want to print the signed version and it is a negative value + // Flip the bits and add one to turn it into the equivalent positive + // value and put a '-' in the result. + tmp.flip(); + tmp++; + tmp.clearUnusedBitsToZero(); + result = "-"; + insert_at = 1; + } + if (tmp == ap_private<_AP_W, false>(0)) + result = "0"; + else + while (tmp.ne(zero)) { + ap_private<_AP_W, false> APdigit(0); + ap_private<_AP_W, false> tmp2(0); + ap_private_ops::divide(tmp, tmp.getNumWords(), divisor, + divisor.getNumWords(), &tmp2, &APdigit); + uint64_t digit = APdigit.getZExtValue(); + assert(digit < radix && "divide failed"); + result.insert(insert_at, digits[digit]); + tmp = tmp2; + } + + return result; +} // End of ap_private<_AP_W, _AP_S, false>::toString() + +template +std::ostream &operator<<(std::ostream &os, const ap_private<_AP_W, _AP_S> &x) { + std::ios_base::fmtflags ff = std::cout.flags(); + if (ff & std::cout.hex) { + os << x.toString(16, false); // don't print sign + } else if (ff & std::cout.oct) { + os << x.toString(8, false); // don't print sign + } else { + os << x.toString(10, _AP_S); + } + return os; +} + +// ------------------------------------------------------------ // +// XXX moved here from ap_int_sim.h XXX // +// ------------------------------------------------------------ // + +/// Concatination reference. +/// Proxy class which allows concatination to be used as rvalue(for reading) and +/// lvalue(for writing) +// ---------------------------------------------------------------- +// template +// struct ap_concat_ref { +//#ifdef _MSC_VER +//#pragma warning(disable : 4521 4522) +//#endif +// enum { +// _AP_WR = _AP_W1 + _AP_W2, +// }; +// _AP_T1& mbv1; +// _AP_T2& mbv2; +// +// INLINE ap_concat_ref(const ap_concat_ref<_AP_W1, _AP_T1, _AP_W2, _AP_T2>& +// ref) +// : mbv1(ref.mbv1), mbv2(ref.mbv2) {} +// +// INLINE ap_concat_ref(_AP_T1& bv1, _AP_T2& bv2) : mbv1(bv1), mbv2(bv2) {} +// +// template +// INLINE ap_concat_ref& operator=(const ap_private<_AP_W3, _AP_S3>& val) { +// ap_private<_AP_W1 + _AP_W2, false> vval(val); +// int W_ref1 = mbv1.length(); +// int W_ref2 = mbv2.length(); +// ap_private<_AP_W1, false> mask1(-1); +// mask1 >>= _AP_W1 - W_ref1; +// ap_private<_AP_W2, false> mask2(-1); +// mask2 >>= _AP_W2 - W_ref2; +// mbv1.set(ap_private<_AP_W1, false>((vval >> W_ref2) & mask1)); +// mbv2.set(ap_private<_AP_W2, false>(vval & mask2)); +// return *this; +// } +// +// INLINE ap_concat_ref& operator=(unsigned long long val) { +// ap_private<_AP_W1 + _AP_W2, false> tmpVal(val); +// return operator=(tmpVal); +// } +// +// template +// INLINE ap_concat_ref& operator=( +// const ap_concat_ref<_AP_W3, _AP_T3, _AP_W4, _AP_T4>& val) { +// ap_private<_AP_W1 + _AP_W2, false> tmpVal(val); +// return operator=(tmpVal); +// } +// +// INLINE ap_concat_ref& operator=( +// const ap_concat_ref<_AP_W1, _AP_T1, _AP_W2, _AP_T2>& val) { +// ap_private<_AP_W1 + _AP_W2, false> tmpVal(val); +// return operator=(tmpVal); +// } +// +// template +// INLINE ap_concat_ref& operator=(const _private_bit_ref<_AP_W3, _AP_S3>& +// val) { +// ap_private<_AP_W1 + _AP_W2, false> tmpVal(val); +// return operator=(tmpVal); +// } +// +// template +// INLINE ap_concat_ref& operator=(const _private_range_ref<_AP_W3, _AP_S3>& +// val) { +// ap_private<_AP_W1 + _AP_W2, false> tmpVal(val); +// return operator=(tmpVal); +// } +// +// template +// INLINE ap_concat_ref& operator=( +// const af_range_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3>& val) +// { +// return operator=((const ap_private<_AP_W3, false>)(val)); +// } +// +// template +// INLINE ap_concat_ref& operator=( +// const ap_fixed_base<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3>& +// val) { +// return operator=(val.to_ap_private()); +// } +// +// template +// INLINE ap_concat_ref& operator=( +// const af_bit_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3>& val) { +// return operator=((unsigned long long)(bool)(val)); +// } +// +// INLINE operator ap_private<_AP_WR, false>() const { return get(); } +// +// INLINE operator unsigned long long() const { return get().to_uint64(); } +// +// template +// INLINE ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, +// _private_range_ref<_AP_W3, _AP_S3> > +// operator,(const _private_range_ref<_AP_W3, _AP_S3> &a2) { +// return ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, +// _private_range_ref<_AP_W3, _AP_S3> >( +// *this, const_cast<_private_range_ref<_AP_W3, _AP_S3>&>(a2)); +// } +// +// template +// INLINE +// ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, ap_private<_AP_W3, _AP_S3> +// > +// operator,(ap_private<_AP_W3, _AP_S3> &a2) { +// return ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, +// ap_private<_AP_W3, _AP_S3> >(*this, a2); +// } +// +// template +// INLINE +// ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, ap_private<_AP_W3, _AP_S3> +// > +// operator,(const ap_private<_AP_W3, _AP_S3> &a2) { +// return ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3, +// ap_private<_AP_W3, _AP_S3> >( +// *this, const_cast&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_WR, ap_concat_ref, 1, _private_bit_ref<_AP_W3, +// _AP_S3> > +// operator,(const _private_bit_ref<_AP_W3, _AP_S3> &a2) { +// return ap_concat_ref<_AP_WR, ap_concat_ref, 1, _private_bit_ref<_AP_W3, +// _AP_S3> >( +// *this, const_cast<_private_bit_ref<_AP_W3, _AP_S3>&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3 + _AP_W4, +// ap_concat_ref<_AP_W3, _AP_T3, _AP_W4, _AP_T4> > +// operator,(const ap_concat_ref<_AP_W3, _AP_T3, _AP_W4, _AP_T4> &a2) { +// return ap_concat_ref<_AP_WR, ap_concat_ref, _AP_W3 + _AP_W4, +// ap_concat_ref<_AP_W3, _AP_T3, _AP_W4, _AP_T4> >( +// *this, const_cast&>(a2)); +// } +// +// template +// INLINE ap_concat_ref< +// _AP_WR, ap_concat_ref, _AP_W3, +// af_range_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3> > +// operator,( +// const af_range_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3> &a2) +// { +// return ap_concat_ref< +// _AP_WR, ap_concat_ref, _AP_W3, +// af_range_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3> >( +// *this, +// const_cast< +// af_range_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, +// _AP_N3>&>(a2)); +// } +// +// template +// INLINE +// ap_concat_ref<_AP_WR, ap_concat_ref, 1, +// af_bit_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3> +// > +// operator,(const af_bit_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, +// _AP_N3> +// &a2) { +// return ap_concat_ref< +// _AP_WR, ap_concat_ref, 1, +// af_bit_ref<_AP_W3, _AP_I3, _AP_S3, _AP_Q3, _AP_O3, _AP_N3> >( +// *this, +// const_cast&>( +// a2)); +// } +// +// template +// INLINE ap_private operator&( +// const ap_private<_AP_W3, _AP_S3>& a2) { +// return get() & a2; +// } +// +// template +// INLINE ap_private operator|( +// const ap_private<_AP_W3, _AP_S3>& a2) { +// return get() | a2; +// } +// +// template +// INLINE ap_private operator^( +// const ap_private<_AP_W3, _AP_S3>& a2) { +// return ap_private(get() ^ a2); +// } +// +// INLINE const ap_private<_AP_WR, false> get() const { +// ap_private<_AP_W1 + _AP_W2, false> tmpVal = +// ap_private<_AP_W1 + _AP_W2, false>(mbv1.get()); +// ap_private<_AP_W1 + _AP_W2, false> tmpVal2 = +// ap_private<_AP_W1 + _AP_W2, false>(mbv2.get()); +// int W_ref2 = mbv2.length(); +// tmpVal <<= W_ref2; +// tmpVal |= tmpVal2; +// return tmpVal; +// } +// +// INLINE const ap_private<_AP_WR, false> get() { +// ap_private<_AP_W1 + _AP_W2, false> tmpVal = +// ap_private<_AP_W1 + _AP_W2, false>(mbv1.get()); +// ap_private<_AP_W1 + _AP_W2, false> tmpVal2 = +// ap_private<_AP_W1 + _AP_W2, false>(mbv2.get()); +// int W_ref2 = mbv2.length(); +// tmpVal <<= W_ref2; +// tmpVal |= tmpVal2; +// return tmpVal; +// } +// +// template +// INLINE void set(const ap_private<_AP_W3, false>& val) { +// ap_private<_AP_W1 + _AP_W2, false> vval(val); +// int W_ref1 = mbv1.length(); +// int W_ref2 = mbv2.length(); +// ap_private<_AP_W1, false> mask1(-1); +// mask1 >>= _AP_W1 - W_ref1; +// ap_private<_AP_W2, false> mask2(-1); +// mask2 >>= _AP_W2 - W_ref2; +// mbv1.set(ap_private<_AP_W1, false>((vval >> W_ref2) & mask1)); +// mbv2.set(ap_private<_AP_W2, false>(vval & mask2)); +// } +// +// INLINE int length() const { return mbv1.length() + mbv2.length(); } +// +// INLINE std::string to_string(uint8_t radix = 2) const { +// return get().to_string(radix); +// } +//}; // struct ap_concat_ref. + +/// Range(slice) reference +/// Proxy class, which allows part selection to be used as rvalue(for reading) +/// and lvalue(for writing) +//------------------------------------------------------------ +template +struct _private_range_ref { +#ifdef _MSC_VER +#pragma warning(disable : 4521 4522) +#endif + ap_private<_AP_W, _AP_S>& d_bv; + int l_index; + int h_index; + + public: + /// copy ctor. + INLINE _private_range_ref(const _private_range_ref<_AP_W, _AP_S>& ref) + : d_bv(ref.d_bv), l_index(ref.l_index), h_index(ref.h_index) {} + + /// direct ctor. + INLINE _private_range_ref(ap_private<_AP_W, _AP_S>* bv, int h, int l) + : d_bv(*bv), l_index(l), h_index(h) { + _AP_WARNING(h < 0 || l < 0, + "Higher bound (%d) and lower bound (%d) cannot be " + "negative.", + h, l); + _AP_WARNING(h >= _AP_W || l >= _AP_W, + "Higher bound (%d) or lower bound (%d) out of range (%d).", h, l, + _AP_W); + } + + /// compound or assignment. + template + INLINE _private_range_ref<_AP_W, _AP_S>& operator|=( + const _private_range_ref<_AP_W2, _AP_S2>& ref) { + _AP_WARNING((h_index - l_index) != (ref.h_index - ref.l_index), + "Bitsize mismach for ap_private<>.range() &= " + "ap_private<>.range()."); + this->d_bv |= ref.d_bv; + return *this; + } + + /// compound or assignment with root type. + template + INLINE _private_range_ref<_AP_W, _AP_S>& operator|=( + const _AP_ROOT_TYPE<_AP_W2, _AP_S2>& ref) { + _AP_WARNING((h_index - l_index + 1) != _AP_W2, + "Bitsize mismach for ap_private<>.range() |= _AP_ROOT_TYPE<>."); + this->d_bv |= ref.V; + return *this; + } + + /// compound and assignment. + template + INLINE _private_range_ref<_AP_W, _AP_S>& operator&=( + const _private_range_ref<_AP_W2, _AP_S2>& ref) { + _AP_WARNING((h_index - l_index) != (ref.h_index - ref.l_index), + "Bitsize mismach for ap_private<>.range() &= " + "ap_private<>.range()."); + this->d_bv &= ref.d_bv; + return *this; + }; + + /// compound and assignment with root type. + template + INLINE _private_range_ref<_AP_W, _AP_S>& operator&=( + const _AP_ROOT_TYPE<_AP_W2, _AP_S2>& ref) { + _AP_WARNING((h_index - l_index + 1) != _AP_W2, + "Bitsize mismach for ap_private<>.range() &= _AP_ROOT_TYPE<>."); + this->d_bv &= ref.V; + return *this; + } + + /// compound xor assignment. + template + INLINE _private_range_ref<_AP_W, _AP_S>& operator^=( + const _private_range_ref<_AP_W2, _AP_S2>& ref) { + _AP_WARNING((h_index - l_index) != (ref.h_index - ref.l_index), + "Bitsize mismach for ap_private<>.range() ^= " + "ap_private<>.range()."); + this->d_bv ^= ref.d_bv; + return *this; + }; + + /// compound xor assignment with root type. + template + INLINE _private_range_ref<_AP_W, _AP_S>& operator^=( + const _AP_ROOT_TYPE<_AP_W2, _AP_S2>& ref) { + _AP_WARNING((h_index - l_index + 1) != _AP_W2, + "Bitsize mismach for ap_private<>.range() ^= _AP_ROOT_TYPE<>."); + this->d_bv ^= ref.V; + return *this; + } + + /// @name convertors. + // @{ + INLINE operator ap_private<_AP_W, false>() const { + ap_private<_AP_W, false> val(0); + if (h_index >= l_index) { + if (_AP_W > 64) { + val = d_bv; + ap_private<_AP_W, false> mask(-1); + mask >>= _AP_W - (h_index - l_index + 1); + val >>= l_index; + val &= mask; + } else { + const static uint64_t mask = (~0ULL >> (64 > _AP_W ? (64 - _AP_W) : 0)); + val = (d_bv >> l_index) & (mask >> (_AP_W - (h_index - l_index + 1))); + } + } else { + for (int i = 0, j = l_index; j >= 0 && j >= h_index; j--, i++) + if ((d_bv)[j]) val.set(i); + } + return val; + } + + INLINE operator unsigned long long() const { return to_uint64(); } + // @} + + template + INLINE _private_range_ref& operator=(const ap_private<_AP_W2, _AP_S2>& val) { + ap_private<_AP_W, false> vval = ap_private<_AP_W, false>(val); + if (l_index > h_index) { + for (int i = 0, j = l_index; j >= 0 && j >= h_index; j--, i++) + (vval)[i] ? d_bv.set(j) : d_bv.clear(j); + } else { + if (_AP_W > 64) { + ap_private<_AP_W, false> mask(-1); + if (l_index > 0) { + mask <<= l_index; + vval <<= l_index; + } + if (h_index < _AP_W - 1) { + ap_private<_AP_W, false> mask2(-1); + mask2 >>= _AP_W - h_index - 1; + mask &= mask2; + vval &= mask2; + } + mask.flip(); + d_bv &= mask; + d_bv |= vval; + } else { + unsigned shift = 64 - _AP_W; + uint64_t mask = ~0ULL >> (shift); + if (l_index > 0) { + vval = mask & vval << l_index; + mask = mask & mask << l_index; + } + if (h_index < _AP_W - 1) { + uint64_t mask2 = mask; + mask2 >>= (_AP_W - h_index - 1); + mask &= mask2; + vval &= mask2; + } + mask = ~mask; + d_bv &= mask; + d_bv |= vval; + } + } + return *this; + } // operator=(const ap_private<>&) + + INLINE _private_range_ref& operator=(unsigned long long val) { + const ap_private<_AP_W, _AP_S> vval = val; + return operator=(vval); + } + + template + INLINE _private_range_ref& operator=( + const _private_bit_ref<_AP_W2, _AP_S2>& val) { + return operator=((unsigned long long)(bool)val); + } + + template + INLINE _private_range_ref& operator=( + const _private_range_ref<_AP_W2, _AP_S2>& val) { + const ap_private<_AP_W, false> tmpVal(val); + return operator=(tmpVal); + } + +// template +// INLINE _private_range_ref& operator=( +// const ap_concat_ref<_AP_W3, _AP_T3, _AP_W4, _AP_T4>& val) { +// const ap_private<_AP_W, false> tmpVal(val); +// return operator=(tmpVal); +// } + + // TODO from ap_int_base, ap_bit_ref and ap_range_ref. + + template + INLINE _private_range_ref& operator=( + const ap_fixed_base<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { + return operator=(val.to_ap_int_base().V); + } + + template + INLINE _private_range_ref& operator=( + const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { + return operator=(val.operator ap_int_base<_AP_W2, false>().V); + } + + template + INLINE _private_range_ref& operator=( + const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>& val) { + return operator=((unsigned long long)(bool)val); + } + +// template +// INLINE ap_concat_ref<_AP_W, _private_range_ref, _AP_W2, +// _private_range_ref<_AP_W2, _AP_S2> > +// operator,(const _private_range_ref<_AP_W2, _AP_S2> &a2) { +// return ap_concat_ref<_AP_W, _private_range_ref, _AP_W2, +// _private_range_ref<_AP_W2, _AP_S2> >( +// *this, const_cast<_private_range_ref<_AP_W2, _AP_S2>&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, _private_range_ref, _AP_W2, +// ap_private<_AP_W2, _AP_S2> > +// operator,(ap_private<_AP_W2, _AP_S2> &a2) { +// return ap_concat_ref<_AP_W, _private_range_ref, _AP_W2, +// ap_private<_AP_W2, _AP_S2> >(*this, a2); +// } +// +// INLINE +// ap_concat_ref<_AP_W, _private_range_ref, _AP_W, ap_private<_AP_W, _AP_S> > +// operator,(ap_private<_AP_W, _AP_S>& a2) { +// return ap_concat_ref<_AP_W, _private_range_ref, _AP_W, +// ap_private<_AP_W, _AP_S> >(*this, a2); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, _private_range_ref, 1, +// _private_bit_ref<_AP_W2, _AP_S2> > +// operator,(const _private_bit_ref<_AP_W2, _AP_S2> &a2) { +// return ap_concat_ref<_AP_W, _private_range_ref, 1, +// _private_bit_ref<_AP_W2, _AP_S2> >( +// *this, const_cast<_private_bit_ref<_AP_W2, _AP_S2>&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<_AP_W, _private_range_ref, _AP_W2 + _AP_W3, +// ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> > +// operator,(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> &a2) { +// return ap_concat_ref<_AP_W, _private_range_ref, _AP_W2 + _AP_W3, +// ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> >( +// *this, const_cast&>(a2)); +// } +// +// template +// INLINE ap_concat_ref< +// _AP_W, _private_range_ref, _AP_W2, +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > +// operator,( +// const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> &a2) { +// return ap_concat_ref< +// _AP_W, _private_range_ref, _AP_W2, +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >( +// *this, +// const_cast< +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2>&>(a2)); +// } +// +// template +// INLINE +// ap_concat_ref<_AP_W, _private_range_ref, 1, +// af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > +// operator,(const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> +// &a2) { +// return ap_concat_ref< +// _AP_W, _private_range_ref, 1, +// af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >( +// *this, +// const_cast&>( +// a2)); +// } + + template + INLINE bool operator==(const _private_range_ref<_AP_W2, _AP_S2>& op2) { + ap_private<_AP_W, false> lhs = get(); + ap_private<_AP_W2, false> rhs = op2.get(); + return lhs == rhs; + } + + template + INLINE bool operator!=(const _private_range_ref<_AP_W2, _AP_S2>& op2) { + ap_private<_AP_W, false> lhs = get(); + ap_private<_AP_W2, false> rhs = op2.get(); + return lhs != rhs; + } + + template + INLINE bool operator>(const _private_range_ref<_AP_W2, _AP_S2>& op2) { + ap_private<_AP_W, false> lhs = get(); + ap_private<_AP_W2, false> rhs = op2.get(); + return lhs > rhs; + } + + template + INLINE bool operator>=(const _private_range_ref<_AP_W2, _AP_S2>& op2) { + ap_private<_AP_W, false> lhs = get(); + ap_private<_AP_W2, false> rhs = op2.get(); + return lhs >= rhs; + } + + template + INLINE bool operator<(const _private_range_ref<_AP_W2, _AP_S2>& op2) { + ap_private<_AP_W, false> lhs = get(); + ap_private<_AP_W2, false> rhs = op2.get(); + return lhs < rhs; + } + + template + INLINE bool operator<=(const _private_range_ref<_AP_W2, _AP_S2>& op2) { + ap_private<_AP_W, false> lhs = get(); + ap_private<_AP_W2, false> rhs = op2.get(); + return lhs <= rhs; + } + + template + INLINE void set(const ap_private<_AP_W2, false>& val) { + ap_private<_AP_W, _AP_S> vval = val; + if (l_index > h_index) { + for (int i = 0, j = l_index; j >= 0 && j >= h_index; j--, i++) + (vval)[i] ? d_bv.set(j) : d_bv.clear(j); + } else { + if (_AP_W > 64) { + ap_private<_AP_W, _AP_S> mask(-1); + if (l_index > 0) { + ap_private<_AP_W, false> mask1(-1); + mask1 >>= _AP_W - l_index; + mask1.flip(); + mask = mask1; + // vval&=mask1; + vval <<= l_index; + } + if (h_index < _AP_W - 1) { + ap_private<_AP_W, false> mask2(-1); + mask2 <<= h_index + 1; + mask2.flip(); + mask &= mask2; + vval &= mask2; + } + mask.flip(); + d_bv &= mask; + d_bv |= vval; + } else { + uint64_t mask = ~0ULL >> (64 - _AP_W); + if (l_index > 0) { + uint64_t mask1 = mask; + mask1 = mask & (mask1 >> (_AP_W - l_index)); + vval = mask & (vval << l_index); + mask = ~mask1 & mask; + // vval&=mask1; + } + if (h_index < _AP_W - 1) { + uint64_t mask2 = ~0ULL >> (64 - _AP_W); + mask2 = mask & (mask2 << (h_index + 1)); + mask &= ~mask2; + vval &= ~mask2; + } + d_bv &= (~mask & (~0ULL >> (64 - _AP_W))); + d_bv |= vval; + } + } + } + + INLINE ap_private<_AP_W, false> get() const { + ap_private<_AP_W, false> val(0); + if (h_index < l_index) { + for (int i = 0, j = l_index; j >= 0 && j >= h_index; j--, i++) + if ((d_bv)[j]) val.set(i); + } else { + val = d_bv; + val >>= l_index; + if (h_index < _AP_W - 1) { + if (_AP_W <= 64) { + const static uint64_t mask = + (~0ULL >> (64 > _AP_W ? (64 - _AP_W) : 0)); + val &= (mask >> (_AP_W - (h_index - l_index + 1))); + } else { + ap_private<_AP_W, false> mask(-1); + mask >>= _AP_W - (h_index - l_index + 1); + val &= mask; + } + } + } + return val; + } + + INLINE ap_private<_AP_W, false> get() { + ap_private<_AP_W, false> val(0); + if (h_index < l_index) { + for (int i = 0, j = l_index; j >= 0 && j >= h_index; j--, i++) + if ((d_bv)[j]) val.set(i); + } else { + val = d_bv; + val >>= l_index; + if (h_index < _AP_W - 1) { + if (_AP_W <= 64) { + static const uint64_t mask = ~0ULL >> (64 > _AP_W ? (64 - _AP_W) : 0); + return val &= ((mask) >> (_AP_W - (h_index - l_index + 1))); + } else { + ap_private<_AP_W, false> mask(-1); + mask >>= _AP_W - (h_index - l_index + 1); + val &= mask; + } + } + } + return val; + } + + INLINE int length() const { + return h_index >= l_index ? h_index - l_index + 1 : l_index - h_index + 1; + } + + INLINE int to_int() const { + ap_private<_AP_W, false> val = get(); + return val.to_int(); + } + + INLINE unsigned int to_uint() const { + ap_private<_AP_W, false> val = get(); + return val.to_uint(); + } + + INLINE long to_long() const { + ap_private<_AP_W, false> val = get(); + return val.to_long(); + } + + INLINE unsigned long to_ulong() const { + ap_private<_AP_W, false> val = get(); + return val.to_ulong(); + } + + INLINE ap_slong to_int64() const { + ap_private<_AP_W, false> val = get(); + return val.to_int64(); + } + + INLINE ap_ulong to_uint64() const { + ap_private<_AP_W, false> val = get(); + return val.to_uint64(); + } + + INLINE std::string to_string(uint8_t radix = 2) const { + return get().to_string(radix); + } + + INLINE bool and_reduce() { + bool ret = true; + bool reverse = l_index > h_index; + unsigned low = reverse ? h_index : l_index; + unsigned high = reverse ? l_index : h_index; + for (unsigned i = low; i != high; ++i) ret &= d_bv[i]; + return ret; + } + + INLINE bool or_reduce() { + bool ret = false; + bool reverse = l_index > h_index; + unsigned low = reverse ? h_index : l_index; + unsigned high = reverse ? l_index : h_index; + for (unsigned i = low; i != high; ++i) ret |= d_bv[i]; + return ret; + } + + INLINE bool xor_reduce() { + bool ret = false; + bool reverse = l_index > h_index; + unsigned low = reverse ? h_index : l_index; + unsigned high = reverse ? l_index : h_index; + for (unsigned i = low; i != high; ++i) ret ^= d_bv[i]; + return ret; + } +}; // struct _private_range_ref. + +/// Bit reference +/// Proxy class, which allows bit selection to be used as rvalue(for reading) +/// and lvalue(for writing) +//-------------------------------------------------------------- +template +struct _private_bit_ref { +#ifdef _MSC_VER +#pragma warning(disable : 4521 4522) +#endif + ap_private<_AP_W, _AP_S>& d_bv; + int d_index; + + public: + // copy ctor. + INLINE _private_bit_ref(const _private_bit_ref<_AP_W, _AP_S>& ref) + : d_bv(ref.d_bv), d_index(ref.d_index) {} + + // director ctor. + INLINE _private_bit_ref(ap_private<_AP_W, _AP_S>& bv, int index = 0) + : d_bv(bv), d_index(index) { + _AP_WARNING(d_index < 0, "Index of bit vector (%d) cannot be negative.\n", + d_index); + _AP_WARNING(d_index >= _AP_W, + "Index of bit vector (%d) out of range (%d).\n", d_index, _AP_W); + } + + INLINE operator bool() const { return d_bv.get_bit(d_index); } + + INLINE bool to_bool() const { return operator bool(); } + + template + INLINE _private_bit_ref& operator=(const T& val) { + if (!!val) + d_bv.set(d_index); + else + d_bv.clear(d_index); + return *this; + } + +// template +// INLINE ap_concat_ref<1, _private_bit_ref, _AP_W2, ap_private<_AP_W2, +// _AP_S2> > +// operator,(ap_private<_AP_W2, _AP_S2> &a2) const { +// return ap_concat_ref<1, _private_bit_ref, _AP_W2, ap_private<_AP_W2, +// _AP_S2> >( +// const_cast<_private_bit_ref<_AP_W, _AP_S>&>(*this), a2); +// } +// +// template +// INLINE ap_concat_ref<1, _private_bit_ref, _AP_W2, +// _private_range_ref<_AP_W2, +// _AP_S2> > +// operator,(const _private_range_ref<_AP_W2, _AP_S2> &a2) const { +// return ap_concat_ref<1, _private_bit_ref, _AP_W2, +// _private_range_ref<_AP_W2, +// _AP_S2> >( +// const_cast<_private_bit_ref<_AP_W, _AP_S>&>(*this), +// const_cast<_private_range_ref<_AP_W2, _AP_S2>&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<1, _private_bit_ref, 1, _private_bit_ref<_AP_W2, +// _AP_S2> > operator,( +// const _private_bit_ref<_AP_W2, _AP_S2> &a2) const { +// return ap_concat_ref<1, _private_bit_ref, 1, +// _private_bit_ref<_AP_W2, _AP_S2> >( +// const_cast<_private_bit_ref<_AP_W, _AP_S>&>(*this), +// const_cast<_private_bit_ref<_AP_W2, _AP_S2>&>(a2)); +// } +// +// INLINE ap_concat_ref<1, _private_bit_ref, 1, _private_bit_ref> +// operator,( +// const _private_bit_ref &a2) const { +// return ap_concat_ref<1, _private_bit_ref, 1, _private_bit_ref>( +// const_cast<_private_bit_ref<_AP_W, _AP_S>&>(*this), +// const_cast<_private_bit_ref&>(a2)); +// } +// +// template +// INLINE ap_concat_ref<1, _private_bit_ref, _AP_W2 + _AP_W3, +// ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> > +// operator,(const ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> &a2) const { +// return ap_concat_ref<1, _private_bit_ref, _AP_W2 + _AP_W3, +// ap_concat_ref<_AP_W2, _AP_T2, _AP_W3, _AP_T3> >( +// const_cast<_private_bit_ref<_AP_W, _AP_S>&>(*this), +// const_cast&>(a2)); +// } +// +// template +// INLINE ap_concat_ref< +// 1, _private_bit_ref, _AP_W2, +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> > +// operator,(const af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, +// _AP_N2> +// &a2) const { +// return ap_concat_ref< +// 1, _private_bit_ref, _AP_W2, +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, _AP_N2> >( +// const_cast<_private_bit_ref<_AP_W, _AP_S>&>(*this), +// const_cast< +// af_range_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, +// _AP_N2>&>(a2)); +// } +// +// template +// INLINE +// ap_concat_ref<1, _private_bit_ref, 1, +// af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, +// _AP_N2> > +// operator,(const af_bit_ref<_AP_W2, _AP_I2, _AP_S2, _AP_Q2, _AP_O2, +// _AP_N2> +// &a2) const { +// return ap_concat_ref<1, _private_bit_ref, 1, af_bit_ref<_AP_W2, +// _AP_I2, _AP_S2, +// _AP_Q2, _AP_O2, +// _AP_N2> >( +// const_cast<_private_bit_ref<_AP_W, _AP_S>&>(*this), +// const_cast&>( +// a2)); +// } + + template + INLINE bool operator==(const _private_bit_ref<_AP_W2, _AP_S2>& op) const { + return get() == op.get(); + } + + template + INLINE bool operator!=(const _private_bit_ref<_AP_W2, _AP_S2>& op) const { + return get() != op.get(); + } + + INLINE bool get() const { return operator bool(); } + + // template + // INLINE void set(const ap_private<_AP_W3, false>& val) { + // operator=(val); + // } + + // INLINE bool operator~() const { + // bool bit = (d_bv)[d_index]; + // return bit ? false : true; + // } + + INLINE int length() const { return 1; } + + // INLINE std::string to_string() const { + // bool val = get(); + // return val ? "1" : "0"; + // } + +}; // struct _private_bit_ref. + +// char a[100]; +// char* ptr = a; +// ap_int<2> n = 3; +// char* ptr2 = ptr + n*2; +// avoid ambiguous errors +#define OP_BIN_MIX_PTR(BIN_OP) \ + template \ + INLINE PTR_TYPE* operator BIN_OP(PTR_TYPE* i_op, \ + const ap_private<_AP_W, _AP_S>& op) { \ + typename ap_private<_AP_W, _AP_S>::ValType op2 = op; \ + return i_op BIN_OP op2; \ + } \ + template \ + INLINE PTR_TYPE* operator BIN_OP(const ap_private<_AP_W, _AP_S>& op, \ + PTR_TYPE* i_op) { \ + typename ap_private<_AP_W, _AP_S>::ValType op2 = op; \ + return op2 BIN_OP i_op; \ + } + +OP_BIN_MIX_PTR(+) +OP_BIN_MIX_PTR(-) +#undef OP_BIN_MIX_PTR + +// float OP ap_int +// when ap_int's width > 64, then trunc ap_int to ap_int<64> +#define OP_BIN_MIX_FLOAT(BIN_OP, C_TYPE) \ + template \ + INLINE C_TYPE operator BIN_OP(C_TYPE i_op, \ + const ap_private<_AP_W, _AP_S>& op) { \ + typename ap_private<_AP_W, _AP_S>::ValType op2 = op; \ + return i_op BIN_OP op2; \ + } \ + template \ + INLINE C_TYPE operator BIN_OP(const ap_private<_AP_W, _AP_S>& op, \ + C_TYPE i_op) { \ + typename ap_private<_AP_W, _AP_S>::ValType op2 = op; \ + return op2 BIN_OP i_op; \ + } + +#define OPS_MIX_FLOAT(C_TYPE) \ + OP_BIN_MIX_FLOAT(*, C_TYPE) \ + OP_BIN_MIX_FLOAT(/, C_TYPE) \ + OP_BIN_MIX_FLOAT(+, C_TYPE) \ + OP_BIN_MIX_FLOAT(-, C_TYPE) + +OPS_MIX_FLOAT(float) +OPS_MIX_FLOAT(double) +#undef OP_BIN_MIX_FLOAT +#undef OPS_MIX_FLOAT + +/// Operators mixing Integers with AP_Int +// ---------------------------------------------------------------- + +// partially specialize template argument _AP_C in order that: +// for _AP_W > 64, we will explicitly convert operand with native data type +// into corresponding ap_private +// for _AP_W <= 64, we will implicitly convert operand with ap_private into +// (unsigned) long long +#define OP_BIN_MIX_INT(BIN_OP, C_TYPE, _AP_WI, _AP_SI, RTYPE) \ + template \ + INLINE \ + typename ap_private<_AP_WI, _AP_SI>::template RType<_AP_W, _AP_S>::RTYPE \ + operator BIN_OP(C_TYPE i_op, const ap_private<_AP_W, _AP_S>& op) { \ + return ap_private<_AP_WI, _AP_SI>(i_op).operator BIN_OP(op); \ + } \ + template \ + INLINE \ + typename ap_private<_AP_W, _AP_S>::template RType<_AP_WI, _AP_SI>::RTYPE \ + operator BIN_OP(const ap_private<_AP_W, _AP_S>& op, C_TYPE i_op) { \ + return op.operator BIN_OP(ap_private<_AP_WI, _AP_SI>(i_op)); \ + } + +#define OP_REL_MIX_INT(REL_OP, C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE bool operator REL_OP(const ap_private<_AP_W, _AP_S>& op, \ + C_TYPE op2) { \ + return op.operator REL_OP(ap_private<_AP_W2, _AP_S2>(op2)); \ + } \ + template \ + INLINE bool operator REL_OP(C_TYPE op2, \ + const ap_private<_AP_W, _AP_S, false>& op) { \ + return ap_private<_AP_W2, _AP_S2>(op2).operator REL_OP(op); \ + } + +#define OP_ASSIGN_MIX_INT(ASSIGN_OP, C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE ap_private<_AP_W, _AP_S>& operator ASSIGN_OP( \ + ap_private<_AP_W, _AP_S>& op, C_TYPE op2) { \ + return op.operator ASSIGN_OP(ap_private<_AP_W2, _AP_S2>(op2)); \ + } + +#define OP_BIN_SHIFT_INT(BIN_OP, C_TYPE, _AP_WI, _AP_SI, RTYPE) \ + template \ + C_TYPE operator BIN_OP(C_TYPE i_op, \ + const ap_private<_AP_W, _AP_S, false>& op) { \ + return i_op BIN_OP(op.get_VAL()); \ + } \ + template \ + INLINE \ + typename ap_private<_AP_W, _AP_S>::template RType<_AP_WI, _AP_SI>::RTYPE \ + operator BIN_OP(const ap_private<_AP_W, _AP_S>& op, C_TYPE i_op) { \ + return op.operator BIN_OP(i_op); \ + } + +#define OP_ASSIGN_RSHIFT_INT(ASSIGN_OP, C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE ap_private<_AP_W, _AP_S>& operator ASSIGN_OP( \ + ap_private<_AP_W, _AP_S>& op, C_TYPE op2) { \ + op = op.operator>>(op2); \ + return op; \ + } + +#define OP_ASSIGN_LSHIFT_INT(ASSIGN_OP, C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE ap_private<_AP_W, _AP_S>& operator ASSIGN_OP( \ + ap_private<_AP_W, _AP_S>& op, C_TYPE op2) { \ + op = op.operator<<(op2); \ + return op; \ + } + +#define OPS_MIX_INT(C_TYPE, _AP_W2, _AP_S2) \ + OP_BIN_MIX_INT(*, C_TYPE, (_AP_W2), (_AP_S2), mult) \ + OP_BIN_MIX_INT(+, C_TYPE, (_AP_W2), (_AP_S2), plus) \ + OP_BIN_MIX_INT(-, C_TYPE, (_AP_W2), (_AP_S2), minus) \ + OP_BIN_MIX_INT(/, C_TYPE, (_AP_W2), (_AP_S2), div) \ + OP_BIN_MIX_INT(%, C_TYPE, (_AP_W2), (_AP_S2), mod) \ + OP_BIN_MIX_INT(&, C_TYPE, (_AP_W2), (_AP_S2), logic) \ + OP_BIN_MIX_INT(|, C_TYPE, (_AP_W2), (_AP_S2), logic) \ + OP_BIN_MIX_INT (^, C_TYPE, (_AP_W2), (_AP_S2), logic) \ + OP_BIN_SHIFT_INT(>>, C_TYPE, (_AP_W2), (_AP_S2), arg1) \ + OP_BIN_SHIFT_INT(<<, C_TYPE, (_AP_W2), (_AP_S2), arg1) \ + \ + OP_ASSIGN_MIX_INT(+=, C_TYPE, (_AP_W2), (_AP_S2)) \ + OP_ASSIGN_MIX_INT(-=, C_TYPE, (_AP_W2), (_AP_S2)) \ + OP_ASSIGN_MIX_INT(*=, C_TYPE, (_AP_W2), (_AP_S2)) \ + OP_ASSIGN_MIX_INT(/=, C_TYPE, (_AP_W2), (_AP_S2)) \ + OP_ASSIGN_MIX_INT(%=, C_TYPE, (_AP_W2), (_AP_S2)) \ + OP_ASSIGN_MIX_INT(&=, C_TYPE, (_AP_W2), (_AP_S2)) \ + OP_ASSIGN_MIX_INT(|=, C_TYPE, (_AP_W2), (_AP_S2)) \ + OP_ASSIGN_MIX_INT(^=, C_TYPE, (_AP_W2), (_AP_S2)) \ + OP_ASSIGN_RSHIFT_INT(>>=, C_TYPE, (_AP_W2), (_AP_S2)) \ + OP_ASSIGN_LSHIFT_INT(<<=, C_TYPE, (_AP_W2), (_AP_S2)) \ + \ + OP_REL_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2)) \ + OP_REL_MIX_INT(<, C_TYPE, (_AP_W2), (_AP_S2)) \ + OP_REL_MIX_INT(>=, C_TYPE, (_AP_W2), (_AP_S2)) \ + OP_REL_MIX_INT(<=, C_TYPE, (_AP_W2), (_AP_S2)) \ + OP_REL_MIX_INT(==, C_TYPE, (_AP_W2), (_AP_S2)) \ + OP_REL_MIX_INT(!=, C_TYPE, (_AP_W2), (_AP_S2)) + +OPS_MIX_INT(bool, 1, false) +OPS_MIX_INT(char, 8, CHAR_IS_SIGNED) +OPS_MIX_INT(signed char, 8, true) +OPS_MIX_INT(unsigned char, 8, false) +OPS_MIX_INT(short, sizeof(short) * 8, true) +OPS_MIX_INT(unsigned short, sizeof(unsigned short) * 8, false) +OPS_MIX_INT(int, sizeof(int) * 8, true) +OPS_MIX_INT(unsigned int, sizeof(unsigned int) * 8, false) +OPS_MIX_INT(long, sizeof(long) * 8, true) +OPS_MIX_INT(unsigned long, sizeof(unsigned long) * 8, false) +OPS_MIX_INT(ap_slong, sizeof(ap_slong) * 8, true) +OPS_MIX_INT(ap_ulong, sizeof(ap_ulong) * 8, false) + +#undef OP_BIN_MIX_INT +#undef OP_BIN_SHIFT_INT +#undef OP_ASSIGN_MIX_INT +#undef OP_ASSIGN_RSHIFT_INT +#undef OP_ASSIGN_LSHIFT_INT +#undef OP_REL_MIX_INT +#undef OPS_MIX_INT + +#define OP_BIN_MIX_RANGE(BIN_OP, RTYPE) \ + template \ + INLINE typename ap_private<_AP_W1, _AP_S1>::template RType<_AP_W2, \ + _AP_S2>::RTYPE \ + operator BIN_OP(const _private_range_ref<_AP_W1, _AP_S1>& op1, \ + const ap_private<_AP_W2, _AP_S2>& op2) { \ + return ap_private<_AP_W1, false>(op1).operator BIN_OP(op2); \ + } \ + template \ + INLINE typename ap_private<_AP_W1, _AP_S1>::template RType<_AP_W2, \ + _AP_S2>::RTYPE \ + operator BIN_OP(const ap_private<_AP_W1, _AP_S1>& op1, \ + const _private_range_ref<_AP_W2, _AP_S2>& op2) { \ + return op1.operator BIN_OP(ap_private<_AP_W2, false>(op2)); \ + } + +#define OP_ASSIGN_MIX_RANGE(ASSIGN_OP) \ + template \ + INLINE ap_private<_AP_W1, _AP_S1>& operator ASSIGN_OP( \ + ap_private<_AP_W1, _AP_S1>& op1, \ + const _private_range_ref<_AP_W2, _AP_S2>& op2) { \ + return op1.operator ASSIGN_OP(ap_private<_AP_W2, false>(op2)); \ + } \ + template \ + INLINE _private_range_ref<_AP_W1, _AP_S1>& operator ASSIGN_OP( \ + _private_range_ref<_AP_W1, _AP_S1>& op1, \ + ap_private<_AP_W2, _AP_S2>& op2) { \ + ap_private<_AP_W1, false> tmp(op1); \ + tmp.operator ASSIGN_OP(op2); \ + op1 = tmp; \ + return op1; \ + } + +#define OP_REL_MIX_RANGE(REL_OP) \ + template \ + INLINE bool operator REL_OP(const _private_range_ref<_AP_W1, _AP_S1>& op1, \ + const ap_private<_AP_W2, _AP_S2>& op2) { \ + return ap_private<_AP_W1, false>(op1).operator REL_OP(op2); \ + } \ + template \ + INLINE bool operator REL_OP(const ap_private<_AP_W1, _AP_S1>& op1, \ + const _private_range_ref<_AP_W2, _AP_S2>& op2) { \ + return op1.operator REL_OP(op2.operator ap_private<_AP_W2, false>()); \ + } + +OP_BIN_MIX_RANGE(+, plus) +OP_BIN_MIX_RANGE(-, minus) +OP_BIN_MIX_RANGE(*, mult) +OP_BIN_MIX_RANGE(/, div) +OP_BIN_MIX_RANGE(%, mod) +OP_BIN_MIX_RANGE(&, logic) +OP_BIN_MIX_RANGE(|, logic) +OP_BIN_MIX_RANGE(^, logic) +OP_BIN_MIX_RANGE(>>, arg1) +OP_BIN_MIX_RANGE(<<, arg1) +#undef OP_BIN_MIX_RANGE + +OP_ASSIGN_MIX_RANGE(+=) +OP_ASSIGN_MIX_RANGE(-=) +OP_ASSIGN_MIX_RANGE(*=) +OP_ASSIGN_MIX_RANGE(/=) +OP_ASSIGN_MIX_RANGE(%=) +OP_ASSIGN_MIX_RANGE(&=) +OP_ASSIGN_MIX_RANGE(|=) +OP_ASSIGN_MIX_RANGE(^=) +OP_ASSIGN_MIX_RANGE(>>=) +OP_ASSIGN_MIX_RANGE(<<=) +#undef OP_ASSIGN_MIX_RANGE + +OP_REL_MIX_RANGE(>) +OP_REL_MIX_RANGE(<) +OP_REL_MIX_RANGE(>=) +OP_REL_MIX_RANGE(<=) +OP_REL_MIX_RANGE(==) +OP_REL_MIX_RANGE(!=) +#undef OP_REL_MIX_RANGE + +#define OP_BIN_MIX_BIT(BIN_OP, RTYPE) \ + template \ + INLINE typename ap_private<1, false>::template RType<_AP_W2, _AP_S2>::RTYPE \ + operator BIN_OP(const _private_bit_ref<_AP_W1, _AP_S1>& op1, \ + const ap_private<_AP_W2, _AP_S2>& op2) { \ + return ap_private<1, false>(op1).operator BIN_OP(op2); \ + } \ + template \ + INLINE typename ap_private<_AP_W1, _AP_S1>::template RType<1, false>::RTYPE \ + operator BIN_OP(const ap_private<_AP_W1, _AP_S1>& op1, \ + const _private_bit_ref<_AP_W2, _AP_S2>& op2) { \ + return op1.operator BIN_OP(ap_private<1, false>(op2)); \ + } + +#define OP_ASSIGN_MIX_BIT(ASSIGN_OP) \ + template \ + INLINE ap_private<_AP_W1, _AP_S1>& operator ASSIGN_OP( \ + ap_private<_AP_W1, _AP_S1>& op1, \ + _private_bit_ref<_AP_W2, _AP_S2>& op2) { \ + return op1.operator ASSIGN_OP(ap_private<1, false>(op2)); \ + } \ + template \ + INLINE _private_bit_ref<_AP_W1, _AP_S1>& operator ASSIGN_OP( \ + _private_bit_ref<_AP_W1, _AP_S1>& op1, \ + ap_private<_AP_W2, _AP_S2>& op2) { \ + ap_private<1, false> tmp(op1); \ + tmp.operator ASSIGN_OP(op2); \ + op1 = tmp; \ + return op1; \ + } + +#define OP_REL_MIX_BIT(REL_OP) \ + template \ + INLINE bool operator REL_OP(const _private_bit_ref<_AP_W1, _AP_S1>& op1, \ + const ap_private<_AP_W2, _AP_S2>& op2) { \ + return ap_private<_AP_W1, false>(op1).operator REL_OP(op2); \ + } \ + template \ + INLINE bool operator REL_OP(const ap_private<_AP_W1, _AP_S1>& op1, \ + const _private_bit_ref<_AP_W2, _AP_S2>& op2) { \ + return op1.operator REL_OP(ap_private<1, false>(op2)); \ + } + +OP_ASSIGN_MIX_BIT(+=) +OP_ASSIGN_MIX_BIT(-=) +OP_ASSIGN_MIX_BIT(*=) +OP_ASSIGN_MIX_BIT(/=) +OP_ASSIGN_MIX_BIT(%=) +OP_ASSIGN_MIX_BIT(&=) +OP_ASSIGN_MIX_BIT(|=) +OP_ASSIGN_MIX_BIT(^=) +OP_ASSIGN_MIX_BIT(>>=) +OP_ASSIGN_MIX_BIT(<<=) +#undef OP_ASSIGN_MIX_BIT + +OP_BIN_MIX_BIT(+, plus) +OP_BIN_MIX_BIT(-, minus) +OP_BIN_MIX_BIT(*, mult) +OP_BIN_MIX_BIT(/, div) +OP_BIN_MIX_BIT(%, mod) +OP_BIN_MIX_BIT(&, logic) +OP_BIN_MIX_BIT(|, logic) +OP_BIN_MIX_BIT(^, logic) +OP_BIN_MIX_BIT(>>, arg1) +OP_BIN_MIX_BIT(<<, arg1) +#undef OP_BIN_MIX_BIT + +OP_REL_MIX_BIT(>) +OP_REL_MIX_BIT(<) +OP_REL_MIX_BIT(<=) +OP_REL_MIX_BIT(>=) +OP_REL_MIX_BIT(==) +OP_REL_MIX_BIT(!=) +#undef OP_REL_MIX_BIT + +#define REF_REL_OP_MIX_INT(REL_OP, C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE bool operator REL_OP(const _private_range_ref<_AP_W, _AP_S>& op, \ + C_TYPE op2) { \ + return (ap_private<_AP_W, false>(op)) \ + . \ + operator REL_OP(ap_private<_AP_W2, _AP_S2>(op2)); \ + } \ + template \ + INLINE bool operator REL_OP(C_TYPE op2, \ + const _private_range_ref<_AP_W, _AP_S>& op) { \ + return ap_private<_AP_W2, _AP_S2>(op2).operator REL_OP( \ + ap_private<_AP_W, false>(op)); \ + } \ + template \ + INLINE bool operator REL_OP(const _private_bit_ref<_AP_W, _AP_S>& op, \ + C_TYPE op2) { \ + return (bool(op))REL_OP op2; \ + } \ + template \ + INLINE bool operator REL_OP(C_TYPE op2, \ + const _private_bit_ref<_AP_W, _AP_S>& op) { \ + return op2 REL_OP(bool(op)); \ + } + +#define REF_REL_MIX_INT(C_TYPE, _AP_W2, _AP_S2) \ + REF_REL_OP_MIX_INT(>, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_REL_OP_MIX_INT(<, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_REL_OP_MIX_INT(>=, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_REL_OP_MIX_INT(<=, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_REL_OP_MIX_INT(==, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_REL_OP_MIX_INT(!=, C_TYPE, (_AP_W2), (_AP_S2)) + +REF_REL_MIX_INT(bool, 1, false) +REF_REL_MIX_INT(char, 8, CHAR_IS_SIGNED) +REF_REL_MIX_INT(signed char, 8, true) +REF_REL_MIX_INT(unsigned char, 8, false) +REF_REL_MIX_INT(short, sizeof(short) * 8, true) +REF_REL_MIX_INT(unsigned short, sizeof(unsigned short) * 8, false) +REF_REL_MIX_INT(int, sizeof(int) * 8, true) +REF_REL_MIX_INT(unsigned int, sizeof(unsigned int) * 8, false) +REF_REL_MIX_INT(long, sizeof(long) * 8, true) +REF_REL_MIX_INT(unsigned long, sizeof(unsigned long) * 8, false) +REF_REL_MIX_INT(ap_slong, sizeof(ap_slong) * 8, true) +REF_REL_MIX_INT(ap_ulong, sizeof(ap_ulong) * 8, false) +#undef REF_REL_OP_MIX_INT +#undef REF_REL_MIX_INT + +#define REF_BIN_OP_MIX_INT(BIN_OP, RTYPE, C_TYPE, _AP_W2, _AP_S2) \ + template \ + INLINE \ + typename ap_private<_AP_W, false>::template RType<_AP_W2, _AP_S2>::RTYPE \ + operator BIN_OP(const _private_range_ref<_AP_W, _AP_S>& op, \ + C_TYPE op2) { \ + return (ap_private<_AP_W, false>(op)) \ + . \ + operator BIN_OP(ap_private<_AP_W2, _AP_S2>(op2)); \ + } \ + template \ + INLINE \ + typename ap_private<_AP_W2, _AP_S2>::template RType<_AP_W, false>::RTYPE \ + operator BIN_OP(C_TYPE op2, \ + const _private_range_ref<_AP_W, _AP_S>& op) { \ + return ap_private<_AP_W2, _AP_S2>(op2).operator BIN_OP( \ + ap_private<_AP_W, false>(op)); \ + } + +#define REF_BIN_MIX_INT(C_TYPE, _AP_W2, _AP_S2) \ + REF_BIN_OP_MIX_INT(+, plus, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_MIX_INT(-, minus, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_MIX_INT(*, mult, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_MIX_INT(/, div, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_MIX_INT(%, mod, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_MIX_INT(&, logic, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_MIX_INT(|, logic, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_MIX_INT(^, logic, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_MIX_INT(>>, arg1, C_TYPE, (_AP_W2), (_AP_S2)) \ + REF_BIN_OP_MIX_INT(<<, arg1, C_TYPE, (_AP_W2), (_AP_S2)) + +REF_BIN_MIX_INT(bool, 1, false) +REF_BIN_MIX_INT(char, 8, CHAR_IS_SIGNED) +REF_BIN_MIX_INT(signed char, 8, true) +REF_BIN_MIX_INT(unsigned char, 8, false) +REF_BIN_MIX_INT(short, sizeof(short) * 8, true) +REF_BIN_MIX_INT(unsigned short, sizeof(unsigned short) * 8, false) +REF_BIN_MIX_INT(int, sizeof(int) * 8, true) +REF_BIN_MIX_INT(unsigned int, sizeof(unsigned int) * 8, false) +REF_BIN_MIX_INT(long, sizeof(long) * 8, true) +REF_BIN_MIX_INT(unsigned long, sizeof(unsigned long) * 8, false) +REF_BIN_MIX_INT(ap_slong, sizeof(ap_slong) * 8, true) +REF_BIN_MIX_INT(ap_ulong, sizeof(ap_ulong) * 8, false) +#undef REF_BIN_OP_MIX_INT +#undef REF_BIN_MIX_INT + +#define REF_BIN_OP(BIN_OP, RTYPE) \ + template \ + INLINE \ + typename ap_private<_AP_W, false>::template RType<_AP_W2, false>::RTYPE \ + operator BIN_OP(const _private_range_ref<_AP_W, _AP_S>& lhs, \ + const _private_range_ref<_AP_W2, _AP_S2>& rhs) { \ + return ap_private<_AP_W, false>(lhs).operator BIN_OP( \ + ap_private<_AP_W2, false>(rhs)); \ + } + +REF_BIN_OP(+, plus) +REF_BIN_OP(-, minus) +REF_BIN_OP(*, mult) +REF_BIN_OP(/, div) +REF_BIN_OP(%, mod) +REF_BIN_OP(&, logic) +REF_BIN_OP(|, logic) +REF_BIN_OP(^, logic) +REF_BIN_OP(>>, arg1) +REF_BIN_OP(<<, arg1) +#undef REF_BIN_OP + +//************************************************************************ +// Implement +// ap_private = ap_concat_ref OP ap_concat_ref +// for operators +, -, *, /, %, >>, <<, &, |, ^ +// Without these operators the operands are converted to int64 and +// larger results lose informations (higher order bits). +// +// operand OP +// / | +// left-concat right-concat +// / | / | +// +// +// _AP_LW1, _AP_LT1 (width and type of left-concat's left side) +// _AP_LW2, _AP_LT2 (width and type of left-concat's right side) +// Similarly for RHS of operand OP: _AP_RW1, AP_RW2, _AP_RT1, _AP_RT2 +// +// In Verilog 2001 result of concatenation is always unsigned even +// when both sides are signed. +//************************************************************************ + +#endif // ifndef __AP_PRIVATE_H__ + +// -*- cpp -*- diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/hls_math.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/hls_math.h new file mode 100644 index 00000000..f1299714 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/hls_math.h @@ -0,0 +1,27 @@ +#ifndef X_HLS_MATH_H +#define X_HLS_MATH_H + +#include +#include "ap_fixed.h" + +namespace hls { + +template +static T exp(const T x) { + return (T) std::exp(x.to_double()); +} + +template T sin(T x) { return (T) std::sin(x.to_double()); }; + +template T cos(T x) { return (T) std::cos(x.to_double()); }; + +template T asin(T x) { return (T) std::asin(x.to_double()); }; + +template T acos(T x) { return (T) std::acos(x.to_double()); }; + +template T atan(T x) { return (T) std::atan(x.to_double()); }; + +template T atan2(T x, T y) { return (T) hls::atan2(x.to_double(), y.to_double()); }; + +} +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/hls_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/hls_stream.h new file mode 100644 index 00000000..f516c39e --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/hls_stream.h @@ -0,0 +1,263 @@ +/* +#- (c) Copyright 2011-2018 Xilinx, Inc. All rights reserved. +#- +#- This file contains confidential and proprietary information +#- of Xilinx, Inc. and is protected under U.S. and +#- international copyright and other intellectual property +#- laws. +#- +#- DISCLAIMER +#- This disclaimer is not a license and does not grant any +#- rights to the materials distributed herewith. Except as +#- otherwise provided in a valid license issued to you by +#- Xilinx, and to the maximum extent permitted by applicable +#- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +#- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +#- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +#- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +#- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +#- (2) Xilinx shall not be liable (whether in contract or tort, +#- including negligence, or under any other theory of +#- liability) for any loss or damage of any kind or nature +#- related to, arising under or in connection with these +#- materials, including for any direct, or any indirect, +#- special, incidental, or consequential loss or damage +#- (including loss of data, profits, goodwill, or any type of +#- loss or damage suffered as a result of any action brought +#- by a third party) even if such damage or loss was +#- reasonably foreseeable or Xilinx had been advised of the +#- possibility of the same. +#- +#- CRITICAL APPLICATIONS +#- Xilinx products are not designed or intended to be fail- +#- safe, or for use in any application requiring fail-safe +#- performance, such as life-support or safety devices or +#- systems, Class III medical devices, nuclear facilities, +#- applications related to the deployment of airbags, or any +#- other applications that could lead to death, personal +#- injury, or severe property or environmental damage +#- (individually and collectively, "Critical +#- Applications"). Customer assumes the sole risk and +#- liability of any use of Xilinx products in Critical +#- Applications, subject only to applicable laws and +#- regulations governing limitations on product liability. +#- +#- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +#- PART OF THIS FILE AT ALL TIMES. +#- ************************************************************************ + + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef X_HLS_STREAM_SIM_H +#define X_HLS_STREAM_SIM_H + +/* + * This file contains a C++ model of hls::stream. + * It defines C simulation model. + */ +#ifndef __cplusplus + +#error C++ is required to include this header file + +#else + +////////////////////////////////////////////// +// C level simulation models for hls::stream +////////////////////////////////////////////// +#include +#include +#include +#include +#include + +#ifdef HLS_STREAM_THREAD_SAFE +#include +#include +#endif + +#ifndef _MSC_VER +#include +#include +#endif + +namespace hls { + +template +class stream +{ + protected: + std::string _name; + std::deque<__STREAM_T__> _data; // container for the elements +#ifdef HLS_STREAM_THREAD_SAFE + std::mutex _mutex; + std::condition_variable _condition_var; +#endif + + public: + /// Constructors + // Keep consistent with the synthesis model's constructors + stream() { + static unsigned _counter = 1; + std::stringstream ss; +#ifndef _MSC_VER + char* _demangle_name = abi::__cxa_demangle(typeid(*this).name(), 0, 0, 0); + if (_demangle_name) { + _name = _demangle_name; + free(_demangle_name); + } + else { + _name = "hls_stream"; + } +#else + _name = typeid(*this).name(); +#endif + + ss << _counter++; + _name += "." + ss.str(); + } + + stream(const std::string name) { + // default constructor, + // capacity set to predefined maximum + _name = name; + } + + /// Make copy constructor and assignment operator private + private: + stream(const stream< __STREAM_T__ >& chn): + _name(chn._name), _data(chn._data) { + } + + stream& operator = (const stream< __STREAM_T__ >& chn) { + _name = chn._name; + _data = chn._data; + return *this; + } + + public: + /// Overload >> and << operators to implement read() and write() + void operator >> (__STREAM_T__& rdata) { + read(rdata); + } + + void operator << (const __STREAM_T__& wdata) { + write(wdata); + } + + + public: + /// Destructor + /// Check status of the queue + virtual ~stream() { + if (!_data.empty()) + { + std::cout << "WARNING: Hls::stream '" + << _name + << "' contains leftover data," + << " which may result in RTL simulation hanging." + << std::endl; + } + } + + /// Status of the queue + bool empty() { +#ifdef HLS_STREAM_THREAD_SAFE + std::lock_guard lg(_mutex); +#endif + return _data.empty(); + } + + bool full() const { return false; } + + /// Blocking read + void read(__STREAM_T__& head) { + head = read(); + } + +#ifdef HLS_STREAM_THREAD_SAFE + __STREAM_T__ read() { + std::unique_lock ul(_mutex); + while (_data.empty()) { + _condition_var.wait(ul); + } + + __STREAM_T__ elem; + elem = _data.front(); + _data.pop_front(); + return elem; + } +#else + __STREAM_T__ read() { + __STREAM_T__ elem; + if (_data.empty()) { + std::cout << "WARNING: Hls::stream '" + << _name + << "' is read while empty," + << " which may result in RTL simulation hanging." + << std::endl; + elem = __STREAM_T__(); + } else { + elem = _data.front(); + _data.pop_front(); + } + return elem; + } +#endif + + /// Blocking write + void write(const __STREAM_T__& tail) { +#ifdef HLS_STREAM_THREAD_SAFE + std::unique_lock ul(_mutex); +#endif + _data.push_back(tail); +#ifdef HLS_STREAM_THREAD_SAFE + _condition_var.notify_one(); +#endif + } + + /// Nonblocking read + bool read_nb(__STREAM_T__& head) { +#ifdef HLS_STREAM_THREAD_SAFE + std::lock_guard lg(_mutex); +#endif + bool is_empty = _data.empty(); + if (is_empty) { + head = __STREAM_T__(); + } else { + __STREAM_T__ elem(_data.front()); + _data.pop_front(); + head = elem; + } + return !is_empty; + } + + /// Nonblocking write + bool write_nb(const __STREAM_T__& tail) { + bool is_full = full(); + write(tail); + return !is_full; + } + + /// Fifo size + size_t size() { + return _data.size(); + } +}; + +} // namespace hls + +#endif // __cplusplus +#endif // X_HLS_STREAM_SIM_H + diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/utils/x_hls_utils.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/utils/x_hls_utils.h new file mode 100644 index 00000000..3e751c36 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/ap_types/utils/x_hls_utils.h @@ -0,0 +1,80 @@ +#ifndef X_HLS_UTILS_H +#define X_HLS_UTILS_H +#include "ap_fixed.h" +#include + +namespace hls { + + template + class numeric_limits { + public: + static T max() { return std::numeric_limits::max(); } + static T min() { return std::numeric_limits::min(); } + static T epsilon() { return std::numeric_limits::epsilon(); } + }; + + template + class numeric_limits > { + public: + static ap_fixed max() { + ap_int m = ::hls::numeric_limits >::max(); + ap_fixed x; + x(W-1,0) = m(W-1,0); + return x; + } + static ap_fixed min() { + ap_int m = ::hls::numeric_limits >::min(); + ap_fixed x; + x(W-1,0) = m(W-1,0); + return x; + } + static ap_fixed epsilon() { + ap_fixed x = 0; + x[0] = 1; + return x; + } + }; + + template + class numeric_limits > { + public: + static ap_ufixed max() { + ap_uint m = ::hls::numeric_limits >::max(); + ap_ufixed x; + x(W-1,0) = m(W-1,0); + return x; + } + static ap_ufixed min() { return 0; } + static ap_ufixed epsilon() { + ap_ufixed x = 0; + x[0] = 1; + return x; + } + }; + + template + class numeric_limits > { + public: + static ap_int max() { ap_int m = min(); return ~m; } + static ap_int min() { ap_int m = 0; m[W-1] = 1; return m; } + static ap_int epsilon() { + ap_int x = 0; + x[0] = 1; + return x; + } + }; + + template + class numeric_limits > { + public: + static ap_uint max() { ap_uint zero = 0; return ~zero; } + static ap_uint min() { return 0; } + static ap_uint epsilon() { + ap_uint x = 0; + x[0] = 1; + return x; + } + }; +} + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/defines.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/defines.h new file mode 100644 index 00000000..cf8d98c3 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/defines.h @@ -0,0 +1,67 @@ +#ifndef DEFINES_H_ +#define DEFINES_H_ + +#include "ap_fixed.h" +#include "ap_int.h" +#include "nnet_utils/nnet_types.h" +#include +#include + +// hls-fpga-machine-learning insert numbers +#define N_INPUT_1_1 100 +#define N_INPUT_1_2 100 +#define N_LAYER_1_3 100 +#define N_LAYER_2_3 2 +#define N_LAYER_1_4 100 +#define N_LAYER_2_4 2 +#define N_INPUT_1_5 100 +#define N_INPUT_2_5 4 +#define OUT_CONCAT_0_6 100 +#define OUT_CONCAT_1_6 4 +#define OUT_CONCAT_0_7 100 +#define OUT_CONCAT_1_7 8 +#define N_OUTPUTS_22 100 +#define N_FILT_22 12 +#define N_LAYER_1_8 100 +#define N_LAYER_2_8 12 +#define N_OUTPUTS_23 100 +#define N_FILT_23 36 +#define N_LAYER_1_12 100 +#define N_LAYER_2_12 36 +#define N_OUTPUTS_24 100 +#define N_FILT_24 1 +#define N_INPUT_1_19 100 +#define N_INPUT_2_19 2 +#define N_INPUT_1_19 100 +#define N_INPUT_2_19 2 +#define N_FILT_21 2 + +// hls-fpga-machine-learning insert layer-precision +typedef ap_uint<4> input_t; +typedef ap_uint<4> input2_t; +typedef ap_fixed<32,16> layer3_t; +typedef ap_fixed<32,16> embedding0_embeddings_t; +typedef ap_fixed<32,16> layer4_t; +typedef ap_fixed<32,16> embedding1_embeddings_t; +typedef ap_fixed<32,16> input5_t; +typedef ap_fixed<32,16> layer6_t; +typedef ap_fixed<32,16> layer7_t; +typedef ap_fixed<32,16> model_default_t; +typedef ap_fixed<32,16> layer22_t; +typedef ap_fixed<32,16> dense_weight_t; +typedef ap_fixed<32,16> dense_bias_t; +typedef ap_fixed<32,16> layer11_t; +typedef ap_fixed<18,8> activation_table_t; +typedef ap_fixed<32,16> layer23_t; +typedef ap_fixed<32,16> dense_1_weight_t; +typedef ap_fixed<32,16> dense_1_bias_t; +typedef ap_fixed<32,16> layer15_t; +typedef ap_fixed<18,8> activation_1_table_t; +typedef ap_fixed<32,16> layer24_t; +typedef ap_fixed<32,16> met_weight_weight_t; +typedef ap_fixed<32,16> met_weight_bias_t; +typedef ap_fixed<32,16> input19_t; +typedef ap_fixed<32,16> layer20_t; +typedef ap_fixed<32,16> result_t; + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_activation.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_activation.h new file mode 100644 index 00000000..8baadf28 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_activation.h @@ -0,0 +1,777 @@ +#ifndef NNET_ACTIVATION_H_ +#define NNET_ACTIVATION_H_ + +#include "ap_fixed.h" +#include "nnet_common.h" +#include + +namespace nnet { + +struct activ_config { + // IO size + static const unsigned n_in = 10; + + // Internal info + static const unsigned table_size = 1024; + + // Resource reuse info + static const unsigned io_type = io_parallel; + static const unsigned reuse_factor = 1; + + // Internal data type definitions + typedef ap_fixed<18, 8> table_t; +}; + +// ************************************************* +// LINEAR Activation -- See Issue 53 +// ************************************************* +template void linear(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + #pragma HLS PIPELINE + + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + res[ii] = data[ii]; + } +} + +// ************************************************* +// RELU Activation +// ************************************************* +template void relu(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + #pragma HLS PIPELINE + + data_T datareg; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + datareg = data[ii]; + if (datareg > 0) + res[ii] = datareg; + else + res[ii] = 0; + } +} + +template +void relu_max(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + #pragma HLS PIPELINE + + data_T datareg; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + datareg = data[ii]; + if (datareg < 0) + res[ii] = 0; + else if (datareg > MAX_INT) + res[ii] = MAX_INT; + else + res[ii] = datareg; + } +} + +template void relu6(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + relu_max(data, res); +} + +template void relu1(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + relu_max(data, res); +} + +// ************************************************* +// Sigmoid Activation +// ************************************************* +inline float sigmoid_fcn_float(float input) { return 1.0 / (1 + std::exp(-input)); } + +template void init_sigmoid_table(typename CONFIG_T::table_t table_out[N_TABLE]) { + // Default logistic sigmoid function: + // result = 1/(1+e^(-x)) + for (int ii = 0; ii < N_TABLE; ii++) { + // First, convert from table index to X-value (signed 8-bit, range -8 to +8) + float in_val = 2 * 8.0 * (ii - float(N_TABLE) / 2.0) / float(N_TABLE); + // Next, compute lookup table function + typename CONFIG_T::table_t real_val = sigmoid_fcn_float(in_val); + // std::cout << "Lookup table In Value: " << in_val << " Result: " << real_val << std::endl; + table_out[ii] = real_val; + } +} + +template +void sigmoid(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + // Initialize the lookup table +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::table_t sigmoid_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::table_t sigmoid_table[CONFIG_T::table_size]; +#endif + if (!initialized) { + init_sigmoid_table(sigmoid_table); + initialized = true; + } + + #pragma HLS PIPELINE + + // Index into the lookup table based on data + int data_round; + int index; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + data_round = data[ii] * CONFIG_T::table_size / 16; + index = data_round + 8 * CONFIG_T::table_size / 16; + if (index < 0) + index = 0; + if (index > CONFIG_T::table_size - 1) + index = CONFIG_T::table_size - 1; + res[ii] = (res_T)sigmoid_table[index]; + } +} + +// ************************************************* +// Softmax Activation +// ************************************************* + +enum class softmax_implementation { latency = 0, legacy = 1, stable = 2, argmax = 3 }; + +inline float exp_fcn_float(float input) { return std::exp(input); } + +template inline float softmax_real_val_from_idx(unsigned i) { + // Treat the index as the top N bits + static constexpr int N = ceillog2(CONFIG_T::table_size); // number of address bits for table + data_T x(0); + x(x.width - 1, x.width - N) = i; + return (float)x; +} + +template inline unsigned softmax_idx_from_real_val(data_T x) { + // Slice the top N bits to get an index into the table + static constexpr int N = ceillog2(CONFIG_T::table_size); // number of address bits for table + ap_uint y = x(x.width - 1, x.width - N); // slice the top N bits of input + return (unsigned)y(N - 1, 0); +} + +template +void init_exp_table(typename CONFIG_T::exp_table_t table_out[CONFIG_T::table_size]) { + // The template data_T is the data type used to address the table + for (unsigned i = 0; i < CONFIG_T::table_size; i++) { + // Slicing bits for address is going to round towards 0, so take the central value + float x = softmax_real_val_from_idx(i); + typename CONFIG_T::exp_table_t exp_x = exp_fcn_float(x); + table_out[i] = exp_x; + } +} + +template +void init_invert_table(typename CONFIG_T::inv_table_t table_out[CONFIG_T::table_size]) { + // The template data_T is the data type used to address the table + for (unsigned i = 0; i < CONFIG_T::table_size; i++) { + float x = softmax_real_val_from_idx(i); + typename CONFIG_T::inv_table_t inv_x = 1 / x; + table_out[i] = inv_x; + } +} + +template +void softmax_latency(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + #pragma HLS pipeline + // Initialize the lookup tables +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::exp_table_t exp_table[CONFIG_T::table_size]; + typename CONFIG_T::inv_table_t invert_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::exp_table_t exp_table[CONFIG_T::table_size]; + static typename CONFIG_T::inv_table_t invert_table[CONFIG_T::table_size]; + +#endif + if (!initialized) { + // Note we are exponentiating the inputs, which have type data_T + init_exp_table(exp_table); + // Note we are inverting the exponentials, which have type exp_table_t + init_invert_table(invert_table); + initialized = true; + } + + // Calculate all the e^x's + typename CONFIG_T::exp_table_t exp_res[CONFIG_T::n_in]; + #pragma HLS array_partition variable=exp_res complete + typename CONFIG_T::exp_table_t exp_sum(0); + for (unsigned i = 0; i < CONFIG_T::n_in; i++) { + #pragma HLS unroll + unsigned x = softmax_idx_from_real_val(data[i]); + exp_res[i] = exp_table[x]; + } + + // Explicitly sum the results with an adder tree. + // Rounding & Saturation mode, which improve accuracy, prevent Vivado from expression balancing + Op_add op_add; + exp_sum = + reduce>(exp_res, op_add); + + typename CONFIG_T::inv_table_t inv_exp_sum = + invert_table[softmax_idx_from_real_val(exp_sum)]; + for (unsigned i = 0; i < CONFIG_T::n_in; i++) { + #pragma HLS unroll + res[i] = exp_res[i] * inv_exp_sum; + } +} + +template +void softmax_stable(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + #pragma HLS pipeline + // Initialize the lookup tables +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::exp_table_t exp_table[CONFIG_T::table_size]; + typename CONFIG_T::inv_table_t invert_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::exp_table_t exp_table[CONFIG_T::table_size]; + static typename CONFIG_T::inv_table_t invert_table[CONFIG_T::table_size]; + +#endif + if (!initialized) { + // Note we are exponentiating the inputs, which have type data_T + init_exp_table(exp_table); + // Note we are inverting the exponentials, which have type exp_table_t + init_invert_table(invert_table); + initialized = true; + } + + // Find the max and compute all delta(x_i, x_max) + Op_max op_max; + data_T x_max = reduce>(data, op_max); + + // For the diffs, use the same type as the input but force rounding and saturation + ap_fixed d_xi_xmax[CONFIG_T::n_in]; + for (unsigned i = 0; i < CONFIG_T::n_in; i++) { + #pragma HLS unroll + d_xi_xmax[i] = data[i] - x_max; + } + + // Calculate all the e^x's + typename CONFIG_T::exp_table_t exp_res[CONFIG_T::n_in]; + #pragma HLS array_partition variable=exp_res complete + typename CONFIG_T::exp_table_t exp_sum(0); + for (unsigned i = 0; i < CONFIG_T::n_in; i++) { + #pragma HLS unroll + unsigned x = softmax_idx_from_real_val(d_xi_xmax[i]); + exp_res[i] = exp_table[x]; + } + + // Explicitly sum the results with an adder tree. + // Rounding & Saturation mode, which improve accuracy, prevent Vivado from expression balancing + Op_add op_add; + exp_sum = + reduce>(exp_res, op_add); + + typename CONFIG_T::inv_table_t inv_exp_sum = + invert_table[softmax_idx_from_real_val(exp_sum)]; + for (unsigned i = 0; i < CONFIG_T::n_in; i++) { + #pragma HLS unroll + res[i] = exp_res[i] * inv_exp_sum; + } +} + +template void init_exp_table_legacy(typename CONFIG_T::table_t table_out[N_TABLE]) { + for (int ii = 0; ii < N_TABLE; ii++) { + // First, convert from table index to X-value (signed 8-bit, range -8 to +8) + float in_val = 2 * 8.0 * (ii - float(N_TABLE) / 2.0) / float(N_TABLE); + // Next, compute lookup table function + typename CONFIG_T::table_t real_val = exp_fcn_float(in_val); + // std::cout << "Lookup table In Value: " << in_val << " Result: " << real_val << std::endl; + table_out[ii] = real_val; + } +} + +template void init_invert_table_legacy(typename CONFIG_T::table_t table_out[N_TABLE]) { + // Inversion function: + // result = 1/x + for (int ii = 0; ii < N_TABLE; ii++) { + // First, convert from table index to X-value (signed 8-bit, range 0 to +64) + float in_val = 64.0 * ii / float(N_TABLE); + // Next, compute lookup table function + if (in_val > 0.0) + table_out[ii] = 1.0 / in_val; + else + table_out[ii] = 0.0; + } +} + +template +void softmax_legacy(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + // Initialize the lookup table +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::table_t exp_table[CONFIG_T::table_size]; + typename CONFIG_T::table_t invert_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::table_t exp_table[CONFIG_T::table_size]; + static typename CONFIG_T::table_t invert_table[CONFIG_T::table_size]; +#endif + if (!initialized) { + init_exp_table_legacy(exp_table); + init_invert_table_legacy(invert_table); + initialized = true; + } + + #pragma HLS PIPELINE + + // Index into the lookup table based on data for exponentials + typename CONFIG_T::table_t exp_res[CONFIG_T::n_in]; // different, independent, fixed point precision + typename CONFIG_T::table_t exp_diff_res; // different, independent, fixed point precision + data_T data_cache[CONFIG_T::n_in]; + int data_round; + int index; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + data_cache[ii] = data[ii]; + exp_res[ii] = 0; + } + + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + for (int jj = 0; jj < CONFIG_T::n_in; jj++) { + if (ii == jj) + exp_diff_res = 1; + else { + data_round = (data_cache[jj] - data_cache[ii]) * CONFIG_T::table_size / 16; + index = data_round + 8 * CONFIG_T::table_size / 16; + if (index < 0) + index = 0; + if (index > CONFIG_T::table_size - 1) + index = CONFIG_T::table_size - 1; + exp_diff_res = exp_table[index]; + } + exp_res[ii] += exp_diff_res; + } + } + + // Second loop to invert + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + int exp_res_index = exp_res[ii] * CONFIG_T::table_size / 64; + if (exp_res_index < 0) + exp_res_index = 0; + if (exp_res_index > CONFIG_T::table_size - 1) + exp_res_index = CONFIG_T::table_size - 1; + // typename CONFIG_T::table_t exp_res_invert = invert_table[exp_res_index]; + res[ii] = (res_T)invert_table[exp_res_index]; + } +} + +template +void softmax_argmax(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + for (int i = 0; i < CONFIG_T::n_in; i++) { + #pragma HLS UNROLL + res[i] = (res_T)0; + } + + data_T maximum = data[0]; + int idx = 0; + + for (int i = 1; i < CONFIG_T::n_in; i++) { + #pragma HLS PIPELINE + if (data[i] > maximum) { + maximum = data[i]; + idx = i; + } + } + + res[idx] = (res_T)1; +} + +template +void softmax(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + #pragma HLS inline + switch (CONFIG_T::implementation) { + case softmax_implementation::latency: + softmax_latency(data, res); + break; + case softmax_implementation::stable: + softmax_stable(data, res); + break; + case softmax_implementation::legacy: + softmax_legacy(data, res); + break; + case softmax_implementation::argmax: + softmax_argmax(data, res); + break; + } +} + +// ************************************************* +// TanH Activation +// ************************************************* +template void init_tanh_table(typename CONFIG_T::table_t table_out[N_TABLE]) { + // Implement tanh lookup + for (int ii = 0; ii < N_TABLE; ii++) { + // First, convert from table index to X-value (signed 8-bit, range -4 to +4) + float in_val = 2 * 4.0 * (ii - float(N_TABLE) / 2.0) / float(N_TABLE); + // Next, compute lookup table function + typename CONFIG_T::table_t real_val = tanh(in_val); + // std::cout << "Tanh: Lookup table Index: " << ii<< " In Value: " << in_val << " Result: " << real_val << + // std::endl; + table_out[ii] = real_val; + } +} + +template void tanh(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + // Initialize the lookup table +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::table_t tanh_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::table_t tanh_table[CONFIG_T::table_size]; +#endif + if (!initialized) { + init_tanh_table(tanh_table); + initialized = true; + } + + #pragma HLS PIPELINE + + // Index into the lookup table based on data + int data_round; + int index; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + data_round = data[ii] * CONFIG_T::table_size / 8; + index = data_round + 4 * CONFIG_T::table_size / 8; + // std::cout << "Input: " << data[ii] << " Round: " << data_round << " Index: " << index << std::endl; + if (index < 0) + index = 0; + if (index > CONFIG_T::table_size - 1) + index = CONFIG_T::table_size - 1; + res[ii] = (res_T)tanh_table[index]; + } +} + +// ************************************************* +// Hard sigmoid Activation +// ************************************************* +template +void hard_sigmoid(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + #pragma HLS PIPELINE + + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + auto datareg = CONFIG_T::slope * data[ii] + CONFIG_T::shift; + if (datareg > 1) + datareg = 1; + else if (datareg < 0) + datareg = 0; + res[ii] = datareg; + } +} + +template +void hard_tanh(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + if (CONFIG_T::io_type == io_parallel) { + #pragma HLS PIPELINE + } + + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + auto sigmoid = CONFIG_T::slope * data[ii] + CONFIG_T::shift; + if (sigmoid > 1) + sigmoid = 1; + else if (sigmoid < 0) + sigmoid = 0; + res[ii] = 2 * sigmoid - 1; + } +} + +// ************************************************* +// Leaky RELU Activation +// ************************************************* +template +void leaky_relu(data_T data[CONFIG_T::n_in], data_T alpha, res_T res[CONFIG_T::n_in]) { + #pragma HLS PIPELINE + + data_T datareg; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + datareg = data[ii]; + if (datareg > 0) + res[ii] = datareg; + else + res[ii] = alpha * datareg; + } +} + +// ************************************************* +// Thresholded RELU Activation +// ************************************************* +template +void thresholded_relu(data_T data[CONFIG_T::n_in], data_T theta, res_T res[CONFIG_T::n_in]) { + #pragma HLS PIPELINE + + data_T datareg; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + datareg = data[ii]; + if (datareg > theta) + res[ii] = datareg; + else + res[ii] = 0; + } +} + +// ************************************************* +// Softplus Activation +// ************************************************* +inline float softplus_fcn_float(float input) { return std::log(std::exp(input) + 1.); } + +template void init_softplus_table(typename CONFIG_T::table_t table_out[N_TABLE]) { + // Default softplus function: + // result = log(exp(x) + 1) + for (int ii = 0; ii < N_TABLE; ii++) { + // First, convert from table index to X-value (signed 8-bit, range -8 to +8) + float in_val = 2 * 8.0 * (ii - float(N_TABLE) / 2.0) / float(N_TABLE); + // Next, compute lookup table function + typename CONFIG_T::table_t real_val = softplus_fcn_float(in_val); + // std::cout << "Lookup table In Value: " << in_val << " Result: " << real_val << std::endl; + table_out[ii] = real_val; + } +} + +template +void softplus(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + // Initialize the lookup table +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::table_t softplus_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::table_t softplus_table[CONFIG_T::table_size]; +#endif + if (!initialized) { + init_softplus_table(softplus_table); + initialized = true; + } + + #pragma HLS PIPELINE + + // Index into the lookup table based on data + int data_round; + int index; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + data_round = data[ii] * CONFIG_T::table_size / 16; + index = data_round + 8 * CONFIG_T::table_size / 16; + if (index < 0) + index = 0; + if (index > CONFIG_T::table_size - 1) + index = CONFIG_T::table_size - 1; + res[ii] = (res_T)softplus_table[index]; + } +} + +// ************************************************* +// Softsign Activation +// ************************************************* +inline float softsign_fcn_float(float input) { return input / (std::abs(input) + 1.); } + +template void init_softsign_table(typename CONFIG_T::table_t table_out[N_TABLE]) { + // Default softsign function: + // result = x / (abs(x) + 1) + for (int ii = 0; ii < N_TABLE; ii++) { + // First, convert from table index to X-value (signed 8-bit, range -8 to +8) + float in_val = 2 * 8.0 * (ii - float(N_TABLE) / 2.0) / float(N_TABLE); + // Next, compute lookup table function + typename CONFIG_T::table_t real_val = softsign_fcn_float(in_val); + // std::cout << "Lookup table In Value: " << in_val << " Result: " << real_val << std::endl; + table_out[ii] = real_val; + } +} + +template +void softsign(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + // Initialize the lookup table +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::table_t softsign_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::table_t softsign_table[CONFIG_T::table_size]; +#endif + if (!initialized) { + init_softsign_table(softsign_table); + initialized = true; + } + + #pragma HLS PIPELINE + + // Index into the lookup table based on data + int data_round; + int index; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + data_round = data[ii] * CONFIG_T::table_size / 16; + index = data_round + 8 * CONFIG_T::table_size / 16; + if (index < 0) + index = 0; + if (index > CONFIG_T::table_size - 1) + index = CONFIG_T::table_size - 1; + res[ii] = (res_T)softsign_table[index]; + } +} + +// ************************************************* +// ELU Activation +// ************************************************* +inline float elu_fcn_float(float input) { return std::exp(input) - 1.; } + +template void init_elu_table(typename CONFIG_T::table_t table_out[N_TABLE]) { + // Default ELU function: + // result = alpha * (e^(x) - 1) + for (int ii = 0; ii < N_TABLE; ii++) { + // First, convert from table index to X-value (signed 8-bit, range -8 to 0) + float in_val = -8.0 * ii / float(N_TABLE); + // Next, compute lookup table function + typename CONFIG_T::table_t real_val = elu_fcn_float(in_val); + // std::cout << "Lookup table In Value: " << in_val << " Result: " << real_val << std::endl; + table_out[ii] = real_val; + } +} + +template +void elu(data_T data[CONFIG_T::n_in], const res_T alpha, res_T res[CONFIG_T::n_in]) { + // Initialize the lookup table +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::table_t elu_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::table_t elu_table[CONFIG_T::table_size]; +#endif + if (!initialized) { + init_elu_table(elu_table); + initialized = true; + } + + #pragma HLS PIPELINE + + data_T datareg; + // Index into the lookup table based on data + int index; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + datareg = data[ii]; + if (datareg >= 0) { + res[ii] = datareg; + } else { + index = datareg * CONFIG_T::table_size / -8; + if (index > CONFIG_T::table_size - 1) + index = CONFIG_T::table_size - 1; + res[ii] = alpha * elu_table[index]; + } + } +} + +template void elu(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + elu(data, 1.0, res); +} + +// ************************************************* +// SELU Activation +// ************************************************* +inline float selu_fcn_float(float input) { + return 1.0507009873554804934193349852946 * (1.6732632423543772848170429916717 * (std::exp(input) - 1.)); +} + +template void init_selu_table(typename CONFIG_T::table_t table_out[N_TABLE]) { + // Default SELU function: + // result = 1.05 * (1.673 * (e^(x) - 1)) + for (int ii = 0; ii < N_TABLE; ii++) { + // First, convert from table index to X-value (signed 8-bit, range -8 to 0) + float in_val = -8.0 * ii / float(N_TABLE); + // Next, compute lookup table function + typename CONFIG_T::table_t real_val = selu_fcn_float(in_val); + // std::cout << "Lookup table In Value: " << in_val << " Result: " << real_val << std::endl; + table_out[ii] = real_val; + } +} + +template void selu(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + // Initialize the lookup table +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::table_t selu_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::table_t selu_table[CONFIG_T::table_size]; +#endif + if (!initialized) { + init_selu_table(selu_table); + initialized = true; + } + + #pragma HLS PIPELINE + + data_T datareg; + // Index into the lookup table based on data + int index; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + datareg = data[ii]; + if (datareg >= 0) { + res[ii] = res_T(1.0507009873554804934193349852946) * datareg; + } else { + index = datareg * CONFIG_T::table_size / -8; + if (index > CONFIG_T::table_size - 1) + index = CONFIG_T::table_size - 1; + res[ii] = selu_table[index]; + } + } +} + +// ************************************************* +// PReLU Activation +// ************************************************* +template +void prelu(data_T data[CONFIG_T::n_in], data_T alpha[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + #pragma HLS PIPELINE + + data_T datareg; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + datareg = data[ii]; + if (datareg > 0) + res[ii] = datareg; + else + res[ii] = alpha[ii] * datareg; + } +} + +// ************************************************* +// Binary TanH Activation +// ************************************************* +template +void binary_tanh(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + #pragma HLS PIPELINE + + data_T datareg; + res_T cache; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + datareg = data[ii]; + if (datareg > 0) + cache = 1; + else + cache = -1; + + res[ii] = (res_T)cache; + } +} + +// ************************************************* +// Ternary TanH Activation +// ************************************************* +template +void ternary_tanh(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + #pragma HLS PIPELINE + + data_T datareg; + res_T cache; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + datareg = 2 * data[ii]; + if (datareg > 1) + cache = 1; + else if (datareg > -1 && datareg <= 1) + cache = 0; + else + cache = -1; + + res[ii] = (res_T)cache; + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_activation_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_activation_stream.h new file mode 100644 index 00000000..b72809ef --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_activation_stream.h @@ -0,0 +1,777 @@ +#ifndef NNET_ACTIVATION_STREAM_H_ +#define NNET_ACTIVATION_STREAM_H_ + +#include "ap_fixed.h" +#include "hls_stream.h" +#include "nnet_activation.h" +#include "nnet_common.h" +#include "nnet_stream.h" +#include "nnet_types.h" +#include + +namespace nnet { + +// ************************************************* +// LINEAR Activation +// ************************************************* +template void linear(hls::stream &data, hls::stream &res) { +LinearActLoop: + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + LinearPackLoop: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + out_data[j] = in_data[j]; + } + + res.write(out_data); + } +} + +// ************************************************* +// RELU Activation +// ************************************************* +template void relu(hls::stream &data, hls::stream &res) { +ReLUActLoop: + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + ReLUPackLoop: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + if (in_data[j] > 0) + out_data[j] = in_data[j]; + else + out_data[j] = 0; + } + + res.write(out_data); + } +} + +// ************************************************* +// Sigmoid Activation +// ************************************************* + +template void sigmoid(hls::stream &data, hls::stream &res) { + // Initialize the lookup table +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::table_t sigmoid_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::table_t sigmoid_table[CONFIG_T::table_size]; +#endif + if (!initialized) { + init_sigmoid_table(sigmoid_table); + initialized = true; + } + +SigmoidActLoop: + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + SigmoidPackLoop: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + int data_round = in_data[j] * CONFIG_T::table_size / 16; + int index = data_round + 8 * CONFIG_T::table_size / 16; + if (index < 0) + index = 0; + else if (index > CONFIG_T::table_size - 1) + index = CONFIG_T::table_size - 1; + out_data[j] = sigmoid_table[index]; + } + + res.write(out_data); + } +} + +// ************************************************* +// Softmax Activation +// ************************************************* + +template +void softmax_latency(hls::stream &data, hls::stream &res) { + // Initialize the lookup tables +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::exp_table_t exp_table[CONFIG_T::table_size]; + typename CONFIG_T::inv_table_t invert_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::exp_table_t exp_table[CONFIG_T::table_size]; + static typename CONFIG_T::inv_table_t invert_table[CONFIG_T::table_size]; + +#endif + if (!initialized) { + // Note we are exponentiating the inputs, which have type data_T + init_exp_table(exp_table); + // Note we are inverting the exponentials, which have type exp_table_t + init_invert_table(invert_table); + initialized = true; + } + + constexpr unsigned multiplier_limit = DIV_ROUNDUP(data_T::size, CONFIG_T::reuse_factor); + constexpr unsigned ii = data_T::size / multiplier_limit; + + // Calculate all the e^x's + typename CONFIG_T::exp_table_t exp_res[data_T::size]; + #pragma HLS array_partition variable=exp_res complete + typename CONFIG_T::exp_table_t exp_sum(0); +SoftmaxExpLoop: + for (unsigned i = 0; i < CONFIG_T::n_in / data_T::size; i++) { + #pragma HLS PIPELINE II=ii + + data_T in_pack = data.read(); + SoftmaxExpPackLoop: + for (unsigned j = 0; j < data_T::size; j++) { + #pragma HLS UNROLL + unsigned x = softmax_idx_from_real_val(in_pack[j]); + exp_res[j] = exp_table[x]; + } + + // Explicitly sum the results with an adder tree. + // Rounding & Saturation mode, which improve accuracy, prevent Vivado from expression balancing + Op_add op_add; + exp_sum = + reduce>(exp_res, op_add); + + typename CONFIG_T::inv_table_t inv_exp_sum = + invert_table[softmax_idx_from_real_val(exp_sum)]; + + res_T out_pack; + PRAGMA_DATA_PACK(out_pack) + + SoftmaxInvPackLoop: + for (unsigned j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + #pragma HLS ALLOCATION operation instances=mul limit=multiplier_limit + out_pack[j] = exp_res[j] * inv_exp_sum; + } + res.write(out_pack); + } +} + +template +void softmax_stable(hls::stream &data, hls::stream &res) { + // Initialize the lookup tables +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::exp_table_t exp_table[CONFIG_T::table_size]; + typename CONFIG_T::inv_table_t invert_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::exp_table_t exp_table[CONFIG_T::table_size]; + static typename CONFIG_T::inv_table_t invert_table[CONFIG_T::table_size]; + +#endif + if (!initialized) { + // Note we are exponentiating the inputs, which have type data_T + init_exp_table(exp_table); + // Note we are inverting the exponentials, which have type exp_table_t + init_invert_table(invert_table); + initialized = true; + } + + constexpr unsigned multiplier_limit = DIV_ROUNDUP(data_T::size, CONFIG_T::reuse_factor); + constexpr unsigned ii = data_T::size / multiplier_limit; + + typename data_T::value_type data_array[data_T::size]; +#pragma HLS ARRAY_PARTITION variable=data_array complete +SoftmaxArrayLoop: + for (unsigned i = 0; i < CONFIG_T::n_in / data_T::size; i++) { + #pragma HLS PIPELINE II=ii + + data_T in_pack = data.read(); + SoftmaxArrayPackLoop: + for (unsigned j = 0; j < data_T::size; j++) { + #pragma HLS UNROLL + data_array[j] = in_pack[j]; + } + + // Find the max and compute all delta(x_i, x_max) + Op_max op_max; + typename data_T::value_type x_max = + reduce>(data_array, op_max); + + // For the diffs, use the same type as the input but force rounding and saturation + ap_fixed d_xi_xmax[data_T::size]; + for (unsigned j = 0; j < data_T::size; j++) { + #pragma HLS UNROLL + d_xi_xmax[j] = data_array[j] - x_max; + } + + // Calculate all the e^x's + typename CONFIG_T::exp_table_t exp_res[data_T::size]; + #pragma HLS ARRAY_PARTITION variable=exp_res complete + typename CONFIG_T::exp_table_t exp_sum(0); + for (unsigned j = 0; j < data_T::size; j++) { + #pragma HLS UNROLL + unsigned x = softmax_idx_from_real_val(d_xi_xmax[j]); + exp_res[j] = exp_table[x]; + } + + // Explicitly sum the results with an adder tree. + // Rounding & Saturation mode, which improve accuracy, prevent Vivado from expression balancing + Op_add op_add; + exp_sum = + reduce>(exp_res, op_add); + + typename CONFIG_T::inv_table_t inv_exp_sum = + invert_table[softmax_idx_from_real_val(exp_sum)]; + + res_T out_pack; + PRAGMA_DATA_PACK(out_pack) + + SoftmaxInvPackLoop: + for (unsigned j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + #pragma HLS ALLOCATION operation instances=mul limit=multiplier_limit + out_pack[j] = exp_res[j] * inv_exp_sum; + } + res.write(out_pack); + } +} + +template +void softmax_legacy(hls::stream &data, hls::stream &res) { + // Initialize the lookup table +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::table_t exp_table[CONFIG_T::table_size]; + typename CONFIG_T::table_t invert_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::table_t exp_table[CONFIG_T::table_size]; + static typename CONFIG_T::table_t invert_table[CONFIG_T::table_size]; +#endif + if (!initialized) { + init_exp_table_legacy(exp_table); + init_invert_table_legacy(invert_table); + initialized = true; + } + + // Index into the lookup table based on data for exponentials + typename CONFIG_T::table_t exp_res[data_T::size]; + typename CONFIG_T::table_t exp_diff_res; + typename data_T::value_type data_cache[data_T::size]; + +SoftmaxInitLoop: + for (unsigned s = 0; s < CONFIG_T::n_in / data_T::size; s++) { + #pragma HLS PIPELINE + data_T in_pack = data.read(); + SoftmaxInitPackLoop: + for (unsigned j = 0; j < data_T::size; j++) { + #pragma HLS UNROLL + data_cache[j] = in_pack[j]; + exp_res[j] = 0; + } + + SoftmaxExpLoop: + for (int i = 0; i < data_T::size; i++) { + #pragma HLS UNROLL + SoftmaxExpInner: + for (int j = 0; j < data_T::size; j++) { + #pragma HLS UNROLL + + if (i == j) { + exp_diff_res = 1; + } else { + int data_round = (data_cache[j] - data_cache[i]) * CONFIG_T::table_size / 16; + int index = data_round + 8 * CONFIG_T::table_size / 16; + if (index < 0) + index = 0; + if (index > CONFIG_T::table_size - 1) + index = CONFIG_T::table_size - 1; + exp_diff_res = exp_table[index]; + } + + exp_res[i] += exp_diff_res; + } + } + + res_T out_pack; + PRAGMA_DATA_PACK(out_pack) + + SoftmaxInvPackLoop: + for (unsigned j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + + int exp_res_index = exp_res[j] * CONFIG_T::table_size / 64; + if (exp_res_index < 0) + exp_res_index = 0; + if (exp_res_index > CONFIG_T::table_size - 1) + exp_res_index = CONFIG_T::table_size - 1; + + out_pack[j] = (typename res_T::value_type)invert_table[exp_res_index]; + } + res.write(out_pack); + } +} + +template +void softmax_argmax(hls::stream &data, hls::stream &res) { + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + data_T in_data = data.read(); + res_T out_data; + + for (int i = 0; i < res_T::size; i++) { + #pragma HLS UNROLL + out_data[i] = (typename res_T::value_type)0; + } + + typename data_T::value_type maximum = in_data[0]; + int idx = 0; + + for (int i = 1; i < res_T::size; i++) { + #pragma HLS PIPELINE + if (in_data[i] > maximum) { + maximum = in_data[i]; + idx = i; + } + } + + out_data[idx] = (typename res_T::value_type)1; + res.write(out_data); + } +} + +template void softmax(hls::stream &data, hls::stream &res) { + assert(CONFIG_T::axis == -1); + + switch (CONFIG_T::implementation) { + case softmax_implementation::latency: + softmax_latency(data, res); + break; + case softmax_implementation::stable: + softmax_stable(data, res); + break; + case softmax_implementation::legacy: + softmax_legacy(data, res); + break; + case softmax_implementation::argmax: + softmax_argmax(data, res); + break; + } +} + +// ************************************************* +// TanH Activation +// ************************************************* + +template void tanh(hls::stream &data, hls::stream &res) { + // Initialize the lookup table +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::table_t tanh_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::table_t tanh_table[CONFIG_T::table_size]; +#endif + if (!initialized) { + init_tanh_table(tanh_table); + initialized = true; + } + +TanHActLoop: + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + TanHPackLoop: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + int data_round = in_data[j] * CONFIG_T::table_size / 8; + int index = data_round + 4 * CONFIG_T::table_size / 8; + if (index < 0) + index = 0; + else if (index > CONFIG_T::table_size - 1) + index = CONFIG_T::table_size - 1; + out_data[j] = tanh_table[index]; + } + + res.write(out_data); + } +} + +// ************************************************* +// Hard sigmoid Activation +// ************************************************* + +template +void hard_sigmoid(hls::stream &data, hls::stream &res) { + +HardSigmoidActLoop: + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + HardSigmoidPackLoop: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + auto datareg = CONFIG_T::slope * in_data[j] + CONFIG_T::shift; + if (datareg > 1) + datareg = 1; + else if (datareg < 0) + datareg = 0; + out_data[j] = datareg; + } + + res.write(out_data); + } +} + +template void hard_tanh(hls::stream &data, hls::stream &res) { + +HardSigmoidActLoop: + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + HardSigmoidPackLoop: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + auto sigmoid = CONFIG_T::slope * in_data[j] + CONFIG_T::shift; + if (sigmoid > 1) + sigmoid = 1; + else if (sigmoid < 0) + sigmoid = 0; + out_data[j] = 2 * sigmoid - 1; + } + + res.write(out_data); + } +} + +// ************************************************* +// Leaky RELU Activation +// ************************************************* + +template +void leaky_relu(hls::stream &data, typename data_T::value_type alpha, hls::stream &res) { +LeakyReLUActLoop: + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + LeakyReLUPackLoop: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + if (in_data[j] > 0) + out_data[j] = in_data[j]; + else + out_data[j] = alpha * in_data[j]; + } + res.write(out_data); + } +} + +// ************************************************* +// Thresholded RELU Activation +// ************************************************* + +template +void thresholded_relu(hls::stream &data, typename data_T::value_type theta, hls::stream &res) { +ThresholdedReLUActLoop: + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + ThresholdedReLUPackLoop: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + if (in_data[j] > theta) + out_data[j] = in_data[j]; + else + out_data[j] = 0; + } + + res.write(out_data); + } +} + +// ************************************************* +// Softplus Activation +// ************************************************* + +template void softplus(hls::stream &data, hls::stream &res) { + // Initialize the lookup table +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::table_t softplus_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::table_t softplus_table[CONFIG_T::table_size]; +#endif + if (!initialized) { + init_softplus_table(softplus_table); + initialized = true; + } + +SoftplusActLoop: + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + SoftplusPackLoop: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + int data_round = in_data[j] * CONFIG_T::table_size / 16; + int index = data_round + 8 * CONFIG_T::table_size / 16; + if (index < 0) + index = 0; + else if (index > CONFIG_T::table_size - 1) + index = CONFIG_T::table_size - 1; + out_data[j] = softplus_table[index]; + } + res.write(out_data); + } +} + +// ************************************************* +// Softsign Activation +// ************************************************* + +template void softsign(hls::stream &data, hls::stream &res) { + // Initialize the lookup table +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::table_t softsign_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::table_t softsign_table[CONFIG_T::table_size]; +#endif + if (!initialized) { + init_softsign_table(softsign_table); + initialized = true; + } + +SoftsignActLoop: + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + SoftsignPackLoop: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + int data_round = in_data[j] * CONFIG_T::table_size / 16; + int index = data_round + 8 * CONFIG_T::table_size / 16; + if (index < 0) + index = 0; + else if (index > CONFIG_T::table_size - 1) + index = CONFIG_T::table_size - 1; + out_data[j] = softsign_table[index]; + } + res.write(out_data); + } +} + +// ************************************************* +// ELU Activation +// ************************************************* +template +void elu(hls::stream &data, typename data_T::value_type alpha, hls::stream &res) { + // Initialize the lookup table +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::table_t elu_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::table_t elu_table[CONFIG_T::table_size]; +#endif + if (!initialized) { + init_elu_table(elu_table); + initialized = true; + } + +EluActLoop: + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + EluPackLoop: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + + typename data_T::value_type datareg = in_data[j]; + if (datareg >= 0) { + out_data[j] = datareg; + } else { + int index = datareg * CONFIG_T::table_size / -8; + if (index > CONFIG_T::table_size - 1) + index = CONFIG_T::table_size - 1; + out_data[j] = alpha * elu_table[index]; + } + } + res.write(out_data); + } +} + +template void elu(hls::stream &data, hls::stream &res) { + elu(data, 1.0, res); +} + +// ************************************************* +// SELU Activation +// ************************************************* + +template void selu(hls::stream &data, hls::stream &res) { + // Initialize the lookup table +#ifdef __HLS_SYN__ + bool initialized = false; + typename CONFIG_T::table_t selu_table[CONFIG_T::table_size]; +#else + static bool initialized = false; + static typename CONFIG_T::table_t selu_table[CONFIG_T::table_size]; +#endif + if (!initialized) { + init_selu_table(selu_table); + initialized = true; + } + +SeluActLoop: + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + SeluPackLoop: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + + typename data_T::value_type datareg = in_data[j]; + if (datareg >= 0) { + out_data[j] = (typename data_T::value_type)1.0507009873554804934193349852946 * datareg; + } else { + int index = datareg * CONFIG_T::table_size / -8; + if (index > CONFIG_T::table_size - 1) + index = CONFIG_T::table_size - 1; + out_data[j] = selu_table[index]; + } + } + res.write(out_data); + } +} + +// ************************************************* +// PReLU Activation +// ************************************************* + +template +void prelu(hls::stream &data, typename data_T::value_type alpha[CONFIG_T::n_in], hls::stream &res) { +PReLUActLoop: + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + PReLUPackLoop: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + if (in_data[j] > 0) + out_data[j] = in_data[j]; + else + out_data[j] = alpha[i * res_T::size + j] * in_data[j]; + } + res.write(out_data); + } +} + +// ************************************************* +// Binary TanH Activation +// ************************************************* +template +void binary_tanh(hls::stream &data, hls::stream &res) { +PReLUActLoop: + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + PReLUPackLoop: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + if (in_data[j] > 0) + out_data[j] = (typename res_T::value_type)1; + else + out_data[j] = (typename res_T::value_type) - 1; + } + res.write(out_data); + } +} + +// ************************************************* +// Ternary TanH Activation +// ************************************************* +template +void ternary_tanh(hls::stream &data, hls::stream &res) { +PReLUActLoop: + for (int i = 0; i < CONFIG_T::n_in / res_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + PReLUPackLoop: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + if (in_data[j] > 1) + out_data[j] = (typename res_T::value_type)1; + else if (in_data[j] <= -1) + out_data[j] = (typename res_T::value_type) - 1; + else + out_data[j] = (typename res_T::value_type)0; + } + res.write(out_data); + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_array.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_array.h new file mode 100644 index 00000000..d179102a --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_array.h @@ -0,0 +1,52 @@ +#ifndef NNET_ARRAY_H_ +#define NNET_ARRAY_H_ + +#include + +namespace nnet { + +struct transpose_config { + static const unsigned height = 10; + static const unsigned width = 10; + static const unsigned depth = 10; + static constexpr unsigned perm[3] = {2, 0, 1}; +}; + +template +void transpose_2d(data_T data[CONFIG_T::height * CONFIG_T::width], res_T data_t[CONFIG_T::height * CONFIG_T::width]) { + #pragma HLS PIPELINE + + for (int i = 0; i < CONFIG_T::height; i++) { + for (int j = 0; j < CONFIG_T::width; j++) { + data_t[j * CONFIG_T::height + i] = data[i * CONFIG_T::width + j]; + } + } +} + +template +void transpose_3d(data_T data[CONFIG_T::depth * CONFIG_T::height * CONFIG_T::width], + res_T data_t[CONFIG_T::depth * CONFIG_T::height * CONFIG_T::width]) { + unsigned dims[3] = {CONFIG_T::depth, CONFIG_T::height, CONFIG_T::width}; + unsigned dims_t[3]; + dims_t[0] = dims[CONFIG_T::perm[0]]; + dims_t[1] = dims[CONFIG_T::perm[1]]; + dims_t[2] = dims[CONFIG_T::perm[2]]; + + int idx[3] = {0}, idx_t[3] = {0}; + for (idx[0] = 0; idx[0] < dims[0]; idx[0]++) { + for (idx[1] = 0; idx[1] < dims[1]; idx[1]++) { + for (idx[2] = 0; idx[2] < dims[2]; idx[2]++) { + idx_t[0] = idx[CONFIG_T::perm[0]]; + idx_t[1] = idx[CONFIG_T::perm[1]]; + idx_t[2] = idx[CONFIG_T::perm[2]]; + + data_t[idx_t[0] * dims_t[1] * dims_t[2] + idx_t[1] * dims_t[2] + idx_t[2]] = + data[idx[0] * dims[1] * dims[2] + idx[1] * dims[2] + idx[2]]; + } + } + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_batchnorm.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_batchnorm.h new file mode 100644 index 00000000..d8be45b7 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_batchnorm.h @@ -0,0 +1,124 @@ +#ifndef NNET_BATCHNORM_H_ +#define NNET_BATCHNORM_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_dense.h" +#include + +namespace nnet { + +struct batchnorm_config { + // Internal data type definitions + typedef float bias_t; + typedef float scale_t; + + // Layer Sizes + static const unsigned n_in = 10; + static const unsigned n_filt = -1; + static const unsigned n_scale_bias = 10; + + // Resource reuse info + static const unsigned io_type = io_parallel; + static const unsigned reuse_factor = 1; + static const bool store_weights_in_bram = false; + static const unsigned n_zeros = 0; + // partitioning arrays cyclically to go with roll factors? + template using product = nnet::product::mult; +}; + +template +void normalize(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in], + typename CONFIG_T::scale_t scale[CONFIG_T::n_scale_bias], + typename CONFIG_T::bias_t bias[CONFIG_T::n_scale_bias]) { + data_T cache; + + // Use a function_instantiate in case it helps to explicitly optimize unchanging weights/biases + #pragma HLS function_instantiate variable=scale,bias + + // For parallel inputs: + // - completely partition arrays -- target fabric + // - if we have an unroll factor, limit number of multipliers + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + + // #pragma HLS ARRAY_PARTITION variable=weights complete // remove this line for now, it breaks compression sometimes + #pragma HLS ARRAY_PARTITION variable=scale complete + #pragma HLS ARRAY_PARTITION variable=bias complete + + #pragma HLS ALLOCATION operation instances=mul limit=CONFIG_T::multiplier_limit + +// Calcuate result +Result: + for (int ires = 0; ires < CONFIG_T::n_in; ires++) { + if (CONFIG_T::n_filt == -1) { + res[ires] = CONFIG_T::template product::product(data[ires], scale[ires]) + + bias[ires]; + } else { + int norm_index = ires % CONFIG_T::n_filt; + res[ires] = + CONFIG_T::template product::product(data[ires], scale[norm_index]) + + bias[norm_index]; + } + } +} + +// **************************************************** +// Merged Batch Normalization and Quantized Tanh +// **************************************************** +struct batchnorm_quantized_tanh_config { + // Layer Sizes + static const unsigned n_in = 10; + static const unsigned n_filt = -1; + static const unsigned n_scale_bias = 10; + + // Resource reuse info + static const unsigned io_type = io_parallel; + static const unsigned reuse_factor = 1; + static const unsigned n_zeros = 0; +}; + +template +void normalize_binary_tanh(data_T data[CONFIG_T::n_in], ap_uint<1> res[CONFIG_T::n_in], + data_T threshold[CONFIG_T::n_scale_bias]) { + #pragma HLS PIPELINE + #pragma HLS ARRAY_PARTITION variable=res complete + + data_T datareg; + ap_uint<1> cache; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + datareg = data[ii]; + int norm_index = CONFIG_T::n_filt == -1 ? ii : ii % CONFIG_T::n_filt; + if (datareg >= threshold[norm_index]) + cache = 1; + else + cache = 0; + + res[ii] = cache; + } +} + +template +void normalize_ternary_tanh(data_T data[CONFIG_T::n_in], ap_int<2> res[CONFIG_T::n_in], + data_T threshold_hi[CONFIG_T::n_scale_bias], data_T threshold_lo[CONFIG_T::n_scale_bias]) { + #pragma HLS PIPELINE + #pragma HLS ARRAY_PARTITION variable=res complete + + data_T datareg; + ap_int<2> cache; + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + datareg = data[ii]; + int norm_index = CONFIG_T::n_filt == -1 ? ii : ii % CONFIG_T::n_filt; + if (datareg > threshold_hi[norm_index]) + cache = 1; + else if (datareg <= threshold_lo[norm_index]) + cache = -1; + else + cache = 0; + + res[ii] = cache; + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_batchnorm_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_batchnorm_stream.h new file mode 100644 index 00000000..a064677d --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_batchnorm_stream.h @@ -0,0 +1,123 @@ +#ifndef NNET_BATCHNORM_STREAM_H_ +#define NNET_BATCHNORM_STREAM_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_mult.h" +#include "nnet_types.h" + +namespace nnet { + +// **************************************************** +// Streaming Batch Normalization +// **************************************************** + +template +void normalize(hls::stream &data, hls::stream &res, typename CONFIG_T::scale_t scale[CONFIG_T::n_scale_bias], + typename CONFIG_T::bias_t bias[CONFIG_T::n_scale_bias]) { + #pragma HLS ARRAY_PARTITION variable=scale complete + #pragma HLS ARRAY_PARTITION variable=bias complete + + constexpr unsigned ii = CONFIG_T::n_in / CONFIG_T::multiplier_limit; + #pragma HLS ALLOCATION operation instances=mul limit=CONFIG_T::multiplier_limit + +BatchNormLoop: + for (int i = 0; i < CONFIG_T::n_in / data_T::size; i++) { + #pragma HLS PIPELINE II=ii + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + BatchNormpack: + for (int j = 0; j < data_T::size; j++) { + #pragma HLS UNROLL + int norm_index; + if (CONFIG_T::n_filt == -1) { + norm_index = i * data_T::size + j; + } else { + norm_index = j % CONFIG_T::n_filt; + } + out_data[j] = CONFIG_T::template product::product( + in_data[j], scale[norm_index]) + + bias[norm_index]; + } + + res.write(out_data); + } +} + +// **************************************************** +// Merged Batch Normalization and Quantized Tanh +// **************************************************** +template +void normalize_binary_tanh(hls::stream &data, hls::stream, CONFIG_T::n_scale_bias>> &res, + typename data_T::value_type threshold[CONFIG_T::n_scale_bias]) { + #pragma HLS ARRAY_PARTITION variable=threshold complete + +BinaryNormLoop: + for (int i = 0; i < CONFIG_T::n_in / data_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + nnet::array, CONFIG_T::n_scale_bias> out_data; + PRAGMA_DATA_PACK(out_data) + + BatchNormPack: + for (int j = 0; j < data_T::size; j++) { + #pragma HLS UNROLL + int norm_index; + if (CONFIG_T::n_filt == -1) { + norm_index = i * data_T::size + j; + } else { + norm_index = j % CONFIG_T::n_filt; + } + out_data[j] = (in_data[j] >= threshold[norm_index]) ? 1 : 0; + } + + res.write(out_data); + } +} + +template +void normalize_ternary_tanh(hls::stream &data, hls::stream, CONFIG_T::n_scale_bias>> &res, + typename data_T::value_type threshold_hi[CONFIG_T::n_scale_bias], + typename data_T::value_type threshold_lo[CONFIG_T::n_scale_bias]) { + #pragma HLS ARRAY_PARTITION variable=threshold_hi complete + #pragma HLS ARRAY_PARTITION variable=threshold_lo complete + +TernaryNormLoop: + for (int i = 0; i < CONFIG_T::n_in / data_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + nnet::array, CONFIG_T::n_scale_bias> out_data; + PRAGMA_DATA_PACK(out_data) + + BatchNormPack: + for (int j = 0; j < data_T::size; j++) { + #pragma HLS UNROLL + + int norm_index; + if (CONFIG_T::n_filt == -1) { + norm_index = i * data_T::size + j; + } else { + norm_index = j % CONFIG_T::n_filt; + } + + if (in_data[j] > threshold_hi[norm_index]) { + out_data[j] = 1; + } else if (in_data[j] <= threshold_lo[norm_index]) { + out_data[j] = -1; + } else { + out_data[j] = 0; + } + } + + res.write(out_data); + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_code_gen.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_code_gen.h new file mode 100644 index 00000000..5bffda3d --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_code_gen.h @@ -0,0 +1,1262 @@ +#ifndef NNET_INSTR_GEN_H_ +#define NNET_INSTR_GEN_H_ + +#include "nnet_helpers.h" +#include + +namespace nnet { + +template class FillConv1DBuffer { + public: + static void fill_buffer(data_T data[CONFIG_T::in_width * CONFIG_T::n_chan], + data_T buffer[CONFIG_T::n_pixels][CONFIG_T::filt_width * CONFIG_T::n_chan], + const unsigned partition) { + // To be implemented in subclasses + } +}; + +template class FillConv2DBuffer { + public: + static void + fill_buffer(data_T data[CONFIG_T::in_height * CONFIG_T::in_width * CONFIG_T::n_chan], + data_T buffer[CONFIG_T::n_pixels][CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan], + const unsigned partition) { + // To be implemented in subclasses + } +}; + +// hls4ml insert code +template +class fill_buffer_22 : public FillConv1DBuffer { + public: + static void fill_buffer( + data_T data[CONFIG_T::in_width * CONFIG_T::n_chan], + data_T buffer[CONFIG_T::n_pixels][CONFIG_T::filt_width * CONFIG_T::n_chan], + const unsigned partition + ) { + if (partition == 0) { + buffer[0][0] = data[0]; buffer[0][1] = data[1]; buffer[0][2] = data[2]; buffer[0][3] = data[3]; buffer[0][4] = data[4]; buffer[0][5] = data[5]; buffer[0][6] = data[6]; buffer[0][7] = data[7]; + + } + if (partition == 1) { + buffer[0][0] = data[8]; buffer[0][1] = data[9]; buffer[0][2] = data[10]; buffer[0][3] = data[11]; buffer[0][4] = data[12]; buffer[0][5] = data[13]; buffer[0][6] = data[14]; buffer[0][7] = data[15]; + + } + if (partition == 2) { + buffer[0][0] = data[16]; buffer[0][1] = data[17]; buffer[0][2] = data[18]; buffer[0][3] = data[19]; buffer[0][4] = data[20]; buffer[0][5] = data[21]; buffer[0][6] = data[22]; buffer[0][7] = data[23]; + + } + if (partition == 3) { + buffer[0][0] = data[24]; buffer[0][1] = data[25]; buffer[0][2] = data[26]; buffer[0][3] = data[27]; buffer[0][4] = data[28]; buffer[0][5] = data[29]; buffer[0][6] = data[30]; buffer[0][7] = data[31]; + + } + if (partition == 4) { + buffer[0][0] = data[32]; buffer[0][1] = data[33]; buffer[0][2] = data[34]; buffer[0][3] = data[35]; buffer[0][4] = data[36]; buffer[0][5] = data[37]; buffer[0][6] = data[38]; buffer[0][7] = data[39]; + + } + if (partition == 5) { + buffer[0][0] = data[40]; buffer[0][1] = data[41]; buffer[0][2] = data[42]; buffer[0][3] = data[43]; buffer[0][4] = data[44]; buffer[0][5] = data[45]; buffer[0][6] = data[46]; buffer[0][7] = data[47]; + + } + if (partition == 6) { + buffer[0][0] = data[48]; buffer[0][1] = data[49]; buffer[0][2] = data[50]; buffer[0][3] = data[51]; buffer[0][4] = data[52]; buffer[0][5] = data[53]; buffer[0][6] = data[54]; buffer[0][7] = data[55]; + + } + if (partition == 7) { + buffer[0][0] = data[56]; buffer[0][1] = data[57]; buffer[0][2] = data[58]; buffer[0][3] = data[59]; buffer[0][4] = data[60]; buffer[0][5] = data[61]; buffer[0][6] = data[62]; buffer[0][7] = data[63]; + + } + if (partition == 8) { + buffer[0][0] = data[64]; buffer[0][1] = data[65]; buffer[0][2] = data[66]; buffer[0][3] = data[67]; buffer[0][4] = data[68]; buffer[0][5] = data[69]; buffer[0][6] = data[70]; buffer[0][7] = data[71]; + + } + if (partition == 9) { + buffer[0][0] = data[72]; buffer[0][1] = data[73]; buffer[0][2] = data[74]; buffer[0][3] = data[75]; buffer[0][4] = data[76]; buffer[0][5] = data[77]; buffer[0][6] = data[78]; buffer[0][7] = data[79]; + + } + if (partition == 10) { + buffer[0][0] = data[80]; buffer[0][1] = data[81]; buffer[0][2] = data[82]; buffer[0][3] = data[83]; buffer[0][4] = data[84]; buffer[0][5] = data[85]; buffer[0][6] = data[86]; buffer[0][7] = data[87]; + + } + if (partition == 11) { + buffer[0][0] = data[88]; buffer[0][1] = data[89]; buffer[0][2] = data[90]; buffer[0][3] = data[91]; buffer[0][4] = data[92]; buffer[0][5] = data[93]; buffer[0][6] = data[94]; buffer[0][7] = data[95]; + + } + if (partition == 12) { + buffer[0][0] = data[96]; buffer[0][1] = data[97]; buffer[0][2] = data[98]; buffer[0][3] = data[99]; buffer[0][4] = data[100]; buffer[0][5] = data[101]; buffer[0][6] = data[102]; buffer[0][7] = data[103]; + + } + if (partition == 13) { + buffer[0][0] = data[104]; buffer[0][1] = data[105]; buffer[0][2] = data[106]; buffer[0][3] = data[107]; buffer[0][4] = data[108]; buffer[0][5] = data[109]; buffer[0][6] = data[110]; buffer[0][7] = data[111]; + + } + if (partition == 14) { + buffer[0][0] = data[112]; buffer[0][1] = data[113]; buffer[0][2] = data[114]; buffer[0][3] = data[115]; buffer[0][4] = data[116]; buffer[0][5] = data[117]; buffer[0][6] = data[118]; buffer[0][7] = data[119]; + + } + if (partition == 15) { + buffer[0][0] = data[120]; buffer[0][1] = data[121]; buffer[0][2] = data[122]; buffer[0][3] = data[123]; buffer[0][4] = data[124]; buffer[0][5] = data[125]; buffer[0][6] = data[126]; buffer[0][7] = data[127]; + + } + if (partition == 16) { + buffer[0][0] = data[128]; buffer[0][1] = data[129]; buffer[0][2] = data[130]; buffer[0][3] = data[131]; buffer[0][4] = data[132]; buffer[0][5] = data[133]; buffer[0][6] = data[134]; buffer[0][7] = data[135]; + + } + if (partition == 17) { + buffer[0][0] = data[136]; buffer[0][1] = data[137]; buffer[0][2] = data[138]; buffer[0][3] = data[139]; buffer[0][4] = data[140]; buffer[0][5] = data[141]; buffer[0][6] = data[142]; buffer[0][7] = data[143]; + + } + if (partition == 18) { + buffer[0][0] = data[144]; buffer[0][1] = data[145]; buffer[0][2] = data[146]; buffer[0][3] = data[147]; buffer[0][4] = data[148]; buffer[0][5] = data[149]; buffer[0][6] = data[150]; buffer[0][7] = data[151]; + + } + if (partition == 19) { + buffer[0][0] = data[152]; buffer[0][1] = data[153]; buffer[0][2] = data[154]; buffer[0][3] = data[155]; buffer[0][4] = data[156]; buffer[0][5] = data[157]; buffer[0][6] = data[158]; buffer[0][7] = data[159]; + + } + if (partition == 20) { + buffer[0][0] = data[160]; buffer[0][1] = data[161]; buffer[0][2] = data[162]; buffer[0][3] = data[163]; buffer[0][4] = data[164]; buffer[0][5] = data[165]; buffer[0][6] = data[166]; buffer[0][7] = data[167]; + + } + if (partition == 21) { + buffer[0][0] = data[168]; buffer[0][1] = data[169]; buffer[0][2] = data[170]; buffer[0][3] = data[171]; buffer[0][4] = data[172]; buffer[0][5] = data[173]; buffer[0][6] = data[174]; buffer[0][7] = data[175]; + + } + if (partition == 22) { + buffer[0][0] = data[176]; buffer[0][1] = data[177]; buffer[0][2] = data[178]; buffer[0][3] = data[179]; buffer[0][4] = data[180]; buffer[0][5] = data[181]; buffer[0][6] = data[182]; buffer[0][7] = data[183]; + + } + if (partition == 23) { + buffer[0][0] = data[184]; buffer[0][1] = data[185]; buffer[0][2] = data[186]; buffer[0][3] = data[187]; buffer[0][4] = data[188]; buffer[0][5] = data[189]; buffer[0][6] = data[190]; buffer[0][7] = data[191]; + + } + if (partition == 24) { + buffer[0][0] = data[192]; buffer[0][1] = data[193]; buffer[0][2] = data[194]; buffer[0][3] = data[195]; buffer[0][4] = data[196]; buffer[0][5] = data[197]; buffer[0][6] = data[198]; buffer[0][7] = data[199]; + + } + if (partition == 25) { + buffer[0][0] = data[200]; buffer[0][1] = data[201]; buffer[0][2] = data[202]; buffer[0][3] = data[203]; buffer[0][4] = data[204]; buffer[0][5] = data[205]; buffer[0][6] = data[206]; buffer[0][7] = data[207]; + + } + if (partition == 26) { + buffer[0][0] = data[208]; buffer[0][1] = data[209]; buffer[0][2] = data[210]; buffer[0][3] = data[211]; buffer[0][4] = data[212]; buffer[0][5] = data[213]; buffer[0][6] = data[214]; buffer[0][7] = data[215]; + + } + if (partition == 27) { + buffer[0][0] = data[216]; buffer[0][1] = data[217]; buffer[0][2] = data[218]; buffer[0][3] = data[219]; buffer[0][4] = data[220]; buffer[0][5] = data[221]; buffer[0][6] = data[222]; buffer[0][7] = data[223]; + + } + if (partition == 28) { + buffer[0][0] = data[224]; buffer[0][1] = data[225]; buffer[0][2] = data[226]; buffer[0][3] = data[227]; buffer[0][4] = data[228]; buffer[0][5] = data[229]; buffer[0][6] = data[230]; buffer[0][7] = data[231]; + + } + if (partition == 29) { + buffer[0][0] = data[232]; buffer[0][1] = data[233]; buffer[0][2] = data[234]; buffer[0][3] = data[235]; buffer[0][4] = data[236]; buffer[0][5] = data[237]; buffer[0][6] = data[238]; buffer[0][7] = data[239]; + + } + if (partition == 30) { + buffer[0][0] = data[240]; buffer[0][1] = data[241]; buffer[0][2] = data[242]; buffer[0][3] = data[243]; buffer[0][4] = data[244]; buffer[0][5] = data[245]; buffer[0][6] = data[246]; buffer[0][7] = data[247]; + + } + if (partition == 31) { + buffer[0][0] = data[248]; buffer[0][1] = data[249]; buffer[0][2] = data[250]; buffer[0][3] = data[251]; buffer[0][4] = data[252]; buffer[0][5] = data[253]; buffer[0][6] = data[254]; buffer[0][7] = data[255]; + + } + if (partition == 32) { + buffer[0][0] = data[256]; buffer[0][1] = data[257]; buffer[0][2] = data[258]; buffer[0][3] = data[259]; buffer[0][4] = data[260]; buffer[0][5] = data[261]; buffer[0][6] = data[262]; buffer[0][7] = data[263]; + + } + if (partition == 33) { + buffer[0][0] = data[264]; buffer[0][1] = data[265]; buffer[0][2] = data[266]; buffer[0][3] = data[267]; buffer[0][4] = data[268]; buffer[0][5] = data[269]; buffer[0][6] = data[270]; buffer[0][7] = data[271]; + + } + if (partition == 34) { + buffer[0][0] = data[272]; buffer[0][1] = data[273]; buffer[0][2] = data[274]; buffer[0][3] = data[275]; buffer[0][4] = data[276]; buffer[0][5] = data[277]; buffer[0][6] = data[278]; buffer[0][7] = data[279]; + + } + if (partition == 35) { + buffer[0][0] = data[280]; buffer[0][1] = data[281]; buffer[0][2] = data[282]; buffer[0][3] = data[283]; buffer[0][4] = data[284]; buffer[0][5] = data[285]; buffer[0][6] = data[286]; buffer[0][7] = data[287]; + + } + if (partition == 36) { + buffer[0][0] = data[288]; buffer[0][1] = data[289]; buffer[0][2] = data[290]; buffer[0][3] = data[291]; buffer[0][4] = data[292]; buffer[0][5] = data[293]; buffer[0][6] = data[294]; buffer[0][7] = data[295]; + + } + if (partition == 37) { + buffer[0][0] = data[296]; buffer[0][1] = data[297]; buffer[0][2] = data[298]; buffer[0][3] = data[299]; buffer[0][4] = data[300]; buffer[0][5] = data[301]; buffer[0][6] = data[302]; buffer[0][7] = data[303]; + + } + if (partition == 38) { + buffer[0][0] = data[304]; buffer[0][1] = data[305]; buffer[0][2] = data[306]; buffer[0][3] = data[307]; buffer[0][4] = data[308]; buffer[0][5] = data[309]; buffer[0][6] = data[310]; buffer[0][7] = data[311]; + + } + if (partition == 39) { + buffer[0][0] = data[312]; buffer[0][1] = data[313]; buffer[0][2] = data[314]; buffer[0][3] = data[315]; buffer[0][4] = data[316]; buffer[0][5] = data[317]; buffer[0][6] = data[318]; buffer[0][7] = data[319]; + + } + if (partition == 40) { + buffer[0][0] = data[320]; buffer[0][1] = data[321]; buffer[0][2] = data[322]; buffer[0][3] = data[323]; buffer[0][4] = data[324]; buffer[0][5] = data[325]; buffer[0][6] = data[326]; buffer[0][7] = data[327]; + + } + if (partition == 41) { + buffer[0][0] = data[328]; buffer[0][1] = data[329]; buffer[0][2] = data[330]; buffer[0][3] = data[331]; buffer[0][4] = data[332]; buffer[0][5] = data[333]; buffer[0][6] = data[334]; buffer[0][7] = data[335]; + + } + if (partition == 42) { + buffer[0][0] = data[336]; buffer[0][1] = data[337]; buffer[0][2] = data[338]; buffer[0][3] = data[339]; buffer[0][4] = data[340]; buffer[0][5] = data[341]; buffer[0][6] = data[342]; buffer[0][7] = data[343]; + + } + if (partition == 43) { + buffer[0][0] = data[344]; buffer[0][1] = data[345]; buffer[0][2] = data[346]; buffer[0][3] = data[347]; buffer[0][4] = data[348]; buffer[0][5] = data[349]; buffer[0][6] = data[350]; buffer[0][7] = data[351]; + + } + if (partition == 44) { + buffer[0][0] = data[352]; buffer[0][1] = data[353]; buffer[0][2] = data[354]; buffer[0][3] = data[355]; buffer[0][4] = data[356]; buffer[0][5] = data[357]; buffer[0][6] = data[358]; buffer[0][7] = data[359]; + + } + if (partition == 45) { + buffer[0][0] = data[360]; buffer[0][1] = data[361]; buffer[0][2] = data[362]; buffer[0][3] = data[363]; buffer[0][4] = data[364]; buffer[0][5] = data[365]; buffer[0][6] = data[366]; buffer[0][7] = data[367]; + + } + if (partition == 46) { + buffer[0][0] = data[368]; buffer[0][1] = data[369]; buffer[0][2] = data[370]; buffer[0][3] = data[371]; buffer[0][4] = data[372]; buffer[0][5] = data[373]; buffer[0][6] = data[374]; buffer[0][7] = data[375]; + + } + if (partition == 47) { + buffer[0][0] = data[376]; buffer[0][1] = data[377]; buffer[0][2] = data[378]; buffer[0][3] = data[379]; buffer[0][4] = data[380]; buffer[0][5] = data[381]; buffer[0][6] = data[382]; buffer[0][7] = data[383]; + + } + if (partition == 48) { + buffer[0][0] = data[384]; buffer[0][1] = data[385]; buffer[0][2] = data[386]; buffer[0][3] = data[387]; buffer[0][4] = data[388]; buffer[0][5] = data[389]; buffer[0][6] = data[390]; buffer[0][7] = data[391]; + + } + if (partition == 49) { + buffer[0][0] = data[392]; buffer[0][1] = data[393]; buffer[0][2] = data[394]; buffer[0][3] = data[395]; buffer[0][4] = data[396]; buffer[0][5] = data[397]; buffer[0][6] = data[398]; buffer[0][7] = data[399]; + + } + if (partition == 50) { + buffer[0][0] = data[400]; buffer[0][1] = data[401]; buffer[0][2] = data[402]; buffer[0][3] = data[403]; buffer[0][4] = data[404]; buffer[0][5] = data[405]; buffer[0][6] = data[406]; buffer[0][7] = data[407]; + + } + if (partition == 51) { + buffer[0][0] = data[408]; buffer[0][1] = data[409]; buffer[0][2] = data[410]; buffer[0][3] = data[411]; buffer[0][4] = data[412]; buffer[0][5] = data[413]; buffer[0][6] = data[414]; buffer[0][7] = data[415]; + + } + if (partition == 52) { + buffer[0][0] = data[416]; buffer[0][1] = data[417]; buffer[0][2] = data[418]; buffer[0][3] = data[419]; buffer[0][4] = data[420]; buffer[0][5] = data[421]; buffer[0][6] = data[422]; buffer[0][7] = data[423]; + + } + if (partition == 53) { + buffer[0][0] = data[424]; buffer[0][1] = data[425]; buffer[0][2] = data[426]; buffer[0][3] = data[427]; buffer[0][4] = data[428]; buffer[0][5] = data[429]; buffer[0][6] = data[430]; buffer[0][7] = data[431]; + + } + if (partition == 54) { + buffer[0][0] = data[432]; buffer[0][1] = data[433]; buffer[0][2] = data[434]; buffer[0][3] = data[435]; buffer[0][4] = data[436]; buffer[0][5] = data[437]; buffer[0][6] = data[438]; buffer[0][7] = data[439]; + + } + if (partition == 55) { + buffer[0][0] = data[440]; buffer[0][1] = data[441]; buffer[0][2] = data[442]; buffer[0][3] = data[443]; buffer[0][4] = data[444]; buffer[0][5] = data[445]; buffer[0][6] = data[446]; buffer[0][7] = data[447]; + + } + if (partition == 56) { + buffer[0][0] = data[448]; buffer[0][1] = data[449]; buffer[0][2] = data[450]; buffer[0][3] = data[451]; buffer[0][4] = data[452]; buffer[0][5] = data[453]; buffer[0][6] = data[454]; buffer[0][7] = data[455]; + + } + if (partition == 57) { + buffer[0][0] = data[456]; buffer[0][1] = data[457]; buffer[0][2] = data[458]; buffer[0][3] = data[459]; buffer[0][4] = data[460]; buffer[0][5] = data[461]; buffer[0][6] = data[462]; buffer[0][7] = data[463]; + + } + if (partition == 58) { + buffer[0][0] = data[464]; buffer[0][1] = data[465]; buffer[0][2] = data[466]; buffer[0][3] = data[467]; buffer[0][4] = data[468]; buffer[0][5] = data[469]; buffer[0][6] = data[470]; buffer[0][7] = data[471]; + + } + if (partition == 59) { + buffer[0][0] = data[472]; buffer[0][1] = data[473]; buffer[0][2] = data[474]; buffer[0][3] = data[475]; buffer[0][4] = data[476]; buffer[0][5] = data[477]; buffer[0][6] = data[478]; buffer[0][7] = data[479]; + + } + if (partition == 60) { + buffer[0][0] = data[480]; buffer[0][1] = data[481]; buffer[0][2] = data[482]; buffer[0][3] = data[483]; buffer[0][4] = data[484]; buffer[0][5] = data[485]; buffer[0][6] = data[486]; buffer[0][7] = data[487]; + + } + if (partition == 61) { + buffer[0][0] = data[488]; buffer[0][1] = data[489]; buffer[0][2] = data[490]; buffer[0][3] = data[491]; buffer[0][4] = data[492]; buffer[0][5] = data[493]; buffer[0][6] = data[494]; buffer[0][7] = data[495]; + + } + if (partition == 62) { + buffer[0][0] = data[496]; buffer[0][1] = data[497]; buffer[0][2] = data[498]; buffer[0][3] = data[499]; buffer[0][4] = data[500]; buffer[0][5] = data[501]; buffer[0][6] = data[502]; buffer[0][7] = data[503]; + + } + if (partition == 63) { + buffer[0][0] = data[504]; buffer[0][1] = data[505]; buffer[0][2] = data[506]; buffer[0][3] = data[507]; buffer[0][4] = data[508]; buffer[0][5] = data[509]; buffer[0][6] = data[510]; buffer[0][7] = data[511]; + + } + if (partition == 64) { + buffer[0][0] = data[512]; buffer[0][1] = data[513]; buffer[0][2] = data[514]; buffer[0][3] = data[515]; buffer[0][4] = data[516]; buffer[0][5] = data[517]; buffer[0][6] = data[518]; buffer[0][7] = data[519]; + + } + if (partition == 65) { + buffer[0][0] = data[520]; buffer[0][1] = data[521]; buffer[0][2] = data[522]; buffer[0][3] = data[523]; buffer[0][4] = data[524]; buffer[0][5] = data[525]; buffer[0][6] = data[526]; buffer[0][7] = data[527]; + + } + if (partition == 66) { + buffer[0][0] = data[528]; buffer[0][1] = data[529]; buffer[0][2] = data[530]; buffer[0][3] = data[531]; buffer[0][4] = data[532]; buffer[0][5] = data[533]; buffer[0][6] = data[534]; buffer[0][7] = data[535]; + + } + if (partition == 67) { + buffer[0][0] = data[536]; buffer[0][1] = data[537]; buffer[0][2] = data[538]; buffer[0][3] = data[539]; buffer[0][4] = data[540]; buffer[0][5] = data[541]; buffer[0][6] = data[542]; buffer[0][7] = data[543]; + + } + if (partition == 68) { + buffer[0][0] = data[544]; buffer[0][1] = data[545]; buffer[0][2] = data[546]; buffer[0][3] = data[547]; buffer[0][4] = data[548]; buffer[0][5] = data[549]; buffer[0][6] = data[550]; buffer[0][7] = data[551]; + + } + if (partition == 69) { + buffer[0][0] = data[552]; buffer[0][1] = data[553]; buffer[0][2] = data[554]; buffer[0][3] = data[555]; buffer[0][4] = data[556]; buffer[0][5] = data[557]; buffer[0][6] = data[558]; buffer[0][7] = data[559]; + + } + if (partition == 70) { + buffer[0][0] = data[560]; buffer[0][1] = data[561]; buffer[0][2] = data[562]; buffer[0][3] = data[563]; buffer[0][4] = data[564]; buffer[0][5] = data[565]; buffer[0][6] = data[566]; buffer[0][7] = data[567]; + + } + if (partition == 71) { + buffer[0][0] = data[568]; buffer[0][1] = data[569]; buffer[0][2] = data[570]; buffer[0][3] = data[571]; buffer[0][4] = data[572]; buffer[0][5] = data[573]; buffer[0][6] = data[574]; buffer[0][7] = data[575]; + + } + if (partition == 72) { + buffer[0][0] = data[576]; buffer[0][1] = data[577]; buffer[0][2] = data[578]; buffer[0][3] = data[579]; buffer[0][4] = data[580]; buffer[0][5] = data[581]; buffer[0][6] = data[582]; buffer[0][7] = data[583]; + + } + if (partition == 73) { + buffer[0][0] = data[584]; buffer[0][1] = data[585]; buffer[0][2] = data[586]; buffer[0][3] = data[587]; buffer[0][4] = data[588]; buffer[0][5] = data[589]; buffer[0][6] = data[590]; buffer[0][7] = data[591]; + + } + if (partition == 74) { + buffer[0][0] = data[592]; buffer[0][1] = data[593]; buffer[0][2] = data[594]; buffer[0][3] = data[595]; buffer[0][4] = data[596]; buffer[0][5] = data[597]; buffer[0][6] = data[598]; buffer[0][7] = data[599]; + + } + if (partition == 75) { + buffer[0][0] = data[600]; buffer[0][1] = data[601]; buffer[0][2] = data[602]; buffer[0][3] = data[603]; buffer[0][4] = data[604]; buffer[0][5] = data[605]; buffer[0][6] = data[606]; buffer[0][7] = data[607]; + + } + if (partition == 76) { + buffer[0][0] = data[608]; buffer[0][1] = data[609]; buffer[0][2] = data[610]; buffer[0][3] = data[611]; buffer[0][4] = data[612]; buffer[0][5] = data[613]; buffer[0][6] = data[614]; buffer[0][7] = data[615]; + + } + if (partition == 77) { + buffer[0][0] = data[616]; buffer[0][1] = data[617]; buffer[0][2] = data[618]; buffer[0][3] = data[619]; buffer[0][4] = data[620]; buffer[0][5] = data[621]; buffer[0][6] = data[622]; buffer[0][7] = data[623]; + + } + if (partition == 78) { + buffer[0][0] = data[624]; buffer[0][1] = data[625]; buffer[0][2] = data[626]; buffer[0][3] = data[627]; buffer[0][4] = data[628]; buffer[0][5] = data[629]; buffer[0][6] = data[630]; buffer[0][7] = data[631]; + + } + if (partition == 79) { + buffer[0][0] = data[632]; buffer[0][1] = data[633]; buffer[0][2] = data[634]; buffer[0][3] = data[635]; buffer[0][4] = data[636]; buffer[0][5] = data[637]; buffer[0][6] = data[638]; buffer[0][7] = data[639]; + + } + if (partition == 80) { + buffer[0][0] = data[640]; buffer[0][1] = data[641]; buffer[0][2] = data[642]; buffer[0][3] = data[643]; buffer[0][4] = data[644]; buffer[0][5] = data[645]; buffer[0][6] = data[646]; buffer[0][7] = data[647]; + + } + if (partition == 81) { + buffer[0][0] = data[648]; buffer[0][1] = data[649]; buffer[0][2] = data[650]; buffer[0][3] = data[651]; buffer[0][4] = data[652]; buffer[0][5] = data[653]; buffer[0][6] = data[654]; buffer[0][7] = data[655]; + + } + if (partition == 82) { + buffer[0][0] = data[656]; buffer[0][1] = data[657]; buffer[0][2] = data[658]; buffer[0][3] = data[659]; buffer[0][4] = data[660]; buffer[0][5] = data[661]; buffer[0][6] = data[662]; buffer[0][7] = data[663]; + + } + if (partition == 83) { + buffer[0][0] = data[664]; buffer[0][1] = data[665]; buffer[0][2] = data[666]; buffer[0][3] = data[667]; buffer[0][4] = data[668]; buffer[0][5] = data[669]; buffer[0][6] = data[670]; buffer[0][7] = data[671]; + + } + if (partition == 84) { + buffer[0][0] = data[672]; buffer[0][1] = data[673]; buffer[0][2] = data[674]; buffer[0][3] = data[675]; buffer[0][4] = data[676]; buffer[0][5] = data[677]; buffer[0][6] = data[678]; buffer[0][7] = data[679]; + + } + if (partition == 85) { + buffer[0][0] = data[680]; buffer[0][1] = data[681]; buffer[0][2] = data[682]; buffer[0][3] = data[683]; buffer[0][4] = data[684]; buffer[0][5] = data[685]; buffer[0][6] = data[686]; buffer[0][7] = data[687]; + + } + if (partition == 86) { + buffer[0][0] = data[688]; buffer[0][1] = data[689]; buffer[0][2] = data[690]; buffer[0][3] = data[691]; buffer[0][4] = data[692]; buffer[0][5] = data[693]; buffer[0][6] = data[694]; buffer[0][7] = data[695]; + + } + if (partition == 87) { + buffer[0][0] = data[696]; buffer[0][1] = data[697]; buffer[0][2] = data[698]; buffer[0][3] = data[699]; buffer[0][4] = data[700]; buffer[0][5] = data[701]; buffer[0][6] = data[702]; buffer[0][7] = data[703]; + + } + if (partition == 88) { + buffer[0][0] = data[704]; buffer[0][1] = data[705]; buffer[0][2] = data[706]; buffer[0][3] = data[707]; buffer[0][4] = data[708]; buffer[0][5] = data[709]; buffer[0][6] = data[710]; buffer[0][7] = data[711]; + + } + if (partition == 89) { + buffer[0][0] = data[712]; buffer[0][1] = data[713]; buffer[0][2] = data[714]; buffer[0][3] = data[715]; buffer[0][4] = data[716]; buffer[0][5] = data[717]; buffer[0][6] = data[718]; buffer[0][7] = data[719]; + + } + if (partition == 90) { + buffer[0][0] = data[720]; buffer[0][1] = data[721]; buffer[0][2] = data[722]; buffer[0][3] = data[723]; buffer[0][4] = data[724]; buffer[0][5] = data[725]; buffer[0][6] = data[726]; buffer[0][7] = data[727]; + + } + if (partition == 91) { + buffer[0][0] = data[728]; buffer[0][1] = data[729]; buffer[0][2] = data[730]; buffer[0][3] = data[731]; buffer[0][4] = data[732]; buffer[0][5] = data[733]; buffer[0][6] = data[734]; buffer[0][7] = data[735]; + + } + if (partition == 92) { + buffer[0][0] = data[736]; buffer[0][1] = data[737]; buffer[0][2] = data[738]; buffer[0][3] = data[739]; buffer[0][4] = data[740]; buffer[0][5] = data[741]; buffer[0][6] = data[742]; buffer[0][7] = data[743]; + + } + if (partition == 93) { + buffer[0][0] = data[744]; buffer[0][1] = data[745]; buffer[0][2] = data[746]; buffer[0][3] = data[747]; buffer[0][4] = data[748]; buffer[0][5] = data[749]; buffer[0][6] = data[750]; buffer[0][7] = data[751]; + + } + if (partition == 94) { + buffer[0][0] = data[752]; buffer[0][1] = data[753]; buffer[0][2] = data[754]; buffer[0][3] = data[755]; buffer[0][4] = data[756]; buffer[0][5] = data[757]; buffer[0][6] = data[758]; buffer[0][7] = data[759]; + + } + if (partition == 95) { + buffer[0][0] = data[760]; buffer[0][1] = data[761]; buffer[0][2] = data[762]; buffer[0][3] = data[763]; buffer[0][4] = data[764]; buffer[0][5] = data[765]; buffer[0][6] = data[766]; buffer[0][7] = data[767]; + + } + if (partition == 96) { + buffer[0][0] = data[768]; buffer[0][1] = data[769]; buffer[0][2] = data[770]; buffer[0][3] = data[771]; buffer[0][4] = data[772]; buffer[0][5] = data[773]; buffer[0][6] = data[774]; buffer[0][7] = data[775]; + + } + if (partition == 97) { + buffer[0][0] = data[776]; buffer[0][1] = data[777]; buffer[0][2] = data[778]; buffer[0][3] = data[779]; buffer[0][4] = data[780]; buffer[0][5] = data[781]; buffer[0][6] = data[782]; buffer[0][7] = data[783]; + + } + if (partition == 98) { + buffer[0][0] = data[784]; buffer[0][1] = data[785]; buffer[0][2] = data[786]; buffer[0][3] = data[787]; buffer[0][4] = data[788]; buffer[0][5] = data[789]; buffer[0][6] = data[790]; buffer[0][7] = data[791]; + + } + if (partition == 99) { + buffer[0][0] = data[792]; buffer[0][1] = data[793]; buffer[0][2] = data[794]; buffer[0][3] = data[795]; buffer[0][4] = data[796]; buffer[0][5] = data[797]; buffer[0][6] = data[798]; buffer[0][7] = data[799]; + + } + } +}; +template +class fill_buffer_23 : public FillConv1DBuffer { + public: + static void fill_buffer( + data_T data[CONFIG_T::in_width * CONFIG_T::n_chan], + data_T buffer[CONFIG_T::n_pixels][CONFIG_T::filt_width * CONFIG_T::n_chan], + const unsigned partition + ) { + if (partition == 0) { + buffer[0][0] = data[0]; buffer[0][1] = data[1]; buffer[0][2] = data[2]; buffer[0][3] = data[3]; buffer[0][4] = data[4]; buffer[0][5] = data[5]; buffer[0][6] = data[6]; buffer[0][7] = data[7]; buffer[0][8] = data[8]; buffer[0][9] = data[9]; buffer[0][10] = data[10]; buffer[0][11] = data[11]; + + } + if (partition == 1) { + buffer[0][0] = data[12]; buffer[0][1] = data[13]; buffer[0][2] = data[14]; buffer[0][3] = data[15]; buffer[0][4] = data[16]; buffer[0][5] = data[17]; buffer[0][6] = data[18]; buffer[0][7] = data[19]; buffer[0][8] = data[20]; buffer[0][9] = data[21]; buffer[0][10] = data[22]; buffer[0][11] = data[23]; + + } + if (partition == 2) { + buffer[0][0] = data[24]; buffer[0][1] = data[25]; buffer[0][2] = data[26]; buffer[0][3] = data[27]; buffer[0][4] = data[28]; buffer[0][5] = data[29]; buffer[0][6] = data[30]; buffer[0][7] = data[31]; buffer[0][8] = data[32]; buffer[0][9] = data[33]; buffer[0][10] = data[34]; buffer[0][11] = data[35]; + + } + if (partition == 3) { + buffer[0][0] = data[36]; buffer[0][1] = data[37]; buffer[0][2] = data[38]; buffer[0][3] = data[39]; buffer[0][4] = data[40]; buffer[0][5] = data[41]; buffer[0][6] = data[42]; buffer[0][7] = data[43]; buffer[0][8] = data[44]; buffer[0][9] = data[45]; buffer[0][10] = data[46]; buffer[0][11] = data[47]; + + } + if (partition == 4) { + buffer[0][0] = data[48]; buffer[0][1] = data[49]; buffer[0][2] = data[50]; buffer[0][3] = data[51]; buffer[0][4] = data[52]; buffer[0][5] = data[53]; buffer[0][6] = data[54]; buffer[0][7] = data[55]; buffer[0][8] = data[56]; buffer[0][9] = data[57]; buffer[0][10] = data[58]; buffer[0][11] = data[59]; + + } + if (partition == 5) { + buffer[0][0] = data[60]; buffer[0][1] = data[61]; buffer[0][2] = data[62]; buffer[0][3] = data[63]; buffer[0][4] = data[64]; buffer[0][5] = data[65]; buffer[0][6] = data[66]; buffer[0][7] = data[67]; buffer[0][8] = data[68]; buffer[0][9] = data[69]; buffer[0][10] = data[70]; buffer[0][11] = data[71]; + + } + if (partition == 6) { + buffer[0][0] = data[72]; buffer[0][1] = data[73]; buffer[0][2] = data[74]; buffer[0][3] = data[75]; buffer[0][4] = data[76]; buffer[0][5] = data[77]; buffer[0][6] = data[78]; buffer[0][7] = data[79]; buffer[0][8] = data[80]; buffer[0][9] = data[81]; buffer[0][10] = data[82]; buffer[0][11] = data[83]; + + } + if (partition == 7) { + buffer[0][0] = data[84]; buffer[0][1] = data[85]; buffer[0][2] = data[86]; buffer[0][3] = data[87]; buffer[0][4] = data[88]; buffer[0][5] = data[89]; buffer[0][6] = data[90]; buffer[0][7] = data[91]; buffer[0][8] = data[92]; buffer[0][9] = data[93]; buffer[0][10] = data[94]; buffer[0][11] = data[95]; + + } + if (partition == 8) { + buffer[0][0] = data[96]; buffer[0][1] = data[97]; buffer[0][2] = data[98]; buffer[0][3] = data[99]; buffer[0][4] = data[100]; buffer[0][5] = data[101]; buffer[0][6] = data[102]; buffer[0][7] = data[103]; buffer[0][8] = data[104]; buffer[0][9] = data[105]; buffer[0][10] = data[106]; buffer[0][11] = data[107]; + + } + if (partition == 9) { + buffer[0][0] = data[108]; buffer[0][1] = data[109]; buffer[0][2] = data[110]; buffer[0][3] = data[111]; buffer[0][4] = data[112]; buffer[0][5] = data[113]; buffer[0][6] = data[114]; buffer[0][7] = data[115]; buffer[0][8] = data[116]; buffer[0][9] = data[117]; buffer[0][10] = data[118]; buffer[0][11] = data[119]; + + } + if (partition == 10) { + buffer[0][0] = data[120]; buffer[0][1] = data[121]; buffer[0][2] = data[122]; buffer[0][3] = data[123]; buffer[0][4] = data[124]; buffer[0][5] = data[125]; buffer[0][6] = data[126]; buffer[0][7] = data[127]; buffer[0][8] = data[128]; buffer[0][9] = data[129]; buffer[0][10] = data[130]; buffer[0][11] = data[131]; + + } + if (partition == 11) { + buffer[0][0] = data[132]; buffer[0][1] = data[133]; buffer[0][2] = data[134]; buffer[0][3] = data[135]; buffer[0][4] = data[136]; buffer[0][5] = data[137]; buffer[0][6] = data[138]; buffer[0][7] = data[139]; buffer[0][8] = data[140]; buffer[0][9] = data[141]; buffer[0][10] = data[142]; buffer[0][11] = data[143]; + + } + if (partition == 12) { + buffer[0][0] = data[144]; buffer[0][1] = data[145]; buffer[0][2] = data[146]; buffer[0][3] = data[147]; buffer[0][4] = data[148]; buffer[0][5] = data[149]; buffer[0][6] = data[150]; buffer[0][7] = data[151]; buffer[0][8] = data[152]; buffer[0][9] = data[153]; buffer[0][10] = data[154]; buffer[0][11] = data[155]; + + } + if (partition == 13) { + buffer[0][0] = data[156]; buffer[0][1] = data[157]; buffer[0][2] = data[158]; buffer[0][3] = data[159]; buffer[0][4] = data[160]; buffer[0][5] = data[161]; buffer[0][6] = data[162]; buffer[0][7] = data[163]; buffer[0][8] = data[164]; buffer[0][9] = data[165]; buffer[0][10] = data[166]; buffer[0][11] = data[167]; + + } + if (partition == 14) { + buffer[0][0] = data[168]; buffer[0][1] = data[169]; buffer[0][2] = data[170]; buffer[0][3] = data[171]; buffer[0][4] = data[172]; buffer[0][5] = data[173]; buffer[0][6] = data[174]; buffer[0][7] = data[175]; buffer[0][8] = data[176]; buffer[0][9] = data[177]; buffer[0][10] = data[178]; buffer[0][11] = data[179]; + + } + if (partition == 15) { + buffer[0][0] = data[180]; buffer[0][1] = data[181]; buffer[0][2] = data[182]; buffer[0][3] = data[183]; buffer[0][4] = data[184]; buffer[0][5] = data[185]; buffer[0][6] = data[186]; buffer[0][7] = data[187]; buffer[0][8] = data[188]; buffer[0][9] = data[189]; buffer[0][10] = data[190]; buffer[0][11] = data[191]; + + } + if (partition == 16) { + buffer[0][0] = data[192]; buffer[0][1] = data[193]; buffer[0][2] = data[194]; buffer[0][3] = data[195]; buffer[0][4] = data[196]; buffer[0][5] = data[197]; buffer[0][6] = data[198]; buffer[0][7] = data[199]; buffer[0][8] = data[200]; buffer[0][9] = data[201]; buffer[0][10] = data[202]; buffer[0][11] = data[203]; + + } + if (partition == 17) { + buffer[0][0] = data[204]; buffer[0][1] = data[205]; buffer[0][2] = data[206]; buffer[0][3] = data[207]; buffer[0][4] = data[208]; buffer[0][5] = data[209]; buffer[0][6] = data[210]; buffer[0][7] = data[211]; buffer[0][8] = data[212]; buffer[0][9] = data[213]; buffer[0][10] = data[214]; buffer[0][11] = data[215]; + + } + if (partition == 18) { + buffer[0][0] = data[216]; buffer[0][1] = data[217]; buffer[0][2] = data[218]; buffer[0][3] = data[219]; buffer[0][4] = data[220]; buffer[0][5] = data[221]; buffer[0][6] = data[222]; buffer[0][7] = data[223]; buffer[0][8] = data[224]; buffer[0][9] = data[225]; buffer[0][10] = data[226]; buffer[0][11] = data[227]; + + } + if (partition == 19) { + buffer[0][0] = data[228]; buffer[0][1] = data[229]; buffer[0][2] = data[230]; buffer[0][3] = data[231]; buffer[0][4] = data[232]; buffer[0][5] = data[233]; buffer[0][6] = data[234]; buffer[0][7] = data[235]; buffer[0][8] = data[236]; buffer[0][9] = data[237]; buffer[0][10] = data[238]; buffer[0][11] = data[239]; + + } + if (partition == 20) { + buffer[0][0] = data[240]; buffer[0][1] = data[241]; buffer[0][2] = data[242]; buffer[0][3] = data[243]; buffer[0][4] = data[244]; buffer[0][5] = data[245]; buffer[0][6] = data[246]; buffer[0][7] = data[247]; buffer[0][8] = data[248]; buffer[0][9] = data[249]; buffer[0][10] = data[250]; buffer[0][11] = data[251]; + + } + if (partition == 21) { + buffer[0][0] = data[252]; buffer[0][1] = data[253]; buffer[0][2] = data[254]; buffer[0][3] = data[255]; buffer[0][4] = data[256]; buffer[0][5] = data[257]; buffer[0][6] = data[258]; buffer[0][7] = data[259]; buffer[0][8] = data[260]; buffer[0][9] = data[261]; buffer[0][10] = data[262]; buffer[0][11] = data[263]; + + } + if (partition == 22) { + buffer[0][0] = data[264]; buffer[0][1] = data[265]; buffer[0][2] = data[266]; buffer[0][3] = data[267]; buffer[0][4] = data[268]; buffer[0][5] = data[269]; buffer[0][6] = data[270]; buffer[0][7] = data[271]; buffer[0][8] = data[272]; buffer[0][9] = data[273]; buffer[0][10] = data[274]; buffer[0][11] = data[275]; + + } + if (partition == 23) { + buffer[0][0] = data[276]; buffer[0][1] = data[277]; buffer[0][2] = data[278]; buffer[0][3] = data[279]; buffer[0][4] = data[280]; buffer[0][5] = data[281]; buffer[0][6] = data[282]; buffer[0][7] = data[283]; buffer[0][8] = data[284]; buffer[0][9] = data[285]; buffer[0][10] = data[286]; buffer[0][11] = data[287]; + + } + if (partition == 24) { + buffer[0][0] = data[288]; buffer[0][1] = data[289]; buffer[0][2] = data[290]; buffer[0][3] = data[291]; buffer[0][4] = data[292]; buffer[0][5] = data[293]; buffer[0][6] = data[294]; buffer[0][7] = data[295]; buffer[0][8] = data[296]; buffer[0][9] = data[297]; buffer[0][10] = data[298]; buffer[0][11] = data[299]; + + } + if (partition == 25) { + buffer[0][0] = data[300]; buffer[0][1] = data[301]; buffer[0][2] = data[302]; buffer[0][3] = data[303]; buffer[0][4] = data[304]; buffer[0][5] = data[305]; buffer[0][6] = data[306]; buffer[0][7] = data[307]; buffer[0][8] = data[308]; buffer[0][9] = data[309]; buffer[0][10] = data[310]; buffer[0][11] = data[311]; + + } + if (partition == 26) { + buffer[0][0] = data[312]; buffer[0][1] = data[313]; buffer[0][2] = data[314]; buffer[0][3] = data[315]; buffer[0][4] = data[316]; buffer[0][5] = data[317]; buffer[0][6] = data[318]; buffer[0][7] = data[319]; buffer[0][8] = data[320]; buffer[0][9] = data[321]; buffer[0][10] = data[322]; buffer[0][11] = data[323]; + + } + if (partition == 27) { + buffer[0][0] = data[324]; buffer[0][1] = data[325]; buffer[0][2] = data[326]; buffer[0][3] = data[327]; buffer[0][4] = data[328]; buffer[0][5] = data[329]; buffer[0][6] = data[330]; buffer[0][7] = data[331]; buffer[0][8] = data[332]; buffer[0][9] = data[333]; buffer[0][10] = data[334]; buffer[0][11] = data[335]; + + } + if (partition == 28) { + buffer[0][0] = data[336]; buffer[0][1] = data[337]; buffer[0][2] = data[338]; buffer[0][3] = data[339]; buffer[0][4] = data[340]; buffer[0][5] = data[341]; buffer[0][6] = data[342]; buffer[0][7] = data[343]; buffer[0][8] = data[344]; buffer[0][9] = data[345]; buffer[0][10] = data[346]; buffer[0][11] = data[347]; + + } + if (partition == 29) { + buffer[0][0] = data[348]; buffer[0][1] = data[349]; buffer[0][2] = data[350]; buffer[0][3] = data[351]; buffer[0][4] = data[352]; buffer[0][5] = data[353]; buffer[0][6] = data[354]; buffer[0][7] = data[355]; buffer[0][8] = data[356]; buffer[0][9] = data[357]; buffer[0][10] = data[358]; buffer[0][11] = data[359]; + + } + if (partition == 30) { + buffer[0][0] = data[360]; buffer[0][1] = data[361]; buffer[0][2] = data[362]; buffer[0][3] = data[363]; buffer[0][4] = data[364]; buffer[0][5] = data[365]; buffer[0][6] = data[366]; buffer[0][7] = data[367]; buffer[0][8] = data[368]; buffer[0][9] = data[369]; buffer[0][10] = data[370]; buffer[0][11] = data[371]; + + } + if (partition == 31) { + buffer[0][0] = data[372]; buffer[0][1] = data[373]; buffer[0][2] = data[374]; buffer[0][3] = data[375]; buffer[0][4] = data[376]; buffer[0][5] = data[377]; buffer[0][6] = data[378]; buffer[0][7] = data[379]; buffer[0][8] = data[380]; buffer[0][9] = data[381]; buffer[0][10] = data[382]; buffer[0][11] = data[383]; + + } + if (partition == 32) { + buffer[0][0] = data[384]; buffer[0][1] = data[385]; buffer[0][2] = data[386]; buffer[0][3] = data[387]; buffer[0][4] = data[388]; buffer[0][5] = data[389]; buffer[0][6] = data[390]; buffer[0][7] = data[391]; buffer[0][8] = data[392]; buffer[0][9] = data[393]; buffer[0][10] = data[394]; buffer[0][11] = data[395]; + + } + if (partition == 33) { + buffer[0][0] = data[396]; buffer[0][1] = data[397]; buffer[0][2] = data[398]; buffer[0][3] = data[399]; buffer[0][4] = data[400]; buffer[0][5] = data[401]; buffer[0][6] = data[402]; buffer[0][7] = data[403]; buffer[0][8] = data[404]; buffer[0][9] = data[405]; buffer[0][10] = data[406]; buffer[0][11] = data[407]; + + } + if (partition == 34) { + buffer[0][0] = data[408]; buffer[0][1] = data[409]; buffer[0][2] = data[410]; buffer[0][3] = data[411]; buffer[0][4] = data[412]; buffer[0][5] = data[413]; buffer[0][6] = data[414]; buffer[0][7] = data[415]; buffer[0][8] = data[416]; buffer[0][9] = data[417]; buffer[0][10] = data[418]; buffer[0][11] = data[419]; + + } + if (partition == 35) { + buffer[0][0] = data[420]; buffer[0][1] = data[421]; buffer[0][2] = data[422]; buffer[0][3] = data[423]; buffer[0][4] = data[424]; buffer[0][5] = data[425]; buffer[0][6] = data[426]; buffer[0][7] = data[427]; buffer[0][8] = data[428]; buffer[0][9] = data[429]; buffer[0][10] = data[430]; buffer[0][11] = data[431]; + + } + if (partition == 36) { + buffer[0][0] = data[432]; buffer[0][1] = data[433]; buffer[0][2] = data[434]; buffer[0][3] = data[435]; buffer[0][4] = data[436]; buffer[0][5] = data[437]; buffer[0][6] = data[438]; buffer[0][7] = data[439]; buffer[0][8] = data[440]; buffer[0][9] = data[441]; buffer[0][10] = data[442]; buffer[0][11] = data[443]; + + } + if (partition == 37) { + buffer[0][0] = data[444]; buffer[0][1] = data[445]; buffer[0][2] = data[446]; buffer[0][3] = data[447]; buffer[0][4] = data[448]; buffer[0][5] = data[449]; buffer[0][6] = data[450]; buffer[0][7] = data[451]; buffer[0][8] = data[452]; buffer[0][9] = data[453]; buffer[0][10] = data[454]; buffer[0][11] = data[455]; + + } + if (partition == 38) { + buffer[0][0] = data[456]; buffer[0][1] = data[457]; buffer[0][2] = data[458]; buffer[0][3] = data[459]; buffer[0][4] = data[460]; buffer[0][5] = data[461]; buffer[0][6] = data[462]; buffer[0][7] = data[463]; buffer[0][8] = data[464]; buffer[0][9] = data[465]; buffer[0][10] = data[466]; buffer[0][11] = data[467]; + + } + if (partition == 39) { + buffer[0][0] = data[468]; buffer[0][1] = data[469]; buffer[0][2] = data[470]; buffer[0][3] = data[471]; buffer[0][4] = data[472]; buffer[0][5] = data[473]; buffer[0][6] = data[474]; buffer[0][7] = data[475]; buffer[0][8] = data[476]; buffer[0][9] = data[477]; buffer[0][10] = data[478]; buffer[0][11] = data[479]; + + } + if (partition == 40) { + buffer[0][0] = data[480]; buffer[0][1] = data[481]; buffer[0][2] = data[482]; buffer[0][3] = data[483]; buffer[0][4] = data[484]; buffer[0][5] = data[485]; buffer[0][6] = data[486]; buffer[0][7] = data[487]; buffer[0][8] = data[488]; buffer[0][9] = data[489]; buffer[0][10] = data[490]; buffer[0][11] = data[491]; + + } + if (partition == 41) { + buffer[0][0] = data[492]; buffer[0][1] = data[493]; buffer[0][2] = data[494]; buffer[0][3] = data[495]; buffer[0][4] = data[496]; buffer[0][5] = data[497]; buffer[0][6] = data[498]; buffer[0][7] = data[499]; buffer[0][8] = data[500]; buffer[0][9] = data[501]; buffer[0][10] = data[502]; buffer[0][11] = data[503]; + + } + if (partition == 42) { + buffer[0][0] = data[504]; buffer[0][1] = data[505]; buffer[0][2] = data[506]; buffer[0][3] = data[507]; buffer[0][4] = data[508]; buffer[0][5] = data[509]; buffer[0][6] = data[510]; buffer[0][7] = data[511]; buffer[0][8] = data[512]; buffer[0][9] = data[513]; buffer[0][10] = data[514]; buffer[0][11] = data[515]; + + } + if (partition == 43) { + buffer[0][0] = data[516]; buffer[0][1] = data[517]; buffer[0][2] = data[518]; buffer[0][3] = data[519]; buffer[0][4] = data[520]; buffer[0][5] = data[521]; buffer[0][6] = data[522]; buffer[0][7] = data[523]; buffer[0][8] = data[524]; buffer[0][9] = data[525]; buffer[0][10] = data[526]; buffer[0][11] = data[527]; + + } + if (partition == 44) { + buffer[0][0] = data[528]; buffer[0][1] = data[529]; buffer[0][2] = data[530]; buffer[0][3] = data[531]; buffer[0][4] = data[532]; buffer[0][5] = data[533]; buffer[0][6] = data[534]; buffer[0][7] = data[535]; buffer[0][8] = data[536]; buffer[0][9] = data[537]; buffer[0][10] = data[538]; buffer[0][11] = data[539]; + + } + if (partition == 45) { + buffer[0][0] = data[540]; buffer[0][1] = data[541]; buffer[0][2] = data[542]; buffer[0][3] = data[543]; buffer[0][4] = data[544]; buffer[0][5] = data[545]; buffer[0][6] = data[546]; buffer[0][7] = data[547]; buffer[0][8] = data[548]; buffer[0][9] = data[549]; buffer[0][10] = data[550]; buffer[0][11] = data[551]; + + } + if (partition == 46) { + buffer[0][0] = data[552]; buffer[0][1] = data[553]; buffer[0][2] = data[554]; buffer[0][3] = data[555]; buffer[0][4] = data[556]; buffer[0][5] = data[557]; buffer[0][6] = data[558]; buffer[0][7] = data[559]; buffer[0][8] = data[560]; buffer[0][9] = data[561]; buffer[0][10] = data[562]; buffer[0][11] = data[563]; + + } + if (partition == 47) { + buffer[0][0] = data[564]; buffer[0][1] = data[565]; buffer[0][2] = data[566]; buffer[0][3] = data[567]; buffer[0][4] = data[568]; buffer[0][5] = data[569]; buffer[0][6] = data[570]; buffer[0][7] = data[571]; buffer[0][8] = data[572]; buffer[0][9] = data[573]; buffer[0][10] = data[574]; buffer[0][11] = data[575]; + + } + if (partition == 48) { + buffer[0][0] = data[576]; buffer[0][1] = data[577]; buffer[0][2] = data[578]; buffer[0][3] = data[579]; buffer[0][4] = data[580]; buffer[0][5] = data[581]; buffer[0][6] = data[582]; buffer[0][7] = data[583]; buffer[0][8] = data[584]; buffer[0][9] = data[585]; buffer[0][10] = data[586]; buffer[0][11] = data[587]; + + } + if (partition == 49) { + buffer[0][0] = data[588]; buffer[0][1] = data[589]; buffer[0][2] = data[590]; buffer[0][3] = data[591]; buffer[0][4] = data[592]; buffer[0][5] = data[593]; buffer[0][6] = data[594]; buffer[0][7] = data[595]; buffer[0][8] = data[596]; buffer[0][9] = data[597]; buffer[0][10] = data[598]; buffer[0][11] = data[599]; + + } + if (partition == 50) { + buffer[0][0] = data[600]; buffer[0][1] = data[601]; buffer[0][2] = data[602]; buffer[0][3] = data[603]; buffer[0][4] = data[604]; buffer[0][5] = data[605]; buffer[0][6] = data[606]; buffer[0][7] = data[607]; buffer[0][8] = data[608]; buffer[0][9] = data[609]; buffer[0][10] = data[610]; buffer[0][11] = data[611]; + + } + if (partition == 51) { + buffer[0][0] = data[612]; buffer[0][1] = data[613]; buffer[0][2] = data[614]; buffer[0][3] = data[615]; buffer[0][4] = data[616]; buffer[0][5] = data[617]; buffer[0][6] = data[618]; buffer[0][7] = data[619]; buffer[0][8] = data[620]; buffer[0][9] = data[621]; buffer[0][10] = data[622]; buffer[0][11] = data[623]; + + } + if (partition == 52) { + buffer[0][0] = data[624]; buffer[0][1] = data[625]; buffer[0][2] = data[626]; buffer[0][3] = data[627]; buffer[0][4] = data[628]; buffer[0][5] = data[629]; buffer[0][6] = data[630]; buffer[0][7] = data[631]; buffer[0][8] = data[632]; buffer[0][9] = data[633]; buffer[0][10] = data[634]; buffer[0][11] = data[635]; + + } + if (partition == 53) { + buffer[0][0] = data[636]; buffer[0][1] = data[637]; buffer[0][2] = data[638]; buffer[0][3] = data[639]; buffer[0][4] = data[640]; buffer[0][5] = data[641]; buffer[0][6] = data[642]; buffer[0][7] = data[643]; buffer[0][8] = data[644]; buffer[0][9] = data[645]; buffer[0][10] = data[646]; buffer[0][11] = data[647]; + + } + if (partition == 54) { + buffer[0][0] = data[648]; buffer[0][1] = data[649]; buffer[0][2] = data[650]; buffer[0][3] = data[651]; buffer[0][4] = data[652]; buffer[0][5] = data[653]; buffer[0][6] = data[654]; buffer[0][7] = data[655]; buffer[0][8] = data[656]; buffer[0][9] = data[657]; buffer[0][10] = data[658]; buffer[0][11] = data[659]; + + } + if (partition == 55) { + buffer[0][0] = data[660]; buffer[0][1] = data[661]; buffer[0][2] = data[662]; buffer[0][3] = data[663]; buffer[0][4] = data[664]; buffer[0][5] = data[665]; buffer[0][6] = data[666]; buffer[0][7] = data[667]; buffer[0][8] = data[668]; buffer[0][9] = data[669]; buffer[0][10] = data[670]; buffer[0][11] = data[671]; + + } + if (partition == 56) { + buffer[0][0] = data[672]; buffer[0][1] = data[673]; buffer[0][2] = data[674]; buffer[0][3] = data[675]; buffer[0][4] = data[676]; buffer[0][5] = data[677]; buffer[0][6] = data[678]; buffer[0][7] = data[679]; buffer[0][8] = data[680]; buffer[0][9] = data[681]; buffer[0][10] = data[682]; buffer[0][11] = data[683]; + + } + if (partition == 57) { + buffer[0][0] = data[684]; buffer[0][1] = data[685]; buffer[0][2] = data[686]; buffer[0][3] = data[687]; buffer[0][4] = data[688]; buffer[0][5] = data[689]; buffer[0][6] = data[690]; buffer[0][7] = data[691]; buffer[0][8] = data[692]; buffer[0][9] = data[693]; buffer[0][10] = data[694]; buffer[0][11] = data[695]; + + } + if (partition == 58) { + buffer[0][0] = data[696]; buffer[0][1] = data[697]; buffer[0][2] = data[698]; buffer[0][3] = data[699]; buffer[0][4] = data[700]; buffer[0][5] = data[701]; buffer[0][6] = data[702]; buffer[0][7] = data[703]; buffer[0][8] = data[704]; buffer[0][9] = data[705]; buffer[0][10] = data[706]; buffer[0][11] = data[707]; + + } + if (partition == 59) { + buffer[0][0] = data[708]; buffer[0][1] = data[709]; buffer[0][2] = data[710]; buffer[0][3] = data[711]; buffer[0][4] = data[712]; buffer[0][5] = data[713]; buffer[0][6] = data[714]; buffer[0][7] = data[715]; buffer[0][8] = data[716]; buffer[0][9] = data[717]; buffer[0][10] = data[718]; buffer[0][11] = data[719]; + + } + if (partition == 60) { + buffer[0][0] = data[720]; buffer[0][1] = data[721]; buffer[0][2] = data[722]; buffer[0][3] = data[723]; buffer[0][4] = data[724]; buffer[0][5] = data[725]; buffer[0][6] = data[726]; buffer[0][7] = data[727]; buffer[0][8] = data[728]; buffer[0][9] = data[729]; buffer[0][10] = data[730]; buffer[0][11] = data[731]; + + } + if (partition == 61) { + buffer[0][0] = data[732]; buffer[0][1] = data[733]; buffer[0][2] = data[734]; buffer[0][3] = data[735]; buffer[0][4] = data[736]; buffer[0][5] = data[737]; buffer[0][6] = data[738]; buffer[0][7] = data[739]; buffer[0][8] = data[740]; buffer[0][9] = data[741]; buffer[0][10] = data[742]; buffer[0][11] = data[743]; + + } + if (partition == 62) { + buffer[0][0] = data[744]; buffer[0][1] = data[745]; buffer[0][2] = data[746]; buffer[0][3] = data[747]; buffer[0][4] = data[748]; buffer[0][5] = data[749]; buffer[0][6] = data[750]; buffer[0][7] = data[751]; buffer[0][8] = data[752]; buffer[0][9] = data[753]; buffer[0][10] = data[754]; buffer[0][11] = data[755]; + + } + if (partition == 63) { + buffer[0][0] = data[756]; buffer[0][1] = data[757]; buffer[0][2] = data[758]; buffer[0][3] = data[759]; buffer[0][4] = data[760]; buffer[0][5] = data[761]; buffer[0][6] = data[762]; buffer[0][7] = data[763]; buffer[0][8] = data[764]; buffer[0][9] = data[765]; buffer[0][10] = data[766]; buffer[0][11] = data[767]; + + } + if (partition == 64) { + buffer[0][0] = data[768]; buffer[0][1] = data[769]; buffer[0][2] = data[770]; buffer[0][3] = data[771]; buffer[0][4] = data[772]; buffer[0][5] = data[773]; buffer[0][6] = data[774]; buffer[0][7] = data[775]; buffer[0][8] = data[776]; buffer[0][9] = data[777]; buffer[0][10] = data[778]; buffer[0][11] = data[779]; + + } + if (partition == 65) { + buffer[0][0] = data[780]; buffer[0][1] = data[781]; buffer[0][2] = data[782]; buffer[0][3] = data[783]; buffer[0][4] = data[784]; buffer[0][5] = data[785]; buffer[0][6] = data[786]; buffer[0][7] = data[787]; buffer[0][8] = data[788]; buffer[0][9] = data[789]; buffer[0][10] = data[790]; buffer[0][11] = data[791]; + + } + if (partition == 66) { + buffer[0][0] = data[792]; buffer[0][1] = data[793]; buffer[0][2] = data[794]; buffer[0][3] = data[795]; buffer[0][4] = data[796]; buffer[0][5] = data[797]; buffer[0][6] = data[798]; buffer[0][7] = data[799]; buffer[0][8] = data[800]; buffer[0][9] = data[801]; buffer[0][10] = data[802]; buffer[0][11] = data[803]; + + } + if (partition == 67) { + buffer[0][0] = data[804]; buffer[0][1] = data[805]; buffer[0][2] = data[806]; buffer[0][3] = data[807]; buffer[0][4] = data[808]; buffer[0][5] = data[809]; buffer[0][6] = data[810]; buffer[0][7] = data[811]; buffer[0][8] = data[812]; buffer[0][9] = data[813]; buffer[0][10] = data[814]; buffer[0][11] = data[815]; + + } + if (partition == 68) { + buffer[0][0] = data[816]; buffer[0][1] = data[817]; buffer[0][2] = data[818]; buffer[0][3] = data[819]; buffer[0][4] = data[820]; buffer[0][5] = data[821]; buffer[0][6] = data[822]; buffer[0][7] = data[823]; buffer[0][8] = data[824]; buffer[0][9] = data[825]; buffer[0][10] = data[826]; buffer[0][11] = data[827]; + + } + if (partition == 69) { + buffer[0][0] = data[828]; buffer[0][1] = data[829]; buffer[0][2] = data[830]; buffer[0][3] = data[831]; buffer[0][4] = data[832]; buffer[0][5] = data[833]; buffer[0][6] = data[834]; buffer[0][7] = data[835]; buffer[0][8] = data[836]; buffer[0][9] = data[837]; buffer[0][10] = data[838]; buffer[0][11] = data[839]; + + } + if (partition == 70) { + buffer[0][0] = data[840]; buffer[0][1] = data[841]; buffer[0][2] = data[842]; buffer[0][3] = data[843]; buffer[0][4] = data[844]; buffer[0][5] = data[845]; buffer[0][6] = data[846]; buffer[0][7] = data[847]; buffer[0][8] = data[848]; buffer[0][9] = data[849]; buffer[0][10] = data[850]; buffer[0][11] = data[851]; + + } + if (partition == 71) { + buffer[0][0] = data[852]; buffer[0][1] = data[853]; buffer[0][2] = data[854]; buffer[0][3] = data[855]; buffer[0][4] = data[856]; buffer[0][5] = data[857]; buffer[0][6] = data[858]; buffer[0][7] = data[859]; buffer[0][8] = data[860]; buffer[0][9] = data[861]; buffer[0][10] = data[862]; buffer[0][11] = data[863]; + + } + if (partition == 72) { + buffer[0][0] = data[864]; buffer[0][1] = data[865]; buffer[0][2] = data[866]; buffer[0][3] = data[867]; buffer[0][4] = data[868]; buffer[0][5] = data[869]; buffer[0][6] = data[870]; buffer[0][7] = data[871]; buffer[0][8] = data[872]; buffer[0][9] = data[873]; buffer[0][10] = data[874]; buffer[0][11] = data[875]; + + } + if (partition == 73) { + buffer[0][0] = data[876]; buffer[0][1] = data[877]; buffer[0][2] = data[878]; buffer[0][3] = data[879]; buffer[0][4] = data[880]; buffer[0][5] = data[881]; buffer[0][6] = data[882]; buffer[0][7] = data[883]; buffer[0][8] = data[884]; buffer[0][9] = data[885]; buffer[0][10] = data[886]; buffer[0][11] = data[887]; + + } + if (partition == 74) { + buffer[0][0] = data[888]; buffer[0][1] = data[889]; buffer[0][2] = data[890]; buffer[0][3] = data[891]; buffer[0][4] = data[892]; buffer[0][5] = data[893]; buffer[0][6] = data[894]; buffer[0][7] = data[895]; buffer[0][8] = data[896]; buffer[0][9] = data[897]; buffer[0][10] = data[898]; buffer[0][11] = data[899]; + + } + if (partition == 75) { + buffer[0][0] = data[900]; buffer[0][1] = data[901]; buffer[0][2] = data[902]; buffer[0][3] = data[903]; buffer[0][4] = data[904]; buffer[0][5] = data[905]; buffer[0][6] = data[906]; buffer[0][7] = data[907]; buffer[0][8] = data[908]; buffer[0][9] = data[909]; buffer[0][10] = data[910]; buffer[0][11] = data[911]; + + } + if (partition == 76) { + buffer[0][0] = data[912]; buffer[0][1] = data[913]; buffer[0][2] = data[914]; buffer[0][3] = data[915]; buffer[0][4] = data[916]; buffer[0][5] = data[917]; buffer[0][6] = data[918]; buffer[0][7] = data[919]; buffer[0][8] = data[920]; buffer[0][9] = data[921]; buffer[0][10] = data[922]; buffer[0][11] = data[923]; + + } + if (partition == 77) { + buffer[0][0] = data[924]; buffer[0][1] = data[925]; buffer[0][2] = data[926]; buffer[0][3] = data[927]; buffer[0][4] = data[928]; buffer[0][5] = data[929]; buffer[0][6] = data[930]; buffer[0][7] = data[931]; buffer[0][8] = data[932]; buffer[0][9] = data[933]; buffer[0][10] = data[934]; buffer[0][11] = data[935]; + + } + if (partition == 78) { + buffer[0][0] = data[936]; buffer[0][1] = data[937]; buffer[0][2] = data[938]; buffer[0][3] = data[939]; buffer[0][4] = data[940]; buffer[0][5] = data[941]; buffer[0][6] = data[942]; buffer[0][7] = data[943]; buffer[0][8] = data[944]; buffer[0][9] = data[945]; buffer[0][10] = data[946]; buffer[0][11] = data[947]; + + } + if (partition == 79) { + buffer[0][0] = data[948]; buffer[0][1] = data[949]; buffer[0][2] = data[950]; buffer[0][3] = data[951]; buffer[0][4] = data[952]; buffer[0][5] = data[953]; buffer[0][6] = data[954]; buffer[0][7] = data[955]; buffer[0][8] = data[956]; buffer[0][9] = data[957]; buffer[0][10] = data[958]; buffer[0][11] = data[959]; + + } + if (partition == 80) { + buffer[0][0] = data[960]; buffer[0][1] = data[961]; buffer[0][2] = data[962]; buffer[0][3] = data[963]; buffer[0][4] = data[964]; buffer[0][5] = data[965]; buffer[0][6] = data[966]; buffer[0][7] = data[967]; buffer[0][8] = data[968]; buffer[0][9] = data[969]; buffer[0][10] = data[970]; buffer[0][11] = data[971]; + + } + if (partition == 81) { + buffer[0][0] = data[972]; buffer[0][1] = data[973]; buffer[0][2] = data[974]; buffer[0][3] = data[975]; buffer[0][4] = data[976]; buffer[0][5] = data[977]; buffer[0][6] = data[978]; buffer[0][7] = data[979]; buffer[0][8] = data[980]; buffer[0][9] = data[981]; buffer[0][10] = data[982]; buffer[0][11] = data[983]; + + } + if (partition == 82) { + buffer[0][0] = data[984]; buffer[0][1] = data[985]; buffer[0][2] = data[986]; buffer[0][3] = data[987]; buffer[0][4] = data[988]; buffer[0][5] = data[989]; buffer[0][6] = data[990]; buffer[0][7] = data[991]; buffer[0][8] = data[992]; buffer[0][9] = data[993]; buffer[0][10] = data[994]; buffer[0][11] = data[995]; + + } + if (partition == 83) { + buffer[0][0] = data[996]; buffer[0][1] = data[997]; buffer[0][2] = data[998]; buffer[0][3] = data[999]; buffer[0][4] = data[1000]; buffer[0][5] = data[1001]; buffer[0][6] = data[1002]; buffer[0][7] = data[1003]; buffer[0][8] = data[1004]; buffer[0][9] = data[1005]; buffer[0][10] = data[1006]; buffer[0][11] = data[1007]; + + } + if (partition == 84) { + buffer[0][0] = data[1008]; buffer[0][1] = data[1009]; buffer[0][2] = data[1010]; buffer[0][3] = data[1011]; buffer[0][4] = data[1012]; buffer[0][5] = data[1013]; buffer[0][6] = data[1014]; buffer[0][7] = data[1015]; buffer[0][8] = data[1016]; buffer[0][9] = data[1017]; buffer[0][10] = data[1018]; buffer[0][11] = data[1019]; + + } + if (partition == 85) { + buffer[0][0] = data[1020]; buffer[0][1] = data[1021]; buffer[0][2] = data[1022]; buffer[0][3] = data[1023]; buffer[0][4] = data[1024]; buffer[0][5] = data[1025]; buffer[0][6] = data[1026]; buffer[0][7] = data[1027]; buffer[0][8] = data[1028]; buffer[0][9] = data[1029]; buffer[0][10] = data[1030]; buffer[0][11] = data[1031]; + + } + if (partition == 86) { + buffer[0][0] = data[1032]; buffer[0][1] = data[1033]; buffer[0][2] = data[1034]; buffer[0][3] = data[1035]; buffer[0][4] = data[1036]; buffer[0][5] = data[1037]; buffer[0][6] = data[1038]; buffer[0][7] = data[1039]; buffer[0][8] = data[1040]; buffer[0][9] = data[1041]; buffer[0][10] = data[1042]; buffer[0][11] = data[1043]; + + } + if (partition == 87) { + buffer[0][0] = data[1044]; buffer[0][1] = data[1045]; buffer[0][2] = data[1046]; buffer[0][3] = data[1047]; buffer[0][4] = data[1048]; buffer[0][5] = data[1049]; buffer[0][6] = data[1050]; buffer[0][7] = data[1051]; buffer[0][8] = data[1052]; buffer[0][9] = data[1053]; buffer[0][10] = data[1054]; buffer[0][11] = data[1055]; + + } + if (partition == 88) { + buffer[0][0] = data[1056]; buffer[0][1] = data[1057]; buffer[0][2] = data[1058]; buffer[0][3] = data[1059]; buffer[0][4] = data[1060]; buffer[0][5] = data[1061]; buffer[0][6] = data[1062]; buffer[0][7] = data[1063]; buffer[0][8] = data[1064]; buffer[0][9] = data[1065]; buffer[0][10] = data[1066]; buffer[0][11] = data[1067]; + + } + if (partition == 89) { + buffer[0][0] = data[1068]; buffer[0][1] = data[1069]; buffer[0][2] = data[1070]; buffer[0][3] = data[1071]; buffer[0][4] = data[1072]; buffer[0][5] = data[1073]; buffer[0][6] = data[1074]; buffer[0][7] = data[1075]; buffer[0][8] = data[1076]; buffer[0][9] = data[1077]; buffer[0][10] = data[1078]; buffer[0][11] = data[1079]; + + } + if (partition == 90) { + buffer[0][0] = data[1080]; buffer[0][1] = data[1081]; buffer[0][2] = data[1082]; buffer[0][3] = data[1083]; buffer[0][4] = data[1084]; buffer[0][5] = data[1085]; buffer[0][6] = data[1086]; buffer[0][7] = data[1087]; buffer[0][8] = data[1088]; buffer[0][9] = data[1089]; buffer[0][10] = data[1090]; buffer[0][11] = data[1091]; + + } + if (partition == 91) { + buffer[0][0] = data[1092]; buffer[0][1] = data[1093]; buffer[0][2] = data[1094]; buffer[0][3] = data[1095]; buffer[0][4] = data[1096]; buffer[0][5] = data[1097]; buffer[0][6] = data[1098]; buffer[0][7] = data[1099]; buffer[0][8] = data[1100]; buffer[0][9] = data[1101]; buffer[0][10] = data[1102]; buffer[0][11] = data[1103]; + + } + if (partition == 92) { + buffer[0][0] = data[1104]; buffer[0][1] = data[1105]; buffer[0][2] = data[1106]; buffer[0][3] = data[1107]; buffer[0][4] = data[1108]; buffer[0][5] = data[1109]; buffer[0][6] = data[1110]; buffer[0][7] = data[1111]; buffer[0][8] = data[1112]; buffer[0][9] = data[1113]; buffer[0][10] = data[1114]; buffer[0][11] = data[1115]; + + } + if (partition == 93) { + buffer[0][0] = data[1116]; buffer[0][1] = data[1117]; buffer[0][2] = data[1118]; buffer[0][3] = data[1119]; buffer[0][4] = data[1120]; buffer[0][5] = data[1121]; buffer[0][6] = data[1122]; buffer[0][7] = data[1123]; buffer[0][8] = data[1124]; buffer[0][9] = data[1125]; buffer[0][10] = data[1126]; buffer[0][11] = data[1127]; + + } + if (partition == 94) { + buffer[0][0] = data[1128]; buffer[0][1] = data[1129]; buffer[0][2] = data[1130]; buffer[0][3] = data[1131]; buffer[0][4] = data[1132]; buffer[0][5] = data[1133]; buffer[0][6] = data[1134]; buffer[0][7] = data[1135]; buffer[0][8] = data[1136]; buffer[0][9] = data[1137]; buffer[0][10] = data[1138]; buffer[0][11] = data[1139]; + + } + if (partition == 95) { + buffer[0][0] = data[1140]; buffer[0][1] = data[1141]; buffer[0][2] = data[1142]; buffer[0][3] = data[1143]; buffer[0][4] = data[1144]; buffer[0][5] = data[1145]; buffer[0][6] = data[1146]; buffer[0][7] = data[1147]; buffer[0][8] = data[1148]; buffer[0][9] = data[1149]; buffer[0][10] = data[1150]; buffer[0][11] = data[1151]; + + } + if (partition == 96) { + buffer[0][0] = data[1152]; buffer[0][1] = data[1153]; buffer[0][2] = data[1154]; buffer[0][3] = data[1155]; buffer[0][4] = data[1156]; buffer[0][5] = data[1157]; buffer[0][6] = data[1158]; buffer[0][7] = data[1159]; buffer[0][8] = data[1160]; buffer[0][9] = data[1161]; buffer[0][10] = data[1162]; buffer[0][11] = data[1163]; + + } + if (partition == 97) { + buffer[0][0] = data[1164]; buffer[0][1] = data[1165]; buffer[0][2] = data[1166]; buffer[0][3] = data[1167]; buffer[0][4] = data[1168]; buffer[0][5] = data[1169]; buffer[0][6] = data[1170]; buffer[0][7] = data[1171]; buffer[0][8] = data[1172]; buffer[0][9] = data[1173]; buffer[0][10] = data[1174]; buffer[0][11] = data[1175]; + + } + if (partition == 98) { + buffer[0][0] = data[1176]; buffer[0][1] = data[1177]; buffer[0][2] = data[1178]; buffer[0][3] = data[1179]; buffer[0][4] = data[1180]; buffer[0][5] = data[1181]; buffer[0][6] = data[1182]; buffer[0][7] = data[1183]; buffer[0][8] = data[1184]; buffer[0][9] = data[1185]; buffer[0][10] = data[1186]; buffer[0][11] = data[1187]; + + } + if (partition == 99) { + buffer[0][0] = data[1188]; buffer[0][1] = data[1189]; buffer[0][2] = data[1190]; buffer[0][3] = data[1191]; buffer[0][4] = data[1192]; buffer[0][5] = data[1193]; buffer[0][6] = data[1194]; buffer[0][7] = data[1195]; buffer[0][8] = data[1196]; buffer[0][9] = data[1197]; buffer[0][10] = data[1198]; buffer[0][11] = data[1199]; + + } + } +}; +template +class fill_buffer_24 : public FillConv1DBuffer { + public: + static void fill_buffer( + data_T data[CONFIG_T::in_width * CONFIG_T::n_chan], + data_T buffer[CONFIG_T::n_pixels][CONFIG_T::filt_width * CONFIG_T::n_chan], + const unsigned partition + ) { + if (partition == 0) { + buffer[0][0] = data[0]; buffer[0][1] = data[1]; buffer[0][2] = data[2]; buffer[0][3] = data[3]; buffer[0][4] = data[4]; buffer[0][5] = data[5]; buffer[0][6] = data[6]; buffer[0][7] = data[7]; buffer[0][8] = data[8]; buffer[0][9] = data[9]; buffer[0][10] = data[10]; buffer[0][11] = data[11]; buffer[0][12] = data[12]; buffer[0][13] = data[13]; buffer[0][14] = data[14]; buffer[0][15] = data[15]; buffer[0][16] = data[16]; buffer[0][17] = data[17]; buffer[0][18] = data[18]; buffer[0][19] = data[19]; buffer[0][20] = data[20]; buffer[0][21] = data[21]; buffer[0][22] = data[22]; buffer[0][23] = data[23]; buffer[0][24] = data[24]; buffer[0][25] = data[25]; buffer[0][26] = data[26]; buffer[0][27] = data[27]; buffer[0][28] = data[28]; buffer[0][29] = data[29]; buffer[0][30] = data[30]; buffer[0][31] = data[31]; buffer[0][32] = data[32]; buffer[0][33] = data[33]; buffer[0][34] = data[34]; buffer[0][35] = data[35]; + + } + if (partition == 1) { + buffer[0][0] = data[36]; buffer[0][1] = data[37]; buffer[0][2] = data[38]; buffer[0][3] = data[39]; buffer[0][4] = data[40]; buffer[0][5] = data[41]; buffer[0][6] = data[42]; buffer[0][7] = data[43]; buffer[0][8] = data[44]; buffer[0][9] = data[45]; buffer[0][10] = data[46]; buffer[0][11] = data[47]; buffer[0][12] = data[48]; buffer[0][13] = data[49]; buffer[0][14] = data[50]; buffer[0][15] = data[51]; buffer[0][16] = data[52]; buffer[0][17] = data[53]; buffer[0][18] = data[54]; buffer[0][19] = data[55]; buffer[0][20] = data[56]; buffer[0][21] = data[57]; buffer[0][22] = data[58]; buffer[0][23] = data[59]; buffer[0][24] = data[60]; buffer[0][25] = data[61]; buffer[0][26] = data[62]; buffer[0][27] = data[63]; buffer[0][28] = data[64]; buffer[0][29] = data[65]; buffer[0][30] = data[66]; buffer[0][31] = data[67]; buffer[0][32] = data[68]; buffer[0][33] = data[69]; buffer[0][34] = data[70]; buffer[0][35] = data[71]; + + } + if (partition == 2) { + buffer[0][0] = data[72]; buffer[0][1] = data[73]; buffer[0][2] = data[74]; buffer[0][3] = data[75]; buffer[0][4] = data[76]; buffer[0][5] = data[77]; buffer[0][6] = data[78]; buffer[0][7] = data[79]; buffer[0][8] = data[80]; buffer[0][9] = data[81]; buffer[0][10] = data[82]; buffer[0][11] = data[83]; buffer[0][12] = data[84]; buffer[0][13] = data[85]; buffer[0][14] = data[86]; buffer[0][15] = data[87]; buffer[0][16] = data[88]; buffer[0][17] = data[89]; buffer[0][18] = data[90]; buffer[0][19] = data[91]; buffer[0][20] = data[92]; buffer[0][21] = data[93]; buffer[0][22] = data[94]; buffer[0][23] = data[95]; buffer[0][24] = data[96]; buffer[0][25] = data[97]; buffer[0][26] = data[98]; buffer[0][27] = data[99]; buffer[0][28] = data[100]; buffer[0][29] = data[101]; buffer[0][30] = data[102]; buffer[0][31] = data[103]; buffer[0][32] = data[104]; buffer[0][33] = data[105]; buffer[0][34] = data[106]; buffer[0][35] = data[107]; + + } + if (partition == 3) { + buffer[0][0] = data[108]; buffer[0][1] = data[109]; buffer[0][2] = data[110]; buffer[0][3] = data[111]; buffer[0][4] = data[112]; buffer[0][5] = data[113]; buffer[0][6] = data[114]; buffer[0][7] = data[115]; buffer[0][8] = data[116]; buffer[0][9] = data[117]; buffer[0][10] = data[118]; buffer[0][11] = data[119]; buffer[0][12] = data[120]; buffer[0][13] = data[121]; buffer[0][14] = data[122]; buffer[0][15] = data[123]; buffer[0][16] = data[124]; buffer[0][17] = data[125]; buffer[0][18] = data[126]; buffer[0][19] = data[127]; buffer[0][20] = data[128]; buffer[0][21] = data[129]; buffer[0][22] = data[130]; buffer[0][23] = data[131]; buffer[0][24] = data[132]; buffer[0][25] = data[133]; buffer[0][26] = data[134]; buffer[0][27] = data[135]; buffer[0][28] = data[136]; buffer[0][29] = data[137]; buffer[0][30] = data[138]; buffer[0][31] = data[139]; buffer[0][32] = data[140]; buffer[0][33] = data[141]; buffer[0][34] = data[142]; buffer[0][35] = data[143]; + + } + if (partition == 4) { + buffer[0][0] = data[144]; buffer[0][1] = data[145]; buffer[0][2] = data[146]; buffer[0][3] = data[147]; buffer[0][4] = data[148]; buffer[0][5] = data[149]; buffer[0][6] = data[150]; buffer[0][7] = data[151]; buffer[0][8] = data[152]; buffer[0][9] = data[153]; buffer[0][10] = data[154]; buffer[0][11] = data[155]; buffer[0][12] = data[156]; buffer[0][13] = data[157]; buffer[0][14] = data[158]; buffer[0][15] = data[159]; buffer[0][16] = data[160]; buffer[0][17] = data[161]; buffer[0][18] = data[162]; buffer[0][19] = data[163]; buffer[0][20] = data[164]; buffer[0][21] = data[165]; buffer[0][22] = data[166]; buffer[0][23] = data[167]; buffer[0][24] = data[168]; buffer[0][25] = data[169]; buffer[0][26] = data[170]; buffer[0][27] = data[171]; buffer[0][28] = data[172]; buffer[0][29] = data[173]; buffer[0][30] = data[174]; buffer[0][31] = data[175]; buffer[0][32] = data[176]; buffer[0][33] = data[177]; buffer[0][34] = data[178]; buffer[0][35] = data[179]; + + } + if (partition == 5) { + buffer[0][0] = data[180]; buffer[0][1] = data[181]; buffer[0][2] = data[182]; buffer[0][3] = data[183]; buffer[0][4] = data[184]; buffer[0][5] = data[185]; buffer[0][6] = data[186]; buffer[0][7] = data[187]; buffer[0][8] = data[188]; buffer[0][9] = data[189]; buffer[0][10] = data[190]; buffer[0][11] = data[191]; buffer[0][12] = data[192]; buffer[0][13] = data[193]; buffer[0][14] = data[194]; buffer[0][15] = data[195]; buffer[0][16] = data[196]; buffer[0][17] = data[197]; buffer[0][18] = data[198]; buffer[0][19] = data[199]; buffer[0][20] = data[200]; buffer[0][21] = data[201]; buffer[0][22] = data[202]; buffer[0][23] = data[203]; buffer[0][24] = data[204]; buffer[0][25] = data[205]; buffer[0][26] = data[206]; buffer[0][27] = data[207]; buffer[0][28] = data[208]; buffer[0][29] = data[209]; buffer[0][30] = data[210]; buffer[0][31] = data[211]; buffer[0][32] = data[212]; buffer[0][33] = data[213]; buffer[0][34] = data[214]; buffer[0][35] = data[215]; + + } + if (partition == 6) { + buffer[0][0] = data[216]; buffer[0][1] = data[217]; buffer[0][2] = data[218]; buffer[0][3] = data[219]; buffer[0][4] = data[220]; buffer[0][5] = data[221]; buffer[0][6] = data[222]; buffer[0][7] = data[223]; buffer[0][8] = data[224]; buffer[0][9] = data[225]; buffer[0][10] = data[226]; buffer[0][11] = data[227]; buffer[0][12] = data[228]; buffer[0][13] = data[229]; buffer[0][14] = data[230]; buffer[0][15] = data[231]; buffer[0][16] = data[232]; buffer[0][17] = data[233]; buffer[0][18] = data[234]; buffer[0][19] = data[235]; buffer[0][20] = data[236]; buffer[0][21] = data[237]; buffer[0][22] = data[238]; buffer[0][23] = data[239]; buffer[0][24] = data[240]; buffer[0][25] = data[241]; buffer[0][26] = data[242]; buffer[0][27] = data[243]; buffer[0][28] = data[244]; buffer[0][29] = data[245]; buffer[0][30] = data[246]; buffer[0][31] = data[247]; buffer[0][32] = data[248]; buffer[0][33] = data[249]; buffer[0][34] = data[250]; buffer[0][35] = data[251]; + + } + if (partition == 7) { + buffer[0][0] = data[252]; buffer[0][1] = data[253]; buffer[0][2] = data[254]; buffer[0][3] = data[255]; buffer[0][4] = data[256]; buffer[0][5] = data[257]; buffer[0][6] = data[258]; buffer[0][7] = data[259]; buffer[0][8] = data[260]; buffer[0][9] = data[261]; buffer[0][10] = data[262]; buffer[0][11] = data[263]; buffer[0][12] = data[264]; buffer[0][13] = data[265]; buffer[0][14] = data[266]; buffer[0][15] = data[267]; buffer[0][16] = data[268]; buffer[0][17] = data[269]; buffer[0][18] = data[270]; buffer[0][19] = data[271]; buffer[0][20] = data[272]; buffer[0][21] = data[273]; buffer[0][22] = data[274]; buffer[0][23] = data[275]; buffer[0][24] = data[276]; buffer[0][25] = data[277]; buffer[0][26] = data[278]; buffer[0][27] = data[279]; buffer[0][28] = data[280]; buffer[0][29] = data[281]; buffer[0][30] = data[282]; buffer[0][31] = data[283]; buffer[0][32] = data[284]; buffer[0][33] = data[285]; buffer[0][34] = data[286]; buffer[0][35] = data[287]; + + } + if (partition == 8) { + buffer[0][0] = data[288]; buffer[0][1] = data[289]; buffer[0][2] = data[290]; buffer[0][3] = data[291]; buffer[0][4] = data[292]; buffer[0][5] = data[293]; buffer[0][6] = data[294]; buffer[0][7] = data[295]; buffer[0][8] = data[296]; buffer[0][9] = data[297]; buffer[0][10] = data[298]; buffer[0][11] = data[299]; buffer[0][12] = data[300]; buffer[0][13] = data[301]; buffer[0][14] = data[302]; buffer[0][15] = data[303]; buffer[0][16] = data[304]; buffer[0][17] = data[305]; buffer[0][18] = data[306]; buffer[0][19] = data[307]; buffer[0][20] = data[308]; buffer[0][21] = data[309]; buffer[0][22] = data[310]; buffer[0][23] = data[311]; buffer[0][24] = data[312]; buffer[0][25] = data[313]; buffer[0][26] = data[314]; buffer[0][27] = data[315]; buffer[0][28] = data[316]; buffer[0][29] = data[317]; buffer[0][30] = data[318]; buffer[0][31] = data[319]; buffer[0][32] = data[320]; buffer[0][33] = data[321]; buffer[0][34] = data[322]; buffer[0][35] = data[323]; + + } + if (partition == 9) { + buffer[0][0] = data[324]; buffer[0][1] = data[325]; buffer[0][2] = data[326]; buffer[0][3] = data[327]; buffer[0][4] = data[328]; buffer[0][5] = data[329]; buffer[0][6] = data[330]; buffer[0][7] = data[331]; buffer[0][8] = data[332]; buffer[0][9] = data[333]; buffer[0][10] = data[334]; buffer[0][11] = data[335]; buffer[0][12] = data[336]; buffer[0][13] = data[337]; buffer[0][14] = data[338]; buffer[0][15] = data[339]; buffer[0][16] = data[340]; buffer[0][17] = data[341]; buffer[0][18] = data[342]; buffer[0][19] = data[343]; buffer[0][20] = data[344]; buffer[0][21] = data[345]; buffer[0][22] = data[346]; buffer[0][23] = data[347]; buffer[0][24] = data[348]; buffer[0][25] = data[349]; buffer[0][26] = data[350]; buffer[0][27] = data[351]; buffer[0][28] = data[352]; buffer[0][29] = data[353]; buffer[0][30] = data[354]; buffer[0][31] = data[355]; buffer[0][32] = data[356]; buffer[0][33] = data[357]; buffer[0][34] = data[358]; buffer[0][35] = data[359]; + + } + if (partition == 10) { + buffer[0][0] = data[360]; buffer[0][1] = data[361]; buffer[0][2] = data[362]; buffer[0][3] = data[363]; buffer[0][4] = data[364]; buffer[0][5] = data[365]; buffer[0][6] = data[366]; buffer[0][7] = data[367]; buffer[0][8] = data[368]; buffer[0][9] = data[369]; buffer[0][10] = data[370]; buffer[0][11] = data[371]; buffer[0][12] = data[372]; buffer[0][13] = data[373]; buffer[0][14] = data[374]; buffer[0][15] = data[375]; buffer[0][16] = data[376]; buffer[0][17] = data[377]; buffer[0][18] = data[378]; buffer[0][19] = data[379]; buffer[0][20] = data[380]; buffer[0][21] = data[381]; buffer[0][22] = data[382]; buffer[0][23] = data[383]; buffer[0][24] = data[384]; buffer[0][25] = data[385]; buffer[0][26] = data[386]; buffer[0][27] = data[387]; buffer[0][28] = data[388]; buffer[0][29] = data[389]; buffer[0][30] = data[390]; buffer[0][31] = data[391]; buffer[0][32] = data[392]; buffer[0][33] = data[393]; buffer[0][34] = data[394]; buffer[0][35] = data[395]; + + } + if (partition == 11) { + buffer[0][0] = data[396]; buffer[0][1] = data[397]; buffer[0][2] = data[398]; buffer[0][3] = data[399]; buffer[0][4] = data[400]; buffer[0][5] = data[401]; buffer[0][6] = data[402]; buffer[0][7] = data[403]; buffer[0][8] = data[404]; buffer[0][9] = data[405]; buffer[0][10] = data[406]; buffer[0][11] = data[407]; buffer[0][12] = data[408]; buffer[0][13] = data[409]; buffer[0][14] = data[410]; buffer[0][15] = data[411]; buffer[0][16] = data[412]; buffer[0][17] = data[413]; buffer[0][18] = data[414]; buffer[0][19] = data[415]; buffer[0][20] = data[416]; buffer[0][21] = data[417]; buffer[0][22] = data[418]; buffer[0][23] = data[419]; buffer[0][24] = data[420]; buffer[0][25] = data[421]; buffer[0][26] = data[422]; buffer[0][27] = data[423]; buffer[0][28] = data[424]; buffer[0][29] = data[425]; buffer[0][30] = data[426]; buffer[0][31] = data[427]; buffer[0][32] = data[428]; buffer[0][33] = data[429]; buffer[0][34] = data[430]; buffer[0][35] = data[431]; + + } + if (partition == 12) { + buffer[0][0] = data[432]; buffer[0][1] = data[433]; buffer[0][2] = data[434]; buffer[0][3] = data[435]; buffer[0][4] = data[436]; buffer[0][5] = data[437]; buffer[0][6] = data[438]; buffer[0][7] = data[439]; buffer[0][8] = data[440]; buffer[0][9] = data[441]; buffer[0][10] = data[442]; buffer[0][11] = data[443]; buffer[0][12] = data[444]; buffer[0][13] = data[445]; buffer[0][14] = data[446]; buffer[0][15] = data[447]; buffer[0][16] = data[448]; buffer[0][17] = data[449]; buffer[0][18] = data[450]; buffer[0][19] = data[451]; buffer[0][20] = data[452]; buffer[0][21] = data[453]; buffer[0][22] = data[454]; buffer[0][23] = data[455]; buffer[0][24] = data[456]; buffer[0][25] = data[457]; buffer[0][26] = data[458]; buffer[0][27] = data[459]; buffer[0][28] = data[460]; buffer[0][29] = data[461]; buffer[0][30] = data[462]; buffer[0][31] = data[463]; buffer[0][32] = data[464]; buffer[0][33] = data[465]; buffer[0][34] = data[466]; buffer[0][35] = data[467]; + + } + if (partition == 13) { + buffer[0][0] = data[468]; buffer[0][1] = data[469]; buffer[0][2] = data[470]; buffer[0][3] = data[471]; buffer[0][4] = data[472]; buffer[0][5] = data[473]; buffer[0][6] = data[474]; buffer[0][7] = data[475]; buffer[0][8] = data[476]; buffer[0][9] = data[477]; buffer[0][10] = data[478]; buffer[0][11] = data[479]; buffer[0][12] = data[480]; buffer[0][13] = data[481]; buffer[0][14] = data[482]; buffer[0][15] = data[483]; buffer[0][16] = data[484]; buffer[0][17] = data[485]; buffer[0][18] = data[486]; buffer[0][19] = data[487]; buffer[0][20] = data[488]; buffer[0][21] = data[489]; buffer[0][22] = data[490]; buffer[0][23] = data[491]; buffer[0][24] = data[492]; buffer[0][25] = data[493]; buffer[0][26] = data[494]; buffer[0][27] = data[495]; buffer[0][28] = data[496]; buffer[0][29] = data[497]; buffer[0][30] = data[498]; buffer[0][31] = data[499]; buffer[0][32] = data[500]; buffer[0][33] = data[501]; buffer[0][34] = data[502]; buffer[0][35] = data[503]; + + } + if (partition == 14) { + buffer[0][0] = data[504]; buffer[0][1] = data[505]; buffer[0][2] = data[506]; buffer[0][3] = data[507]; buffer[0][4] = data[508]; buffer[0][5] = data[509]; buffer[0][6] = data[510]; buffer[0][7] = data[511]; buffer[0][8] = data[512]; buffer[0][9] = data[513]; buffer[0][10] = data[514]; buffer[0][11] = data[515]; buffer[0][12] = data[516]; buffer[0][13] = data[517]; buffer[0][14] = data[518]; buffer[0][15] = data[519]; buffer[0][16] = data[520]; buffer[0][17] = data[521]; buffer[0][18] = data[522]; buffer[0][19] = data[523]; buffer[0][20] = data[524]; buffer[0][21] = data[525]; buffer[0][22] = data[526]; buffer[0][23] = data[527]; buffer[0][24] = data[528]; buffer[0][25] = data[529]; buffer[0][26] = data[530]; buffer[0][27] = data[531]; buffer[0][28] = data[532]; buffer[0][29] = data[533]; buffer[0][30] = data[534]; buffer[0][31] = data[535]; buffer[0][32] = data[536]; buffer[0][33] = data[537]; buffer[0][34] = data[538]; buffer[0][35] = data[539]; + + } + if (partition == 15) { + buffer[0][0] = data[540]; buffer[0][1] = data[541]; buffer[0][2] = data[542]; buffer[0][3] = data[543]; buffer[0][4] = data[544]; buffer[0][5] = data[545]; buffer[0][6] = data[546]; buffer[0][7] = data[547]; buffer[0][8] = data[548]; buffer[0][9] = data[549]; buffer[0][10] = data[550]; buffer[0][11] = data[551]; buffer[0][12] = data[552]; buffer[0][13] = data[553]; buffer[0][14] = data[554]; buffer[0][15] = data[555]; buffer[0][16] = data[556]; buffer[0][17] = data[557]; buffer[0][18] = data[558]; buffer[0][19] = data[559]; buffer[0][20] = data[560]; buffer[0][21] = data[561]; buffer[0][22] = data[562]; buffer[0][23] = data[563]; buffer[0][24] = data[564]; buffer[0][25] = data[565]; buffer[0][26] = data[566]; buffer[0][27] = data[567]; buffer[0][28] = data[568]; buffer[0][29] = data[569]; buffer[0][30] = data[570]; buffer[0][31] = data[571]; buffer[0][32] = data[572]; buffer[0][33] = data[573]; buffer[0][34] = data[574]; buffer[0][35] = data[575]; + + } + if (partition == 16) { + buffer[0][0] = data[576]; buffer[0][1] = data[577]; buffer[0][2] = data[578]; buffer[0][3] = data[579]; buffer[0][4] = data[580]; buffer[0][5] = data[581]; buffer[0][6] = data[582]; buffer[0][7] = data[583]; buffer[0][8] = data[584]; buffer[0][9] = data[585]; buffer[0][10] = data[586]; buffer[0][11] = data[587]; buffer[0][12] = data[588]; buffer[0][13] = data[589]; buffer[0][14] = data[590]; buffer[0][15] = data[591]; buffer[0][16] = data[592]; buffer[0][17] = data[593]; buffer[0][18] = data[594]; buffer[0][19] = data[595]; buffer[0][20] = data[596]; buffer[0][21] = data[597]; buffer[0][22] = data[598]; buffer[0][23] = data[599]; buffer[0][24] = data[600]; buffer[0][25] = data[601]; buffer[0][26] = data[602]; buffer[0][27] = data[603]; buffer[0][28] = data[604]; buffer[0][29] = data[605]; buffer[0][30] = data[606]; buffer[0][31] = data[607]; buffer[0][32] = data[608]; buffer[0][33] = data[609]; buffer[0][34] = data[610]; buffer[0][35] = data[611]; + + } + if (partition == 17) { + buffer[0][0] = data[612]; buffer[0][1] = data[613]; buffer[0][2] = data[614]; buffer[0][3] = data[615]; buffer[0][4] = data[616]; buffer[0][5] = data[617]; buffer[0][6] = data[618]; buffer[0][7] = data[619]; buffer[0][8] = data[620]; buffer[0][9] = data[621]; buffer[0][10] = data[622]; buffer[0][11] = data[623]; buffer[0][12] = data[624]; buffer[0][13] = data[625]; buffer[0][14] = data[626]; buffer[0][15] = data[627]; buffer[0][16] = data[628]; buffer[0][17] = data[629]; buffer[0][18] = data[630]; buffer[0][19] = data[631]; buffer[0][20] = data[632]; buffer[0][21] = data[633]; buffer[0][22] = data[634]; buffer[0][23] = data[635]; buffer[0][24] = data[636]; buffer[0][25] = data[637]; buffer[0][26] = data[638]; buffer[0][27] = data[639]; buffer[0][28] = data[640]; buffer[0][29] = data[641]; buffer[0][30] = data[642]; buffer[0][31] = data[643]; buffer[0][32] = data[644]; buffer[0][33] = data[645]; buffer[0][34] = data[646]; buffer[0][35] = data[647]; + + } + if (partition == 18) { + buffer[0][0] = data[648]; buffer[0][1] = data[649]; buffer[0][2] = data[650]; buffer[0][3] = data[651]; buffer[0][4] = data[652]; buffer[0][5] = data[653]; buffer[0][6] = data[654]; buffer[0][7] = data[655]; buffer[0][8] = data[656]; buffer[0][9] = data[657]; buffer[0][10] = data[658]; buffer[0][11] = data[659]; buffer[0][12] = data[660]; buffer[0][13] = data[661]; buffer[0][14] = data[662]; buffer[0][15] = data[663]; buffer[0][16] = data[664]; buffer[0][17] = data[665]; buffer[0][18] = data[666]; buffer[0][19] = data[667]; buffer[0][20] = data[668]; buffer[0][21] = data[669]; buffer[0][22] = data[670]; buffer[0][23] = data[671]; buffer[0][24] = data[672]; buffer[0][25] = data[673]; buffer[0][26] = data[674]; buffer[0][27] = data[675]; buffer[0][28] = data[676]; buffer[0][29] = data[677]; buffer[0][30] = data[678]; buffer[0][31] = data[679]; buffer[0][32] = data[680]; buffer[0][33] = data[681]; buffer[0][34] = data[682]; buffer[0][35] = data[683]; + + } + if (partition == 19) { + buffer[0][0] = data[684]; buffer[0][1] = data[685]; buffer[0][2] = data[686]; buffer[0][3] = data[687]; buffer[0][4] = data[688]; buffer[0][5] = data[689]; buffer[0][6] = data[690]; buffer[0][7] = data[691]; buffer[0][8] = data[692]; buffer[0][9] = data[693]; buffer[0][10] = data[694]; buffer[0][11] = data[695]; buffer[0][12] = data[696]; buffer[0][13] = data[697]; buffer[0][14] = data[698]; buffer[0][15] = data[699]; buffer[0][16] = data[700]; buffer[0][17] = data[701]; buffer[0][18] = data[702]; buffer[0][19] = data[703]; buffer[0][20] = data[704]; buffer[0][21] = data[705]; buffer[0][22] = data[706]; buffer[0][23] = data[707]; buffer[0][24] = data[708]; buffer[0][25] = data[709]; buffer[0][26] = data[710]; buffer[0][27] = data[711]; buffer[0][28] = data[712]; buffer[0][29] = data[713]; buffer[0][30] = data[714]; buffer[0][31] = data[715]; buffer[0][32] = data[716]; buffer[0][33] = data[717]; buffer[0][34] = data[718]; buffer[0][35] = data[719]; + + } + if (partition == 20) { + buffer[0][0] = data[720]; buffer[0][1] = data[721]; buffer[0][2] = data[722]; buffer[0][3] = data[723]; buffer[0][4] = data[724]; buffer[0][5] = data[725]; buffer[0][6] = data[726]; buffer[0][7] = data[727]; buffer[0][8] = data[728]; buffer[0][9] = data[729]; buffer[0][10] = data[730]; buffer[0][11] = data[731]; buffer[0][12] = data[732]; buffer[0][13] = data[733]; buffer[0][14] = data[734]; buffer[0][15] = data[735]; buffer[0][16] = data[736]; buffer[0][17] = data[737]; buffer[0][18] = data[738]; buffer[0][19] = data[739]; buffer[0][20] = data[740]; buffer[0][21] = data[741]; buffer[0][22] = data[742]; buffer[0][23] = data[743]; buffer[0][24] = data[744]; buffer[0][25] = data[745]; buffer[0][26] = data[746]; buffer[0][27] = data[747]; buffer[0][28] = data[748]; buffer[0][29] = data[749]; buffer[0][30] = data[750]; buffer[0][31] = data[751]; buffer[0][32] = data[752]; buffer[0][33] = data[753]; buffer[0][34] = data[754]; buffer[0][35] = data[755]; + + } + if (partition == 21) { + buffer[0][0] = data[756]; buffer[0][1] = data[757]; buffer[0][2] = data[758]; buffer[0][3] = data[759]; buffer[0][4] = data[760]; buffer[0][5] = data[761]; buffer[0][6] = data[762]; buffer[0][7] = data[763]; buffer[0][8] = data[764]; buffer[0][9] = data[765]; buffer[0][10] = data[766]; buffer[0][11] = data[767]; buffer[0][12] = data[768]; buffer[0][13] = data[769]; buffer[0][14] = data[770]; buffer[0][15] = data[771]; buffer[0][16] = data[772]; buffer[0][17] = data[773]; buffer[0][18] = data[774]; buffer[0][19] = data[775]; buffer[0][20] = data[776]; buffer[0][21] = data[777]; buffer[0][22] = data[778]; buffer[0][23] = data[779]; buffer[0][24] = data[780]; buffer[0][25] = data[781]; buffer[0][26] = data[782]; buffer[0][27] = data[783]; buffer[0][28] = data[784]; buffer[0][29] = data[785]; buffer[0][30] = data[786]; buffer[0][31] = data[787]; buffer[0][32] = data[788]; buffer[0][33] = data[789]; buffer[0][34] = data[790]; buffer[0][35] = data[791]; + + } + if (partition == 22) { + buffer[0][0] = data[792]; buffer[0][1] = data[793]; buffer[0][2] = data[794]; buffer[0][3] = data[795]; buffer[0][4] = data[796]; buffer[0][5] = data[797]; buffer[0][6] = data[798]; buffer[0][7] = data[799]; buffer[0][8] = data[800]; buffer[0][9] = data[801]; buffer[0][10] = data[802]; buffer[0][11] = data[803]; buffer[0][12] = data[804]; buffer[0][13] = data[805]; buffer[0][14] = data[806]; buffer[0][15] = data[807]; buffer[0][16] = data[808]; buffer[0][17] = data[809]; buffer[0][18] = data[810]; buffer[0][19] = data[811]; buffer[0][20] = data[812]; buffer[0][21] = data[813]; buffer[0][22] = data[814]; buffer[0][23] = data[815]; buffer[0][24] = data[816]; buffer[0][25] = data[817]; buffer[0][26] = data[818]; buffer[0][27] = data[819]; buffer[0][28] = data[820]; buffer[0][29] = data[821]; buffer[0][30] = data[822]; buffer[0][31] = data[823]; buffer[0][32] = data[824]; buffer[0][33] = data[825]; buffer[0][34] = data[826]; buffer[0][35] = data[827]; + + } + if (partition == 23) { + buffer[0][0] = data[828]; buffer[0][1] = data[829]; buffer[0][2] = data[830]; buffer[0][3] = data[831]; buffer[0][4] = data[832]; buffer[0][5] = data[833]; buffer[0][6] = data[834]; buffer[0][7] = data[835]; buffer[0][8] = data[836]; buffer[0][9] = data[837]; buffer[0][10] = data[838]; buffer[0][11] = data[839]; buffer[0][12] = data[840]; buffer[0][13] = data[841]; buffer[0][14] = data[842]; buffer[0][15] = data[843]; buffer[0][16] = data[844]; buffer[0][17] = data[845]; buffer[0][18] = data[846]; buffer[0][19] = data[847]; buffer[0][20] = data[848]; buffer[0][21] = data[849]; buffer[0][22] = data[850]; buffer[0][23] = data[851]; buffer[0][24] = data[852]; buffer[0][25] = data[853]; buffer[0][26] = data[854]; buffer[0][27] = data[855]; buffer[0][28] = data[856]; buffer[0][29] = data[857]; buffer[0][30] = data[858]; buffer[0][31] = data[859]; buffer[0][32] = data[860]; buffer[0][33] = data[861]; buffer[0][34] = data[862]; buffer[0][35] = data[863]; + + } + if (partition == 24) { + buffer[0][0] = data[864]; buffer[0][1] = data[865]; buffer[0][2] = data[866]; buffer[0][3] = data[867]; buffer[0][4] = data[868]; buffer[0][5] = data[869]; buffer[0][6] = data[870]; buffer[0][7] = data[871]; buffer[0][8] = data[872]; buffer[0][9] = data[873]; buffer[0][10] = data[874]; buffer[0][11] = data[875]; buffer[0][12] = data[876]; buffer[0][13] = data[877]; buffer[0][14] = data[878]; buffer[0][15] = data[879]; buffer[0][16] = data[880]; buffer[0][17] = data[881]; buffer[0][18] = data[882]; buffer[0][19] = data[883]; buffer[0][20] = data[884]; buffer[0][21] = data[885]; buffer[0][22] = data[886]; buffer[0][23] = data[887]; buffer[0][24] = data[888]; buffer[0][25] = data[889]; buffer[0][26] = data[890]; buffer[0][27] = data[891]; buffer[0][28] = data[892]; buffer[0][29] = data[893]; buffer[0][30] = data[894]; buffer[0][31] = data[895]; buffer[0][32] = data[896]; buffer[0][33] = data[897]; buffer[0][34] = data[898]; buffer[0][35] = data[899]; + + } + if (partition == 25) { + buffer[0][0] = data[900]; buffer[0][1] = data[901]; buffer[0][2] = data[902]; buffer[0][3] = data[903]; buffer[0][4] = data[904]; buffer[0][5] = data[905]; buffer[0][6] = data[906]; buffer[0][7] = data[907]; buffer[0][8] = data[908]; buffer[0][9] = data[909]; buffer[0][10] = data[910]; buffer[0][11] = data[911]; buffer[0][12] = data[912]; buffer[0][13] = data[913]; buffer[0][14] = data[914]; buffer[0][15] = data[915]; buffer[0][16] = data[916]; buffer[0][17] = data[917]; buffer[0][18] = data[918]; buffer[0][19] = data[919]; buffer[0][20] = data[920]; buffer[0][21] = data[921]; buffer[0][22] = data[922]; buffer[0][23] = data[923]; buffer[0][24] = data[924]; buffer[0][25] = data[925]; buffer[0][26] = data[926]; buffer[0][27] = data[927]; buffer[0][28] = data[928]; buffer[0][29] = data[929]; buffer[0][30] = data[930]; buffer[0][31] = data[931]; buffer[0][32] = data[932]; buffer[0][33] = data[933]; buffer[0][34] = data[934]; buffer[0][35] = data[935]; + + } + if (partition == 26) { + buffer[0][0] = data[936]; buffer[0][1] = data[937]; buffer[0][2] = data[938]; buffer[0][3] = data[939]; buffer[0][4] = data[940]; buffer[0][5] = data[941]; buffer[0][6] = data[942]; buffer[0][7] = data[943]; buffer[0][8] = data[944]; buffer[0][9] = data[945]; buffer[0][10] = data[946]; buffer[0][11] = data[947]; buffer[0][12] = data[948]; buffer[0][13] = data[949]; buffer[0][14] = data[950]; buffer[0][15] = data[951]; buffer[0][16] = data[952]; buffer[0][17] = data[953]; buffer[0][18] = data[954]; buffer[0][19] = data[955]; buffer[0][20] = data[956]; buffer[0][21] = data[957]; buffer[0][22] = data[958]; buffer[0][23] = data[959]; buffer[0][24] = data[960]; buffer[0][25] = data[961]; buffer[0][26] = data[962]; buffer[0][27] = data[963]; buffer[0][28] = data[964]; buffer[0][29] = data[965]; buffer[0][30] = data[966]; buffer[0][31] = data[967]; buffer[0][32] = data[968]; buffer[0][33] = data[969]; buffer[0][34] = data[970]; buffer[0][35] = data[971]; + + } + if (partition == 27) { + buffer[0][0] = data[972]; buffer[0][1] = data[973]; buffer[0][2] = data[974]; buffer[0][3] = data[975]; buffer[0][4] = data[976]; buffer[0][5] = data[977]; buffer[0][6] = data[978]; buffer[0][7] = data[979]; buffer[0][8] = data[980]; buffer[0][9] = data[981]; buffer[0][10] = data[982]; buffer[0][11] = data[983]; buffer[0][12] = data[984]; buffer[0][13] = data[985]; buffer[0][14] = data[986]; buffer[0][15] = data[987]; buffer[0][16] = data[988]; buffer[0][17] = data[989]; buffer[0][18] = data[990]; buffer[0][19] = data[991]; buffer[0][20] = data[992]; buffer[0][21] = data[993]; buffer[0][22] = data[994]; buffer[0][23] = data[995]; buffer[0][24] = data[996]; buffer[0][25] = data[997]; buffer[0][26] = data[998]; buffer[0][27] = data[999]; buffer[0][28] = data[1000]; buffer[0][29] = data[1001]; buffer[0][30] = data[1002]; buffer[0][31] = data[1003]; buffer[0][32] = data[1004]; buffer[0][33] = data[1005]; buffer[0][34] = data[1006]; buffer[0][35] = data[1007]; + + } + if (partition == 28) { + buffer[0][0] = data[1008]; buffer[0][1] = data[1009]; buffer[0][2] = data[1010]; buffer[0][3] = data[1011]; buffer[0][4] = data[1012]; buffer[0][5] = data[1013]; buffer[0][6] = data[1014]; buffer[0][7] = data[1015]; buffer[0][8] = data[1016]; buffer[0][9] = data[1017]; buffer[0][10] = data[1018]; buffer[0][11] = data[1019]; buffer[0][12] = data[1020]; buffer[0][13] = data[1021]; buffer[0][14] = data[1022]; buffer[0][15] = data[1023]; buffer[0][16] = data[1024]; buffer[0][17] = data[1025]; buffer[0][18] = data[1026]; buffer[0][19] = data[1027]; buffer[0][20] = data[1028]; buffer[0][21] = data[1029]; buffer[0][22] = data[1030]; buffer[0][23] = data[1031]; buffer[0][24] = data[1032]; buffer[0][25] = data[1033]; buffer[0][26] = data[1034]; buffer[0][27] = data[1035]; buffer[0][28] = data[1036]; buffer[0][29] = data[1037]; buffer[0][30] = data[1038]; buffer[0][31] = data[1039]; buffer[0][32] = data[1040]; buffer[0][33] = data[1041]; buffer[0][34] = data[1042]; buffer[0][35] = data[1043]; + + } + if (partition == 29) { + buffer[0][0] = data[1044]; buffer[0][1] = data[1045]; buffer[0][2] = data[1046]; buffer[0][3] = data[1047]; buffer[0][4] = data[1048]; buffer[0][5] = data[1049]; buffer[0][6] = data[1050]; buffer[0][7] = data[1051]; buffer[0][8] = data[1052]; buffer[0][9] = data[1053]; buffer[0][10] = data[1054]; buffer[0][11] = data[1055]; buffer[0][12] = data[1056]; buffer[0][13] = data[1057]; buffer[0][14] = data[1058]; buffer[0][15] = data[1059]; buffer[0][16] = data[1060]; buffer[0][17] = data[1061]; buffer[0][18] = data[1062]; buffer[0][19] = data[1063]; buffer[0][20] = data[1064]; buffer[0][21] = data[1065]; buffer[0][22] = data[1066]; buffer[0][23] = data[1067]; buffer[0][24] = data[1068]; buffer[0][25] = data[1069]; buffer[0][26] = data[1070]; buffer[0][27] = data[1071]; buffer[0][28] = data[1072]; buffer[0][29] = data[1073]; buffer[0][30] = data[1074]; buffer[0][31] = data[1075]; buffer[0][32] = data[1076]; buffer[0][33] = data[1077]; buffer[0][34] = data[1078]; buffer[0][35] = data[1079]; + + } + if (partition == 30) { + buffer[0][0] = data[1080]; buffer[0][1] = data[1081]; buffer[0][2] = data[1082]; buffer[0][3] = data[1083]; buffer[0][4] = data[1084]; buffer[0][5] = data[1085]; buffer[0][6] = data[1086]; buffer[0][7] = data[1087]; buffer[0][8] = data[1088]; buffer[0][9] = data[1089]; buffer[0][10] = data[1090]; buffer[0][11] = data[1091]; buffer[0][12] = data[1092]; buffer[0][13] = data[1093]; buffer[0][14] = data[1094]; buffer[0][15] = data[1095]; buffer[0][16] = data[1096]; buffer[0][17] = data[1097]; buffer[0][18] = data[1098]; buffer[0][19] = data[1099]; buffer[0][20] = data[1100]; buffer[0][21] = data[1101]; buffer[0][22] = data[1102]; buffer[0][23] = data[1103]; buffer[0][24] = data[1104]; buffer[0][25] = data[1105]; buffer[0][26] = data[1106]; buffer[0][27] = data[1107]; buffer[0][28] = data[1108]; buffer[0][29] = data[1109]; buffer[0][30] = data[1110]; buffer[0][31] = data[1111]; buffer[0][32] = data[1112]; buffer[0][33] = data[1113]; buffer[0][34] = data[1114]; buffer[0][35] = data[1115]; + + } + if (partition == 31) { + buffer[0][0] = data[1116]; buffer[0][1] = data[1117]; buffer[0][2] = data[1118]; buffer[0][3] = data[1119]; buffer[0][4] = data[1120]; buffer[0][5] = data[1121]; buffer[0][6] = data[1122]; buffer[0][7] = data[1123]; buffer[0][8] = data[1124]; buffer[0][9] = data[1125]; buffer[0][10] = data[1126]; buffer[0][11] = data[1127]; buffer[0][12] = data[1128]; buffer[0][13] = data[1129]; buffer[0][14] = data[1130]; buffer[0][15] = data[1131]; buffer[0][16] = data[1132]; buffer[0][17] = data[1133]; buffer[0][18] = data[1134]; buffer[0][19] = data[1135]; buffer[0][20] = data[1136]; buffer[0][21] = data[1137]; buffer[0][22] = data[1138]; buffer[0][23] = data[1139]; buffer[0][24] = data[1140]; buffer[0][25] = data[1141]; buffer[0][26] = data[1142]; buffer[0][27] = data[1143]; buffer[0][28] = data[1144]; buffer[0][29] = data[1145]; buffer[0][30] = data[1146]; buffer[0][31] = data[1147]; buffer[0][32] = data[1148]; buffer[0][33] = data[1149]; buffer[0][34] = data[1150]; buffer[0][35] = data[1151]; + + } + if (partition == 32) { + buffer[0][0] = data[1152]; buffer[0][1] = data[1153]; buffer[0][2] = data[1154]; buffer[0][3] = data[1155]; buffer[0][4] = data[1156]; buffer[0][5] = data[1157]; buffer[0][6] = data[1158]; buffer[0][7] = data[1159]; buffer[0][8] = data[1160]; buffer[0][9] = data[1161]; buffer[0][10] = data[1162]; buffer[0][11] = data[1163]; buffer[0][12] = data[1164]; buffer[0][13] = data[1165]; buffer[0][14] = data[1166]; buffer[0][15] = data[1167]; buffer[0][16] = data[1168]; buffer[0][17] = data[1169]; buffer[0][18] = data[1170]; buffer[0][19] = data[1171]; buffer[0][20] = data[1172]; buffer[0][21] = data[1173]; buffer[0][22] = data[1174]; buffer[0][23] = data[1175]; buffer[0][24] = data[1176]; buffer[0][25] = data[1177]; buffer[0][26] = data[1178]; buffer[0][27] = data[1179]; buffer[0][28] = data[1180]; buffer[0][29] = data[1181]; buffer[0][30] = data[1182]; buffer[0][31] = data[1183]; buffer[0][32] = data[1184]; buffer[0][33] = data[1185]; buffer[0][34] = data[1186]; buffer[0][35] = data[1187]; + + } + if (partition == 33) { + buffer[0][0] = data[1188]; buffer[0][1] = data[1189]; buffer[0][2] = data[1190]; buffer[0][3] = data[1191]; buffer[0][4] = data[1192]; buffer[0][5] = data[1193]; buffer[0][6] = data[1194]; buffer[0][7] = data[1195]; buffer[0][8] = data[1196]; buffer[0][9] = data[1197]; buffer[0][10] = data[1198]; buffer[0][11] = data[1199]; buffer[0][12] = data[1200]; buffer[0][13] = data[1201]; buffer[0][14] = data[1202]; buffer[0][15] = data[1203]; buffer[0][16] = data[1204]; buffer[0][17] = data[1205]; buffer[0][18] = data[1206]; buffer[0][19] = data[1207]; buffer[0][20] = data[1208]; buffer[0][21] = data[1209]; buffer[0][22] = data[1210]; buffer[0][23] = data[1211]; buffer[0][24] = data[1212]; buffer[0][25] = data[1213]; buffer[0][26] = data[1214]; buffer[0][27] = data[1215]; buffer[0][28] = data[1216]; buffer[0][29] = data[1217]; buffer[0][30] = data[1218]; buffer[0][31] = data[1219]; buffer[0][32] = data[1220]; buffer[0][33] = data[1221]; buffer[0][34] = data[1222]; buffer[0][35] = data[1223]; + + } + if (partition == 34) { + buffer[0][0] = data[1224]; buffer[0][1] = data[1225]; buffer[0][2] = data[1226]; buffer[0][3] = data[1227]; buffer[0][4] = data[1228]; buffer[0][5] = data[1229]; buffer[0][6] = data[1230]; buffer[0][7] = data[1231]; buffer[0][8] = data[1232]; buffer[0][9] = data[1233]; buffer[0][10] = data[1234]; buffer[0][11] = data[1235]; buffer[0][12] = data[1236]; buffer[0][13] = data[1237]; buffer[0][14] = data[1238]; buffer[0][15] = data[1239]; buffer[0][16] = data[1240]; buffer[0][17] = data[1241]; buffer[0][18] = data[1242]; buffer[0][19] = data[1243]; buffer[0][20] = data[1244]; buffer[0][21] = data[1245]; buffer[0][22] = data[1246]; buffer[0][23] = data[1247]; buffer[0][24] = data[1248]; buffer[0][25] = data[1249]; buffer[0][26] = data[1250]; buffer[0][27] = data[1251]; buffer[0][28] = data[1252]; buffer[0][29] = data[1253]; buffer[0][30] = data[1254]; buffer[0][31] = data[1255]; buffer[0][32] = data[1256]; buffer[0][33] = data[1257]; buffer[0][34] = data[1258]; buffer[0][35] = data[1259]; + + } + if (partition == 35) { + buffer[0][0] = data[1260]; buffer[0][1] = data[1261]; buffer[0][2] = data[1262]; buffer[0][3] = data[1263]; buffer[0][4] = data[1264]; buffer[0][5] = data[1265]; buffer[0][6] = data[1266]; buffer[0][7] = data[1267]; buffer[0][8] = data[1268]; buffer[0][9] = data[1269]; buffer[0][10] = data[1270]; buffer[0][11] = data[1271]; buffer[0][12] = data[1272]; buffer[0][13] = data[1273]; buffer[0][14] = data[1274]; buffer[0][15] = data[1275]; buffer[0][16] = data[1276]; buffer[0][17] = data[1277]; buffer[0][18] = data[1278]; buffer[0][19] = data[1279]; buffer[0][20] = data[1280]; buffer[0][21] = data[1281]; buffer[0][22] = data[1282]; buffer[0][23] = data[1283]; buffer[0][24] = data[1284]; buffer[0][25] = data[1285]; buffer[0][26] = data[1286]; buffer[0][27] = data[1287]; buffer[0][28] = data[1288]; buffer[0][29] = data[1289]; buffer[0][30] = data[1290]; buffer[0][31] = data[1291]; buffer[0][32] = data[1292]; buffer[0][33] = data[1293]; buffer[0][34] = data[1294]; buffer[0][35] = data[1295]; + + } + if (partition == 36) { + buffer[0][0] = data[1296]; buffer[0][1] = data[1297]; buffer[0][2] = data[1298]; buffer[0][3] = data[1299]; buffer[0][4] = data[1300]; buffer[0][5] = data[1301]; buffer[0][6] = data[1302]; buffer[0][7] = data[1303]; buffer[0][8] = data[1304]; buffer[0][9] = data[1305]; buffer[0][10] = data[1306]; buffer[0][11] = data[1307]; buffer[0][12] = data[1308]; buffer[0][13] = data[1309]; buffer[0][14] = data[1310]; buffer[0][15] = data[1311]; buffer[0][16] = data[1312]; buffer[0][17] = data[1313]; buffer[0][18] = data[1314]; buffer[0][19] = data[1315]; buffer[0][20] = data[1316]; buffer[0][21] = data[1317]; buffer[0][22] = data[1318]; buffer[0][23] = data[1319]; buffer[0][24] = data[1320]; buffer[0][25] = data[1321]; buffer[0][26] = data[1322]; buffer[0][27] = data[1323]; buffer[0][28] = data[1324]; buffer[0][29] = data[1325]; buffer[0][30] = data[1326]; buffer[0][31] = data[1327]; buffer[0][32] = data[1328]; buffer[0][33] = data[1329]; buffer[0][34] = data[1330]; buffer[0][35] = data[1331]; + + } + if (partition == 37) { + buffer[0][0] = data[1332]; buffer[0][1] = data[1333]; buffer[0][2] = data[1334]; buffer[0][3] = data[1335]; buffer[0][4] = data[1336]; buffer[0][5] = data[1337]; buffer[0][6] = data[1338]; buffer[0][7] = data[1339]; buffer[0][8] = data[1340]; buffer[0][9] = data[1341]; buffer[0][10] = data[1342]; buffer[0][11] = data[1343]; buffer[0][12] = data[1344]; buffer[0][13] = data[1345]; buffer[0][14] = data[1346]; buffer[0][15] = data[1347]; buffer[0][16] = data[1348]; buffer[0][17] = data[1349]; buffer[0][18] = data[1350]; buffer[0][19] = data[1351]; buffer[0][20] = data[1352]; buffer[0][21] = data[1353]; buffer[0][22] = data[1354]; buffer[0][23] = data[1355]; buffer[0][24] = data[1356]; buffer[0][25] = data[1357]; buffer[0][26] = data[1358]; buffer[0][27] = data[1359]; buffer[0][28] = data[1360]; buffer[0][29] = data[1361]; buffer[0][30] = data[1362]; buffer[0][31] = data[1363]; buffer[0][32] = data[1364]; buffer[0][33] = data[1365]; buffer[0][34] = data[1366]; buffer[0][35] = data[1367]; + + } + if (partition == 38) { + buffer[0][0] = data[1368]; buffer[0][1] = data[1369]; buffer[0][2] = data[1370]; buffer[0][3] = data[1371]; buffer[0][4] = data[1372]; buffer[0][5] = data[1373]; buffer[0][6] = data[1374]; buffer[0][7] = data[1375]; buffer[0][8] = data[1376]; buffer[0][9] = data[1377]; buffer[0][10] = data[1378]; buffer[0][11] = data[1379]; buffer[0][12] = data[1380]; buffer[0][13] = data[1381]; buffer[0][14] = data[1382]; buffer[0][15] = data[1383]; buffer[0][16] = data[1384]; buffer[0][17] = data[1385]; buffer[0][18] = data[1386]; buffer[0][19] = data[1387]; buffer[0][20] = data[1388]; buffer[0][21] = data[1389]; buffer[0][22] = data[1390]; buffer[0][23] = data[1391]; buffer[0][24] = data[1392]; buffer[0][25] = data[1393]; buffer[0][26] = data[1394]; buffer[0][27] = data[1395]; buffer[0][28] = data[1396]; buffer[0][29] = data[1397]; buffer[0][30] = data[1398]; buffer[0][31] = data[1399]; buffer[0][32] = data[1400]; buffer[0][33] = data[1401]; buffer[0][34] = data[1402]; buffer[0][35] = data[1403]; + + } + if (partition == 39) { + buffer[0][0] = data[1404]; buffer[0][1] = data[1405]; buffer[0][2] = data[1406]; buffer[0][3] = data[1407]; buffer[0][4] = data[1408]; buffer[0][5] = data[1409]; buffer[0][6] = data[1410]; buffer[0][7] = data[1411]; buffer[0][8] = data[1412]; buffer[0][9] = data[1413]; buffer[0][10] = data[1414]; buffer[0][11] = data[1415]; buffer[0][12] = data[1416]; buffer[0][13] = data[1417]; buffer[0][14] = data[1418]; buffer[0][15] = data[1419]; buffer[0][16] = data[1420]; buffer[0][17] = data[1421]; buffer[0][18] = data[1422]; buffer[0][19] = data[1423]; buffer[0][20] = data[1424]; buffer[0][21] = data[1425]; buffer[0][22] = data[1426]; buffer[0][23] = data[1427]; buffer[0][24] = data[1428]; buffer[0][25] = data[1429]; buffer[0][26] = data[1430]; buffer[0][27] = data[1431]; buffer[0][28] = data[1432]; buffer[0][29] = data[1433]; buffer[0][30] = data[1434]; buffer[0][31] = data[1435]; buffer[0][32] = data[1436]; buffer[0][33] = data[1437]; buffer[0][34] = data[1438]; buffer[0][35] = data[1439]; + + } + if (partition == 40) { + buffer[0][0] = data[1440]; buffer[0][1] = data[1441]; buffer[0][2] = data[1442]; buffer[0][3] = data[1443]; buffer[0][4] = data[1444]; buffer[0][5] = data[1445]; buffer[0][6] = data[1446]; buffer[0][7] = data[1447]; buffer[0][8] = data[1448]; buffer[0][9] = data[1449]; buffer[0][10] = data[1450]; buffer[0][11] = data[1451]; buffer[0][12] = data[1452]; buffer[0][13] = data[1453]; buffer[0][14] = data[1454]; buffer[0][15] = data[1455]; buffer[0][16] = data[1456]; buffer[0][17] = data[1457]; buffer[0][18] = data[1458]; buffer[0][19] = data[1459]; buffer[0][20] = data[1460]; buffer[0][21] = data[1461]; buffer[0][22] = data[1462]; buffer[0][23] = data[1463]; buffer[0][24] = data[1464]; buffer[0][25] = data[1465]; buffer[0][26] = data[1466]; buffer[0][27] = data[1467]; buffer[0][28] = data[1468]; buffer[0][29] = data[1469]; buffer[0][30] = data[1470]; buffer[0][31] = data[1471]; buffer[0][32] = data[1472]; buffer[0][33] = data[1473]; buffer[0][34] = data[1474]; buffer[0][35] = data[1475]; + + } + if (partition == 41) { + buffer[0][0] = data[1476]; buffer[0][1] = data[1477]; buffer[0][2] = data[1478]; buffer[0][3] = data[1479]; buffer[0][4] = data[1480]; buffer[0][5] = data[1481]; buffer[0][6] = data[1482]; buffer[0][7] = data[1483]; buffer[0][8] = data[1484]; buffer[0][9] = data[1485]; buffer[0][10] = data[1486]; buffer[0][11] = data[1487]; buffer[0][12] = data[1488]; buffer[0][13] = data[1489]; buffer[0][14] = data[1490]; buffer[0][15] = data[1491]; buffer[0][16] = data[1492]; buffer[0][17] = data[1493]; buffer[0][18] = data[1494]; buffer[0][19] = data[1495]; buffer[0][20] = data[1496]; buffer[0][21] = data[1497]; buffer[0][22] = data[1498]; buffer[0][23] = data[1499]; buffer[0][24] = data[1500]; buffer[0][25] = data[1501]; buffer[0][26] = data[1502]; buffer[0][27] = data[1503]; buffer[0][28] = data[1504]; buffer[0][29] = data[1505]; buffer[0][30] = data[1506]; buffer[0][31] = data[1507]; buffer[0][32] = data[1508]; buffer[0][33] = data[1509]; buffer[0][34] = data[1510]; buffer[0][35] = data[1511]; + + } + if (partition == 42) { + buffer[0][0] = data[1512]; buffer[0][1] = data[1513]; buffer[0][2] = data[1514]; buffer[0][3] = data[1515]; buffer[0][4] = data[1516]; buffer[0][5] = data[1517]; buffer[0][6] = data[1518]; buffer[0][7] = data[1519]; buffer[0][8] = data[1520]; buffer[0][9] = data[1521]; buffer[0][10] = data[1522]; buffer[0][11] = data[1523]; buffer[0][12] = data[1524]; buffer[0][13] = data[1525]; buffer[0][14] = data[1526]; buffer[0][15] = data[1527]; buffer[0][16] = data[1528]; buffer[0][17] = data[1529]; buffer[0][18] = data[1530]; buffer[0][19] = data[1531]; buffer[0][20] = data[1532]; buffer[0][21] = data[1533]; buffer[0][22] = data[1534]; buffer[0][23] = data[1535]; buffer[0][24] = data[1536]; buffer[0][25] = data[1537]; buffer[0][26] = data[1538]; buffer[0][27] = data[1539]; buffer[0][28] = data[1540]; buffer[0][29] = data[1541]; buffer[0][30] = data[1542]; buffer[0][31] = data[1543]; buffer[0][32] = data[1544]; buffer[0][33] = data[1545]; buffer[0][34] = data[1546]; buffer[0][35] = data[1547]; + + } + if (partition == 43) { + buffer[0][0] = data[1548]; buffer[0][1] = data[1549]; buffer[0][2] = data[1550]; buffer[0][3] = data[1551]; buffer[0][4] = data[1552]; buffer[0][5] = data[1553]; buffer[0][6] = data[1554]; buffer[0][7] = data[1555]; buffer[0][8] = data[1556]; buffer[0][9] = data[1557]; buffer[0][10] = data[1558]; buffer[0][11] = data[1559]; buffer[0][12] = data[1560]; buffer[0][13] = data[1561]; buffer[0][14] = data[1562]; buffer[0][15] = data[1563]; buffer[0][16] = data[1564]; buffer[0][17] = data[1565]; buffer[0][18] = data[1566]; buffer[0][19] = data[1567]; buffer[0][20] = data[1568]; buffer[0][21] = data[1569]; buffer[0][22] = data[1570]; buffer[0][23] = data[1571]; buffer[0][24] = data[1572]; buffer[0][25] = data[1573]; buffer[0][26] = data[1574]; buffer[0][27] = data[1575]; buffer[0][28] = data[1576]; buffer[0][29] = data[1577]; buffer[0][30] = data[1578]; buffer[0][31] = data[1579]; buffer[0][32] = data[1580]; buffer[0][33] = data[1581]; buffer[0][34] = data[1582]; buffer[0][35] = data[1583]; + + } + if (partition == 44) { + buffer[0][0] = data[1584]; buffer[0][1] = data[1585]; buffer[0][2] = data[1586]; buffer[0][3] = data[1587]; buffer[0][4] = data[1588]; buffer[0][5] = data[1589]; buffer[0][6] = data[1590]; buffer[0][7] = data[1591]; buffer[0][8] = data[1592]; buffer[0][9] = data[1593]; buffer[0][10] = data[1594]; buffer[0][11] = data[1595]; buffer[0][12] = data[1596]; buffer[0][13] = data[1597]; buffer[0][14] = data[1598]; buffer[0][15] = data[1599]; buffer[0][16] = data[1600]; buffer[0][17] = data[1601]; buffer[0][18] = data[1602]; buffer[0][19] = data[1603]; buffer[0][20] = data[1604]; buffer[0][21] = data[1605]; buffer[0][22] = data[1606]; buffer[0][23] = data[1607]; buffer[0][24] = data[1608]; buffer[0][25] = data[1609]; buffer[0][26] = data[1610]; buffer[0][27] = data[1611]; buffer[0][28] = data[1612]; buffer[0][29] = data[1613]; buffer[0][30] = data[1614]; buffer[0][31] = data[1615]; buffer[0][32] = data[1616]; buffer[0][33] = data[1617]; buffer[0][34] = data[1618]; buffer[0][35] = data[1619]; + + } + if (partition == 45) { + buffer[0][0] = data[1620]; buffer[0][1] = data[1621]; buffer[0][2] = data[1622]; buffer[0][3] = data[1623]; buffer[0][4] = data[1624]; buffer[0][5] = data[1625]; buffer[0][6] = data[1626]; buffer[0][7] = data[1627]; buffer[0][8] = data[1628]; buffer[0][9] = data[1629]; buffer[0][10] = data[1630]; buffer[0][11] = data[1631]; buffer[0][12] = data[1632]; buffer[0][13] = data[1633]; buffer[0][14] = data[1634]; buffer[0][15] = data[1635]; buffer[0][16] = data[1636]; buffer[0][17] = data[1637]; buffer[0][18] = data[1638]; buffer[0][19] = data[1639]; buffer[0][20] = data[1640]; buffer[0][21] = data[1641]; buffer[0][22] = data[1642]; buffer[0][23] = data[1643]; buffer[0][24] = data[1644]; buffer[0][25] = data[1645]; buffer[0][26] = data[1646]; buffer[0][27] = data[1647]; buffer[0][28] = data[1648]; buffer[0][29] = data[1649]; buffer[0][30] = data[1650]; buffer[0][31] = data[1651]; buffer[0][32] = data[1652]; buffer[0][33] = data[1653]; buffer[0][34] = data[1654]; buffer[0][35] = data[1655]; + + } + if (partition == 46) { + buffer[0][0] = data[1656]; buffer[0][1] = data[1657]; buffer[0][2] = data[1658]; buffer[0][3] = data[1659]; buffer[0][4] = data[1660]; buffer[0][5] = data[1661]; buffer[0][6] = data[1662]; buffer[0][7] = data[1663]; buffer[0][8] = data[1664]; buffer[0][9] = data[1665]; buffer[0][10] = data[1666]; buffer[0][11] = data[1667]; buffer[0][12] = data[1668]; buffer[0][13] = data[1669]; buffer[0][14] = data[1670]; buffer[0][15] = data[1671]; buffer[0][16] = data[1672]; buffer[0][17] = data[1673]; buffer[0][18] = data[1674]; buffer[0][19] = data[1675]; buffer[0][20] = data[1676]; buffer[0][21] = data[1677]; buffer[0][22] = data[1678]; buffer[0][23] = data[1679]; buffer[0][24] = data[1680]; buffer[0][25] = data[1681]; buffer[0][26] = data[1682]; buffer[0][27] = data[1683]; buffer[0][28] = data[1684]; buffer[0][29] = data[1685]; buffer[0][30] = data[1686]; buffer[0][31] = data[1687]; buffer[0][32] = data[1688]; buffer[0][33] = data[1689]; buffer[0][34] = data[1690]; buffer[0][35] = data[1691]; + + } + if (partition == 47) { + buffer[0][0] = data[1692]; buffer[0][1] = data[1693]; buffer[0][2] = data[1694]; buffer[0][3] = data[1695]; buffer[0][4] = data[1696]; buffer[0][5] = data[1697]; buffer[0][6] = data[1698]; buffer[0][7] = data[1699]; buffer[0][8] = data[1700]; buffer[0][9] = data[1701]; buffer[0][10] = data[1702]; buffer[0][11] = data[1703]; buffer[0][12] = data[1704]; buffer[0][13] = data[1705]; buffer[0][14] = data[1706]; buffer[0][15] = data[1707]; buffer[0][16] = data[1708]; buffer[0][17] = data[1709]; buffer[0][18] = data[1710]; buffer[0][19] = data[1711]; buffer[0][20] = data[1712]; buffer[0][21] = data[1713]; buffer[0][22] = data[1714]; buffer[0][23] = data[1715]; buffer[0][24] = data[1716]; buffer[0][25] = data[1717]; buffer[0][26] = data[1718]; buffer[0][27] = data[1719]; buffer[0][28] = data[1720]; buffer[0][29] = data[1721]; buffer[0][30] = data[1722]; buffer[0][31] = data[1723]; buffer[0][32] = data[1724]; buffer[0][33] = data[1725]; buffer[0][34] = data[1726]; buffer[0][35] = data[1727]; + + } + if (partition == 48) { + buffer[0][0] = data[1728]; buffer[0][1] = data[1729]; buffer[0][2] = data[1730]; buffer[0][3] = data[1731]; buffer[0][4] = data[1732]; buffer[0][5] = data[1733]; buffer[0][6] = data[1734]; buffer[0][7] = data[1735]; buffer[0][8] = data[1736]; buffer[0][9] = data[1737]; buffer[0][10] = data[1738]; buffer[0][11] = data[1739]; buffer[0][12] = data[1740]; buffer[0][13] = data[1741]; buffer[0][14] = data[1742]; buffer[0][15] = data[1743]; buffer[0][16] = data[1744]; buffer[0][17] = data[1745]; buffer[0][18] = data[1746]; buffer[0][19] = data[1747]; buffer[0][20] = data[1748]; buffer[0][21] = data[1749]; buffer[0][22] = data[1750]; buffer[0][23] = data[1751]; buffer[0][24] = data[1752]; buffer[0][25] = data[1753]; buffer[0][26] = data[1754]; buffer[0][27] = data[1755]; buffer[0][28] = data[1756]; buffer[0][29] = data[1757]; buffer[0][30] = data[1758]; buffer[0][31] = data[1759]; buffer[0][32] = data[1760]; buffer[0][33] = data[1761]; buffer[0][34] = data[1762]; buffer[0][35] = data[1763]; + + } + if (partition == 49) { + buffer[0][0] = data[1764]; buffer[0][1] = data[1765]; buffer[0][2] = data[1766]; buffer[0][3] = data[1767]; buffer[0][4] = data[1768]; buffer[0][5] = data[1769]; buffer[0][6] = data[1770]; buffer[0][7] = data[1771]; buffer[0][8] = data[1772]; buffer[0][9] = data[1773]; buffer[0][10] = data[1774]; buffer[0][11] = data[1775]; buffer[0][12] = data[1776]; buffer[0][13] = data[1777]; buffer[0][14] = data[1778]; buffer[0][15] = data[1779]; buffer[0][16] = data[1780]; buffer[0][17] = data[1781]; buffer[0][18] = data[1782]; buffer[0][19] = data[1783]; buffer[0][20] = data[1784]; buffer[0][21] = data[1785]; buffer[0][22] = data[1786]; buffer[0][23] = data[1787]; buffer[0][24] = data[1788]; buffer[0][25] = data[1789]; buffer[0][26] = data[1790]; buffer[0][27] = data[1791]; buffer[0][28] = data[1792]; buffer[0][29] = data[1793]; buffer[0][30] = data[1794]; buffer[0][31] = data[1795]; buffer[0][32] = data[1796]; buffer[0][33] = data[1797]; buffer[0][34] = data[1798]; buffer[0][35] = data[1799]; + + } + if (partition == 50) { + buffer[0][0] = data[1800]; buffer[0][1] = data[1801]; buffer[0][2] = data[1802]; buffer[0][3] = data[1803]; buffer[0][4] = data[1804]; buffer[0][5] = data[1805]; buffer[0][6] = data[1806]; buffer[0][7] = data[1807]; buffer[0][8] = data[1808]; buffer[0][9] = data[1809]; buffer[0][10] = data[1810]; buffer[0][11] = data[1811]; buffer[0][12] = data[1812]; buffer[0][13] = data[1813]; buffer[0][14] = data[1814]; buffer[0][15] = data[1815]; buffer[0][16] = data[1816]; buffer[0][17] = data[1817]; buffer[0][18] = data[1818]; buffer[0][19] = data[1819]; buffer[0][20] = data[1820]; buffer[0][21] = data[1821]; buffer[0][22] = data[1822]; buffer[0][23] = data[1823]; buffer[0][24] = data[1824]; buffer[0][25] = data[1825]; buffer[0][26] = data[1826]; buffer[0][27] = data[1827]; buffer[0][28] = data[1828]; buffer[0][29] = data[1829]; buffer[0][30] = data[1830]; buffer[0][31] = data[1831]; buffer[0][32] = data[1832]; buffer[0][33] = data[1833]; buffer[0][34] = data[1834]; buffer[0][35] = data[1835]; + + } + if (partition == 51) { + buffer[0][0] = data[1836]; buffer[0][1] = data[1837]; buffer[0][2] = data[1838]; buffer[0][3] = data[1839]; buffer[0][4] = data[1840]; buffer[0][5] = data[1841]; buffer[0][6] = data[1842]; buffer[0][7] = data[1843]; buffer[0][8] = data[1844]; buffer[0][9] = data[1845]; buffer[0][10] = data[1846]; buffer[0][11] = data[1847]; buffer[0][12] = data[1848]; buffer[0][13] = data[1849]; buffer[0][14] = data[1850]; buffer[0][15] = data[1851]; buffer[0][16] = data[1852]; buffer[0][17] = data[1853]; buffer[0][18] = data[1854]; buffer[0][19] = data[1855]; buffer[0][20] = data[1856]; buffer[0][21] = data[1857]; buffer[0][22] = data[1858]; buffer[0][23] = data[1859]; buffer[0][24] = data[1860]; buffer[0][25] = data[1861]; buffer[0][26] = data[1862]; buffer[0][27] = data[1863]; buffer[0][28] = data[1864]; buffer[0][29] = data[1865]; buffer[0][30] = data[1866]; buffer[0][31] = data[1867]; buffer[0][32] = data[1868]; buffer[0][33] = data[1869]; buffer[0][34] = data[1870]; buffer[0][35] = data[1871]; + + } + if (partition == 52) { + buffer[0][0] = data[1872]; buffer[0][1] = data[1873]; buffer[0][2] = data[1874]; buffer[0][3] = data[1875]; buffer[0][4] = data[1876]; buffer[0][5] = data[1877]; buffer[0][6] = data[1878]; buffer[0][7] = data[1879]; buffer[0][8] = data[1880]; buffer[0][9] = data[1881]; buffer[0][10] = data[1882]; buffer[0][11] = data[1883]; buffer[0][12] = data[1884]; buffer[0][13] = data[1885]; buffer[0][14] = data[1886]; buffer[0][15] = data[1887]; buffer[0][16] = data[1888]; buffer[0][17] = data[1889]; buffer[0][18] = data[1890]; buffer[0][19] = data[1891]; buffer[0][20] = data[1892]; buffer[0][21] = data[1893]; buffer[0][22] = data[1894]; buffer[0][23] = data[1895]; buffer[0][24] = data[1896]; buffer[0][25] = data[1897]; buffer[0][26] = data[1898]; buffer[0][27] = data[1899]; buffer[0][28] = data[1900]; buffer[0][29] = data[1901]; buffer[0][30] = data[1902]; buffer[0][31] = data[1903]; buffer[0][32] = data[1904]; buffer[0][33] = data[1905]; buffer[0][34] = data[1906]; buffer[0][35] = data[1907]; + + } + if (partition == 53) { + buffer[0][0] = data[1908]; buffer[0][1] = data[1909]; buffer[0][2] = data[1910]; buffer[0][3] = data[1911]; buffer[0][4] = data[1912]; buffer[0][5] = data[1913]; buffer[0][6] = data[1914]; buffer[0][7] = data[1915]; buffer[0][8] = data[1916]; buffer[0][9] = data[1917]; buffer[0][10] = data[1918]; buffer[0][11] = data[1919]; buffer[0][12] = data[1920]; buffer[0][13] = data[1921]; buffer[0][14] = data[1922]; buffer[0][15] = data[1923]; buffer[0][16] = data[1924]; buffer[0][17] = data[1925]; buffer[0][18] = data[1926]; buffer[0][19] = data[1927]; buffer[0][20] = data[1928]; buffer[0][21] = data[1929]; buffer[0][22] = data[1930]; buffer[0][23] = data[1931]; buffer[0][24] = data[1932]; buffer[0][25] = data[1933]; buffer[0][26] = data[1934]; buffer[0][27] = data[1935]; buffer[0][28] = data[1936]; buffer[0][29] = data[1937]; buffer[0][30] = data[1938]; buffer[0][31] = data[1939]; buffer[0][32] = data[1940]; buffer[0][33] = data[1941]; buffer[0][34] = data[1942]; buffer[0][35] = data[1943]; + + } + if (partition == 54) { + buffer[0][0] = data[1944]; buffer[0][1] = data[1945]; buffer[0][2] = data[1946]; buffer[0][3] = data[1947]; buffer[0][4] = data[1948]; buffer[0][5] = data[1949]; buffer[0][6] = data[1950]; buffer[0][7] = data[1951]; buffer[0][8] = data[1952]; buffer[0][9] = data[1953]; buffer[0][10] = data[1954]; buffer[0][11] = data[1955]; buffer[0][12] = data[1956]; buffer[0][13] = data[1957]; buffer[0][14] = data[1958]; buffer[0][15] = data[1959]; buffer[0][16] = data[1960]; buffer[0][17] = data[1961]; buffer[0][18] = data[1962]; buffer[0][19] = data[1963]; buffer[0][20] = data[1964]; buffer[0][21] = data[1965]; buffer[0][22] = data[1966]; buffer[0][23] = data[1967]; buffer[0][24] = data[1968]; buffer[0][25] = data[1969]; buffer[0][26] = data[1970]; buffer[0][27] = data[1971]; buffer[0][28] = data[1972]; buffer[0][29] = data[1973]; buffer[0][30] = data[1974]; buffer[0][31] = data[1975]; buffer[0][32] = data[1976]; buffer[0][33] = data[1977]; buffer[0][34] = data[1978]; buffer[0][35] = data[1979]; + + } + if (partition == 55) { + buffer[0][0] = data[1980]; buffer[0][1] = data[1981]; buffer[0][2] = data[1982]; buffer[0][3] = data[1983]; buffer[0][4] = data[1984]; buffer[0][5] = data[1985]; buffer[0][6] = data[1986]; buffer[0][7] = data[1987]; buffer[0][8] = data[1988]; buffer[0][9] = data[1989]; buffer[0][10] = data[1990]; buffer[0][11] = data[1991]; buffer[0][12] = data[1992]; buffer[0][13] = data[1993]; buffer[0][14] = data[1994]; buffer[0][15] = data[1995]; buffer[0][16] = data[1996]; buffer[0][17] = data[1997]; buffer[0][18] = data[1998]; buffer[0][19] = data[1999]; buffer[0][20] = data[2000]; buffer[0][21] = data[2001]; buffer[0][22] = data[2002]; buffer[0][23] = data[2003]; buffer[0][24] = data[2004]; buffer[0][25] = data[2005]; buffer[0][26] = data[2006]; buffer[0][27] = data[2007]; buffer[0][28] = data[2008]; buffer[0][29] = data[2009]; buffer[0][30] = data[2010]; buffer[0][31] = data[2011]; buffer[0][32] = data[2012]; buffer[0][33] = data[2013]; buffer[0][34] = data[2014]; buffer[0][35] = data[2015]; + + } + if (partition == 56) { + buffer[0][0] = data[2016]; buffer[0][1] = data[2017]; buffer[0][2] = data[2018]; buffer[0][3] = data[2019]; buffer[0][4] = data[2020]; buffer[0][5] = data[2021]; buffer[0][6] = data[2022]; buffer[0][7] = data[2023]; buffer[0][8] = data[2024]; buffer[0][9] = data[2025]; buffer[0][10] = data[2026]; buffer[0][11] = data[2027]; buffer[0][12] = data[2028]; buffer[0][13] = data[2029]; buffer[0][14] = data[2030]; buffer[0][15] = data[2031]; buffer[0][16] = data[2032]; buffer[0][17] = data[2033]; buffer[0][18] = data[2034]; buffer[0][19] = data[2035]; buffer[0][20] = data[2036]; buffer[0][21] = data[2037]; buffer[0][22] = data[2038]; buffer[0][23] = data[2039]; buffer[0][24] = data[2040]; buffer[0][25] = data[2041]; buffer[0][26] = data[2042]; buffer[0][27] = data[2043]; buffer[0][28] = data[2044]; buffer[0][29] = data[2045]; buffer[0][30] = data[2046]; buffer[0][31] = data[2047]; buffer[0][32] = data[2048]; buffer[0][33] = data[2049]; buffer[0][34] = data[2050]; buffer[0][35] = data[2051]; + + } + if (partition == 57) { + buffer[0][0] = data[2052]; buffer[0][1] = data[2053]; buffer[0][2] = data[2054]; buffer[0][3] = data[2055]; buffer[0][4] = data[2056]; buffer[0][5] = data[2057]; buffer[0][6] = data[2058]; buffer[0][7] = data[2059]; buffer[0][8] = data[2060]; buffer[0][9] = data[2061]; buffer[0][10] = data[2062]; buffer[0][11] = data[2063]; buffer[0][12] = data[2064]; buffer[0][13] = data[2065]; buffer[0][14] = data[2066]; buffer[0][15] = data[2067]; buffer[0][16] = data[2068]; buffer[0][17] = data[2069]; buffer[0][18] = data[2070]; buffer[0][19] = data[2071]; buffer[0][20] = data[2072]; buffer[0][21] = data[2073]; buffer[0][22] = data[2074]; buffer[0][23] = data[2075]; buffer[0][24] = data[2076]; buffer[0][25] = data[2077]; buffer[0][26] = data[2078]; buffer[0][27] = data[2079]; buffer[0][28] = data[2080]; buffer[0][29] = data[2081]; buffer[0][30] = data[2082]; buffer[0][31] = data[2083]; buffer[0][32] = data[2084]; buffer[0][33] = data[2085]; buffer[0][34] = data[2086]; buffer[0][35] = data[2087]; + + } + if (partition == 58) { + buffer[0][0] = data[2088]; buffer[0][1] = data[2089]; buffer[0][2] = data[2090]; buffer[0][3] = data[2091]; buffer[0][4] = data[2092]; buffer[0][5] = data[2093]; buffer[0][6] = data[2094]; buffer[0][7] = data[2095]; buffer[0][8] = data[2096]; buffer[0][9] = data[2097]; buffer[0][10] = data[2098]; buffer[0][11] = data[2099]; buffer[0][12] = data[2100]; buffer[0][13] = data[2101]; buffer[0][14] = data[2102]; buffer[0][15] = data[2103]; buffer[0][16] = data[2104]; buffer[0][17] = data[2105]; buffer[0][18] = data[2106]; buffer[0][19] = data[2107]; buffer[0][20] = data[2108]; buffer[0][21] = data[2109]; buffer[0][22] = data[2110]; buffer[0][23] = data[2111]; buffer[0][24] = data[2112]; buffer[0][25] = data[2113]; buffer[0][26] = data[2114]; buffer[0][27] = data[2115]; buffer[0][28] = data[2116]; buffer[0][29] = data[2117]; buffer[0][30] = data[2118]; buffer[0][31] = data[2119]; buffer[0][32] = data[2120]; buffer[0][33] = data[2121]; buffer[0][34] = data[2122]; buffer[0][35] = data[2123]; + + } + if (partition == 59) { + buffer[0][0] = data[2124]; buffer[0][1] = data[2125]; buffer[0][2] = data[2126]; buffer[0][3] = data[2127]; buffer[0][4] = data[2128]; buffer[0][5] = data[2129]; buffer[0][6] = data[2130]; buffer[0][7] = data[2131]; buffer[0][8] = data[2132]; buffer[0][9] = data[2133]; buffer[0][10] = data[2134]; buffer[0][11] = data[2135]; buffer[0][12] = data[2136]; buffer[0][13] = data[2137]; buffer[0][14] = data[2138]; buffer[0][15] = data[2139]; buffer[0][16] = data[2140]; buffer[0][17] = data[2141]; buffer[0][18] = data[2142]; buffer[0][19] = data[2143]; buffer[0][20] = data[2144]; buffer[0][21] = data[2145]; buffer[0][22] = data[2146]; buffer[0][23] = data[2147]; buffer[0][24] = data[2148]; buffer[0][25] = data[2149]; buffer[0][26] = data[2150]; buffer[0][27] = data[2151]; buffer[0][28] = data[2152]; buffer[0][29] = data[2153]; buffer[0][30] = data[2154]; buffer[0][31] = data[2155]; buffer[0][32] = data[2156]; buffer[0][33] = data[2157]; buffer[0][34] = data[2158]; buffer[0][35] = data[2159]; + + } + if (partition == 60) { + buffer[0][0] = data[2160]; buffer[0][1] = data[2161]; buffer[0][2] = data[2162]; buffer[0][3] = data[2163]; buffer[0][4] = data[2164]; buffer[0][5] = data[2165]; buffer[0][6] = data[2166]; buffer[0][7] = data[2167]; buffer[0][8] = data[2168]; buffer[0][9] = data[2169]; buffer[0][10] = data[2170]; buffer[0][11] = data[2171]; buffer[0][12] = data[2172]; buffer[0][13] = data[2173]; buffer[0][14] = data[2174]; buffer[0][15] = data[2175]; buffer[0][16] = data[2176]; buffer[0][17] = data[2177]; buffer[0][18] = data[2178]; buffer[0][19] = data[2179]; buffer[0][20] = data[2180]; buffer[0][21] = data[2181]; buffer[0][22] = data[2182]; buffer[0][23] = data[2183]; buffer[0][24] = data[2184]; buffer[0][25] = data[2185]; buffer[0][26] = data[2186]; buffer[0][27] = data[2187]; buffer[0][28] = data[2188]; buffer[0][29] = data[2189]; buffer[0][30] = data[2190]; buffer[0][31] = data[2191]; buffer[0][32] = data[2192]; buffer[0][33] = data[2193]; buffer[0][34] = data[2194]; buffer[0][35] = data[2195]; + + } + if (partition == 61) { + buffer[0][0] = data[2196]; buffer[0][1] = data[2197]; buffer[0][2] = data[2198]; buffer[0][3] = data[2199]; buffer[0][4] = data[2200]; buffer[0][5] = data[2201]; buffer[0][6] = data[2202]; buffer[0][7] = data[2203]; buffer[0][8] = data[2204]; buffer[0][9] = data[2205]; buffer[0][10] = data[2206]; buffer[0][11] = data[2207]; buffer[0][12] = data[2208]; buffer[0][13] = data[2209]; buffer[0][14] = data[2210]; buffer[0][15] = data[2211]; buffer[0][16] = data[2212]; buffer[0][17] = data[2213]; buffer[0][18] = data[2214]; buffer[0][19] = data[2215]; buffer[0][20] = data[2216]; buffer[0][21] = data[2217]; buffer[0][22] = data[2218]; buffer[0][23] = data[2219]; buffer[0][24] = data[2220]; buffer[0][25] = data[2221]; buffer[0][26] = data[2222]; buffer[0][27] = data[2223]; buffer[0][28] = data[2224]; buffer[0][29] = data[2225]; buffer[0][30] = data[2226]; buffer[0][31] = data[2227]; buffer[0][32] = data[2228]; buffer[0][33] = data[2229]; buffer[0][34] = data[2230]; buffer[0][35] = data[2231]; + + } + if (partition == 62) { + buffer[0][0] = data[2232]; buffer[0][1] = data[2233]; buffer[0][2] = data[2234]; buffer[0][3] = data[2235]; buffer[0][4] = data[2236]; buffer[0][5] = data[2237]; buffer[0][6] = data[2238]; buffer[0][7] = data[2239]; buffer[0][8] = data[2240]; buffer[0][9] = data[2241]; buffer[0][10] = data[2242]; buffer[0][11] = data[2243]; buffer[0][12] = data[2244]; buffer[0][13] = data[2245]; buffer[0][14] = data[2246]; buffer[0][15] = data[2247]; buffer[0][16] = data[2248]; buffer[0][17] = data[2249]; buffer[0][18] = data[2250]; buffer[0][19] = data[2251]; buffer[0][20] = data[2252]; buffer[0][21] = data[2253]; buffer[0][22] = data[2254]; buffer[0][23] = data[2255]; buffer[0][24] = data[2256]; buffer[0][25] = data[2257]; buffer[0][26] = data[2258]; buffer[0][27] = data[2259]; buffer[0][28] = data[2260]; buffer[0][29] = data[2261]; buffer[0][30] = data[2262]; buffer[0][31] = data[2263]; buffer[0][32] = data[2264]; buffer[0][33] = data[2265]; buffer[0][34] = data[2266]; buffer[0][35] = data[2267]; + + } + if (partition == 63) { + buffer[0][0] = data[2268]; buffer[0][1] = data[2269]; buffer[0][2] = data[2270]; buffer[0][3] = data[2271]; buffer[0][4] = data[2272]; buffer[0][5] = data[2273]; buffer[0][6] = data[2274]; buffer[0][7] = data[2275]; buffer[0][8] = data[2276]; buffer[0][9] = data[2277]; buffer[0][10] = data[2278]; buffer[0][11] = data[2279]; buffer[0][12] = data[2280]; buffer[0][13] = data[2281]; buffer[0][14] = data[2282]; buffer[0][15] = data[2283]; buffer[0][16] = data[2284]; buffer[0][17] = data[2285]; buffer[0][18] = data[2286]; buffer[0][19] = data[2287]; buffer[0][20] = data[2288]; buffer[0][21] = data[2289]; buffer[0][22] = data[2290]; buffer[0][23] = data[2291]; buffer[0][24] = data[2292]; buffer[0][25] = data[2293]; buffer[0][26] = data[2294]; buffer[0][27] = data[2295]; buffer[0][28] = data[2296]; buffer[0][29] = data[2297]; buffer[0][30] = data[2298]; buffer[0][31] = data[2299]; buffer[0][32] = data[2300]; buffer[0][33] = data[2301]; buffer[0][34] = data[2302]; buffer[0][35] = data[2303]; + + } + if (partition == 64) { + buffer[0][0] = data[2304]; buffer[0][1] = data[2305]; buffer[0][2] = data[2306]; buffer[0][3] = data[2307]; buffer[0][4] = data[2308]; buffer[0][5] = data[2309]; buffer[0][6] = data[2310]; buffer[0][7] = data[2311]; buffer[0][8] = data[2312]; buffer[0][9] = data[2313]; buffer[0][10] = data[2314]; buffer[0][11] = data[2315]; buffer[0][12] = data[2316]; buffer[0][13] = data[2317]; buffer[0][14] = data[2318]; buffer[0][15] = data[2319]; buffer[0][16] = data[2320]; buffer[0][17] = data[2321]; buffer[0][18] = data[2322]; buffer[0][19] = data[2323]; buffer[0][20] = data[2324]; buffer[0][21] = data[2325]; buffer[0][22] = data[2326]; buffer[0][23] = data[2327]; buffer[0][24] = data[2328]; buffer[0][25] = data[2329]; buffer[0][26] = data[2330]; buffer[0][27] = data[2331]; buffer[0][28] = data[2332]; buffer[0][29] = data[2333]; buffer[0][30] = data[2334]; buffer[0][31] = data[2335]; buffer[0][32] = data[2336]; buffer[0][33] = data[2337]; buffer[0][34] = data[2338]; buffer[0][35] = data[2339]; + + } + if (partition == 65) { + buffer[0][0] = data[2340]; buffer[0][1] = data[2341]; buffer[0][2] = data[2342]; buffer[0][3] = data[2343]; buffer[0][4] = data[2344]; buffer[0][5] = data[2345]; buffer[0][6] = data[2346]; buffer[0][7] = data[2347]; buffer[0][8] = data[2348]; buffer[0][9] = data[2349]; buffer[0][10] = data[2350]; buffer[0][11] = data[2351]; buffer[0][12] = data[2352]; buffer[0][13] = data[2353]; buffer[0][14] = data[2354]; buffer[0][15] = data[2355]; buffer[0][16] = data[2356]; buffer[0][17] = data[2357]; buffer[0][18] = data[2358]; buffer[0][19] = data[2359]; buffer[0][20] = data[2360]; buffer[0][21] = data[2361]; buffer[0][22] = data[2362]; buffer[0][23] = data[2363]; buffer[0][24] = data[2364]; buffer[0][25] = data[2365]; buffer[0][26] = data[2366]; buffer[0][27] = data[2367]; buffer[0][28] = data[2368]; buffer[0][29] = data[2369]; buffer[0][30] = data[2370]; buffer[0][31] = data[2371]; buffer[0][32] = data[2372]; buffer[0][33] = data[2373]; buffer[0][34] = data[2374]; buffer[0][35] = data[2375]; + + } + if (partition == 66) { + buffer[0][0] = data[2376]; buffer[0][1] = data[2377]; buffer[0][2] = data[2378]; buffer[0][3] = data[2379]; buffer[0][4] = data[2380]; buffer[0][5] = data[2381]; buffer[0][6] = data[2382]; buffer[0][7] = data[2383]; buffer[0][8] = data[2384]; buffer[0][9] = data[2385]; buffer[0][10] = data[2386]; buffer[0][11] = data[2387]; buffer[0][12] = data[2388]; buffer[0][13] = data[2389]; buffer[0][14] = data[2390]; buffer[0][15] = data[2391]; buffer[0][16] = data[2392]; buffer[0][17] = data[2393]; buffer[0][18] = data[2394]; buffer[0][19] = data[2395]; buffer[0][20] = data[2396]; buffer[0][21] = data[2397]; buffer[0][22] = data[2398]; buffer[0][23] = data[2399]; buffer[0][24] = data[2400]; buffer[0][25] = data[2401]; buffer[0][26] = data[2402]; buffer[0][27] = data[2403]; buffer[0][28] = data[2404]; buffer[0][29] = data[2405]; buffer[0][30] = data[2406]; buffer[0][31] = data[2407]; buffer[0][32] = data[2408]; buffer[0][33] = data[2409]; buffer[0][34] = data[2410]; buffer[0][35] = data[2411]; + + } + if (partition == 67) { + buffer[0][0] = data[2412]; buffer[0][1] = data[2413]; buffer[0][2] = data[2414]; buffer[0][3] = data[2415]; buffer[0][4] = data[2416]; buffer[0][5] = data[2417]; buffer[0][6] = data[2418]; buffer[0][7] = data[2419]; buffer[0][8] = data[2420]; buffer[0][9] = data[2421]; buffer[0][10] = data[2422]; buffer[0][11] = data[2423]; buffer[0][12] = data[2424]; buffer[0][13] = data[2425]; buffer[0][14] = data[2426]; buffer[0][15] = data[2427]; buffer[0][16] = data[2428]; buffer[0][17] = data[2429]; buffer[0][18] = data[2430]; buffer[0][19] = data[2431]; buffer[0][20] = data[2432]; buffer[0][21] = data[2433]; buffer[0][22] = data[2434]; buffer[0][23] = data[2435]; buffer[0][24] = data[2436]; buffer[0][25] = data[2437]; buffer[0][26] = data[2438]; buffer[0][27] = data[2439]; buffer[0][28] = data[2440]; buffer[0][29] = data[2441]; buffer[0][30] = data[2442]; buffer[0][31] = data[2443]; buffer[0][32] = data[2444]; buffer[0][33] = data[2445]; buffer[0][34] = data[2446]; buffer[0][35] = data[2447]; + + } + if (partition == 68) { + buffer[0][0] = data[2448]; buffer[0][1] = data[2449]; buffer[0][2] = data[2450]; buffer[0][3] = data[2451]; buffer[0][4] = data[2452]; buffer[0][5] = data[2453]; buffer[0][6] = data[2454]; buffer[0][7] = data[2455]; buffer[0][8] = data[2456]; buffer[0][9] = data[2457]; buffer[0][10] = data[2458]; buffer[0][11] = data[2459]; buffer[0][12] = data[2460]; buffer[0][13] = data[2461]; buffer[0][14] = data[2462]; buffer[0][15] = data[2463]; buffer[0][16] = data[2464]; buffer[0][17] = data[2465]; buffer[0][18] = data[2466]; buffer[0][19] = data[2467]; buffer[0][20] = data[2468]; buffer[0][21] = data[2469]; buffer[0][22] = data[2470]; buffer[0][23] = data[2471]; buffer[0][24] = data[2472]; buffer[0][25] = data[2473]; buffer[0][26] = data[2474]; buffer[0][27] = data[2475]; buffer[0][28] = data[2476]; buffer[0][29] = data[2477]; buffer[0][30] = data[2478]; buffer[0][31] = data[2479]; buffer[0][32] = data[2480]; buffer[0][33] = data[2481]; buffer[0][34] = data[2482]; buffer[0][35] = data[2483]; + + } + if (partition == 69) { + buffer[0][0] = data[2484]; buffer[0][1] = data[2485]; buffer[0][2] = data[2486]; buffer[0][3] = data[2487]; buffer[0][4] = data[2488]; buffer[0][5] = data[2489]; buffer[0][6] = data[2490]; buffer[0][7] = data[2491]; buffer[0][8] = data[2492]; buffer[0][9] = data[2493]; buffer[0][10] = data[2494]; buffer[0][11] = data[2495]; buffer[0][12] = data[2496]; buffer[0][13] = data[2497]; buffer[0][14] = data[2498]; buffer[0][15] = data[2499]; buffer[0][16] = data[2500]; buffer[0][17] = data[2501]; buffer[0][18] = data[2502]; buffer[0][19] = data[2503]; buffer[0][20] = data[2504]; buffer[0][21] = data[2505]; buffer[0][22] = data[2506]; buffer[0][23] = data[2507]; buffer[0][24] = data[2508]; buffer[0][25] = data[2509]; buffer[0][26] = data[2510]; buffer[0][27] = data[2511]; buffer[0][28] = data[2512]; buffer[0][29] = data[2513]; buffer[0][30] = data[2514]; buffer[0][31] = data[2515]; buffer[0][32] = data[2516]; buffer[0][33] = data[2517]; buffer[0][34] = data[2518]; buffer[0][35] = data[2519]; + + } + if (partition == 70) { + buffer[0][0] = data[2520]; buffer[0][1] = data[2521]; buffer[0][2] = data[2522]; buffer[0][3] = data[2523]; buffer[0][4] = data[2524]; buffer[0][5] = data[2525]; buffer[0][6] = data[2526]; buffer[0][7] = data[2527]; buffer[0][8] = data[2528]; buffer[0][9] = data[2529]; buffer[0][10] = data[2530]; buffer[0][11] = data[2531]; buffer[0][12] = data[2532]; buffer[0][13] = data[2533]; buffer[0][14] = data[2534]; buffer[0][15] = data[2535]; buffer[0][16] = data[2536]; buffer[0][17] = data[2537]; buffer[0][18] = data[2538]; buffer[0][19] = data[2539]; buffer[0][20] = data[2540]; buffer[0][21] = data[2541]; buffer[0][22] = data[2542]; buffer[0][23] = data[2543]; buffer[0][24] = data[2544]; buffer[0][25] = data[2545]; buffer[0][26] = data[2546]; buffer[0][27] = data[2547]; buffer[0][28] = data[2548]; buffer[0][29] = data[2549]; buffer[0][30] = data[2550]; buffer[0][31] = data[2551]; buffer[0][32] = data[2552]; buffer[0][33] = data[2553]; buffer[0][34] = data[2554]; buffer[0][35] = data[2555]; + + } + if (partition == 71) { + buffer[0][0] = data[2556]; buffer[0][1] = data[2557]; buffer[0][2] = data[2558]; buffer[0][3] = data[2559]; buffer[0][4] = data[2560]; buffer[0][5] = data[2561]; buffer[0][6] = data[2562]; buffer[0][7] = data[2563]; buffer[0][8] = data[2564]; buffer[0][9] = data[2565]; buffer[0][10] = data[2566]; buffer[0][11] = data[2567]; buffer[0][12] = data[2568]; buffer[0][13] = data[2569]; buffer[0][14] = data[2570]; buffer[0][15] = data[2571]; buffer[0][16] = data[2572]; buffer[0][17] = data[2573]; buffer[0][18] = data[2574]; buffer[0][19] = data[2575]; buffer[0][20] = data[2576]; buffer[0][21] = data[2577]; buffer[0][22] = data[2578]; buffer[0][23] = data[2579]; buffer[0][24] = data[2580]; buffer[0][25] = data[2581]; buffer[0][26] = data[2582]; buffer[0][27] = data[2583]; buffer[0][28] = data[2584]; buffer[0][29] = data[2585]; buffer[0][30] = data[2586]; buffer[0][31] = data[2587]; buffer[0][32] = data[2588]; buffer[0][33] = data[2589]; buffer[0][34] = data[2590]; buffer[0][35] = data[2591]; + + } + if (partition == 72) { + buffer[0][0] = data[2592]; buffer[0][1] = data[2593]; buffer[0][2] = data[2594]; buffer[0][3] = data[2595]; buffer[0][4] = data[2596]; buffer[0][5] = data[2597]; buffer[0][6] = data[2598]; buffer[0][7] = data[2599]; buffer[0][8] = data[2600]; buffer[0][9] = data[2601]; buffer[0][10] = data[2602]; buffer[0][11] = data[2603]; buffer[0][12] = data[2604]; buffer[0][13] = data[2605]; buffer[0][14] = data[2606]; buffer[0][15] = data[2607]; buffer[0][16] = data[2608]; buffer[0][17] = data[2609]; buffer[0][18] = data[2610]; buffer[0][19] = data[2611]; buffer[0][20] = data[2612]; buffer[0][21] = data[2613]; buffer[0][22] = data[2614]; buffer[0][23] = data[2615]; buffer[0][24] = data[2616]; buffer[0][25] = data[2617]; buffer[0][26] = data[2618]; buffer[0][27] = data[2619]; buffer[0][28] = data[2620]; buffer[0][29] = data[2621]; buffer[0][30] = data[2622]; buffer[0][31] = data[2623]; buffer[0][32] = data[2624]; buffer[0][33] = data[2625]; buffer[0][34] = data[2626]; buffer[0][35] = data[2627]; + + } + if (partition == 73) { + buffer[0][0] = data[2628]; buffer[0][1] = data[2629]; buffer[0][2] = data[2630]; buffer[0][3] = data[2631]; buffer[0][4] = data[2632]; buffer[0][5] = data[2633]; buffer[0][6] = data[2634]; buffer[0][7] = data[2635]; buffer[0][8] = data[2636]; buffer[0][9] = data[2637]; buffer[0][10] = data[2638]; buffer[0][11] = data[2639]; buffer[0][12] = data[2640]; buffer[0][13] = data[2641]; buffer[0][14] = data[2642]; buffer[0][15] = data[2643]; buffer[0][16] = data[2644]; buffer[0][17] = data[2645]; buffer[0][18] = data[2646]; buffer[0][19] = data[2647]; buffer[0][20] = data[2648]; buffer[0][21] = data[2649]; buffer[0][22] = data[2650]; buffer[0][23] = data[2651]; buffer[0][24] = data[2652]; buffer[0][25] = data[2653]; buffer[0][26] = data[2654]; buffer[0][27] = data[2655]; buffer[0][28] = data[2656]; buffer[0][29] = data[2657]; buffer[0][30] = data[2658]; buffer[0][31] = data[2659]; buffer[0][32] = data[2660]; buffer[0][33] = data[2661]; buffer[0][34] = data[2662]; buffer[0][35] = data[2663]; + + } + if (partition == 74) { + buffer[0][0] = data[2664]; buffer[0][1] = data[2665]; buffer[0][2] = data[2666]; buffer[0][3] = data[2667]; buffer[0][4] = data[2668]; buffer[0][5] = data[2669]; buffer[0][6] = data[2670]; buffer[0][7] = data[2671]; buffer[0][8] = data[2672]; buffer[0][9] = data[2673]; buffer[0][10] = data[2674]; buffer[0][11] = data[2675]; buffer[0][12] = data[2676]; buffer[0][13] = data[2677]; buffer[0][14] = data[2678]; buffer[0][15] = data[2679]; buffer[0][16] = data[2680]; buffer[0][17] = data[2681]; buffer[0][18] = data[2682]; buffer[0][19] = data[2683]; buffer[0][20] = data[2684]; buffer[0][21] = data[2685]; buffer[0][22] = data[2686]; buffer[0][23] = data[2687]; buffer[0][24] = data[2688]; buffer[0][25] = data[2689]; buffer[0][26] = data[2690]; buffer[0][27] = data[2691]; buffer[0][28] = data[2692]; buffer[0][29] = data[2693]; buffer[0][30] = data[2694]; buffer[0][31] = data[2695]; buffer[0][32] = data[2696]; buffer[0][33] = data[2697]; buffer[0][34] = data[2698]; buffer[0][35] = data[2699]; + + } + if (partition == 75) { + buffer[0][0] = data[2700]; buffer[0][1] = data[2701]; buffer[0][2] = data[2702]; buffer[0][3] = data[2703]; buffer[0][4] = data[2704]; buffer[0][5] = data[2705]; buffer[0][6] = data[2706]; buffer[0][7] = data[2707]; buffer[0][8] = data[2708]; buffer[0][9] = data[2709]; buffer[0][10] = data[2710]; buffer[0][11] = data[2711]; buffer[0][12] = data[2712]; buffer[0][13] = data[2713]; buffer[0][14] = data[2714]; buffer[0][15] = data[2715]; buffer[0][16] = data[2716]; buffer[0][17] = data[2717]; buffer[0][18] = data[2718]; buffer[0][19] = data[2719]; buffer[0][20] = data[2720]; buffer[0][21] = data[2721]; buffer[0][22] = data[2722]; buffer[0][23] = data[2723]; buffer[0][24] = data[2724]; buffer[0][25] = data[2725]; buffer[0][26] = data[2726]; buffer[0][27] = data[2727]; buffer[0][28] = data[2728]; buffer[0][29] = data[2729]; buffer[0][30] = data[2730]; buffer[0][31] = data[2731]; buffer[0][32] = data[2732]; buffer[0][33] = data[2733]; buffer[0][34] = data[2734]; buffer[0][35] = data[2735]; + + } + if (partition == 76) { + buffer[0][0] = data[2736]; buffer[0][1] = data[2737]; buffer[0][2] = data[2738]; buffer[0][3] = data[2739]; buffer[0][4] = data[2740]; buffer[0][5] = data[2741]; buffer[0][6] = data[2742]; buffer[0][7] = data[2743]; buffer[0][8] = data[2744]; buffer[0][9] = data[2745]; buffer[0][10] = data[2746]; buffer[0][11] = data[2747]; buffer[0][12] = data[2748]; buffer[0][13] = data[2749]; buffer[0][14] = data[2750]; buffer[0][15] = data[2751]; buffer[0][16] = data[2752]; buffer[0][17] = data[2753]; buffer[0][18] = data[2754]; buffer[0][19] = data[2755]; buffer[0][20] = data[2756]; buffer[0][21] = data[2757]; buffer[0][22] = data[2758]; buffer[0][23] = data[2759]; buffer[0][24] = data[2760]; buffer[0][25] = data[2761]; buffer[0][26] = data[2762]; buffer[0][27] = data[2763]; buffer[0][28] = data[2764]; buffer[0][29] = data[2765]; buffer[0][30] = data[2766]; buffer[0][31] = data[2767]; buffer[0][32] = data[2768]; buffer[0][33] = data[2769]; buffer[0][34] = data[2770]; buffer[0][35] = data[2771]; + + } + if (partition == 77) { + buffer[0][0] = data[2772]; buffer[0][1] = data[2773]; buffer[0][2] = data[2774]; buffer[0][3] = data[2775]; buffer[0][4] = data[2776]; buffer[0][5] = data[2777]; buffer[0][6] = data[2778]; buffer[0][7] = data[2779]; buffer[0][8] = data[2780]; buffer[0][9] = data[2781]; buffer[0][10] = data[2782]; buffer[0][11] = data[2783]; buffer[0][12] = data[2784]; buffer[0][13] = data[2785]; buffer[0][14] = data[2786]; buffer[0][15] = data[2787]; buffer[0][16] = data[2788]; buffer[0][17] = data[2789]; buffer[0][18] = data[2790]; buffer[0][19] = data[2791]; buffer[0][20] = data[2792]; buffer[0][21] = data[2793]; buffer[0][22] = data[2794]; buffer[0][23] = data[2795]; buffer[0][24] = data[2796]; buffer[0][25] = data[2797]; buffer[0][26] = data[2798]; buffer[0][27] = data[2799]; buffer[0][28] = data[2800]; buffer[0][29] = data[2801]; buffer[0][30] = data[2802]; buffer[0][31] = data[2803]; buffer[0][32] = data[2804]; buffer[0][33] = data[2805]; buffer[0][34] = data[2806]; buffer[0][35] = data[2807]; + + } + if (partition == 78) { + buffer[0][0] = data[2808]; buffer[0][1] = data[2809]; buffer[0][2] = data[2810]; buffer[0][3] = data[2811]; buffer[0][4] = data[2812]; buffer[0][5] = data[2813]; buffer[0][6] = data[2814]; buffer[0][7] = data[2815]; buffer[0][8] = data[2816]; buffer[0][9] = data[2817]; buffer[0][10] = data[2818]; buffer[0][11] = data[2819]; buffer[0][12] = data[2820]; buffer[0][13] = data[2821]; buffer[0][14] = data[2822]; buffer[0][15] = data[2823]; buffer[0][16] = data[2824]; buffer[0][17] = data[2825]; buffer[0][18] = data[2826]; buffer[0][19] = data[2827]; buffer[0][20] = data[2828]; buffer[0][21] = data[2829]; buffer[0][22] = data[2830]; buffer[0][23] = data[2831]; buffer[0][24] = data[2832]; buffer[0][25] = data[2833]; buffer[0][26] = data[2834]; buffer[0][27] = data[2835]; buffer[0][28] = data[2836]; buffer[0][29] = data[2837]; buffer[0][30] = data[2838]; buffer[0][31] = data[2839]; buffer[0][32] = data[2840]; buffer[0][33] = data[2841]; buffer[0][34] = data[2842]; buffer[0][35] = data[2843]; + + } + if (partition == 79) { + buffer[0][0] = data[2844]; buffer[0][1] = data[2845]; buffer[0][2] = data[2846]; buffer[0][3] = data[2847]; buffer[0][4] = data[2848]; buffer[0][5] = data[2849]; buffer[0][6] = data[2850]; buffer[0][7] = data[2851]; buffer[0][8] = data[2852]; buffer[0][9] = data[2853]; buffer[0][10] = data[2854]; buffer[0][11] = data[2855]; buffer[0][12] = data[2856]; buffer[0][13] = data[2857]; buffer[0][14] = data[2858]; buffer[0][15] = data[2859]; buffer[0][16] = data[2860]; buffer[0][17] = data[2861]; buffer[0][18] = data[2862]; buffer[0][19] = data[2863]; buffer[0][20] = data[2864]; buffer[0][21] = data[2865]; buffer[0][22] = data[2866]; buffer[0][23] = data[2867]; buffer[0][24] = data[2868]; buffer[0][25] = data[2869]; buffer[0][26] = data[2870]; buffer[0][27] = data[2871]; buffer[0][28] = data[2872]; buffer[0][29] = data[2873]; buffer[0][30] = data[2874]; buffer[0][31] = data[2875]; buffer[0][32] = data[2876]; buffer[0][33] = data[2877]; buffer[0][34] = data[2878]; buffer[0][35] = data[2879]; + + } + if (partition == 80) { + buffer[0][0] = data[2880]; buffer[0][1] = data[2881]; buffer[0][2] = data[2882]; buffer[0][3] = data[2883]; buffer[0][4] = data[2884]; buffer[0][5] = data[2885]; buffer[0][6] = data[2886]; buffer[0][7] = data[2887]; buffer[0][8] = data[2888]; buffer[0][9] = data[2889]; buffer[0][10] = data[2890]; buffer[0][11] = data[2891]; buffer[0][12] = data[2892]; buffer[0][13] = data[2893]; buffer[0][14] = data[2894]; buffer[0][15] = data[2895]; buffer[0][16] = data[2896]; buffer[0][17] = data[2897]; buffer[0][18] = data[2898]; buffer[0][19] = data[2899]; buffer[0][20] = data[2900]; buffer[0][21] = data[2901]; buffer[0][22] = data[2902]; buffer[0][23] = data[2903]; buffer[0][24] = data[2904]; buffer[0][25] = data[2905]; buffer[0][26] = data[2906]; buffer[0][27] = data[2907]; buffer[0][28] = data[2908]; buffer[0][29] = data[2909]; buffer[0][30] = data[2910]; buffer[0][31] = data[2911]; buffer[0][32] = data[2912]; buffer[0][33] = data[2913]; buffer[0][34] = data[2914]; buffer[0][35] = data[2915]; + + } + if (partition == 81) { + buffer[0][0] = data[2916]; buffer[0][1] = data[2917]; buffer[0][2] = data[2918]; buffer[0][3] = data[2919]; buffer[0][4] = data[2920]; buffer[0][5] = data[2921]; buffer[0][6] = data[2922]; buffer[0][7] = data[2923]; buffer[0][8] = data[2924]; buffer[0][9] = data[2925]; buffer[0][10] = data[2926]; buffer[0][11] = data[2927]; buffer[0][12] = data[2928]; buffer[0][13] = data[2929]; buffer[0][14] = data[2930]; buffer[0][15] = data[2931]; buffer[0][16] = data[2932]; buffer[0][17] = data[2933]; buffer[0][18] = data[2934]; buffer[0][19] = data[2935]; buffer[0][20] = data[2936]; buffer[0][21] = data[2937]; buffer[0][22] = data[2938]; buffer[0][23] = data[2939]; buffer[0][24] = data[2940]; buffer[0][25] = data[2941]; buffer[0][26] = data[2942]; buffer[0][27] = data[2943]; buffer[0][28] = data[2944]; buffer[0][29] = data[2945]; buffer[0][30] = data[2946]; buffer[0][31] = data[2947]; buffer[0][32] = data[2948]; buffer[0][33] = data[2949]; buffer[0][34] = data[2950]; buffer[0][35] = data[2951]; + + } + if (partition == 82) { + buffer[0][0] = data[2952]; buffer[0][1] = data[2953]; buffer[0][2] = data[2954]; buffer[0][3] = data[2955]; buffer[0][4] = data[2956]; buffer[0][5] = data[2957]; buffer[0][6] = data[2958]; buffer[0][7] = data[2959]; buffer[0][8] = data[2960]; buffer[0][9] = data[2961]; buffer[0][10] = data[2962]; buffer[0][11] = data[2963]; buffer[0][12] = data[2964]; buffer[0][13] = data[2965]; buffer[0][14] = data[2966]; buffer[0][15] = data[2967]; buffer[0][16] = data[2968]; buffer[0][17] = data[2969]; buffer[0][18] = data[2970]; buffer[0][19] = data[2971]; buffer[0][20] = data[2972]; buffer[0][21] = data[2973]; buffer[0][22] = data[2974]; buffer[0][23] = data[2975]; buffer[0][24] = data[2976]; buffer[0][25] = data[2977]; buffer[0][26] = data[2978]; buffer[0][27] = data[2979]; buffer[0][28] = data[2980]; buffer[0][29] = data[2981]; buffer[0][30] = data[2982]; buffer[0][31] = data[2983]; buffer[0][32] = data[2984]; buffer[0][33] = data[2985]; buffer[0][34] = data[2986]; buffer[0][35] = data[2987]; + + } + if (partition == 83) { + buffer[0][0] = data[2988]; buffer[0][1] = data[2989]; buffer[0][2] = data[2990]; buffer[0][3] = data[2991]; buffer[0][4] = data[2992]; buffer[0][5] = data[2993]; buffer[0][6] = data[2994]; buffer[0][7] = data[2995]; buffer[0][8] = data[2996]; buffer[0][9] = data[2997]; buffer[0][10] = data[2998]; buffer[0][11] = data[2999]; buffer[0][12] = data[3000]; buffer[0][13] = data[3001]; buffer[0][14] = data[3002]; buffer[0][15] = data[3003]; buffer[0][16] = data[3004]; buffer[0][17] = data[3005]; buffer[0][18] = data[3006]; buffer[0][19] = data[3007]; buffer[0][20] = data[3008]; buffer[0][21] = data[3009]; buffer[0][22] = data[3010]; buffer[0][23] = data[3011]; buffer[0][24] = data[3012]; buffer[0][25] = data[3013]; buffer[0][26] = data[3014]; buffer[0][27] = data[3015]; buffer[0][28] = data[3016]; buffer[0][29] = data[3017]; buffer[0][30] = data[3018]; buffer[0][31] = data[3019]; buffer[0][32] = data[3020]; buffer[0][33] = data[3021]; buffer[0][34] = data[3022]; buffer[0][35] = data[3023]; + + } + if (partition == 84) { + buffer[0][0] = data[3024]; buffer[0][1] = data[3025]; buffer[0][2] = data[3026]; buffer[0][3] = data[3027]; buffer[0][4] = data[3028]; buffer[0][5] = data[3029]; buffer[0][6] = data[3030]; buffer[0][7] = data[3031]; buffer[0][8] = data[3032]; buffer[0][9] = data[3033]; buffer[0][10] = data[3034]; buffer[0][11] = data[3035]; buffer[0][12] = data[3036]; buffer[0][13] = data[3037]; buffer[0][14] = data[3038]; buffer[0][15] = data[3039]; buffer[0][16] = data[3040]; buffer[0][17] = data[3041]; buffer[0][18] = data[3042]; buffer[0][19] = data[3043]; buffer[0][20] = data[3044]; buffer[0][21] = data[3045]; buffer[0][22] = data[3046]; buffer[0][23] = data[3047]; buffer[0][24] = data[3048]; buffer[0][25] = data[3049]; buffer[0][26] = data[3050]; buffer[0][27] = data[3051]; buffer[0][28] = data[3052]; buffer[0][29] = data[3053]; buffer[0][30] = data[3054]; buffer[0][31] = data[3055]; buffer[0][32] = data[3056]; buffer[0][33] = data[3057]; buffer[0][34] = data[3058]; buffer[0][35] = data[3059]; + + } + if (partition == 85) { + buffer[0][0] = data[3060]; buffer[0][1] = data[3061]; buffer[0][2] = data[3062]; buffer[0][3] = data[3063]; buffer[0][4] = data[3064]; buffer[0][5] = data[3065]; buffer[0][6] = data[3066]; buffer[0][7] = data[3067]; buffer[0][8] = data[3068]; buffer[0][9] = data[3069]; buffer[0][10] = data[3070]; buffer[0][11] = data[3071]; buffer[0][12] = data[3072]; buffer[0][13] = data[3073]; buffer[0][14] = data[3074]; buffer[0][15] = data[3075]; buffer[0][16] = data[3076]; buffer[0][17] = data[3077]; buffer[0][18] = data[3078]; buffer[0][19] = data[3079]; buffer[0][20] = data[3080]; buffer[0][21] = data[3081]; buffer[0][22] = data[3082]; buffer[0][23] = data[3083]; buffer[0][24] = data[3084]; buffer[0][25] = data[3085]; buffer[0][26] = data[3086]; buffer[0][27] = data[3087]; buffer[0][28] = data[3088]; buffer[0][29] = data[3089]; buffer[0][30] = data[3090]; buffer[0][31] = data[3091]; buffer[0][32] = data[3092]; buffer[0][33] = data[3093]; buffer[0][34] = data[3094]; buffer[0][35] = data[3095]; + + } + if (partition == 86) { + buffer[0][0] = data[3096]; buffer[0][1] = data[3097]; buffer[0][2] = data[3098]; buffer[0][3] = data[3099]; buffer[0][4] = data[3100]; buffer[0][5] = data[3101]; buffer[0][6] = data[3102]; buffer[0][7] = data[3103]; buffer[0][8] = data[3104]; buffer[0][9] = data[3105]; buffer[0][10] = data[3106]; buffer[0][11] = data[3107]; buffer[0][12] = data[3108]; buffer[0][13] = data[3109]; buffer[0][14] = data[3110]; buffer[0][15] = data[3111]; buffer[0][16] = data[3112]; buffer[0][17] = data[3113]; buffer[0][18] = data[3114]; buffer[0][19] = data[3115]; buffer[0][20] = data[3116]; buffer[0][21] = data[3117]; buffer[0][22] = data[3118]; buffer[0][23] = data[3119]; buffer[0][24] = data[3120]; buffer[0][25] = data[3121]; buffer[0][26] = data[3122]; buffer[0][27] = data[3123]; buffer[0][28] = data[3124]; buffer[0][29] = data[3125]; buffer[0][30] = data[3126]; buffer[0][31] = data[3127]; buffer[0][32] = data[3128]; buffer[0][33] = data[3129]; buffer[0][34] = data[3130]; buffer[0][35] = data[3131]; + + } + if (partition == 87) { + buffer[0][0] = data[3132]; buffer[0][1] = data[3133]; buffer[0][2] = data[3134]; buffer[0][3] = data[3135]; buffer[0][4] = data[3136]; buffer[0][5] = data[3137]; buffer[0][6] = data[3138]; buffer[0][7] = data[3139]; buffer[0][8] = data[3140]; buffer[0][9] = data[3141]; buffer[0][10] = data[3142]; buffer[0][11] = data[3143]; buffer[0][12] = data[3144]; buffer[0][13] = data[3145]; buffer[0][14] = data[3146]; buffer[0][15] = data[3147]; buffer[0][16] = data[3148]; buffer[0][17] = data[3149]; buffer[0][18] = data[3150]; buffer[0][19] = data[3151]; buffer[0][20] = data[3152]; buffer[0][21] = data[3153]; buffer[0][22] = data[3154]; buffer[0][23] = data[3155]; buffer[0][24] = data[3156]; buffer[0][25] = data[3157]; buffer[0][26] = data[3158]; buffer[0][27] = data[3159]; buffer[0][28] = data[3160]; buffer[0][29] = data[3161]; buffer[0][30] = data[3162]; buffer[0][31] = data[3163]; buffer[0][32] = data[3164]; buffer[0][33] = data[3165]; buffer[0][34] = data[3166]; buffer[0][35] = data[3167]; + + } + if (partition == 88) { + buffer[0][0] = data[3168]; buffer[0][1] = data[3169]; buffer[0][2] = data[3170]; buffer[0][3] = data[3171]; buffer[0][4] = data[3172]; buffer[0][5] = data[3173]; buffer[0][6] = data[3174]; buffer[0][7] = data[3175]; buffer[0][8] = data[3176]; buffer[0][9] = data[3177]; buffer[0][10] = data[3178]; buffer[0][11] = data[3179]; buffer[0][12] = data[3180]; buffer[0][13] = data[3181]; buffer[0][14] = data[3182]; buffer[0][15] = data[3183]; buffer[0][16] = data[3184]; buffer[0][17] = data[3185]; buffer[0][18] = data[3186]; buffer[0][19] = data[3187]; buffer[0][20] = data[3188]; buffer[0][21] = data[3189]; buffer[0][22] = data[3190]; buffer[0][23] = data[3191]; buffer[0][24] = data[3192]; buffer[0][25] = data[3193]; buffer[0][26] = data[3194]; buffer[0][27] = data[3195]; buffer[0][28] = data[3196]; buffer[0][29] = data[3197]; buffer[0][30] = data[3198]; buffer[0][31] = data[3199]; buffer[0][32] = data[3200]; buffer[0][33] = data[3201]; buffer[0][34] = data[3202]; buffer[0][35] = data[3203]; + + } + if (partition == 89) { + buffer[0][0] = data[3204]; buffer[0][1] = data[3205]; buffer[0][2] = data[3206]; buffer[0][3] = data[3207]; buffer[0][4] = data[3208]; buffer[0][5] = data[3209]; buffer[0][6] = data[3210]; buffer[0][7] = data[3211]; buffer[0][8] = data[3212]; buffer[0][9] = data[3213]; buffer[0][10] = data[3214]; buffer[0][11] = data[3215]; buffer[0][12] = data[3216]; buffer[0][13] = data[3217]; buffer[0][14] = data[3218]; buffer[0][15] = data[3219]; buffer[0][16] = data[3220]; buffer[0][17] = data[3221]; buffer[0][18] = data[3222]; buffer[0][19] = data[3223]; buffer[0][20] = data[3224]; buffer[0][21] = data[3225]; buffer[0][22] = data[3226]; buffer[0][23] = data[3227]; buffer[0][24] = data[3228]; buffer[0][25] = data[3229]; buffer[0][26] = data[3230]; buffer[0][27] = data[3231]; buffer[0][28] = data[3232]; buffer[0][29] = data[3233]; buffer[0][30] = data[3234]; buffer[0][31] = data[3235]; buffer[0][32] = data[3236]; buffer[0][33] = data[3237]; buffer[0][34] = data[3238]; buffer[0][35] = data[3239]; + + } + if (partition == 90) { + buffer[0][0] = data[3240]; buffer[0][1] = data[3241]; buffer[0][2] = data[3242]; buffer[0][3] = data[3243]; buffer[0][4] = data[3244]; buffer[0][5] = data[3245]; buffer[0][6] = data[3246]; buffer[0][7] = data[3247]; buffer[0][8] = data[3248]; buffer[0][9] = data[3249]; buffer[0][10] = data[3250]; buffer[0][11] = data[3251]; buffer[0][12] = data[3252]; buffer[0][13] = data[3253]; buffer[0][14] = data[3254]; buffer[0][15] = data[3255]; buffer[0][16] = data[3256]; buffer[0][17] = data[3257]; buffer[0][18] = data[3258]; buffer[0][19] = data[3259]; buffer[0][20] = data[3260]; buffer[0][21] = data[3261]; buffer[0][22] = data[3262]; buffer[0][23] = data[3263]; buffer[0][24] = data[3264]; buffer[0][25] = data[3265]; buffer[0][26] = data[3266]; buffer[0][27] = data[3267]; buffer[0][28] = data[3268]; buffer[0][29] = data[3269]; buffer[0][30] = data[3270]; buffer[0][31] = data[3271]; buffer[0][32] = data[3272]; buffer[0][33] = data[3273]; buffer[0][34] = data[3274]; buffer[0][35] = data[3275]; + + } + if (partition == 91) { + buffer[0][0] = data[3276]; buffer[0][1] = data[3277]; buffer[0][2] = data[3278]; buffer[0][3] = data[3279]; buffer[0][4] = data[3280]; buffer[0][5] = data[3281]; buffer[0][6] = data[3282]; buffer[0][7] = data[3283]; buffer[0][8] = data[3284]; buffer[0][9] = data[3285]; buffer[0][10] = data[3286]; buffer[0][11] = data[3287]; buffer[0][12] = data[3288]; buffer[0][13] = data[3289]; buffer[0][14] = data[3290]; buffer[0][15] = data[3291]; buffer[0][16] = data[3292]; buffer[0][17] = data[3293]; buffer[0][18] = data[3294]; buffer[0][19] = data[3295]; buffer[0][20] = data[3296]; buffer[0][21] = data[3297]; buffer[0][22] = data[3298]; buffer[0][23] = data[3299]; buffer[0][24] = data[3300]; buffer[0][25] = data[3301]; buffer[0][26] = data[3302]; buffer[0][27] = data[3303]; buffer[0][28] = data[3304]; buffer[0][29] = data[3305]; buffer[0][30] = data[3306]; buffer[0][31] = data[3307]; buffer[0][32] = data[3308]; buffer[0][33] = data[3309]; buffer[0][34] = data[3310]; buffer[0][35] = data[3311]; + + } + if (partition == 92) { + buffer[0][0] = data[3312]; buffer[0][1] = data[3313]; buffer[0][2] = data[3314]; buffer[0][3] = data[3315]; buffer[0][4] = data[3316]; buffer[0][5] = data[3317]; buffer[0][6] = data[3318]; buffer[0][7] = data[3319]; buffer[0][8] = data[3320]; buffer[0][9] = data[3321]; buffer[0][10] = data[3322]; buffer[0][11] = data[3323]; buffer[0][12] = data[3324]; buffer[0][13] = data[3325]; buffer[0][14] = data[3326]; buffer[0][15] = data[3327]; buffer[0][16] = data[3328]; buffer[0][17] = data[3329]; buffer[0][18] = data[3330]; buffer[0][19] = data[3331]; buffer[0][20] = data[3332]; buffer[0][21] = data[3333]; buffer[0][22] = data[3334]; buffer[0][23] = data[3335]; buffer[0][24] = data[3336]; buffer[0][25] = data[3337]; buffer[0][26] = data[3338]; buffer[0][27] = data[3339]; buffer[0][28] = data[3340]; buffer[0][29] = data[3341]; buffer[0][30] = data[3342]; buffer[0][31] = data[3343]; buffer[0][32] = data[3344]; buffer[0][33] = data[3345]; buffer[0][34] = data[3346]; buffer[0][35] = data[3347]; + + } + if (partition == 93) { + buffer[0][0] = data[3348]; buffer[0][1] = data[3349]; buffer[0][2] = data[3350]; buffer[0][3] = data[3351]; buffer[0][4] = data[3352]; buffer[0][5] = data[3353]; buffer[0][6] = data[3354]; buffer[0][7] = data[3355]; buffer[0][8] = data[3356]; buffer[0][9] = data[3357]; buffer[0][10] = data[3358]; buffer[0][11] = data[3359]; buffer[0][12] = data[3360]; buffer[0][13] = data[3361]; buffer[0][14] = data[3362]; buffer[0][15] = data[3363]; buffer[0][16] = data[3364]; buffer[0][17] = data[3365]; buffer[0][18] = data[3366]; buffer[0][19] = data[3367]; buffer[0][20] = data[3368]; buffer[0][21] = data[3369]; buffer[0][22] = data[3370]; buffer[0][23] = data[3371]; buffer[0][24] = data[3372]; buffer[0][25] = data[3373]; buffer[0][26] = data[3374]; buffer[0][27] = data[3375]; buffer[0][28] = data[3376]; buffer[0][29] = data[3377]; buffer[0][30] = data[3378]; buffer[0][31] = data[3379]; buffer[0][32] = data[3380]; buffer[0][33] = data[3381]; buffer[0][34] = data[3382]; buffer[0][35] = data[3383]; + + } + if (partition == 94) { + buffer[0][0] = data[3384]; buffer[0][1] = data[3385]; buffer[0][2] = data[3386]; buffer[0][3] = data[3387]; buffer[0][4] = data[3388]; buffer[0][5] = data[3389]; buffer[0][6] = data[3390]; buffer[0][7] = data[3391]; buffer[0][8] = data[3392]; buffer[0][9] = data[3393]; buffer[0][10] = data[3394]; buffer[0][11] = data[3395]; buffer[0][12] = data[3396]; buffer[0][13] = data[3397]; buffer[0][14] = data[3398]; buffer[0][15] = data[3399]; buffer[0][16] = data[3400]; buffer[0][17] = data[3401]; buffer[0][18] = data[3402]; buffer[0][19] = data[3403]; buffer[0][20] = data[3404]; buffer[0][21] = data[3405]; buffer[0][22] = data[3406]; buffer[0][23] = data[3407]; buffer[0][24] = data[3408]; buffer[0][25] = data[3409]; buffer[0][26] = data[3410]; buffer[0][27] = data[3411]; buffer[0][28] = data[3412]; buffer[0][29] = data[3413]; buffer[0][30] = data[3414]; buffer[0][31] = data[3415]; buffer[0][32] = data[3416]; buffer[0][33] = data[3417]; buffer[0][34] = data[3418]; buffer[0][35] = data[3419]; + + } + if (partition == 95) { + buffer[0][0] = data[3420]; buffer[0][1] = data[3421]; buffer[0][2] = data[3422]; buffer[0][3] = data[3423]; buffer[0][4] = data[3424]; buffer[0][5] = data[3425]; buffer[0][6] = data[3426]; buffer[0][7] = data[3427]; buffer[0][8] = data[3428]; buffer[0][9] = data[3429]; buffer[0][10] = data[3430]; buffer[0][11] = data[3431]; buffer[0][12] = data[3432]; buffer[0][13] = data[3433]; buffer[0][14] = data[3434]; buffer[0][15] = data[3435]; buffer[0][16] = data[3436]; buffer[0][17] = data[3437]; buffer[0][18] = data[3438]; buffer[0][19] = data[3439]; buffer[0][20] = data[3440]; buffer[0][21] = data[3441]; buffer[0][22] = data[3442]; buffer[0][23] = data[3443]; buffer[0][24] = data[3444]; buffer[0][25] = data[3445]; buffer[0][26] = data[3446]; buffer[0][27] = data[3447]; buffer[0][28] = data[3448]; buffer[0][29] = data[3449]; buffer[0][30] = data[3450]; buffer[0][31] = data[3451]; buffer[0][32] = data[3452]; buffer[0][33] = data[3453]; buffer[0][34] = data[3454]; buffer[0][35] = data[3455]; + + } + if (partition == 96) { + buffer[0][0] = data[3456]; buffer[0][1] = data[3457]; buffer[0][2] = data[3458]; buffer[0][3] = data[3459]; buffer[0][4] = data[3460]; buffer[0][5] = data[3461]; buffer[0][6] = data[3462]; buffer[0][7] = data[3463]; buffer[0][8] = data[3464]; buffer[0][9] = data[3465]; buffer[0][10] = data[3466]; buffer[0][11] = data[3467]; buffer[0][12] = data[3468]; buffer[0][13] = data[3469]; buffer[0][14] = data[3470]; buffer[0][15] = data[3471]; buffer[0][16] = data[3472]; buffer[0][17] = data[3473]; buffer[0][18] = data[3474]; buffer[0][19] = data[3475]; buffer[0][20] = data[3476]; buffer[0][21] = data[3477]; buffer[0][22] = data[3478]; buffer[0][23] = data[3479]; buffer[0][24] = data[3480]; buffer[0][25] = data[3481]; buffer[0][26] = data[3482]; buffer[0][27] = data[3483]; buffer[0][28] = data[3484]; buffer[0][29] = data[3485]; buffer[0][30] = data[3486]; buffer[0][31] = data[3487]; buffer[0][32] = data[3488]; buffer[0][33] = data[3489]; buffer[0][34] = data[3490]; buffer[0][35] = data[3491]; + + } + if (partition == 97) { + buffer[0][0] = data[3492]; buffer[0][1] = data[3493]; buffer[0][2] = data[3494]; buffer[0][3] = data[3495]; buffer[0][4] = data[3496]; buffer[0][5] = data[3497]; buffer[0][6] = data[3498]; buffer[0][7] = data[3499]; buffer[0][8] = data[3500]; buffer[0][9] = data[3501]; buffer[0][10] = data[3502]; buffer[0][11] = data[3503]; buffer[0][12] = data[3504]; buffer[0][13] = data[3505]; buffer[0][14] = data[3506]; buffer[0][15] = data[3507]; buffer[0][16] = data[3508]; buffer[0][17] = data[3509]; buffer[0][18] = data[3510]; buffer[0][19] = data[3511]; buffer[0][20] = data[3512]; buffer[0][21] = data[3513]; buffer[0][22] = data[3514]; buffer[0][23] = data[3515]; buffer[0][24] = data[3516]; buffer[0][25] = data[3517]; buffer[0][26] = data[3518]; buffer[0][27] = data[3519]; buffer[0][28] = data[3520]; buffer[0][29] = data[3521]; buffer[0][30] = data[3522]; buffer[0][31] = data[3523]; buffer[0][32] = data[3524]; buffer[0][33] = data[3525]; buffer[0][34] = data[3526]; buffer[0][35] = data[3527]; + + } + if (partition == 98) { + buffer[0][0] = data[3528]; buffer[0][1] = data[3529]; buffer[0][2] = data[3530]; buffer[0][3] = data[3531]; buffer[0][4] = data[3532]; buffer[0][5] = data[3533]; buffer[0][6] = data[3534]; buffer[0][7] = data[3535]; buffer[0][8] = data[3536]; buffer[0][9] = data[3537]; buffer[0][10] = data[3538]; buffer[0][11] = data[3539]; buffer[0][12] = data[3540]; buffer[0][13] = data[3541]; buffer[0][14] = data[3542]; buffer[0][15] = data[3543]; buffer[0][16] = data[3544]; buffer[0][17] = data[3545]; buffer[0][18] = data[3546]; buffer[0][19] = data[3547]; buffer[0][20] = data[3548]; buffer[0][21] = data[3549]; buffer[0][22] = data[3550]; buffer[0][23] = data[3551]; buffer[0][24] = data[3552]; buffer[0][25] = data[3553]; buffer[0][26] = data[3554]; buffer[0][27] = data[3555]; buffer[0][28] = data[3556]; buffer[0][29] = data[3557]; buffer[0][30] = data[3558]; buffer[0][31] = data[3559]; buffer[0][32] = data[3560]; buffer[0][33] = data[3561]; buffer[0][34] = data[3562]; buffer[0][35] = data[3563]; + + } + if (partition == 99) { + buffer[0][0] = data[3564]; buffer[0][1] = data[3565]; buffer[0][2] = data[3566]; buffer[0][3] = data[3567]; buffer[0][4] = data[3568]; buffer[0][5] = data[3569]; buffer[0][6] = data[3570]; buffer[0][7] = data[3571]; buffer[0][8] = data[3572]; buffer[0][9] = data[3573]; buffer[0][10] = data[3574]; buffer[0][11] = data[3575]; buffer[0][12] = data[3576]; buffer[0][13] = data[3577]; buffer[0][14] = data[3578]; buffer[0][15] = data[3579]; buffer[0][16] = data[3580]; buffer[0][17] = data[3581]; buffer[0][18] = data[3582]; buffer[0][19] = data[3583]; buffer[0][20] = data[3584]; buffer[0][21] = data[3585]; buffer[0][22] = data[3586]; buffer[0][23] = data[3587]; buffer[0][24] = data[3588]; buffer[0][25] = data[3589]; buffer[0][26] = data[3590]; buffer[0][27] = data[3591]; buffer[0][28] = data[3592]; buffer[0][29] = data[3593]; buffer[0][30] = data[3594]; buffer[0][31] = data[3595]; buffer[0][32] = data[3596]; buffer[0][33] = data[3597]; buffer[0][34] = data[3598]; buffer[0][35] = data[3599]; + + } + } +}; + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_common.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_common.h new file mode 100644 index 00000000..e942a1dc --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_common.h @@ -0,0 +1,76 @@ +#ifndef NNET_COMMON_H_ +#define NNET_COMMON_H_ + +#include "ap_fixed.h" + +// This is a substitute for "ceil(n/(float)d)". +#define DIV_ROUNDUP(n, d) ((n + d - 1) / d) +#define MIN(n, d) (n > d ? d : n) +#define MAX(n, d) (n > d ? n : d) + +#define STRINGIFY(x) #x +#define EXPAND_STRING(x) STRINGIFY(x) + +#ifndef __VITIS_HLS__ +#define DATA_PACK_TXT HLS DATA_PACK variable = +#define DATA_PACK_PRAGMA(variable) DATA_PACK_TXT variable +#define PRAGMA_DATA_PACK(variable) _Pragma(EXPAND_STRING(DATA_PACK_PRAGMA(variable))) +#else +#define PRAGMA_DATA_PACK(variable) +#endif + +namespace nnet { + +// Common type definitions +enum io_type { io_parallel = 0, io_stream }; +enum strategy { latency, resource }; +enum class conv_implementation { linebuffer = 0, encoded = 1, pointwise = 2 }; + +/* --- + * Balanced tree reduce implementation. + * For use in scenarios where Vivado cannot expression balance + * Reduces an array of inputs to a single value using the template binary operator 'Op', + * for example summing all elements with Op_add, or finding the maximum with Op_max + * Use only when the input array is fully unrolled. Or, slice out a fully unrolled section + * before applying and accumulate the result over the rolled dimension. + * --- */ +template T reduce(const T *x, Op op) { + static constexpr int leftN = pow2(floorlog2(N - 1)) > 0 ? pow2(floorlog2(N - 1)) : 0; + static constexpr int rightN = N - leftN > 0 ? N - leftN : 0; + if (N == 1) { + return x[0]; + } + if (N == 2) { + return op(x[0], x[1]); + } + return op(reduce(x, op), reduce(x + leftN, op)); +} + +template class Op_add { + public: + T operator()(T a, T b) { return a + b; } +}; + +template class Op_and { + public: + T operator()(T a, T b) { return a && b; } +}; + +template class Op_or { + public: + T operator()(T a, T b) { return a || b; } +}; + +template class Op_max { + public: + T operator()(T a, T b) { return a >= b ? a : b; } +}; + +template class Op_min { + public: + T operator()(T a, T b) { return a <= b ? a : b; } +}; + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d.h new file mode 100644 index 00000000..0f2e89ac --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d.h @@ -0,0 +1,76 @@ +#ifndef NNET_CONV1D_H_ +#define NNET_CONV1D_H_ + +#include "nnet_common.h" +#include "nnet_conv1d_latency.h" +#include "nnet_conv1d_resource.h" +#include + +namespace nnet { + +struct conv1d_config { + // Internal data type definitions + typedef float bias_t; + typedef float weight_t; + typedef float accum_t; + + // Convolutional parameters + static const unsigned pad_left = 0; + static const unsigned pad_right = 0; + static const unsigned in_width = 10; + static const unsigned n_chan = 0; + static const unsigned filt_width = 1; + static const unsigned kernel_size = filt_width; + static const unsigned n_filt = 1; + static const unsigned stride_width = 1; + static const unsigned dilation = 1; + static const unsigned out_width = 10; //(N_IN + PAD_LEFT * PAD_RIGHT - (DILATION * (FILT_WIDTH - 1) + 1)) / STRIDE + 1 + + static const unsigned reuse_factor = 1; + static const bool store_weights_in_bram = false; + static const unsigned n_zeros = 0; // not used yet +}; + +template +void conv_1d_cl(data_T data[CONFIG_T::in_width * CONFIG_T::n_chan], res_T res[CONFIG_T::out_width * CONFIG_T::n_filt], + typename CONFIG_T::weight_t weights[CONFIG_T::filt_width * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + #pragma HLS INLINE region + + if (CONFIG_T::strategy == nnet::latency) { + conv_1d_latency_cl(data, res, weights, biases); + } else { + conv_1d_resource_cl(data, res, weights, biases); + } +} + +template +void pointwise_conv_1d_cl(data_T data[CONFIG_T::in_width * CONFIG_T::n_chan], + res_T res[CONFIG_T::out_width * CONFIG_T::n_filt], + typename CONFIG_T::weight_t weights[CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + assert(CONFIG_T::filt_width == 1); + + #pragma HLS INLINE region + + if (CONFIG_T::strategy == nnet::latency) { + if (CONFIG_T::implementation == conv_implementation::pointwise) { + // Use pointwise unrolled implementation + if (CONFIG_T::reuse_factor > 1 && CONFIG_T::reuse_factor <= 120) { + pointwise_conv_1d_latency_cl_split_by_rf(data, res, weights, biases); + } else { + assert(CONFIG_T::reuse_factor == 1); + pointwise_conv_1d_latency_cl(data, res, weights, biases); + } + } else { + // Use standard unrolled implementation + conv_1d_latency_cl(data, res, weights, biases); + } + } else { + conv_1d_resource_cl(data, res, weights, biases); + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d_latency.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d_latency.h new file mode 100644 index 00000000..aabc8698 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d_latency.h @@ -0,0 +1,439 @@ +#ifndef NNET_CONV1D_LATENCY_H_ +#define NNET_CONV1D_LATENCY_H_ + +#include "nnet_common.h" +#include "nnet_mult.h" +#include + +namespace nnet { + +template +void conv_1d_latency_cl(data_T data[CONFIG_T::in_width * CONFIG_T::n_chan], + res_T res[CONFIG_T::out_width * CONFIG_T::n_filt], + typename CONFIG_T::weight_t weights[CONFIG_T::filt_width * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + constexpr unsigned mult_n_in = CONFIG_T::filt_width * CONFIG_T::n_chan; + constexpr unsigned mult_n_out = CONFIG_T::n_filt; + + data_T data_buf[CONFIG_T::n_pixels][mult_n_in]; + #pragma HLS ARRAY_PARTITION variable=data_buf complete dim=0 + + typename CONFIG_T::accum_t mult[mult_n_in * mult_n_out]; + #pragma HLS ARRAY_PARTITION variable=mult complete + + typename CONFIG_T::accum_t acc[mult_n_out]; + #pragma HLS ARRAY_PARTITION variable=acc complete + + #pragma HLS ARRAY_PARTITION variable=weights complete + #pragma HLS ARRAY_PARTITION variable=biases complete + + // Limit multipliers to control parallelization + #pragma HLS ALLOCATION operation instances=mul limit=CONFIG_T::mult_config::multiplier_limit + +PartitionLoop: + for (int i_part = 0; i_part < CONFIG_T::n_partitions; i_part++) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor rewind + + CONFIG_T::template fill_buffer::fill_buffer(data, data_buf, i_part); + + PixelLoop: + for (unsigned i_pxl = 0; i_pxl < CONFIG_T::n_pixels; i_pxl++) { + #pragma HLS UNROLL + + data_T cache; + + // Do the matrix-multiply + Product1: + for (int i_in = 0; i_in < mult_n_in; i_in++) { + #pragma HLS UNROLL + cache = data_buf[i_pxl][i_in]; + Product2: + for (int i_out = 0; i_out < mult_n_out; i_out++) { + #pragma HLS UNROLL + mult[i_in * mult_n_out + i_out] = + CONFIG_T::mult_config::template product::product( + cache, weights[i_in * mult_n_out + i_out]); + } + } + + // Initialize accumulator with input biases + ResetAccum: + for (int i_acc = 0; i_acc < mult_n_out; i_acc++) { + #pragma HLS UNROLL + acc[i_acc] = (typename CONFIG_T::accum_t)biases[i_acc]; + } + + // Accumulate multiplication result + Accum1: + for (int i_in = 0; i_in < mult_n_in; i_in++) { + #pragma HLS UNROLL + Accum2: + for (int i_out = 0; i_out < mult_n_out; i_out++) { + #pragma HLS UNROLL + acc[i_out] += mult[i_in * mult_n_out + i_out]; + } + } + + // Cast to "res_t" type + Result: + for (int i_res = 0; i_res < mult_n_out; i_res++) { + #pragma HLS UNROLL + *(res++) = cast(acc[i_res]); + } + } + } +} + +template +void pointwise_conv_1d_latency_cl(data_T data[CONFIG_T::in_width * CONFIG_T::n_chan / CONFIG_T::reuse_factor], + res_T res[CONFIG_T::out_width * CONFIG_T::n_filt / CONFIG_T::reuse_factor], + typename CONFIG_T::weight_t weights[CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + assert(CONFIG_T::filt_width == 1); + + typename CONFIG_T::accum_t mult[CONFIG_T::out_width * CONFIG_T::n_filt * CONFIG_T::n_chan / CONFIG_T::reuse_factor]; + typename CONFIG_T::accum_t acc[CONFIG_T::out_width / CONFIG_T::reuse_factor][CONFIG_T::n_filt]; + + #pragma HLS ARRAY_PARTITION variable=mult complete dim=0 + #pragma HLS ARRAY_PARTITION variable=acc complete dim=0 + + // Use a function_instantiate in case it helps to explicitly optimize unchanging weights/biases + #pragma HLS function_instantiate variable=weights,biases + + // Parallel mode + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + #pragma HLS ARRAY_PARTITION variable=weights complete dim=0 + #pragma HLS ARRAY_PARTITION variable=biases complete dim=0 + + // Limit multipliers to control parallelization + int multiplier_limit = + ceil((float(CONFIG_T::out_width) / float(CONFIG_T::reuse_factor) * CONFIG_T::n_filt * CONFIG_T::n_chan) / + float(CONFIG_T::reuse_factor)); +#pragma HLS ALLOCATION operation instances=mul limit=multiplier_limit + +// Convolve, saving all multiplication results to accumulate later +ConvOut: + for (int ii = 0; ii < CONFIG_T::out_width / CONFIG_T::reuse_factor; ii++) { + ConvFilt: + for (int ff = 0; ff < CONFIG_T::n_filt; ff++) { + ConvChan: + for (int cc = 0; cc < CONFIG_T::n_chan; cc++) { + #pragma HLS UNROLL + int index_mult = ii * CONFIG_T::n_filt * CONFIG_T::n_chan + ff * CONFIG_T::n_chan + cc; + int index_weight = cc * CONFIG_T::n_filt + ff; + int index_data = (ii * CONFIG_T::stride_width - CONFIG_T::pad_left) * CONFIG_T::n_chan + cc; + + if ((ii * CONFIG_T::stride_width) < CONFIG_T::pad_left || + (ii * CONFIG_T::stride_width) >= (CONFIG_T::pad_left + CONFIG_T::in_width)) { + mult[index_mult] = 0; + } else { + mult[index_mult] = data[index_data] * weights[index_weight]; + } + } // end channel loop + } // end filter loop + } // end output loop + + // Initialize accumulator with input biases + for (int ii = 0; ii < CONFIG_T::out_width / CONFIG_T::reuse_factor; ii++) { + for (int ff = 0; ff < CONFIG_T::n_filt; ff++) { + #pragma HLS UNROLL + acc[ii][ff] = biases[ff]; + } + } + +// Accumulate multiplication result +AccumOut: + for (int ii = 0; ii < CONFIG_T::out_width / CONFIG_T::reuse_factor; ii++) { + AccumFilt: + for (int ff = 0; ff < CONFIG_T::n_filt; ff++) { + // Do "dot product" sum within filter and sum over channels + AccumChan: + for (int cc = 0; cc < CONFIG_T::n_chan; cc++) { + int index_mult = ii * CONFIG_T::n_filt * CONFIG_T::n_chan + ff * CONFIG_T::n_chan + cc; + acc[ii][ff] += mult[index_mult]; + } // end channel loop + } // end filter loop + } // end output loop + + // Cast to "res_t" type + for (int ii = 0; ii < CONFIG_T::out_width / CONFIG_T::reuse_factor; ii++) { + for (int ff = 0; ff < CONFIG_T::n_filt; ff++) { + #pragma HLS UNROLL + res[ii * CONFIG_T::n_filt + ff] = (res_T)(acc[ii][ff]); + } + } +} + +template +void pointwise_conv_1d_latency_cl_split_by_rf(data_T data[CONFIG_T::in_width * CONFIG_T::n_chan], + res_T res[CONFIG_T::out_width * CONFIG_T::n_filt], + typename CONFIG_T::weight_t weights[CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + + data_T data_tmp[CONFIG_T::reuse_factor][CONFIG_T::in_width * CONFIG_T::n_chan / CONFIG_T::reuse_factor]; + #pragma HLS ARRAY_PARTITION variable=data_tmp complete dim=0 + res_T res_tmp[CONFIG_T::reuse_factor][CONFIG_T::out_width * CONFIG_T::n_filt / CONFIG_T::reuse_factor]; + #pragma HLS ARRAY_PARTITION variable=res_tmp complete dim=0 + +RFInputLoop: + for (int jj = 0; jj < CONFIG_T::reuse_factor; jj++) { + #pragma HLS UNROLL + InnerInputLoop: + for (int ii = 0; ii < CONFIG_T::in_width * CONFIG_T::n_chan / CONFIG_T::reuse_factor; ii++) { + #pragma HLS UNROLL + data_tmp[jj][ii] = data[jj * CONFIG_T::in_width * CONFIG_T::n_chan / CONFIG_T::reuse_factor + ii]; + } + } + + pointwise_conv_1d_latency_cl(data_tmp[0], res_tmp[0], weights, biases); + pointwise_conv_1d_latency_cl(data_tmp[1], res_tmp[1], weights, biases); + if (CONFIG_T::reuse_factor > 2) + pointwise_conv_1d_latency_cl(data_tmp[2], res_tmp[2], weights, biases); + if (CONFIG_T::reuse_factor > 3) + pointwise_conv_1d_latency_cl(data_tmp[3], res_tmp[3], weights, biases); + if (CONFIG_T::reuse_factor > 4) + pointwise_conv_1d_latency_cl(data_tmp[4], res_tmp[4], weights, biases); + if (CONFIG_T::reuse_factor > 5) + pointwise_conv_1d_latency_cl(data_tmp[5], res_tmp[5], weights, biases); + if (CONFIG_T::reuse_factor > 6) + pointwise_conv_1d_latency_cl(data_tmp[6], res_tmp[6], weights, biases); + if (CONFIG_T::reuse_factor > 7) + pointwise_conv_1d_latency_cl(data_tmp[7], res_tmp[7], weights, biases); + if (CONFIG_T::reuse_factor > 8) + pointwise_conv_1d_latency_cl(data_tmp[8], res_tmp[8], weights, biases); + if (CONFIG_T::reuse_factor > 9) + pointwise_conv_1d_latency_cl(data_tmp[9], res_tmp[9], weights, biases); + if (CONFIG_T::reuse_factor > 10) + pointwise_conv_1d_latency_cl(data_tmp[10], res_tmp[10], weights, biases); + if (CONFIG_T::reuse_factor > 11) + pointwise_conv_1d_latency_cl(data_tmp[11], res_tmp[11], weights, biases); + if (CONFIG_T::reuse_factor > 12) + pointwise_conv_1d_latency_cl(data_tmp[12], res_tmp[12], weights, biases); + if (CONFIG_T::reuse_factor > 13) + pointwise_conv_1d_latency_cl(data_tmp[13], res_tmp[13], weights, biases); + if (CONFIG_T::reuse_factor > 14) + pointwise_conv_1d_latency_cl(data_tmp[14], res_tmp[14], weights, biases); + if (CONFIG_T::reuse_factor > 15) + pointwise_conv_1d_latency_cl(data_tmp[15], res_tmp[15], weights, biases); + if (CONFIG_T::reuse_factor > 16) + pointwise_conv_1d_latency_cl(data_tmp[16], res_tmp[16], weights, biases); + if (CONFIG_T::reuse_factor > 17) + pointwise_conv_1d_latency_cl(data_tmp[17], res_tmp[17], weights, biases); + if (CONFIG_T::reuse_factor > 18) + pointwise_conv_1d_latency_cl(data_tmp[18], res_tmp[18], weights, biases); + if (CONFIG_T::reuse_factor > 19) + pointwise_conv_1d_latency_cl(data_tmp[19], res_tmp[19], weights, biases); + if (CONFIG_T::reuse_factor > 20) + pointwise_conv_1d_latency_cl(data_tmp[20], res_tmp[20], weights, biases); + if (CONFIG_T::reuse_factor > 21) + pointwise_conv_1d_latency_cl(data_tmp[21], res_tmp[21], weights, biases); + if (CONFIG_T::reuse_factor > 22) + pointwise_conv_1d_latency_cl(data_tmp[22], res_tmp[22], weights, biases); + if (CONFIG_T::reuse_factor > 23) + pointwise_conv_1d_latency_cl(data_tmp[23], res_tmp[23], weights, biases); + if (CONFIG_T::reuse_factor > 24) + pointwise_conv_1d_latency_cl(data_tmp[24], res_tmp[24], weights, biases); + if (CONFIG_T::reuse_factor > 25) + pointwise_conv_1d_latency_cl(data_tmp[25], res_tmp[25], weights, biases); + if (CONFIG_T::reuse_factor > 26) + pointwise_conv_1d_latency_cl(data_tmp[26], res_tmp[26], weights, biases); + if (CONFIG_T::reuse_factor > 27) + pointwise_conv_1d_latency_cl(data_tmp[27], res_tmp[27], weights, biases); + if (CONFIG_T::reuse_factor > 28) + pointwise_conv_1d_latency_cl(data_tmp[28], res_tmp[28], weights, biases); + if (CONFIG_T::reuse_factor > 29) + pointwise_conv_1d_latency_cl(data_tmp[29], res_tmp[29], weights, biases); + if (CONFIG_T::reuse_factor > 30) + pointwise_conv_1d_latency_cl(data_tmp[30], res_tmp[30], weights, biases); + if (CONFIG_T::reuse_factor > 31) + pointwise_conv_1d_latency_cl(data_tmp[31], res_tmp[31], weights, biases); + if (CONFIG_T::reuse_factor > 32) + pointwise_conv_1d_latency_cl(data_tmp[32], res_tmp[32], weights, biases); + if (CONFIG_T::reuse_factor > 33) + pointwise_conv_1d_latency_cl(data_tmp[33], res_tmp[33], weights, biases); + if (CONFIG_T::reuse_factor > 34) + pointwise_conv_1d_latency_cl(data_tmp[34], res_tmp[34], weights, biases); + if (CONFIG_T::reuse_factor > 35) + pointwise_conv_1d_latency_cl(data_tmp[35], res_tmp[35], weights, biases); + if (CONFIG_T::reuse_factor > 36) + pointwise_conv_1d_latency_cl(data_tmp[36], res_tmp[36], weights, biases); + if (CONFIG_T::reuse_factor > 37) + pointwise_conv_1d_latency_cl(data_tmp[37], res_tmp[37], weights, biases); + if (CONFIG_T::reuse_factor > 38) + pointwise_conv_1d_latency_cl(data_tmp[38], res_tmp[38], weights, biases); + if (CONFIG_T::reuse_factor > 39) + pointwise_conv_1d_latency_cl(data_tmp[39], res_tmp[39], weights, biases); + if (CONFIG_T::reuse_factor > 40) + pointwise_conv_1d_latency_cl(data_tmp[40], res_tmp[40], weights, biases); + if (CONFIG_T::reuse_factor > 41) + pointwise_conv_1d_latency_cl(data_tmp[41], res_tmp[41], weights, biases); + if (CONFIG_T::reuse_factor > 42) + pointwise_conv_1d_latency_cl(data_tmp[42], res_tmp[42], weights, biases); + if (CONFIG_T::reuse_factor > 43) + pointwise_conv_1d_latency_cl(data_tmp[43], res_tmp[43], weights, biases); + if (CONFIG_T::reuse_factor > 44) + pointwise_conv_1d_latency_cl(data_tmp[44], res_tmp[44], weights, biases); + if (CONFIG_T::reuse_factor > 45) + pointwise_conv_1d_latency_cl(data_tmp[45], res_tmp[45], weights, biases); + if (CONFIG_T::reuse_factor > 46) + pointwise_conv_1d_latency_cl(data_tmp[46], res_tmp[45], weights, biases); + if (CONFIG_T::reuse_factor > 47) + pointwise_conv_1d_latency_cl(data_tmp[47], res_tmp[47], weights, biases); + if (CONFIG_T::reuse_factor > 48) + pointwise_conv_1d_latency_cl(data_tmp[48], res_tmp[48], weights, biases); + if (CONFIG_T::reuse_factor > 49) + pointwise_conv_1d_latency_cl(data_tmp[49], res_tmp[49], weights, biases); + if (CONFIG_T::reuse_factor > 50) + pointwise_conv_1d_latency_cl(data_tmp[50], res_tmp[50], weights, biases); + if (CONFIG_T::reuse_factor > 51) + pointwise_conv_1d_latency_cl(data_tmp[51], res_tmp[51], weights, biases); + if (CONFIG_T::reuse_factor > 52) + pointwise_conv_1d_latency_cl(data_tmp[52], res_tmp[52], weights, biases); + if (CONFIG_T::reuse_factor > 53) + pointwise_conv_1d_latency_cl(data_tmp[53], res_tmp[53], weights, biases); + if (CONFIG_T::reuse_factor > 54) + pointwise_conv_1d_latency_cl(data_tmp[54], res_tmp[54], weights, biases); + if (CONFIG_T::reuse_factor > 55) + pointwise_conv_1d_latency_cl(data_tmp[55], res_tmp[55], weights, biases); + if (CONFIG_T::reuse_factor > 56) + pointwise_conv_1d_latency_cl(data_tmp[56], res_tmp[55], weights, biases); + if (CONFIG_T::reuse_factor > 57) + pointwise_conv_1d_latency_cl(data_tmp[57], res_tmp[57], weights, biases); + if (CONFIG_T::reuse_factor > 58) + pointwise_conv_1d_latency_cl(data_tmp[58], res_tmp[58], weights, biases); + if (CONFIG_T::reuse_factor > 59) + pointwise_conv_1d_latency_cl(data_tmp[59], res_tmp[59], weights, biases); + if (CONFIG_T::reuse_factor > 60) + pointwise_conv_1d_latency_cl(data_tmp[60], res_tmp[60], weights, biases); + if (CONFIG_T::reuse_factor > 61) + pointwise_conv_1d_latency_cl(data_tmp[61], res_tmp[61], weights, biases); + if (CONFIG_T::reuse_factor > 62) + pointwise_conv_1d_latency_cl(data_tmp[62], res_tmp[62], weights, biases); + if (CONFIG_T::reuse_factor > 63) + pointwise_conv_1d_latency_cl(data_tmp[63], res_tmp[63], weights, biases); + if (CONFIG_T::reuse_factor > 64) + pointwise_conv_1d_latency_cl(data_tmp[64], res_tmp[64], weights, biases); + if (CONFIG_T::reuse_factor > 65) + pointwise_conv_1d_latency_cl(data_tmp[65], res_tmp[65], weights, biases); + if (CONFIG_T::reuse_factor > 66) + pointwise_conv_1d_latency_cl(data_tmp[66], res_tmp[66], weights, biases); + if (CONFIG_T::reuse_factor > 67) + pointwise_conv_1d_latency_cl(data_tmp[67], res_tmp[67], weights, biases); + if (CONFIG_T::reuse_factor > 68) + pointwise_conv_1d_latency_cl(data_tmp[68], res_tmp[68], weights, biases); + if (CONFIG_T::reuse_factor > 69) + pointwise_conv_1d_latency_cl(data_tmp[69], res_tmp[69], weights, biases); + if (CONFIG_T::reuse_factor > 70) + pointwise_conv_1d_latency_cl(data_tmp[70], res_tmp[70], weights, biases); + if (CONFIG_T::reuse_factor > 71) + pointwise_conv_1d_latency_cl(data_tmp[71], res_tmp[71], weights, biases); + if (CONFIG_T::reuse_factor > 72) + pointwise_conv_1d_latency_cl(data_tmp[72], res_tmp[72], weights, biases); + if (CONFIG_T::reuse_factor > 73) + pointwise_conv_1d_latency_cl(data_tmp[73], res_tmp[73], weights, biases); + if (CONFIG_T::reuse_factor > 74) + pointwise_conv_1d_latency_cl(data_tmp[74], res_tmp[74], weights, biases); + if (CONFIG_T::reuse_factor > 75) + pointwise_conv_1d_latency_cl(data_tmp[75], res_tmp[75], weights, biases); + if (CONFIG_T::reuse_factor > 76) + pointwise_conv_1d_latency_cl(data_tmp[76], res_tmp[76], weights, biases); + if (CONFIG_T::reuse_factor > 77) + pointwise_conv_1d_latency_cl(data_tmp[77], res_tmp[77], weights, biases); + if (CONFIG_T::reuse_factor > 78) + pointwise_conv_1d_latency_cl(data_tmp[78], res_tmp[78], weights, biases); + if (CONFIG_T::reuse_factor > 79) + pointwise_conv_1d_latency_cl(data_tmp[79], res_tmp[79], weights, biases); + if (CONFIG_T::reuse_factor > 80) + pointwise_conv_1d_latency_cl(data_tmp[80], res_tmp[80], weights, biases); + if (CONFIG_T::reuse_factor > 81) + pointwise_conv_1d_latency_cl(data_tmp[81], res_tmp[81], weights, biases); + if (CONFIG_T::reuse_factor > 82) + pointwise_conv_1d_latency_cl(data_tmp[82], res_tmp[82], weights, biases); + if (CONFIG_T::reuse_factor > 83) + pointwise_conv_1d_latency_cl(data_tmp[83], res_tmp[83], weights, biases); + if (CONFIG_T::reuse_factor > 84) + pointwise_conv_1d_latency_cl(data_tmp[84], res_tmp[84], weights, biases); + if (CONFIG_T::reuse_factor > 85) + pointwise_conv_1d_latency_cl(data_tmp[85], res_tmp[85], weights, biases); + if (CONFIG_T::reuse_factor > 86) + pointwise_conv_1d_latency_cl(data_tmp[86], res_tmp[86], weights, biases); + if (CONFIG_T::reuse_factor > 87) + pointwise_conv_1d_latency_cl(data_tmp[87], res_tmp[87], weights, biases); + if (CONFIG_T::reuse_factor > 88) + pointwise_conv_1d_latency_cl(data_tmp[88], res_tmp[88], weights, biases); + if (CONFIG_T::reuse_factor > 89) + pointwise_conv_1d_latency_cl(data_tmp[89], res_tmp[89], weights, biases); + if (CONFIG_T::reuse_factor > 90) + pointwise_conv_1d_latency_cl(data_tmp[90], res_tmp[90], weights, biases); + if (CONFIG_T::reuse_factor > 91) + pointwise_conv_1d_latency_cl(data_tmp[91], res_tmp[91], weights, biases); + if (CONFIG_T::reuse_factor > 92) + pointwise_conv_1d_latency_cl(data_tmp[92], res_tmp[92], weights, biases); + if (CONFIG_T::reuse_factor > 93) + pointwise_conv_1d_latency_cl(data_tmp[93], res_tmp[93], weights, biases); + if (CONFIG_T::reuse_factor > 94) + pointwise_conv_1d_latency_cl(data_tmp[94], res_tmp[94], weights, biases); + if (CONFIG_T::reuse_factor > 95) + pointwise_conv_1d_latency_cl(data_tmp[95], res_tmp[95], weights, biases); + if (CONFIG_T::reuse_factor > 96) + pointwise_conv_1d_latency_cl(data_tmp[96], res_tmp[96], weights, biases); + if (CONFIG_T::reuse_factor > 97) + pointwise_conv_1d_latency_cl(data_tmp[97], res_tmp[97], weights, biases); + if (CONFIG_T::reuse_factor > 98) + pointwise_conv_1d_latency_cl(data_tmp[98], res_tmp[98], weights, biases); + if (CONFIG_T::reuse_factor > 99) + pointwise_conv_1d_latency_cl(data_tmp[99], res_tmp[99], weights, biases); + if (CONFIG_T::reuse_factor > 100) + pointwise_conv_1d_latency_cl(data_tmp[100], res_tmp[100], weights, biases); + if (CONFIG_T::reuse_factor > 101) + pointwise_conv_1d_latency_cl(data_tmp[101], res_tmp[101], weights, biases); + if (CONFIG_T::reuse_factor > 102) + pointwise_conv_1d_latency_cl(data_tmp[102], res_tmp[102], weights, biases); + if (CONFIG_T::reuse_factor > 103) + pointwise_conv_1d_latency_cl(data_tmp[103], res_tmp[103], weights, biases); + if (CONFIG_T::reuse_factor > 104) + pointwise_conv_1d_latency_cl(data_tmp[104], res_tmp[104], weights, biases); + if (CONFIG_T::reuse_factor > 105) + pointwise_conv_1d_latency_cl(data_tmp[105], res_tmp[105], weights, biases); + if (CONFIG_T::reuse_factor > 106) + pointwise_conv_1d_latency_cl(data_tmp[106], res_tmp[106], weights, biases); + if (CONFIG_T::reuse_factor > 107) + pointwise_conv_1d_latency_cl(data_tmp[107], res_tmp[107], weights, biases); + if (CONFIG_T::reuse_factor > 108) + pointwise_conv_1d_latency_cl(data_tmp[108], res_tmp[108], weights, biases); + if (CONFIG_T::reuse_factor > 109) + pointwise_conv_1d_latency_cl(data_tmp[109], res_tmp[109], weights, biases); + if (CONFIG_T::reuse_factor > 110) + pointwise_conv_1d_latency_cl(data_tmp[110], res_tmp[110], weights, biases); + if (CONFIG_T::reuse_factor > 111) + pointwise_conv_1d_latency_cl(data_tmp[111], res_tmp[111], weights, biases); + if (CONFIG_T::reuse_factor > 112) + pointwise_conv_1d_latency_cl(data_tmp[112], res_tmp[112], weights, biases); + if (CONFIG_T::reuse_factor > 113) + pointwise_conv_1d_latency_cl(data_tmp[113], res_tmp[113], weights, biases); + if (CONFIG_T::reuse_factor > 114) + pointwise_conv_1d_latency_cl(data_tmp[114], res_tmp[114], weights, biases); + if (CONFIG_T::reuse_factor > 115) + pointwise_conv_1d_latency_cl(data_tmp[115], res_tmp[115], weights, biases); + if (CONFIG_T::reuse_factor > 116) + pointwise_conv_1d_latency_cl(data_tmp[116], res_tmp[116], weights, biases); + if (CONFIG_T::reuse_factor > 117) + pointwise_conv_1d_latency_cl(data_tmp[117], res_tmp[117], weights, biases); + if (CONFIG_T::reuse_factor > 118) + pointwise_conv_1d_latency_cl(data_tmp[118], res_tmp[118], weights, biases); + if (CONFIG_T::reuse_factor > 119) + pointwise_conv_1d_latency_cl(data_tmp[119], res_tmp[119], weights, biases); + +RFOutputLoop: + for (int jj = 0; jj < CONFIG_T::reuse_factor; jj++) { + #pragma HLS UNROLL + InnerOutputLoop: + for (int ii = 0; ii < CONFIG_T::out_width * CONFIG_T::n_filt / CONFIG_T::reuse_factor; ii++) { + #pragma HLS UNROLL + res[jj * CONFIG_T::out_width * CONFIG_T::n_filt / CONFIG_T::reuse_factor + ii] = res_tmp[jj][ii]; + } + } +} + +} // namespace nnet +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d_resource.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d_resource.h new file mode 100644 index 00000000..6e70158a --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d_resource.h @@ -0,0 +1,103 @@ +#ifndef NNET_CONV1D_RESOURCE_H_ +#define NNET_CONV1D_RESOURCE_H_ + +#include "nnet_common.h" +#include "nnet_dense.h" + +namespace nnet { + +template +void conv_1d_resource_cl(data_T data[CONFIG_T::in_width * CONFIG_T::n_chan], + res_T res[CONFIG_T::out_width * CONFIG_T::n_filt], + typename CONFIG_T::weight_t weights[CONFIG_T::filt_width * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + constexpr unsigned mult_n_in = CONFIG_T::filt_width * CONFIG_T::n_chan; + constexpr unsigned mult_n_out = CONFIG_T::n_filt; + constexpr unsigned block_factor = DIV_ROUNDUP(mult_n_in * mult_n_out, CONFIG_T::reuse_factor); + constexpr unsigned multscale = block_factor / mult_n_out; + + assert((block_factor % mult_n_out == 0 || CONFIG_T::reuse_factor >= mult_n_in) && + "The current Reuse Factor is not allowed"); + assert((CONFIG_T::reuse_factor <= CONFIG_T::filt_width * CONFIG_T::n_chan) && + "This function is correct only for RF <= FILT_WIDTH * N_CHAN"); + + data_T data_buf[CONFIG_T::n_pixels][mult_n_in]; + #pragma HLS ARRAY_PARTITION variable=data_buf complete dim=0 + + #pragma HLS ARRAY_RESHAPE variable=weights block factor=block_factor + #pragma HLS ARRAY_PARTITION variable=biases complete + + typename CONFIG_T::accum_t acc[CONFIG_T::n_pixels][mult_n_out]; + #pragma HLS ARRAY_PARTITION variable=acc complete dim=0 + +PartitionLoop: + for (unsigned i_part = 0; i_part < CONFIG_T::n_partitions; i_part++) { + //#pragma HLS UNROLL // We don't want this loop unrolled + + CONFIG_T::template fill_buffer::fill_buffer(data, data_buf, i_part); + + PixelInitAccumLoop: + for (unsigned i_pxl = 0; i_pxl < CONFIG_T::n_pixels; i_pxl++) { + #pragma HLS UNROLL + + InitAccumLoop: + for (unsigned i_acc = 0; i_acc < mult_n_out; i_acc++) { + #pragma HLS UNROLL + acc[i_pxl][i_acc] = (typename CONFIG_T::accum_t)biases[i_acc]; + } + } + + ReuseLoop: + for (unsigned i_rf = 0; i_rf < CONFIG_T::reuse_factor; i_rf++) { + #pragma HLS PIPELINE II=1 rewind + + unsigned i_w = i_rf; + unsigned i_in = i_rf; + unsigned i_out = 0; + unsigned i_acc = 0; + + MultLoop: + for (unsigned i_blk = 0; i_blk < block_factor; i_blk++) { + #pragma HLS UNROLL + + PixelMultLoop: + for (unsigned i_pxl = 0; i_pxl < CONFIG_T::n_pixels; i_pxl++) { + #pragma HLS UNROLL + + acc[i_pxl][i_out] += static_cast( + CONFIG_T::mult_config::template product::product( + data_buf[i_pxl][i_in], weights[i_w])); + } + + // Increment i_w + i_w += CONFIG_T::reuse_factor; + // Increment i_in + i_in += CONFIG_T::reuse_factor; + if (i_in >= mult_n_in) { + i_in = i_rf; + } + // Increment i_out + if (i_acc + 1 >= multscale) { + i_acc = 0; + i_out++; + } else { + i_acc++; + } + } + } + + PixelResultLoop: + for (unsigned i_pxl = 0; i_pxl < CONFIG_T::n_pixels; i_pxl++) { + #pragma HLS UNROLL + // Cast to "res_t" type + ResultLoop: + for (unsigned i_res = 0; i_res < mult_n_out; i_res++) { + #pragma HLS UNROLL + *(res++) = cast(acc[i_pxl][i_res]); + } + } + } +} + +} // namespace nnet +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d_stream.h new file mode 100644 index 00000000..b23c330c --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv1d_stream.h @@ -0,0 +1,89 @@ +#ifndef NNET_CONV1D_STREAM_H_ +#define NNET_CONV1D_STREAM_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_conv_stream.h" + +namespace nnet { + +template +void compute_scaled_indices_1d(const unsigned w_idx, ap_uint *pixel_idx) { + unsigned wp_idx = w_idx * (data_T::size / CONFIG_T::n_chan); + +ComputeIndex: + for (unsigned p = 0; p < data_T::size / CONFIG_T::n_chan; p++) { + #pragma HLS UNROLL + unsigned sw_idx = + CONFIG_T::template scale_index::scale_index( + wp_idx + p); + pixel_idx[p] = CONFIG_T::pixels[sw_idx]; + } +} + +template +void conv_1d_encoded_cl(hls::stream &data, hls::stream &res, + typename CONFIG_T::weight_t weights[CONFIG_T::filt_width * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + assert(CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + + hls::stream data_window[CONFIG_T::filt_width * CONFIG_T::n_chan]; + const int win_depth = CONFIG_T::out_width; + for (unsigned i_out = 0; i_out < CONFIG_T::filt_width * CONFIG_T::n_chan; i_out++) { + #pragma HLS STREAM variable=data_window[i_out] depth=win_depth + } + + #pragma HLS ARRAY_PARTITION variable=CONFIG_T::pixels complete + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + unsigned outputs_ready = 0; + + ap_uint pixel_idx[data_T::size / CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable=pixel_idx complete + +ReadInputWidth: + for (unsigned i_iw = 0; i_iw < CONFIG_T::in_width / (data_T::size / CONFIG_T::n_chan); i_iw++) { + #pragma HLS LOOP_FLATTEN + if (CONFIG_T::strategy == nnet::latency && data_T::size / CONFIG_T::n_chan == 1) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + } + compute_scaled_indices_1d(i_iw, pixel_idx); + compute_output_encoded(data.read(), data_window, res, res_pack, outputs_ready, weights, + biases, pixel_idx); + } +} + +template +void conv_1d_buffer_cl(hls::stream &data, hls::stream &res, + typename CONFIG_T::weight_t weights[CONFIG_T::filt_width * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + assert(CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + +ReadInputWidth: + for (unsigned i_iw = 0; i_iw < CONFIG_T::in_width; i_iw++) { + #pragma HLS LOOP_FLATTEN + if (CONFIG_T::strategy == nnet::latency) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + } + compute_output_buffer_1d(data.read(), res, weights, biases); + } +} + +template +void conv_1d_cl(hls::stream &data, hls::stream &res, + typename CONFIG_T::weight_t weights[CONFIG_T::filt_width * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + #pragma HLS inline recursive + switch (CONFIG_T::implementation) { + case conv_implementation::linebuffer: + conv_1d_buffer_cl(data, res, weights, biases); + break; + case conv_implementation::encoded: + conv_1d_encoded_cl(data, res, weights, biases); + break; + } +} + +} // namespace nnet +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d.h new file mode 100644 index 00000000..71a88f44 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d.h @@ -0,0 +1,75 @@ +#ifndef NNET_CONV2D_H_ +#define NNET_CONV2D_H_ + +#include "nnet_common.h" +#include "nnet_conv2d_latency.h" +#include "nnet_conv2d_resource.h" +#include + +namespace nnet { + +struct conv2d_config { + // Internal data type definitions + typedef float bias_t; + typedef float weight_t; + typedef float accum_t; + + // Convolutional parameters + static const unsigned pad_top = 0; + static const unsigned pad_bottom = 0; + static const unsigned pad_left = 0; + static const unsigned pad_right = 0; + static const unsigned in_height = 10; + static const unsigned in_width = 10; + static const unsigned n_chan = 1; + static const unsigned filt_height = 1; + static const unsigned filt_width = 1; + static const unsigned kernel_size = filt_height * filt_width; + static const unsigned n_filt = 1; + static const unsigned stride_height = 1; + static const unsigned stride_width = 1; + static const unsigned out_height = 10; + static const unsigned out_width = 10; + static const unsigned dilation_height = 1; + static const unsigned dilation_width = 1; + + static const unsigned reuse_factor = 1; + static const bool store_weights_in_bram = false; + static const unsigned n_zeros = 0; // not used yet +}; + +template +void conv_2d_cl( + data_T data[CONFIG_T::in_height * CONFIG_T::in_width * CONFIG_T::n_chan], + res_T res[CONFIG_T::out_height * CONFIG_T::out_width * CONFIG_T::n_filt], + typename CONFIG_T::weight_t weights[CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + #pragma HLS INLINE region + + if (CONFIG_T::strategy == nnet::latency) { + conv_2d_latency_cl(data, res, weights, biases); + } else { + conv_2d_resource_cl(data, res, weights, biases); + } +} + +template +void pointwise_conv_2d_cl(data_T data[CONFIG_T::in_height * CONFIG_T::in_width * CONFIG_T::n_chan], + res_T res[CONFIG_T::out_height * CONFIG_T::out_width * CONFIG_T::n_filt], + typename CONFIG_T::weight_t weights[CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + assert(CONFIG_T::filt_width == 1); + + #pragma HLS INLINE region + + // Nothing special to be done for io_parallel implementation + if (CONFIG_T::strategy == nnet::latency) { + conv_2d_latency_cl(data, res, weights, biases); + } else { + conv_2d_resource_cl(data, res, weights, biases); + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d_latency.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d_latency.h new file mode 100644 index 00000000..5114af78 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d_latency.h @@ -0,0 +1,89 @@ +#ifndef NNET_CONV2D_LATENCY_H_ +#define NNET_CONV2D_LATENCY_H_ + +#include "nnet_common.h" +#include "nnet_mult.h" +#include + +namespace nnet { + +template +void conv_2d_latency_cl( + data_T data[CONFIG_T::in_height * CONFIG_T::in_width * CONFIG_T::n_chan], + res_T res[CONFIG_T::out_height * CONFIG_T::out_width * CONFIG_T::n_filt], + typename CONFIG_T::weight_t weights[CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + constexpr unsigned mult_n_in = CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan; + constexpr unsigned mult_n_out = CONFIG_T::n_filt; + + data_T data_buf[CONFIG_T::n_pixels][mult_n_in]; + #pragma HLS ARRAY_PARTITION variable=data_buf complete dim=0 + + typename CONFIG_T::accum_t mult[mult_n_in * mult_n_out]; + #pragma HLS ARRAY_PARTITION variable=mult complete + + typename CONFIG_T::accum_t acc[mult_n_out]; + #pragma HLS ARRAY_PARTITION variable=acc complete + + #pragma HLS ARRAY_PARTITION variable=weights complete + #pragma HLS ARRAY_PARTITION variable=biases complete + + // Limit multipliers to control parallelization + #pragma HLS ALLOCATION operation instances=mul limit=CONFIG_T::mult_config::multiplier_limit + +PartitionLoop: + for (int i_part = 0; i_part < CONFIG_T::n_partitions; i_part++) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor rewind + + CONFIG_T::template fill_buffer::fill_buffer(data, data_buf, i_part); + + PixelLoop: + for (unsigned i_pxl = 0; i_pxl < CONFIG_T::n_pixels; i_pxl++) { + #pragma HLS UNROLL + + data_T cache; + + // Do the matrix-multiply + Product1: + for (int i_in = 0; i_in < mult_n_in; i_in++) { + #pragma HLS UNROLL + cache = data_buf[i_pxl][i_in]; + Product2: + for (int i_out = 0; i_out < mult_n_out; i_out++) { + #pragma HLS UNROLL + mult[i_in * mult_n_out + i_out] = + CONFIG_T::mult_config::template product::product( + cache, weights[i_in * mult_n_out + i_out]); + } + } + + // Initialize accumulator with input biases + ResetAccum: + for (int i_acc = 0; i_acc < mult_n_out; i_acc++) { + #pragma HLS UNROLL + acc[i_acc] = (typename CONFIG_T::accum_t)biases[i_acc]; + } + + // Accumulate multiplication result + Accum1: + for (int i_in = 0; i_in < mult_n_in; i_in++) { + #pragma HLS UNROLL + Accum2: + for (int i_out = 0; i_out < mult_n_out; i_out++) { + #pragma HLS UNROLL + acc[i_out] += mult[i_in * mult_n_out + i_out]; + } + } + + // Cast to "res_t" type + Result: + for (int i_res = 0; i_res < mult_n_out; i_res++) { + #pragma HLS UNROLL + *(res++) = cast(acc[i_res]); + } + } + } +} + +} // namespace nnet +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d_resource.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d_resource.h new file mode 100644 index 00000000..eb7e18e4 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d_resource.h @@ -0,0 +1,105 @@ +#ifndef NNET_CONV2D_RESOURCE_H_ +#define NNET_CONV2D_RESOURCE_H_ + +#include "nnet_common.h" +#include "nnet_dense.h" + +namespace nnet { + +template +void conv_2d_resource_cl( + data_T data[CONFIG_T::in_height * CONFIG_T::in_width * CONFIG_T::n_chan], + res_T res[CONFIG_T::out_height * CONFIG_T::out_width * CONFIG_T::n_filt], + typename CONFIG_T::weight_t weights[CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + constexpr unsigned mult_n_in = CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan; + constexpr unsigned mult_n_out = CONFIG_T::n_filt; + constexpr unsigned block_factor = DIV_ROUNDUP(mult_n_in * mult_n_out, CONFIG_T::reuse_factor); + + constexpr unsigned multscale = block_factor / mult_n_out; + + assert((block_factor % mult_n_out == 0 || CONFIG_T::reuse_factor >= mult_n_in) && + "The current Reuse Factor is not allowed"); + assert((CONFIG_T::reuse_factor <= CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan) && + "This function is correct only for RF <= FILT_HEIGHT * FILT_WIDTH * N_CHAN"); + + data_T data_buf[CONFIG_T::n_pixels][mult_n_in]; + #pragma HLS ARRAY_PARTITION variable=data_buf complete dim=0 + + #pragma HLS ARRAY_RESHAPE variable=weights block factor=block_factor + #pragma HLS ARRAY_PARTITION variable=biases complete + + typename CONFIG_T::accum_t acc[CONFIG_T::n_pixels][mult_n_out]; + #pragma HLS ARRAY_PARTITION variable=acc complete dim=0 + +PartitionLoop: + for (unsigned i_part = 0; i_part < CONFIG_T::n_partitions; i_part++) { + //#pragma HLS UNROLL // We don't want this loop unrolled + + CONFIG_T::template fill_buffer::fill_buffer(data, data_buf, i_part); + + PixelInitAccumLoop: + for (unsigned i_pxl = 0; i_pxl < CONFIG_T::n_pixels; i_pxl++) { + #pragma HLS UNROLL + + InitAccumLoop: + for (unsigned i_acc = 0; i_acc < mult_n_out; i_acc++) { + #pragma HLS UNROLL + acc[i_pxl][i_acc] = (typename CONFIG_T::accum_t)biases[i_acc]; + } + } + + ReuseLoop: + for (unsigned i_rf = 0; i_rf < CONFIG_T::reuse_factor; i_rf++) { + #pragma HLS PIPELINE II=1 rewind + + unsigned i_w = i_rf; + unsigned i_in = i_rf; + unsigned i_out = 0; + unsigned i_acc = 0; + + MultLoop: + for (unsigned i_blk = 0; i_blk < block_factor; i_blk++) { + #pragma HLS UNROLL + + PixelMultLoop: + for (unsigned i_pxl = 0; i_pxl < CONFIG_T::n_pixels; i_pxl++) { + #pragma HLS UNROLL + + acc[i_pxl][i_out] += static_cast( + CONFIG_T::mult_config::template product::product( + data_buf[i_pxl][i_in], weights[i_w])); + } + + // Increment i_w + i_w += CONFIG_T::reuse_factor; + // Increment i_in + i_in += CONFIG_T::reuse_factor; + if (i_in >= mult_n_in) { + i_in = i_rf; + } + // Increment i_out + if (i_acc + 1 >= multscale) { + i_acc = 0; + i_out++; + } else { + i_acc++; + } + } + } + + PixelResultLoop: + for (unsigned i_pxl = 0; i_pxl < CONFIG_T::n_pixels; i_pxl++) { + #pragma HLS UNROLL + // Cast to "res_t" type + ResultLoop: + for (unsigned i_res = 0; i_res < mult_n_out; i_res++) { + #pragma HLS UNROLL + *(res++) = cast(acc[i_pxl][i_res]); + } + } + } +} + +} // namespace nnet +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d_stream.h new file mode 100644 index 00000000..8a4fb6be --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv2d_stream.h @@ -0,0 +1,112 @@ +#ifndef NNET_CONV2D_STREAM_H_ +#define NNET_CONV2D_STREAM_H_ + +#include "ap_shift_reg.h" +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_conv_stream.h" + +namespace nnet { + +template +void compute_scaled_indices_2d(const unsigned h_idx, const unsigned w_idx, + ap_uint *pixel_idx) { + const unsigned sh_idx = CONFIG_T::template scale_index_height::scale_index(h_idx); + unsigned wp_idx = w_idx * (data_T::size / CONFIG_T::n_chan); + +ComputeIndex: + for (unsigned p = 0; p < data_T::size / CONFIG_T::n_chan; p++) { + #pragma HLS UNROLL + + unsigned sw_idx = CONFIG_T::template scale_index_width::scale_index(wp_idx + p); + pixel_idx[p] = CONFIG_T::pixels[sh_idx * CONFIG_T::min_width + sw_idx]; + } +} + +template +void conv_2d_encoded_cl( + hls::stream &data, hls::stream &res, + typename CONFIG_T::weight_t weights[CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + assert(CONFIG_T::pad_top == 0 && CONFIG_T::pad_bottom == 0 && CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + assert(CONFIG_T::filt_height == CONFIG_T::filt_width); + + hls::stream data_window[CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan]; + const int win_depth = CONFIG_T::filt_height * CONFIG_T::out_width; + for (unsigned i_out = 0; i_out < CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan; i_out++) { + #pragma HLS STREAM variable=data_window[i_out] depth=win_depth + } + + #pragma HLS ARRAY_PARTITION variable=CONFIG_T::pixels complete + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + unsigned outputs_ready = 0; + + ap_uint pixel_idx[data_T::size / CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable=pixel_idx complete + +ReadInputHeight: + for (unsigned i_ih = 0; i_ih < CONFIG_T::in_height; i_ih++) { + ReadInputWidth: + for (unsigned i_iw = 0; i_iw < CONFIG_T::in_width / (data_T::size / CONFIG_T::n_chan); i_iw++) { + #pragma HLS LOOP_FLATTEN + if (CONFIG_T::strategy == nnet::latency && data_T::size / CONFIG_T::n_chan == 1) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + } + compute_scaled_indices_2d(i_ih, i_iw, pixel_idx); + compute_output_encoded(data.read(), data_window, res, res_pack, outputs_ready, weights, + biases, pixel_idx); + } + } +} + +// Line Buffer +template +void conv_2d_buffer_cl( + hls::stream &data, hls::stream &res, + typename CONFIG_T::weight_t weights[CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + assert(CONFIG_T::pad_top == 0 && CONFIG_T::pad_bottom == 0 && CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + + static ap_shift_reg line_buffer[MAX(CONFIG_T::filt_height - 1, 1)] + [CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable = line_buffer complete dim = 2 + +ReadInputHeight: + for (unsigned i_ih = 0; i_ih < CONFIG_T::in_height; i_ih++) { + ReadInputWidth: + for (unsigned i_iw = 0; i_iw < CONFIG_T::in_width; i_iw++) { + #pragma HLS LOOP_FLATTEN + if (CONFIG_T::strategy == nnet::latency) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + } + if (CONFIG_T::filt_height > 1) { + compute_output_buffer_2d(data.read(), line_buffer, res, weights, biases); + } else { + compute_output_buffer_1d(data.read(), res, weights, biases); + } + } + } +} + +template +void conv_2d_cl( + hls::stream &data, hls::stream &res, + typename CONFIG_T::weight_t weights[CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + #pragma HLS inline recursive + switch (CONFIG_T::implementation) { + case conv_implementation::linebuffer: + conv_2d_buffer_cl(data, res, weights, biases); + break; + case conv_implementation::encoded: + conv_2d_encoded_cl(data, res, weights, biases); + break; + } +} + +} // namespace nnet +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv_stream.h new file mode 100644 index 00000000..b763938c --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_conv_stream.h @@ -0,0 +1,394 @@ +#ifndef NNET_CONV_STREAM_H_ +#define NNET_CONV_STREAM_H_ + +#include "ap_shift_reg.h" +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_dense.h" + +namespace nnet { + +// ************************************************* +// Encoded Implementation (Vlad's) +// ************************************************* +template unsigned scale_index_K_gte_S(const unsigned idx) { + #pragma HLS INLINE + + if (idx < K - S) { + return idx; + } + + constexpr unsigned nW = ((W - K) / S) * S + K; // Nearest W without unused pixels on the right + constexpr unsigned sW = (DIV_ROUNDUP(K, S) - 1) * S + K; // Scaled W that behaves like original W + if (idx >= nW) { + return sW; + } + + const unsigned r = nW - idx; + if (r <= K - S) { + return sW - r; + } + + return K - S + (idx - (K - S)) % S; +} + +template unsigned scale_index_K_lt_S(const unsigned idx) { + #pragma HLS INLINE + + if (idx < S - K) { + return idx; + } + + constexpr unsigned nW = ((W - K) / S) * S + K; // Nearest W without unused pixels on the right + constexpr unsigned sW = (DIV_ROUNDUP(S, K) - 1) * S + K; // Scaled W that behaves like original W + if (idx >= nW) { + return sW; + } + + const unsigned r = nW - idx; + if (r <= S - K) { + return sW - r; + } + + return S - K + (idx - (S - K)) % S; +} + +template class scale_index_regular { + public: + static unsigned scale_index(const unsigned idx) { + #pragma HLS INLINE + + if (K >= S) { + return scale_index_K_gte_S(idx); + } else { + return scale_index_K_lt_S(idx); + } + } +}; + +template class scale_index_unscaled { + public: + static unsigned scale_index(const unsigned idx) { + #pragma HLS INLINE + return idx; + } +}; + +template +void mult_buffer(hls::stream data_window[CONFIG_T::kernel_size * CONFIG_T::n_chan], + res_T &res_pack, hls::stream &res_stream, unsigned &outputs_ready, + typename CONFIG_T::weight_t weights[CONFIG_T::kernel_size * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + #pragma HLS INLINE + + typename data_T::value_type data[CONFIG_T::kernel_size * CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable = data complete + typename res_T::value_type res[CONFIG_T::n_filt]; + #pragma HLS ARRAY_PARTITION variable = res complete + +InitData: + for (int id = 0; id < CONFIG_T::kernel_size * CONFIG_T::n_chan; id++) { + #pragma HLS UNROLL + data[id] = data_window[id].read(); + } + + #pragma HLS INLINE recursive + if (CONFIG_T::strategy == nnet::latency) { + dense_latency( + data, res, weights, biases); + } else { + dense_resource( + data, res, weights, biases); + } + +CastLoop: + for (unsigned jj = 0; jj < CONFIG_T::n_filt; jj++) { + #pragma HLS UNROLL + if (res_T::size / CONFIG_T::n_filt == 1) { + res_pack[jj] = res[jj]; + } else { + res_pack[outputs_ready * CONFIG_T::n_filt + jj] = res[jj]; + } + } + + if (res_T::size / CONFIG_T::n_filt == 1) { + res_stream.write(res_pack); + } else { + if (outputs_ready == (res_T::size / CONFIG_T::n_filt) - 1) { + res_stream.write(res_pack); + outputs_ready = 0; + } else { + outputs_ready++; + } + } +} + +template +void compute_output_encoded(const data_T &in_elem, + hls::stream data_window[CONFIG_T::kernel_size * CONFIG_T::n_chan], + hls::stream &res, res_T &res_pack, unsigned &outputs_ready, + typename CONFIG_T::weight_t weights[CONFIG_T::kernel_size * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt], ap_uint *pixel_idx) { + #pragma HLS INLINE + +MultLoop: + for (unsigned p = 0; p < data_T::size / CONFIG_T::n_chan; p++) { + #pragma HLS PIPELINE II = CONFIG_T::reuse_factor + CopyDataFilt: + for (unsigned f = 0; f < CONFIG_T::kernel_size; f++) { + #pragma HLS UNROLL + CopyDataChan: + for (unsigned c = 0; c < CONFIG_T::n_chan; c++) { + #pragma HLS UNROLL + if (pixel_idx[p][f]) + data_window[f * CONFIG_T::n_chan + c].write(in_elem[p * CONFIG_T::n_chan + c]); + } + } + if (pixel_idx[p][CONFIG_T::kernel_size - 1]) { + mult_buffer(data_window, res_pack, res, outputs_ready, weights, biases); + } + } +} + +// ************************************************* +// Line Buffer Implementation (Phil's) +// ************************************************* +template +void kernel_shift_1d(const data_T &in_elem, + typename data_T::value_type kernel_window[CONFIG_T::filt_width * CONFIG_T::n_chan]) { + #pragma HLS inline + + // Shift kernel_window by one step to the left (manual shift operation) + static const int filt_width = CONFIG_T::filt_width - 1; +KernelShiftWidth: + for (int i_iw = 0; i_iw < filt_width; i_iw++) { + #pragma HLS PIPELINE II = 1 + KernelShiftChannel: + for (unsigned i_ic = 0; i_ic < CONFIG_T::n_chan; i_ic++) { + #pragma HLS UNROLL + // Shift every element in kernel_window to the left + kernel_window[i_iw * CONFIG_T::n_chan + i_ic] = kernel_window[(i_iw + 1) * CONFIG_T::n_chan + i_ic]; + } + } + + // Insert shift_buffer column into right-most column of kernel + static const int lastheight = (CONFIG_T::filt_width - 1) * CONFIG_T::n_chan; +KernelPushChannel: + for (int i_ic = 0; i_ic < CONFIG_T::n_chan; i_ic++) { + #pragma HLS UNROLL + kernel_window[lastheight + i_ic] = in_elem[i_ic]; + } +} + +template +void kernel_shift_2d( + typename data_T::value_type shift_buffer[CONFIG_T::filt_height][CONFIG_T::n_chan], + typename data_T::value_type kernel_window[CONFIG_T::filt_width * CONFIG_T::filt_height * CONFIG_T::n_chan]) { + #pragma HLS inline + + // Shift kernel_window by one step to the left (manual shift operation) + static const int filt_width = CONFIG_T::filt_width - 1; +KernelShiftWidth: + for (int i_iw = 0; i_iw < filt_width; i_iw++) { + #pragma HLS PIPELINE II = 1 + KernelShiftHeight: + for (unsigned i_ih = 0; i_ih < CONFIG_T::filt_height; i_ih++) { + KernelShiftChannel: + for (unsigned i_ic = 0; i_ic < CONFIG_T::n_chan; i_ic++) { + // Shift every element in kernel_window to the left + kernel_window[i_ih * CONFIG_T::filt_width * CONFIG_T::n_chan + i_iw * CONFIG_T::n_chan + i_ic] = + kernel_window[i_ih * CONFIG_T::filt_width * CONFIG_T::n_chan + (i_iw + 1) * CONFIG_T::n_chan + i_ic]; + } + } + } + + // Insert shift_buffer column into right-most column of kernel + static const int lastheight = (CONFIG_T::filt_width - 1) * CONFIG_T::n_chan; +KernelPushHeight: + for (int i_ih = 0; i_ih < CONFIG_T::filt_height; i_ih++) { + #pragma HLS UNROLL + KernelPushChannel: + for (int i_ic = 0; i_ic < CONFIG_T::n_chan; i_ic++) { + kernel_window[lastheight + i_ih * CONFIG_T::filt_width * CONFIG_T::n_chan + i_ic] = shift_buffer[i_ih][i_ic]; + } + } +} + +template +void shift_line_buffer( + const data_T &in_elem, + ap_shift_reg line_buffer[MAX(CONFIG_T::filt_height - 1, 1)] + [CONFIG_T::n_chan], + typename data_T::value_type kernel_window[CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan]) { + + #pragma HLS PIPELINE + + // Temporary buffer for popped (shifted) elements + typename data_T::value_type shift_buffer[CONFIG_T::filt_height][CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable = shift_buffer complete dim = 0 + +UpdateBuffer: + for (int i_ic = 0; i_ic < CONFIG_T::n_chan; i_ic++) { + #pragma HLS UNROLL + + // Insert pixel(s) at end of shift buffer + shift_buffer[CONFIG_T::filt_height - 1][i_ic] = in_elem[i_ic]; + } + +LineBufferDataIn: + for (int i_ic = 0; i_ic < CONFIG_T::n_chan; i_ic++) { + // Shift the shift buffer into the line buffer + LineBufferShift: + for (unsigned i_ih = 1; i_ih < CONFIG_T::filt_height; i_ih++) { + #pragma HLS UNROLL + typename data_T::value_type pop_elem = line_buffer[i_ih - 1][i_ic].shift( + shift_buffer[CONFIG_T::filt_height - i_ih][i_ic]); // Shift the line buffer, return the popped pixel + shift_buffer[CONFIG_T::filt_height - i_ih - 1][i_ic] = + pop_elem; // Popped element placed back into shift_buffer, one row up. + } + } + kernel_shift_2d(shift_buffer, kernel_window); +} + +template +void compute_output_buffer_2d( + const data_T &in_elem, + ap_shift_reg line_buffer[MAX(CONFIG_T::filt_height - 1, 1)] + [CONFIG_T::n_chan], + hls::stream &res_stream, + typename CONFIG_T::weight_t weights[CONFIG_T::kernel_size * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + #pragma HLS INLINE OFF + + // Thresholds + const static int lShiftX = CONFIG_T::filt_width - 1; + const static int lShiftY = CONFIG_T::filt_height - 1; + + // Counters + static int pX = 0; // Pixel X + static int pY = 0; // Pixel Y + + static int sX = 0; // Stride X + static int sY = 0; // Stride Y + + static typename data_T::value_type kernel_data[CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable = kernel_data complete + + typename res_T::value_type res_out[CONFIG_T::n_filt]; + #pragma HLS ARRAY_PARTITION variable = res_out complete dim = 0 + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + + // Add pixel to buffer + nnet::shift_line_buffer(in_elem, line_buffer, kernel_data); + + // Check to see if we have a full kernel + if ((sX - lShiftX) == 0 && (sY - lShiftY) == 0 && pY > lShiftY - 1 && pX > lShiftX - 1) { + + // Dense multiply + // #pragma HLS INLINE recursive + if (CONFIG_T::strategy == nnet::latency) { + dense_latency( + kernel_data, res_out, weights, biases); + } else { + dense_resource( + kernel_data, res_out, weights, biases); + } + + // Pack output + CastLoop: + for (unsigned i_ic = 0; i_ic < CONFIG_T::n_filt; i_ic++) { + #pragma HLS UNROLL + res_pack[i_ic] = res_out[i_ic]; + } + + // Write output to stream when output ready + res_stream.write(res_pack); + } + + // Counter Housekeeping + if (pX + 1 == CONFIG_T::in_width) // Includes padding, end of line (padded) + { + pX = 0; + sX = 0; + if (pY + 1 == CONFIG_T::in_height) { // Reached bottom of image + pY = 0; + sY = 0; + } else { + pY = pY + 1; + // Update stride (threshold) ? subtract stride : increment stride + sY = ((sY - lShiftY) == 0) ? sY - CONFIG_T::stride_height + 1 : sY + 1; + } + } else { + pX = pX + 1; + // Update stride (threshold) ? subtract stride : increment stride + sX = ((sX - lShiftX) == 0) ? sX - CONFIG_T::stride_width + 1 : sX + 1; + } +} + +// Conv 1D compute output +template +void compute_output_buffer_1d( + const data_T &in_elem, hls::stream &res_stream, + typename CONFIG_T::weight_t weights[CONFIG_T::kernel_size * CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + #pragma HLS INLINE + + // Thresholds + const static int lShiftX = CONFIG_T::filt_width - 1; + + // Counters + static int pX = 0; // pixel counter + static int sX = 0; // stride counter + + static typename data_T::value_type kernel_data[CONFIG_T::filt_width * CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable = kernel_data complete + + typename res_T::value_type res_out[CONFIG_T::n_filt]; + #pragma HLS ARRAY_PARTITION variable = res_out complete dim = 0 + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + + // Add pixel to buffer + nnet::kernel_shift_1d(in_elem, kernel_data); + + // Check to see if we have a full kernel + if ((sX - lShiftX) == 0 && pX > lShiftX - 1) { + + // Dense multiply + #pragma HLS INLINE recursive + if (CONFIG_T::strategy == nnet::latency) { + dense_latency( + kernel_data, res_out, weights, biases); + } else { + dense_resource( + kernel_data, res_out, weights, biases); + } + + // Pack output + CastLoop: + for (unsigned i_ic = 0; i_ic < CONFIG_T::n_filt; i_ic++) { + #pragma HLS UNROLL + res_pack[i_ic] = res_out[i_ic]; + } + + // Write output to stream when output ready + res_stream.write(res_pack); + } + + // Counter Housekeeping + if (pX + 1 == CONFIG_T::in_width) // Includes padding, end of line (padded) + { + pX = 0; + sX = 0; + } else { + pX = pX + 1; + // Update stride (threshold) ? subtract stride : increment stride + sX = ((sX - lShiftX) == 0) ? sX - CONFIG_T::stride_width + 1 : sX + 1; + } +} + +} // namespace nnet +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense.h new file mode 100644 index 00000000..c5155d84 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense.h @@ -0,0 +1,49 @@ +#ifndef NNET_DENSE_H_ +#define NNET_DENSE_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_dense_latency.h" +#include "nnet_dense_resource.h" +#include "nnet_helpers.h" +#include "nnet_mult.h" +#include + +namespace nnet { + +struct dense_config { + // Internal data type definitions + typedef float bias_t; + typedef float weight_t; + typedef float accum_t; + + // Layer Sizes + static const unsigned n_in = 10; + static const unsigned n_out = 10; + + // Resource reuse info + static const unsigned io_type = io_parallel; + static const unsigned strategy = latency; + static const unsigned reuse_factor = 1; + static const bool store_weights_in_bram = false; + static const unsigned n_zeros = 0; + // partitioning arrays cyclically to go with roll factors? + // Product function to use + template using product = nnet::product::mult; +}; + +template +void dense(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_out], + typename CONFIG_T::weight_t weights[CONFIG_T::n_in * CONFIG_T::n_out], + typename CONFIG_T::bias_t biases[CONFIG_T::n_out]) { + #pragma HLS inline + if (CONFIG_T::strategy == nnet::latency) { + dense_latency(data, res, weights, biases); + } else { + dense_resource(data, res, weights, biases); + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_compressed.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_compressed.h new file mode 100644 index 00000000..029b7480 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_compressed.h @@ -0,0 +1,90 @@ +#ifndef NNET_COMPRESSED_LAYER_H_ +#define NNET_COMPRESSED_LAYER_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_dense.h" +#include + +namespace nnet { + +template +void fill_mult(typename CONFIG_T::index_t index, typename CONFIG_T::accum_t mult[CONFIG_T::n_out], + typename CONFIG_T::accum_t weight) { + for (unsigned k = 0; k < CONFIG_T::n_out; k++) { + #pragma HLS UNROLL + if (k == index) + mult[k] += weight; + } +} + +template +void dense_compressed(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_out], + typename CONFIG_T::weight_t weights[CONFIG_T::n_nonzeros], + typename CONFIG_T::bias_t biases[CONFIG_T::n_out]) { + + const int multiplier_limit = DIV_ROUNDUP(CONFIG_T::n_nonzeros, CONFIG_T::reuse_factor); + + typename CONFIG_T::accum_t acc[CONFIG_T::n_out]; + #pragma HLS ARRAY_PARTITION variable=acc complete + #pragma HLS ARRAY_PARTITION variable=biases complete + #pragma HLS ARRAY_RESHAPE variable=weights block factor=multiplier_limit + +#ifdef __VITIS_HLS__ + #pragma HLS AGGREGATE variable=weights +#else + #pragma HLS data_pack variable=weights struct_level +#endif + +InitAccum: + for (unsigned i = 0; i < CONFIG_T::n_out; i++) { + #pragma HLS UNROLL + acc[i] = (typename CONFIG_T::accum_t)(biases[i]); + } + + // Do the compressed matrix-multiply + const int rufactor = CONFIG_T::reuse_factor; +ReuseLoop: + for (unsigned ir = 0; ir < rufactor; ir++) { + #pragma HLS PIPELINE II=1 rewind + + typename CONFIG_T::accum_t mult[CONFIG_T::n_out]; + #pragma HLS ARRAY_PARTITION variable=mult complete + + ResetMult: + for (int imult = 0; imult < CONFIG_T::n_out; imult++) { + #pragma HLS UNROLL + mult[imult] = 0; + } + + CompressedMultLoop: + for (unsigned im = 0; im < multiplier_limit; im++) { + #pragma HLS UNROLL + unsigned w = im * rufactor + ir; + auto row = weights[w].row_index; + auto col = weights[w].col_index; + auto weight_cache = weights[w].weight; + data_T data_cache = data[row]; + // mult[col] += weight_cache * data_cache; + typename CONFIG_T::accum_t prod = + CONFIG_T::template product::product(data_cache, weight_cache); + fill_mult(col, mult, prod); + } + + for (int im = 0; im < CONFIG_T::n_out; im++) { + acc[im] += mult[im]; + } + } + +// Cast to "res_t" type +ResultLoop: + for (unsigned i = 0; i < CONFIG_T::n_out; i++) { + #pragma HLS UNROLL + // res[i] = (res_T) (acc[i]); + res[i] = cast(acc[i]); + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_latency.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_latency.h new file mode 100644 index 00000000..02802c45 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_latency.h @@ -0,0 +1,72 @@ +#ifndef NNET_DENSE_LATENCY_H_ +#define NNET_DENSE_LATENCY_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_helpers.h" +#include "nnet_mult.h" +#include + +namespace nnet { + +template +void dense_latency(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_out], + typename CONFIG_T::weight_t weights[CONFIG_T::n_in * CONFIG_T::n_out], + typename CONFIG_T::bias_t biases[CONFIG_T::n_out]) { + data_T cache; + typename CONFIG_T::accum_t mult[CONFIG_T::n_in * CONFIG_T::n_out]; + typename CONFIG_T::accum_t acc[CONFIG_T::n_out]; + + // Use a function_instantiate in case it helps to explicitly optimize unchanging weights/biases + #pragma HLS function_instantiate variable=weights,biases + + // For parallel inputs: + // - completely partition arrays -- target fabric + // - if we have an unroll factor, limit number of multipliers + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + + // #pragma HLS ARRAY_PARTITION variable=weights complete // remove this line for now, it breaks compression sometimes + #pragma HLS ARRAY_PARTITION variable=biases complete + #pragma HLS ARRAY_PARTITION variable=mult complete + #pragma HLS ARRAY_PARTITION variable=acc complete + + #pragma HLS ALLOCATION operation instances=mul limit=CONFIG_T::multiplier_limit + +// Do the matrix-multiply +Product1: + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + cache = data[ii]; + Product2: + for (int jj = 0; jj < CONFIG_T::n_out; jj++) { + int index = ii * CONFIG_T::n_out + jj; + mult[index] = CONFIG_T::template product::product(cache, weights[index]); + } + } + +// Initialize accumulator with input biases +ResetAccum: + for (int iacc = 0; iacc < CONFIG_T::n_out; iacc++) { + acc[iacc] = (typename CONFIG_T::accum_t)biases[iacc]; + } + +// Accumulate multiplication result +Accum1: + for (int ii = 0; ii < CONFIG_T::n_in; ii++) { + Accum2: + for (int jj = 0; jj < CONFIG_T::n_out; jj++) { + int index = ii * CONFIG_T::n_out + jj; + acc[jj] += mult[index]; + } + } + +// Cast to "res_t" type +Result: + for (int ires = 0; ires < CONFIG_T::n_out; ires++) { + // res[ires] = (res_T) (acc[ires]); + res[ires] = cast(acc[ires]); + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_resource.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_resource.h new file mode 100644 index 00000000..88de9472 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_resource.h @@ -0,0 +1,263 @@ +#ifndef NNET_DENSE_RESOURCE_H_ +#define NNET_DENSE_RESOURCE_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_mult.h" +#include +#include + +namespace nnet { + +template +void dense_resource_rf_leq_nin(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_out], + typename CONFIG_T::weight_t weights[CONFIG_T::n_in * CONFIG_T::n_out], + typename CONFIG_T::bias_t biases[CONFIG_T::n_out]) { + + const int rufactor = CONFIG_T::reuse_factor; + const int multfactor = MIN(CONFIG_T::n_in, CONFIG_T::reuse_factor); + const int multiplier_limit = DIV_ROUNDUP(CONFIG_T::n_in * CONFIG_T::n_out, multfactor); + const int block_factor = DIV_ROUNDUP(CONFIG_T::n_in * CONFIG_T::n_out, CONFIG_T::reuse_factor); + const int multscale = multiplier_limit / CONFIG_T::n_out; + const int nin = CONFIG_T::n_in; + const int nout = CONFIG_T::n_out; + + assert((multiplier_limit % nout == 0 || rufactor >= nin) && "The current Reuse Factor is not allowed"); + assert((multiplier_limit == block_factor) && "This function is correct only for RF <= N_IN"); + + #pragma HLS function_instantiate variable=weights,biases + //#pragma HLS RESOURCE variable=weights core=RAM_2P_BRAM Commenting out the deisgnation HLS seems to choose correctly + #pragma HLS ARRAY_RESHAPE variable=weights block factor=block_factor + #pragma HLS ARRAY_PARTITION variable=biases complete + + typename CONFIG_T::accum_t acc[CONFIG_T::n_out]; + #pragma HLS ARRAY_PARTITION variable=acc complete + +InitAccum: + for (int iacc = 0; iacc < nout; iacc++) { + #pragma HLS UNROLL + acc[iacc] = (typename CONFIG_T::accum_t)biases[iacc]; + } + +ReuseLoop: + for (int ir = 0; ir < rufactor; ir++) { + #pragma HLS PIPELINE II=1 rewind + + int w_index = ir; + int in_index = ir; + int out_index = 0; + int acc_step = 0; + + MultLoop: + for (int im = 0; im < block_factor; im++) { + #pragma HLS UNROLL + + acc[out_index] += static_cast( + CONFIG_T::template product::product(data[in_index], weights[w_index])); + + // Increment w_index + w_index += rufactor; + // Increment in_index + in_index += rufactor; + if (in_index >= nin) { + in_index = ir; + } + // Increment out_index + if (acc_step + 1 >= multscale) { + acc_step = 0; + out_index++; + } else { + acc_step++; + } + } + } + +// Cast to "res_t" type +Result: + for (int ires = 0; ires < CONFIG_T::n_out; ires++) { + #pragma HLS UNROLL + res[ires] = cast(acc[ires]); + } +} + +template +void dense_resource_rf_gt_nin_rem0(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_out], + typename CONFIG_T::weight_t weights[CONFIG_T::n_in * CONFIG_T::n_out], + typename CONFIG_T::bias_t biases[CONFIG_T::n_out]) { + + const int rufactor = MIN(CONFIG_T::reuse_factor, CONFIG_T::n_in * CONFIG_T::n_out); + const int multfactor = MIN(CONFIG_T::n_in, CONFIG_T::reuse_factor); + const int multiplier_limit = DIV_ROUNDUP(CONFIG_T::n_in * CONFIG_T::n_out, multfactor); + const int block_factor = DIV_ROUNDUP(CONFIG_T::n_in * CONFIG_T::n_out, CONFIG_T::reuse_factor); + const int multscale = multiplier_limit / CONFIG_T::n_out; + const int nin = CONFIG_T::n_in; + const int nout = CONFIG_T::n_out; + + assert((multiplier_limit % nout == 0 || rufactor >= nin) && "The current Reuse Factor is not allowed"); + assert((rufactor > nin && rufactor % nin == 0) && "This function is correct only for RF > N_IN && RF % N_IN == 0"); + + #pragma HLS function_instantiate variable=weights,biases + //#pragma HLS RESOURCE variable=weights core=RAM_2P_BRAM Commenting out the deisgnation HLS seems to choose correctly + #pragma HLS ARRAY_RESHAPE variable=weights block factor=block_factor + #pragma HLS ARRAY_PARTITION variable=biases complete + + typename CONFIG_T::accum_t acc[CONFIG_T::n_out]; + #pragma HLS ARRAY_PARTITION variable=acc complete + +InitAccum: + for (int iacc = 0; iacc < nout; iacc++) { + #pragma HLS UNROLL + acc[iacc] = (typename CONFIG_T::accum_t)biases[iacc]; + } + + int w_index; + int in_index = 0; + int out_index; + int outstep = 0; + const int outscale = rufactor / nin; + + int outidx[rufactor]; +IndexLoop: + for (int ir = 0; ir < rufactor; ir++) { + outidx[ir] = outstep; + if ((ir + 1) % nin == 0) { + outstep++; + } + } + +ReuseLoop: + for (int ir = 0; ir < rufactor; ir++) { + #pragma HLS PIPELINE II=1 rewind + + w_index = ir; + out_index = outidx[ir] /*outstep*/; + + MultLoop: + for (int im = 0; im < block_factor; im++) { + #pragma HLS UNROLL + acc[out_index] += static_cast( + CONFIG_T::template product::product(data[in_index], weights[w_index])); + + w_index += rufactor; + if (w_index >= CONFIG_T::n_in * CONFIG_T::n_out) + break; // check out of bounds + out_index += outscale; + } + + in_index++; + if (in_index >= nin) { + in_index = 0; + // outstep++; // This causes a huge increase in scheduling and RTL generation times, hence the above workaround. + } + } + +// Cast to "res_t" type +Result: + for (int ires = 0; ires < CONFIG_T::n_out; ires++) { + #pragma HLS UNROLL + res[ires] = cast(acc[ires]); + } +} + +template +void dense_resource_rf_gt_nin(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_out], + typename CONFIG_T::weight_t weights[CONFIG_T::n_in * CONFIG_T::n_out], + typename CONFIG_T::bias_t biases[CONFIG_T::n_out]) { + + const int rufactor = CONFIG_T::reuse_factor; + const int multfactor = MIN(CONFIG_T::n_in, CONFIG_T::reuse_factor); + const int multiplier_limit = DIV_ROUNDUP(CONFIG_T::n_in * CONFIG_T::n_out, multfactor); + const int block_factor = DIV_ROUNDUP(CONFIG_T::n_in * CONFIG_T::n_out, CONFIG_T::reuse_factor); + const int multscale = multiplier_limit / CONFIG_T::n_out; + const int nin = CONFIG_T::n_in; + const int nout = CONFIG_T::n_out; + + assert((multiplier_limit % nout == 0 || rufactor >= nin) && "The current Reuse Factor is not allowed"); + assert((rufactor > nin) && "This function is correct only for RF > N_IN"); + + #pragma HLS function_instantiate variable=weights,biases + //#pragma HLS RESOURCE variable=weights core=RAM_2P_BRAM Commenting out the deisgnation HLS seems to choose correctly + #pragma HLS ARRAY_RESHAPE variable=weights block factor=block_factor + #pragma HLS ARRAY_PARTITION variable=biases complete + + typename CONFIG_T::accum_t acc[CONFIG_T::n_out]; + #pragma HLS ARRAY_PARTITION variable=acc complete + +InitAccum: + for (int iacc = 0; iacc < nout; iacc++) { + #pragma HLS UNROLL + acc[iacc] = (typename CONFIG_T::accum_t)biases[iacc]; + } + +ReuseLoop: + for (int ir = 0; ir < rufactor; ir++) { + #pragma HLS PIPELINE II=1 rewind + typename CONFIG_T::accum_t tmpmult[block_factor]; + #pragma HLS ARRAY_PARTITION variable=tmpmult complete + + MultLoop: + for (int im = 0; im < block_factor; im++) { + #pragma HLS UNROLL + int w_index = ir + rufactor * im; + int in_index = w_index % nin; + if (w_index >= CONFIG_T::n_in * CONFIG_T::n_out) + continue; // check out of bounds + tmpmult[im] = + CONFIG_T::template product::product(data[in_index], weights[w_index]); + } + + typename CONFIG_T::accum_t mult[multiplier_limit]; + #pragma HLS ARRAY_PARTITION variable=mult complete + + ResetMult: + for (int imult = 0; imult < multiplier_limit; imult++) { + #pragma HLS UNROLL + mult[imult] = 0; + } + + AccumLoop1: + for (int im = 0; im < block_factor; im++) { + #pragma HLS UNROLL + int w_index = ir + rufactor * im; + int out_index = w_index / multfactor; + if (out_index >= multiplier_limit) + continue; // check out of bounds + mult[out_index] += tmpmult[im]; + } + + AccumLoop2: + for (int im = 0; im < multiplier_limit; im++) { + #pragma HLS UNROLL + // int out_index = im/multscale; // This is the general case + // acc[out_index] += mult[im]; + acc[im] += mult[im]; // If RF > N_IN then multiplier_limit == n_out + } + } + +// Cast to "res_t" type +Result: + for (int ires = 0; ires < CONFIG_T::n_out; ires++) { + #pragma HLS UNROLL + res[ires] = cast(acc[ires]); + } +} + +template +void dense_resource(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_out], + typename CONFIG_T::weight_t weights[CONFIG_T::n_in * CONFIG_T::n_out], + typename CONFIG_T::bias_t biases[CONFIG_T::n_out]) { + + #pragma HLS INLINE recursive + + if (CONFIG_T::reuse_factor <= CONFIG_T::n_in) { + dense_resource_rf_leq_nin(data, res, weights, biases); + } else if (CONFIG_T::reuse_factor % CONFIG_T::n_in == 0) { + dense_resource_rf_gt_nin_rem0(data, res, weights, biases); + } else { + dense_resource_rf_gt_nin(data, res, weights, biases); + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_stream.h new file mode 100644 index 00000000..ad3a972e --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_dense_stream.h @@ -0,0 +1,68 @@ +#ifndef NNET_DENSE_STREAM_H_ +#define NNET_DENSE_STREAM_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_types.h" +#include +#include + +namespace nnet { + +template +void dense_wrapper(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_out], + typename CONFIG_T::weight_t weights[CONFIG_T::n_in * CONFIG_T::n_out], + typename CONFIG_T::bias_t biases[CONFIG_T::n_out]) { + #pragma HLS INLINE recursive + if (CONFIG_T::strategy == nnet::latency) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + dense_latency(data, res, weights, biases); + } else { + dense_resource(data, res, weights, biases); + } +} + +template +void dense(hls::stream &data_stream, hls::stream &res_stream, + typename CONFIG_T::weight_t weights[CONFIG_T::n_in * CONFIG_T::n_out], + typename CONFIG_T::bias_t biases[CONFIG_T::n_out]) { + typename data_T::value_type data[CONFIG_T::n_in]; + #pragma HLS ARRAY_PARTITION variable=data complete + + typename res_T::value_type res[CONFIG_T::n_out]; + #pragma HLS ARRAY_PARTITION variable=res complete + +DataPrepare: + for (int i_in = 0; i_in < CONFIG_T::n_in / data_T::size; i_in++) { + if (CONFIG_T::n_in / data_T::size > 1) { + #pragma HLS PIPELINE + } + data_T data_pack = data_stream.read(); + DataPack: + for (int i_pack = 0; i_pack < data_T::size; i_pack++) { + #pragma HLS UNROLL + data[i_in * data_T::size + i_pack] = data_pack[i_pack]; + } + } + + dense_wrapper(data, res, weights, biases); + +ResWrite: + for (unsigned i_out = 0; i_out < CONFIG_T::n_out / res_T::size; i_out++) { + if (CONFIG_T::n_out / res_T::size > 1) { + #pragma HLS PIPELINE + } + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + ResPack: + for (int i_pack = 0; i_pack < res_T::size; i_pack++) { + #pragma HLS UNROLL + res_pack[i_pack] = res[i_out * res_T::size + i_pack]; + } + res_stream.write(res_pack); + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_embed.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_embed.h new file mode 100644 index 00000000..dfc77afa --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_embed.h @@ -0,0 +1,45 @@ +#ifndef NNET_EMBED_H_ +#define NNET_EMBED_H_ + +#include "nnet_common.h" +#include "nnet_helpers.h" + +namespace nnet { + +struct embed_config { + // Internal data type definitions + typedef float embeddings_t; + + // Layer Sizes + static const unsigned n_in = 10; + static const unsigned n_out = 16; + static const unsigned vocab_size = 50; + + // Resource reuse info + static const unsigned io_type = io_parallel; + static const unsigned reuse_factor = 1; +}; + +template +void embedding(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in * CONFIG_T::n_out], + typename CONFIG_T::embeddings_t embeddings[CONFIG_T::vocab_size * CONFIG_T::n_out]) { + + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + // This can save a few cycles, but it will create a large multiplexer due to + // non-constant access pattern, so let's leave it out + //#pragma HLS ARRAY_PARTITION variable=embeddings complete + +InputSequence: + for (int j = 0; j < CONFIG_T::n_in; j++) { + #pragma HLS UNROLL + DenseEmbedding: + for (int i = 0; i < CONFIG_T::n_out; i++) { + #pragma HLS UNROLL + res[j * CONFIG_T::n_out + i] = embeddings[data[j] * CONFIG_T::n_out + i]; + } + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_embed_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_embed_stream.h new file mode 100644 index 00000000..79ae9bc1 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_embed_stream.h @@ -0,0 +1,33 @@ +#ifndef NNET_EMBED_STREAM_H_ +#define NNET_EMBED_STREAM_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_helpers.h" + +namespace nnet { + +template +void embedding(hls::stream &data, hls::stream &res, + typename CONFIG_T::embeddings_t embeddings[CONFIG_T::vocab_size * CONFIG_T::n_out]) { + data_T in_data = data.read(); + +InputSequence: + for (int j = 0; j < data_T::size; j++) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + + DenseEmbedding: + for (int i = 0; i < CONFIG_T::n_out; i++) { + #pragma HLS UNROLL + res_pack[i] = embeddings[in_data[j] * CONFIG_T::n_out + i]; + } + res.write(res_pack); + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_garnet.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_garnet.h new file mode 100644 index 00000000..1fcd5545 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_garnet.h @@ -0,0 +1,816 @@ +#ifndef NNET_GARNET_H_ +#define NNET_GARNET_H_ + +#include "hls_math.h" +#include "hls_stream.h" +#include "nnet_common.h" + +namespace nnet { +namespace garnet_utils { + +template +inline typename std::enable_if::value>::type +initialize_edge_weights_table(typename CONFIG_T::edge_weight_t edge_weights_table[]) { + typedef ap_uint index_t; + + unsigned const table_size = (1 << CONFIG_T::distance_width); + + index_t index; + typename CONFIG_T::distance_t distance; + + // edge_weight_t is ap_ufixed with 0 iwidth -> let index 0 be a saturated version of 1 + edge_weights_table[0] = ap_ufixed(1.); + + for (unsigned iw = 1; iw < table_size; ++iw) { + index = iw; + distance.range(CONFIG_T::distance_width - 1, 0) = index.range(CONFIG_T::distance_width - 1, 0); + edge_weights_table[iw] = hls::exp(-distance * distance); + } +} + +template +inline typename std::enable_if::value>::type +initialize_edge_weights_table(typename CONFIG_T::edge_weight_t edge_weights_table[]) { + unsigned const table_size = (1 << CONFIG_T::distance_width); + double const step = 64. / table_size; + + typename CONFIG_T::distance_t v = -32.; + for (unsigned iw = 0; iw < table_size; ++iw) { + edge_weights_table[iw] = std::exp(-v * v); + v += step; + } +} + +template +inline typename std::enable_if::value, typename CONFIG_T::edge_weight_t>::type +get_edge_weight(typename CONFIG_T::distance_t distance, typename CONFIG_T::edge_weight_t edge_weights_table[]) { + typedef ap_uint index_t; + + index_t index(distance.range(CONFIG_T::distance_width - 1, 0)); + + return edge_weights_table[index]; +} + +template +inline + typename std::enable_if::value, typename CONFIG_T::edge_weight_t>::type + get_edge_weight(typename CONFIG_T::distance_t distance, typename CONFIG_T::edge_weight_t edge_weights_table[]) { + unsigned const table_size = (1 << CONFIG_T::distance_width); + double const step = 64. / table_size; + + int index = (distance + 32.) / step; + if (index < 0) + index = 0; + else if (index >= table_size) + index = table_size - 1; + + return edge_weights_table[index]; +} + +template typename CONFIG_T::edge_weight_t compute_edge_weight(typename CONFIG_T::distance_t distance) { + if (CONFIG_T::is_stack) { + #pragma HLS INLINE OFF + } +#ifdef __SYNTHESIS__ + typename CONFIG_T::edge_weight_t edge_weights_table[1 << CONFIG_T::distance_width]; + // unsigned const reshape_factor = CONFIG_T::n_aggregators * CONFIG_T::n_in_features * (CONFIG_T::n_vertices / + // CONFIG_T::reuse_factor); + // #pragma HLS ARRAY_RESHAPE variable=edge_weights_table cyclic factor=reshape_factor dim=1 + bool initialized = false; +#else + static typename CONFIG_T::edge_weight_t edge_weights_table[1 << CONFIG_T::distance_width]; + static bool initialized = false; +#endif + if (not initialized) { + initialize_edge_weights_table(edge_weights_table); + initialized = true; + } + + return get_edge_weight(distance, edge_weights_table); +} + +template +inline typename std::enable_if::value, dividend_T>::type normalize_log2(dividend_T dividend, + exponent_T exponent) { + #pragma HLS INLINE + return dividend >> exponent; +} + +template +inline typename std::enable_if::value, dividend_T>::type normalize_log2(dividend_T dividend, + exponent_T exponent) { + #pragma HLS INLINE + return dividend / std::pow(2., exponent); +} + +template struct Means { + typedef E edge_weight_t; + + edge_weight_t edge_weight_mean[CONFIG_T::n_aggregators]; + typename CONFIG_T::aggr_t weighted_feature_mean[CONFIG_T::n_aggregators * CONFIG_T::n_in_features]; + + Means() { + #pragma HLS INLINE + #pragma HLS ARRAY_PARTITION variable=edge_weight_mean complete + #pragma HLS ARRAY_PARTITION variable=weighted_feature_mean complete + #pragma HLS UNROLL region + + Aggregators: + for (unsigned ia = 0; ia < CONFIG_T::n_aggregators; ++ia) { + edge_weight_mean[ia] = 0.; + + InFeatures: + for (unsigned ix = 0; ix < CONFIG_T::n_in_features; ++ix) { + unsigned const iax = ia * CONFIG_T::n_in_features + ix; + weighted_feature_mean[iax] = 0.; + } + } + } + + void set_weight(unsigned, edge_weight_t const &) { + #pragma HLS INLINE + } + + void add_means_normalized(Means const &local) { + #pragma HLS INLINE + // Always called within a pipelined region - no UNROLL needed + + unsigned const log2_unroll_factor = CONFIG_T::n_vertices_width - CONFIG_T::log2_reuse_factor; + + Aggregators: + for (unsigned ia = 0; ia < CONFIG_T::n_aggregators; ++ia) { + edge_weight_mean[ia] += normalize_log2(local.edge_weight_mean[ia], log2_unroll_factor); + + InFeatures: + for (unsigned ix = 0; ix < CONFIG_T::n_in_features; ++ix) { + unsigned const iax = ia * CONFIG_T::n_in_features + ix; + weighted_feature_mean[iax] += normalize_log2(local.weighted_feature_mean[iax], log2_unroll_factor); + } + } + } + + template + typename std::enable_if::type set_means_normalized(nvtx_T const nvtx, arrays_T const &accum) { + #pragma HLS INLINE + #pragma HLS UNROLL region + + // accum comes divided by unroll factor + typename T::norm_t nvtx_norm = (T::n_vertices / T::reuse_factor) / nvtx; + + Aggregators: + for (unsigned ia = 0; ia < T::n_aggregators; ++ia) { + edge_weight_mean[ia] = accum.edge_weight_mean[ia] * nvtx_norm; + + InFeatures: + for (unsigned ix = 0; ix < T::n_in_features; ++ix) { + unsigned const iax = ia * T::n_in_features + ix; + + weighted_feature_mean[iax] = accum.weighted_feature_mean[iax] * nvtx_norm; + } + } + } + + template + typename std::enable_if::type set_means_normalized(nvtx_T const nvtx, arrays_T const &accum) { + #pragma HLS INLINE + #pragma HLS UNROLL region + + Aggregators: + for (unsigned ia = 0; ia < T::n_aggregators; ++ia) { + + edge_weight_mean[ia] = normalize_log2(accum.edge_weight_mean[ia], T::log2_reuse_factor); + + InFeatures: + for (unsigned ix = 0; ix < T::n_in_features; ++ix) { + unsigned const iax = ia * T::n_in_features + ix; + + weighted_feature_mean[iax] = normalize_log2(accum.weighted_feature_mean[iax], T::log2_reuse_factor); + } + } + } +}; + +template struct WeightsAndMeans : public Means { + typedef E edge_weight_t; + + edge_weight_t edge_weights[CONFIG_T::n_vertices * CONFIG_T::n_aggregators]; + + WeightsAndMeans() : Means() { + #pragma HLS INLINE + unsigned const reshape_factor = CONFIG_T::n_aggregators * (CONFIG_T::n_vertices / CONFIG_T::reuse_factor); + #pragma HLS ARRAY_PARTITION variable=edge_weights cyclic factor=reshape_factor + } + + void set_weight(unsigned iva, edge_weight_t const &weight) { + #pragma HLS INLINE + edge_weights[iva] = weight; + } +}; + +template struct OutputBiasNormalizer; + +template +struct OutputBiasNormalizer::type> { + typedef typename CONFIG_T::output_transform_biases_t biases_t; + + biases_t const (&output_biases)[CONFIG_T::n_out_features]; + + OutputBiasNormalizer(nvtx_T const) : output_biases{CONFIG_T::output_transform_biases} { + #pragma HLS INLINE + } +}; + +template +struct OutputBiasNormalizer::type> { + typedef typename CONFIG_T::output_transform_biases_t biases_t; + + biases_t output_biases[CONFIG_T::n_out_features]; + + OutputBiasNormalizer(nvtx_T const nvtx) { + #pragma HLS ARRAY_PARTITION variable=output_biases complete + #pragma HLS UNROLL region + + // Cannot add a loop label here due to a Vivado HLS bug, apparently + for (unsigned io = 0; io < CONFIG_T::n_out_features; ++io) { + typename CONFIG_T::aggr_t bias = CONFIG_T::output_transform_biases[io]; + bias *= nvtx; + output_biases[io] = normalize_log2(bias, CONFIG_T::n_vertices_width); + } + } +}; + +template struct InputDataGetter { + typedef data_T data_t; + + data_T const *dataref; + + InputDataGetter(data_T const *d) : dataref{d} { + #pragma HLS INLINE + } + data_T const &get(unsigned iv, unsigned ix) const { + #pragma HLS INLINE + unsigned const ivx = iv * CONFIG_T::n_in_features + ix; + return dataref[ivx]; + } +}; + +template struct SingleVertexDataGetter { + typedef data_T data_t; + + data_T const (&dataref)[CONFIG_T::n_in_features]; + + SingleVertexDataGetter(data_T const (&d)[CONFIG_T::n_in_features]) : dataref{d} { + #pragma HLS INLINE + } + data_T const &get(unsigned, unsigned ix) const { + #pragma HLS INLINE + return dataref[ix]; + } +}; + +template struct OutputResSetter { + typedef res_T res_t; + + res_T *resref; + + OutputResSetter(res_T *r) : resref{r} { + #pragma HLS INLINE + } + void set(unsigned iv, unsigned io, res_T const &acc) { + #pragma HLS INLINE + unsigned const ivo = iv * CONFIG_T::n_out_features + io; + resref[ivo] = acc; + } +}; + +template struct SingleVertexResSetter { + typedef res_T res_t; + + res_T (&resref)[CONFIG_T::n_out_features]; + + SingleVertexResSetter(res_T (&r)[CONFIG_T::n_out_features]) : resref{r} { + #pragma HLS INLINE + } + void set(unsigned, unsigned io, res_T const &acc) { + #pragma HLS INLINE + resref[io] = acc; + } +}; + +template +inline void compute_weights_aggregates(data_getter_T const &data_getter, unsigned iv, arrays_local_T &arrays_local, + arrays_T &arrays) { + #pragma HLS INLINE + +Aggregators: + for (unsigned ia = 0; ia < CONFIG_T::n_aggregators; ++ia) { + typename CONFIG_T::distance_t distance = CONFIG_T::aggregator_distance_biases[ia]; + + InFeatures1: + for (unsigned ix = 0; ix < CONFIG_T::n_in_features; ++ix) { + unsigned const iax = ia * CONFIG_T::n_in_features + ix; + + typename CONFIG_T::distance_t incr = data_getter.get(iv, ix) * CONFIG_T::aggregator_distance_weights[iax]; + + distance += incr; + } + + typename CONFIG_T::edge_weight_t edge_weight = + garnet_utils::compute_edge_weight(distance); + + arrays_local.edge_weight_mean[ia] += edge_weight; + + InFeatures2: + for (unsigned ix = 0; ix < CONFIG_T::n_in_features; ++ix) { + unsigned const iax = ia * CONFIG_T::n_in_features + ix; + + typename data_getter_T::data_t incr = data_getter.get(iv, ix) * edge_weight; + + arrays_local.weighted_feature_mean[iax] += incr; + } + + unsigned const iva = iv * CONFIG_T::n_aggregators + ia; + arrays.set_weight(iva, edge_weight); + } +} + +template +inline typename CONFIG_T::aggr_t compute_output_base_core(arrays_T const &arrays, unsigned io, unsigned ia) { + #pragma HLS INLINE + #pragma HLS UNROLL region + + unsigned const ioa = io * CONFIG_T::n_aggregators + ia; + typename CONFIG_T::aggr_t aggr = arrays.edge_weight_mean[ia] * CONFIG_T::input_transform_biases[ioa]; + +InFeatures: + for (unsigned ix = 0; ix < CONFIG_T::n_in_features; ++ix) { + unsigned const ioax = ioa * CONFIG_T::n_in_features + ix; + unsigned const iax = ia * CONFIG_T::n_in_features + ix; + + aggr += arrays.weighted_feature_mean[iax] * CONFIG_T::input_transform_weights[ioax]; + } + + return aggr; +} + +template +inline void compute_output_base(arrays_T const &arrays, + typename CONFIG_T::aggr_t output_base[CONFIG_T::n_out_features * CONFIG_T::n_aggregators]) { + #pragma HLS INLINE + #pragma HLS UNROLL region + +OutFeatures: + for (unsigned io = 0; io < CONFIG_T::n_out_features; ++io) { + Aggregators: + for (unsigned ia = 0; ia < CONFIG_T::n_aggregators; ++ia) { + unsigned const ioa = io * CONFIG_T::n_aggregators + ia; + + output_base[ioa] = compute_output_base_core(arrays, io, ia); + } + } +} + +template +inline void +compute_vertex_output(arrays_T const &arrays, unsigned iv, + typename CONFIG_T::aggr_t const output_base[CONFIG_T::n_out_features * CONFIG_T::n_aggregators], + res_setter_T &res_setter) { + #pragma HLS INLINE + + typename arrays_T::edge_weight_t edge_weights[CONFIG_T::n_aggregators]; + #pragma HLS ARRAY_PARTITION variable=edge_weights complete + +Aggregators1: + for (unsigned ia = 0; ia < CONFIG_T::n_aggregators; ++ia) { + unsigned const iva = iv * CONFIG_T::n_aggregators + ia; + + edge_weights[ia] = arrays.edge_weights[iva]; + } + +OutFeatures: + for (unsigned io = 0; io < CONFIG_T::n_out_features; ++io) { + typename res_setter_T::res_t acc = CONFIG_T::output_transform_biases[io]; + + Aggregators2: + for (unsigned ia = 0; ia < CONFIG_T::n_aggregators; ++ia) { + unsigned const ioa = io * CONFIG_T::n_aggregators + ia; + + typename res_setter_T::res_t incr = edge_weights[ia] * output_base[ioa]; + acc += incr; + } + + res_setter.set(iv, io, acc); + } +} + +template +void aggregate(data_T const data[CONFIG_T::n_vertices * CONFIG_T::n_in_features], nvtx_T const nvtx, arrays_T &arrays) { + InputDataGetter data_getter(data); + + unsigned const unroll_factor = CONFIG_T::n_vertices >> CONFIG_T::log2_reuse_factor; + + Means means_accum; + +VerticesOuter: + for (unsigned ivv = 0; ivv < CONFIG_T::reuse_factor; ++ivv) { + #pragma HLS PIPELINE + + if (ivv * unroll_factor >= nvtx) + break; + + Means means_local; + + VerticesInner: + for (unsigned ir = 0; ir < unroll_factor; ++ir) { + unsigned iv = ivv * unroll_factor + ir; + + if (iv == nvtx) + break; + + compute_weights_aggregates(data_getter, iv, means_local, arrays); + } + + means_accum.add_means_normalized(means_local); + } + + arrays.set_means_normalized(nvtx, means_accum); +} + +template +void distribute(nvtx_T const nvtx, arrays_T const &arrays, res_T res[CONFIG_T::n_vertices * CONFIG_T::n_out_features]) { + OutputResSetter res_setter(res); + + typename CONFIG_T::aggr_t output_base[CONFIG_T::n_out_features * CONFIG_T::n_aggregators]; + #pragma HLS ARRAY_PARTITION variable=output_base complete + + compute_output_base(arrays, output_base); + + unsigned const unroll_factor = CONFIG_T::n_vertices >> CONFIG_T::log2_reuse_factor; + +VerticesOuter: + for (unsigned ivv = 0; ivv < CONFIG_T::reuse_factor; ++ivv) { + #pragma HLS PIPELINE + + if (ivv * unroll_factor >= nvtx) + break; + + VerticesInner: + for (unsigned ir = 0; ir < unroll_factor; ++ir) { + unsigned iv = ivv * unroll_factor + ir; + + if (iv == nvtx) + break; + + compute_vertex_output(arrays, iv, output_base, res_setter); + } + } +} + +template +void set_output(output_biases_T const &output_transform_biases, arrays_T const &arrays, + res_T res[CONFIG_T::n_out_features]) { + #pragma HLS PIPELINE + +OutFeatures: + for (unsigned io = 0; io < CONFIG_T::n_out_features; ++io) { + res_T acc = output_transform_biases.output_biases[io]; + + Aggregators: + for (unsigned ia = 0; ia < CONFIG_T::n_aggregators; ++ia) { + typename CONFIG_T::aggr_t aggr = compute_output_base_core(arrays, io, ia); + + acc += arrays.edge_weight_mean[ia] * aggr; + } + + res[io] = acc; + } +} + +template +void distribute_aggregate(nvtx_T const nvtx, prev_arrays_T const &prev_arrays, current_arrays_T ¤t_arrays) { + typedef typename prev_layer_t::output_t data_T; + + typename prev_layer_t::aggr_t prev_output_base[prev_layer_t::n_out_features * prev_layer_t::n_aggregators]; + #pragma HLS ARRAY_PARTITION variable=prev_output_base complete + + compute_output_base(prev_arrays, prev_output_base); + + unsigned const unroll_factor = current_layer_t::n_vertices >> current_layer_t::log2_reuse_factor; + + Means means_accum; + +VerticesOuter: + for (unsigned ivv = 0; ivv < current_layer_t::reuse_factor; ++ivv) { + #pragma HLS PIPELINE + + if (ivv * unroll_factor >= nvtx) + break; + + Means means_local; + + VerticesInner: + for (unsigned ir = 0; ir < unroll_factor; ++ir) { + unsigned iv = ivv * unroll_factor + ir; + + if (iv == nvtx) + break; + + data_T data[prev_layer_t::n_out_features]; + #pragma HLS ARRAY_PARTITION variable=data complete + + SingleVertexResSetter res_setter(data); + + compute_vertex_output(prev_arrays, iv, prev_output_base, res_setter); + + SingleVertexDataGetter data_getter(data); + + compute_weights_aggregates(data_getter, iv, means_local, current_arrays); + } + + means_accum.add_means_normalized(means_local); + } + + current_arrays.set_means_normalized(nvtx, means_accum); +} + +template +inline typename std::enable_if::value>::type +sublayer(nvtx_T const nvtx, prev_arrays_T const &prev_arrays, last_arrays_T &last_arrays) { + #pragma HLS INLINE + + distribute_aggregate(nvtx, prev_arrays, last_arrays); +} + +template +inline typename std::enable_if::value>::type +sublayer(nvtx_T const nvtx, prev_arrays_T const &prev_arrays, last_arrays_T &last_arrays) { + #pragma HLS INLINE + + WeightsAndMeans current_arrays; + + distribute_aggregate(nvtx, prev_arrays, current_arrays); + + sublayer(nvtx, current_arrays, last_arrays); +} +} // namespace garnet_utils + +struct garnet_config { + // Layer specs + static const unsigned n_vertices_width = 8; + static const unsigned n_vertices = (1 << n_vertices_width); + static const unsigned n_in_features = 4; + static const unsigned n_propagate = 4; + static const unsigned n_aggregators = 4; + static const unsigned n_out_features = 4; + static const unsigned distance_width = 12; + + // Internal data type definitions + typedef float input_transform_weights_t; + typedef float input_transform_biases_t; + typedef float output_transform_weights_t; + typedef float output_transform_biases_t; + typedef float aggregator_distance_weights_t; + typedef float aggregator_distance_biases_t; + + typedef float norm_t; + typedef float distance_t; + typedef float edge_weight_t; + typedef float edge_weight_aggr_t; + typedef float aggr_t; + typedef float output_t; + + /* static const input_transform_weights_t (&input_transform_weights)[n_out_features * n_aggregators * n_in_features]; */ + /* static const input_transform_biases_t (&input_transform_biases)[n_out_features * n_aggregators]; */ + /* static const aggregator_distance_weights_t (&aggregator_distance_weights)[n_aggregators * n_in_features]; */ + /* static const aggregator_distance_biases_t (&aggregator_distance_biases)[n_aggregators]; */ + /* static const output_transform_biases_t (&output_transform_biases)[n_out_features]; */ + + enum OutputCollapse { no_collapse, collapse_mean, collapse_max }; + + static const unsigned output_collapse = no_collapse; + + static const bool mean_by_nvert = false; + static const bool is_stack = false; + + // Optimization specs + static const unsigned reuse_factor = 64; + static const unsigned log2_reuse_factor = 6; +}; + +// vertices -> vertices +template +typename std::enable_if::type +garnet(data_T const data[CONFIG_T::n_vertices * CONFIG_T::n_in_features], nvtx_T const nvtx[1], + res_T res[CONFIG_T::n_vertices * CONFIG_T::n_out_features]) { + #pragma HLS DATAFLOW + + garnet_utils::WeightsAndMeans arrays; + + garnet_utils::aggregate(data, nvtx[0], arrays); + + garnet_utils::distribute(nvtx[0], arrays, res); +} + +// vertices -> out features +template +typename std::enable_if::type +garnet(data_T const data[CONFIG_T::n_vertices * CONFIG_T::n_in_features], nvtx_T const nvtx[1], + res_T res[CONFIG_T::n_out_features]) { + #pragma HLS DATAFLOW + + garnet_utils::Means arrays; + + garnet_utils::aggregate(data, nvtx[0], arrays); + + garnet_utils::OutputBiasNormalizer normalize_bias(nvtx[0]); + + garnet_utils::set_output(normalize_bias, arrays, res); +} + +// vertices -> vertices +template +typename std::enable_if::type +garnet_stack(data_T const data[CONFIG_T::n_vertices * CONFIG_T::n_in_features], nvtx_T const nvtx[1], + res_T res[CONFIG_T::n_vertices * CONFIG_T::n_out_features]) { + #pragma HLS DATAFLOW + + typedef typename CONFIG_T::template sublayer_t<0> first_layer_t; + unsigned const ilast = CONFIG_T::n_sublayers - 1; + typedef typename CONFIG_T::template sublayer_t last_layer_t; + + garnet_utils::WeightsAndMeans arrays_first; + garnet_utils::Means arrays_last; + + garnet_utils::aggregate(data, nvtx[0], arrays_first); + + garnet_utils::sublayer(nvtx[0], arrays_first, + arrays_last); + + garnet_utils::distribute(nvtx[0], arrays_last, res); +} + +// vertices -> out features +template +typename std::enable_if::type +garnet_stack(data_T const data[CONFIG_T::n_vertices * CONFIG_T::n_in_features], nvtx_T const nvtx[1], + res_T res[CONFIG_T::n_out_features]) { + #pragma HLS DATAFLOW + + typedef typename CONFIG_T::template sublayer_t<0> first_layer_t; + unsigned const ilast = CONFIG_T::n_sublayers - 1; + typedef typename CONFIG_T::template sublayer_t last_layer_t; + + garnet_utils::WeightsAndMeans arrays_first; + garnet_utils::Means arrays_last; + + garnet_utils::aggregate(data, nvtx[0], arrays_first); + + garnet_utils::sublayer(nvtx[0], arrays_first, + arrays_last); + + garnet_utils::OutputBiasNormalizer normalize_bias(nvtx[0]); + + garnet_utils::set_output(normalize_bias, arrays_last, res); +} + +/* Reference (dumb) implementation returning (Vertices, Features) */ +template +typename std::enable_if::type +garnet_ref(data_T const data[CONFIG_T::n_vertices * CONFIG_T::n_in_features], nvtx_T const nvtx[1], + res_T res[CONFIG_T::n_vertices * CONFIG_T::n_out_features]) { + typename CONFIG_T::edge_weight_t edge_weights[CONFIG_T::n_vertices * CONFIG_T::n_aggregators]; + typename CONFIG_T::aggr_t propagated_features[CONFIG_T::n_vertices * CONFIG_T::n_propagate]; + + for (unsigned iv = 0; iv < CONFIG_T::n_vertices; ++iv) { + if (iv == nvtx[0]) + break; + + for (unsigned ip = 0; ip < CONFIG_T::n_propagate; ++ip) { + unsigned const ivp = iv * CONFIG_T::n_propagate + ip; + + propagated_features[ivp] = CONFIG_T::input_transform_biases[ip]; + + for (unsigned ix = 0; ix < CONFIG_T::n_in_features; ++ix) { + unsigned const ivx = iv * CONFIG_T::n_in_features + ix; + unsigned const ipx = ip * CONFIG_T::n_in_features + ix; + + propagated_features[ivp] += data[ivx] * CONFIG_T::input_transform_weights[ipx]; + } + } + + for (unsigned ia = 0; ia < CONFIG_T::n_aggregators; ++ia) { + unsigned const iva = iv * CONFIG_T::n_aggregators + ia; + + typename CONFIG_T::aggr_t distance = CONFIG_T::aggregator_distance_biases[ia]; + + for (unsigned ix = 0; ix < CONFIG_T::n_in_features; ++ix) { + unsigned const ivx = iv * CONFIG_T::n_in_features + ix; + unsigned const iax = ia * CONFIG_T::n_in_features + ix; + + distance += data[ivx] * CONFIG_T::aggregator_distance_weights[iax]; + } + + edge_weights[iva] = garnet_utils::compute_edge_weight(distance); + } + } + + typename CONFIG_T::aggr_t aggregated_features[CONFIG_T::n_aggregators * CONFIG_T::n_propagate]; + + for (unsigned ia = 0; ia < CONFIG_T::n_aggregators; ++ia) { + for (unsigned ip = 0; ip < CONFIG_T::n_propagate; ++ip) { + unsigned const iap = ia * CONFIG_T::n_propagate + ip; + + aggregated_features[iap] = 0.; + + for (unsigned iv = 0; iv < CONFIG_T::n_vertices; ++iv) { + if (iv == nvtx[0]) + break; + + unsigned const iva = iv * CONFIG_T::n_aggregators + ia; + unsigned const ivp = iv * CONFIG_T::n_propagate + ip; + + aggregated_features[iap] += edge_weights[iva] * propagated_features[ivp]; + } + } + } + + for (unsigned ia = 0; ia < CONFIG_T::n_aggregators; ++ia) { + for (unsigned ip = 0; ip < CONFIG_T::n_propagate; ++ip) { + unsigned const iap = ia * CONFIG_T::n_propagate + ip; + + if (CONFIG_T::mean_by_nvert) + aggregated_features[iap] /= nvtx[0]; + else { + // Not using right shift in case aggr_t is float or double + aggregated_features[iap] /= CONFIG_T::n_vertices; + } + } + } + + for (unsigned iv = 0; iv < CONFIG_T::n_vertices; ++iv) { + if (iv == nvtx[0]) + break; + + for (unsigned io = 0; io < CONFIG_T::n_out_features; ++io) { + unsigned const ivo = iv * CONFIG_T::n_out_features + io; + + typename CONFIG_T::aggr_t acc = CONFIG_T::output_transform_biases[io]; + + for (unsigned ia = 0; ia < CONFIG_T::n_aggregators; ++ia) { + unsigned const iva = iv * CONFIG_T::n_aggregators + ia; + unsigned const ioa = io * CONFIG_T::n_aggregators + ia; + + typename CONFIG_T::aggr_t aggr = 0.; + + for (unsigned ip = 0; ip < CONFIG_T::n_propagate; ++ip) { + unsigned const iap = ia * CONFIG_T::n_propagate + ip; + unsigned const ioap = ioa * CONFIG_T::n_propagate + ip; + + aggr += CONFIG_T::output_transform_weights[ioap] * aggregated_features[iap]; + } + + acc += edge_weights[iva] * aggr; + } + + res[ivo] = acc; + } + } +} + +/* Reference (dumb) implementation returning (Features) - output averaged over vertices already */ +template +typename std::enable_if::type +garnet_ref(data_T const data[CONFIG_T::n_vertices * CONFIG_T::n_in_features], nvtx_T const nvtx[1], + res_T res[CONFIG_T::n_out_features]) { + typename CONFIG_T::aggr_t vertex_res[CONFIG_T::n_vertices * CONFIG_T::n_out_features]; + + garnet_ref(data, nvtx, vertex_res); + + for (unsigned io = 0; io < CONFIG_T::n_out_features; ++io) { + typename CONFIG_T::aggr_t acc = 0.; + + for (unsigned iv = 0; iv < CONFIG_T::n_vertices; ++iv) { + if (iv == nvtx[0]) + break; + + unsigned const ivo = iv * CONFIG_T::n_out_features + io; + + acc += vertex_res[ivo]; + } + + if (CONFIG_T::mean_by_nvert) + acc /= nvtx[0]; + else { + // Not using right shift in case aggr_t is float or double + acc /= CONFIG_T::n_vertices; + } + + res[io] = acc; + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_helpers.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_helpers.h new file mode 100644 index 00000000..b8c2a48d --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_helpers.h @@ -0,0 +1,382 @@ +#ifndef NNET_HELPERS_H +#define NNET_HELPERS_H + +#include "hls_stream.h" +#include +#include +#include +#include +#include +#include +#include +#include + +namespace nnet { + +#ifndef __SYNTHESIS__ + +#ifndef WEIGHTS_DIR +#define WEIGHTS_DIR "weights" +#endif + +template void load_weights_from_txt(T *w, const char *fname) { + + std::string full_path = std::string(WEIGHTS_DIR) + "/" + std::string(fname); + std::ifstream infile(full_path.c_str(), std::ios::binary); + + if (infile.fail()) { + std::cerr << "ERROR: file " << std::string(fname) << " does not exist" << std::endl; + exit(1); + } + + std::string line; + if (std::getline(infile, line)) { + std::istringstream iss(line); + std::string token; + + size_t i = 0; + while (std::getline(iss, token, ',')) { + std::istringstream(token) >> w[i]; + i++; + } + + if (SIZE != i) { + std::cerr << "ERROR: Expected " << SIZE << " values"; + std::cerr << " but read only " << i << " values" << std::endl; + } + } +} + +template void load_compressed_weights_from_txt(T *w, const char *fname) { + + std::string full_path = std::string(WEIGHTS_DIR) + "/" + std::string(fname); + std::ifstream infile(full_path.c_str(), std::ios::binary); + + if (infile.fail()) { + std::cerr << "ERROR: file " << std::string(fname) << " does not exist" << std::endl; + exit(1); + } + + std::string line; + if (std::getline(infile, line)) { + std::istringstream iss(line); + std::string token; + std::string extra_chars = "} "; + + size_t i = 0; + while (std::getline(iss, token, '{')) { + if (token.length() == 0) { + continue; + } + for (char c : extra_chars) { + token.erase(std::remove(token.begin(), token.end(), c), token.end()); + } + if (token.back() == ',') { + token.erase(token.end() - 1); + } + + std::replace(token.begin(), token.end(), ',', ' '); + std::istringstream structss(token); + + if (!(structss >> w[i].row_index >> w[i].col_index >> w[i].weight)) { + std::cerr << "ERROR: Unable to parse file " << std::string(fname); + exit(1); + } + i++; + } + + if (SIZE != i) { + std::cerr << "ERROR: Expected " << SIZE << " values"; + std::cerr << " but read only " << i << " values" << std::endl; + } + } +} + +template void load_exponent_weights_from_txt(T *w, const char *fname) { + + std::string full_path = std::string(WEIGHTS_DIR) + "/" + std::string(fname); + std::ifstream infile(full_path.c_str(), std::ios::binary); + + if (infile.fail()) { + std::cerr << "ERROR: file " << std::string(fname) << " does not exist" << std::endl; + exit(1); + } + + std::string line; + if (std::getline(infile, line)) { + std::istringstream iss(line); + std::string token; + std::string extra_chars = "} "; + + size_t i = 0; + while (std::getline(iss, token, '{')) { + if (token.length() == 0) { + continue; + } + for (char c : extra_chars) { + token.erase(std::remove(token.begin(), token.end(), c), token.end()); + } + if (token.back() == ',') { + token.erase(token.end() - 1); + } + + std::replace(token.begin(), token.end(), ',', ' '); + std::istringstream structss(token); + + if (!(structss >> w[i].sign >> w[i].weight)) { + std::cerr << "ERROR: Unable to parse file " << std::string(fname); + exit(1); + } + i++; + } + + if (SIZE != i) { + std::cerr << "ERROR: Expected " << SIZE << " values"; + std::cerr << " but read only " << i << " values" << std::endl; + } + } +} +template void convert_data(srcType *src, dstType *dst) { + for (size_t i = 0; i < SIZE; i++) { + dst[i] = dstType(src[i]); + } +} + +template void convert_data(srcType *src, hls::stream &dst) { + for (size_t i = 0; i < SIZE / dstType::size; i++) { + dstType ctype; + for (size_t j = 0; j < dstType::size; j++) { + ctype[j] = typename dstType::value_type(src[i * dstType::size + j]); + } + dst.write(ctype); + } +} + +template void convert_data(hls::stream &src, dstType *dst) { + for (size_t i = 0; i < SIZE / srcType::size; i++) { + srcType ctype = src.read(); + for (size_t j = 0; j < srcType::size; j++) { + dst[i * srcType::size + j] = dstType(ctype[j]); + } + } +} + +extern bool trace_enabled; +extern std::map *trace_outputs; +extern size_t trace_type_size; + +template void save_output_array(data_T *data, save_T *ptr, size_t layer_size) { + for (int i = 0; i < layer_size; i++) { + ptr[i] = save_T(data[i]); + } +} + +template void save_output_array(hls::stream &data, save_T *ptr, size_t layer_size) { + for (size_t i = 0; i < layer_size / data_T::size; i++) { + data_T ctype = data.read(); + for (size_t j = 0; j < data_T::size; j++) { + ptr[i * data_T::size + j] = save_T(ctype[j]); + } + data.write(ctype); + } +} + +// We don't want to include save_T in this function because it will be inserted into myproject.cpp +// so a workaround with element size is used +template void save_layer_output(data_T *data, const char *layer_name, size_t layer_size) { + if (!trace_enabled) + return; + + if (trace_outputs) { + if (trace_outputs->count(layer_name) > 0) { + if (trace_type_size == 4) { + save_output_array(data, (float *)(*trace_outputs)[layer_name], layer_size); + } else if (trace_type_size == 8) { + save_output_array(data, (double *)(*trace_outputs)[layer_name], layer_size); + } else { + std::cout << "Unknown trace type!" << std::endl; + } + } else { + std::cout << "Layer name: " << layer_name << " not found in debug storage!" << std::endl; + } + } else { + std::ostringstream filename; + filename << "./tb_data/" << layer_name << "_output.log"; // TODO if run as a shared lib, path should be ../tb_data + std::fstream out; + out.open(filename.str(), std::ios::app); + assert(out.is_open()); + for (int i = 0; i < layer_size; i++) { + out << float(data[i]) << " "; // We don't care about precision in text files + } + out << std::endl; + out.close(); + } +} + +template void save_layer_output(hls::stream &data, const char *layer_name, size_t layer_size) { + if (!trace_enabled) + return; + + if (trace_outputs) { + if (trace_outputs->count(layer_name) > 0) { + if (trace_type_size == 4) { + save_output_array(data, (float *)(*trace_outputs)[layer_name], layer_size); + } else if (trace_type_size == 8) { + save_output_array(data, (double *)(*trace_outputs)[layer_name], layer_size); + } else { + std::cout << "Unknown trace type!" << std::endl; + } + } else { + std::cout << "Layer name: " << layer_name << " not found in debug storage!" << std::endl; + } + } else { + std::ostringstream filename; + filename << "./tb_data/" << layer_name << "_output.log"; // TODO if run as a shared lib, path should be ../tb_data + std::fstream out; + out.open(filename.str(), std::ios::app); + assert(out.is_open()); + for (size_t i = 0; i < layer_size / data_T::size; i++) { + data_T ctype = data.read(); + for (size_t j = 0; j < data_T::size; j++) { + out << float(ctype[j]) << " "; // We don't care about precision in text files + } + data.write(ctype); + } + out << std::endl; + out.close(); + } +} + +#endif + +template void copy_data(std::vector src, dst_T dst[SIZE]) { + typename std::vector::const_iterator in_begin = src.cbegin() + OFFSET; + typename std::vector::const_iterator in_end = in_begin + SIZE; + std::copy(in_begin, in_end, dst); +} + +template +void copy_data(std::vector src, hls::stream &dst) { + typename std::vector::const_iterator in_begin = src.cbegin() + OFFSET; + typename std::vector::const_iterator in_end = in_begin + SIZE; + + size_t i_pack = 0; + dst_T dst_pack; + for (typename std::vector::const_iterator i = in_begin; i != in_end; ++i) { + dst_pack[i_pack++] = typename dst_T::value_type(*i); + if (i_pack == dst_T::size) { + i_pack = 0; + dst.write(dst_pack); + } + } +} + +template void copy_data_axi(std::vector src, dst_T dst[SIZE]) { + for (auto i = 0; i < SIZE; i++) + if (i == SIZE - 1) { + dst[i].data = src[i]; + dst[i].last = 1; + } else { + dst[i].data = src[i]; + dst[i].last = 0; + } +} + +template void print_result(res_T result[SIZE], std::ostream &out, bool keep = false) { + for (int i = 0; i < SIZE; i++) { + out << result[i] << " "; + } + out << std::endl; +} + +template void print_result(hls::stream &result, std::ostream &out, bool keep = false) { + for (int i = 0; i < SIZE / res_T::size; i++) { + res_T res_pack = result.read(); + for (int j = 0; j < res_T::size; j++) { + out << res_pack[j] << " "; + } + if (keep) + result.write(res_pack); + } + out << std::endl; +} + +template void fill_zero(data_T data[SIZE]) { std::fill_n(data, SIZE, 0.); } + +template void fill_zero(hls::stream &data) { + for (int i = 0; i < SIZE / data_T::size; i++) { + data_T data_pack; + for (int j = 0; j < data_T::size; j++) { + data_pack[j] = 0.; + } + data.write(data_pack); + } +} + +template int read_file_1D(const char *filename, dataType data[nrows]) { + FILE *fp; + fp = fopen(filename, "r"); + if (fp == 0) { + return -1; + } + // Read data from file + float newval; + for (int ii = 0; ii < nrows; ii++) { + if (fscanf(fp, "%f\n", &newval) != 0) { + data[ii] = newval; + } else { + return -2; + } + } + fclose(fp); + return 0; +} + +template +int read_file_2D(const char *filename, dataType data[nrows][ncols]) { + FILE *fp; + fp = fopen(filename, "r"); + if (fp == 0) { + return -1; + } + // Read data from file + float newval; + for (int ii = 0; ii < nrows; ii++) { + for (int jj = 0; jj < ncols; jj++) { + if (fscanf(fp, "%f\n", &newval) != 0) { + data[ii][jj] = newval; + } else { + return -2; + } + } + } + fclose(fp); + return 0; +} + +template void change_type(hls::stream &in, hls::stream &out) { + in_T datareg; + hls::stream input_trunc; + for (int ii = 0; ii < N_IN; ii++) { + out << (out_T)in.read(); + } +} + +template void hls_stream_debug(hls::stream &data, hls::stream &res) { + data_T datareg; + for (int ii = 0; ii < N_IN; ii++) { + datareg = data.read(); + std::cout << "[" << ii << "]: " << datareg << std::endl; + res << datareg; + } +} + +constexpr int ceillog2(int x) { return (x <= 2) ? 1 : 1 + ceillog2((x + 1) / 2); } + +constexpr int floorlog2(int x) { return (x < 2) ? 0 : 1 + floorlog2(x / 2); } + +constexpr int pow2(int x) { return x == 0 ? 1 : 2 * pow2(x - 1); } + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_image.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_image.h new file mode 100644 index 00000000..eeb45481 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_image.h @@ -0,0 +1,41 @@ +#ifndef NNET_IMAGE_H_ +#define NNET_IMAGE_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include + +namespace nnet { + +struct resize_config { + static const unsigned height = 10; + static const unsigned width = 10; + static const unsigned n_chan = 10; + static const unsigned new_height = 10; + static const unsigned new_width = 10; +}; + +template +void resize_nearest(data_T image[CONFIG_T::height * CONFIG_T::width * CONFIG_T::n_chan], + data_T resized[CONFIG_T::new_height * CONFIG_T::new_width * CONFIG_T::n_chan]) { + int y_ratio = (int)((CONFIG_T::height << 16) / CONFIG_T::new_height) + 1; + int x_ratio = (int)((CONFIG_T::width << 16) / CONFIG_T::new_width) + 1; + int x2, y2; + + #pragma HLS PIPELINE + + for (int i = 0; i < CONFIG_T::new_height; i++) { + for (int j = 0; j < CONFIG_T::new_width; j++) { + x2 = ((j * x_ratio) >> 16); + y2 = ((i * y_ratio) >> 16); + for (int k = 0; k < CONFIG_T::n_chan; k++) { + resized[(i * CONFIG_T::new_width * CONFIG_T::n_chan) + j * CONFIG_T::n_chan + k] = + image[(y2 * CONFIG_T::width * CONFIG_T::n_chan) + x2 * CONFIG_T::n_chan + k]; + } + } + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_image_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_image_stream.h new file mode 100644 index 00000000..a23a93db --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_image_stream.h @@ -0,0 +1,66 @@ +#ifndef NNET_IMAGE_STREAM_H_ +#define NNET_IMAGE_STREAM_H_ + +#include "hls_stream.h" +#include "nnet_common.h" + +namespace nnet { + +template void resize_nearest(hls::stream &image, hls::stream &resized) { + assert(CONFIG_T::new_height % CONFIG_T::height == 0); + assert(CONFIG_T::new_width % CONFIG_T::width == 0); + constexpr unsigned ratio_height = CONFIG_T::new_height / CONFIG_T::height; + constexpr unsigned ratio_width = CONFIG_T::new_width / CONFIG_T::width; + +ImageHeight: + for (unsigned h = 0; h < CONFIG_T::height; h++) { + #pragma HLS PIPELINE + + data_T data_in_row[CONFIG_T::width]; + + ImageWidth: + for (unsigned i = 0; i < CONFIG_T::width; i++) { + #pragma HLS UNROLL + + data_T in_data = image.read(); + + ImageChan: + for (unsigned j = 0; j < CONFIG_T::n_chan; j++) { + #pragma HLS UNROLL + + data_in_row[i][j] = in_data[j]; + } + } + + ResizeHeight: + for (unsigned i = 0; i < ratio_height; i++) { + #pragma HLS UNROLL + + ImageWidth2: + for (unsigned l = 0; l < CONFIG_T::width; l++) { + #pragma HLS UNROLL + + ResizeWidth: + for (unsigned j = 0; j < ratio_width; j++) { + #pragma HLS UNROLL + + data_T out_data; + PRAGMA_DATA_PACK(out_data) + + ResizeChan: + for (unsigned k = 0; k < CONFIG_T::n_chan; k++) { + #pragma HLS UNROLL + + out_data[k] = data_in_row[l][k]; + } + + resized.write(out_data); + } + } + } + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_math.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_math.h new file mode 100644 index 00000000..c021d8eb --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_math.h @@ -0,0 +1,178 @@ +#ifndef NNET_MATH_H_ +#define NNET_MATH_H_ + +#include "hls_math.h" + +namespace nnet { + +// This header defines the functions that return type different from the input +// For example, hls::sin(x) returns ap_fixed +// By ensuring we return the same type we can avoid casting issues in expressions + +template T sin(T x) { return (T)hls::sin(x); }; + +template T cos(T x) { return (T)hls::cos(x); }; + +template T asin(T x) { return (T)hls::asin(x); }; + +template T acos(T x) { return (T)hls::acos(x); }; + +template T atan(T x) { return (T)hls::atan(x); }; + +template T atan2(T x, T y) { return (T)hls::atan2(x, y); }; + +template void init_sincos_table(T table[1 << (W - I - 3)][2]) { + unsigned int NTE = 1 << (W - I - 3); // No of table entries + double step = M_PI / (4 * NTE); // Interval between angles + double y = 0; + // double scaled_angle = 0; + + for (unsigned int i = 0; i < NTE; i++) { + table[i][0] = std::cos(y); + table[i][1] = std::sin(y); + y += step; + // scaled_angle = y/(2*M_PI); + // printf("cos(%f) = %23.22f, sin(%f) = %23.22f index = %d, scaled angle = %13.12f \n", y, cos(y), y, sin(y), i, + // scaled_angle); + } +} + +template void sincos_lut(const T &input, T output[2]) { + + #pragma HLS INLINE + + // This implementation is based on ac_sincos_lut.h from AC math library + + static bool flag = true; + if (flag && T::width - T::iwidth > 12) { +#if !defined(__SYNTHESIS__) && defined(SINCOS_LUT_DEBUG) + std::cout << "FILE : " << __FILE__ << ", LINE : " << __LINE__ << std::endl; + std::cout << "Warning: The output of sincos_lut will not be accurate" << std::endl; +#endif + flag = false; + } + // Datatype for lookup table entries + typedef ap_ufixed luttype; + // Datatype for posinput which is used to handle negative inputs + typedef ap_ufixed posinputtype; + + typedef ap_uint<9> lutindextype; // 9 bits required for indexing into 512 entry table + typedef ap_uint<3> octanttype; // 3 bits required for octant value range of 0 thru 7 + T outputtemp[2]; + lutindextype luTdex = 0; + posinputtype posinput = input; + + // Initialize the lookup table +#ifdef __SYNTHESIS__ + bool initialized = false; + luttype sincos[512][2]; +#else + static bool initialized = false; + static luttype sincos[512][2]; +#endif + if (!initialized) { + init_sincos_table(sincos); + initialized = true; + } + + // Leaving this commented out makes the table to to BRAM + //#pragma HLS ARRAY_PARTITION variable=sincos complete dim=0 + + typedef ap_uint lutindextype1; + // Extracting (MSB-3:LSB) bits of scaled input to determine the lookup table index + lutindextype1 luTdex1 = posinput.range(AP_MAX(T::width - T::iwidth - 3, 1), 0); // Extracting the lookup table index + + if (T::width - T::iwidth >= 4 && T::width - T::iwidth <= 12) { + luTdex(8, 12 - (T::width - T::iwidth)) = luTdex1; // stride + } + // Approximation for the scaled inputs whose number of bits are greater than 12 + else if (T::width - T::iwidth > 12) { + // Lookup table index for the scaled inputs whose number of bits are greater than 12 + luTdex = luTdex1 / (1 << (AP_MAX(T::width - T::iwidth - 12, 0))); + if ((luTdex1 % (1 << (AP_MAX(T::width - T::iwidth - 12, 0)))) > (1 << (AP_MAX(T::width - T::iwidth - 13, 0)))) { + luTdex = luTdex + 1; + } + typedef ap_ufixed + datatype; + datatype x = (datatype)luTdex1; + x = x >> AP_MAX(T::width - T::iwidth - 12, 0); + if (x > 511.5) { + luTdex = 511; + } + if (luTdex1 <= 1 << (AP_MAX(T::width - T::iwidth - 13, 0)) && luTdex1 != 0) { + luTdex = 1; + } + } + + if (T::width - T::iwidth >= 3) { + // Getting the octant 0-7 by extracting the first 3 bits from MSB side of scaled input where + // octant 0 corresponds to [0-PI/4), + // octant 1 corresponds to [PI/4-2PI/4), + // octant 2 corresponds to [2PI/4-3PI/4) and so on + // octanttype octant = posinput.template slc<3>(T::width-T::iwidth-3); + octanttype octant = posinput(T::width - T::iwidth - 1, T::width - T::iwidth - 3); + luTdex = (octant[0] == 1) ? (lutindextype)(512 - luTdex) : (lutindextype)(luTdex); + // imaginary part is sine + outputtemp[1] = ((octant == 0) | (octant == 3)) ? (T)sincos[luTdex][1] + : ((octant == 2) | (octant == 1)) ? (T)sincos[luTdex][0] + : ((octant == 7) | (octant == 4)) ? (T)-sincos[luTdex][1] + : (T)-sincos[luTdex][0]; + // real part is cosine + outputtemp[0] = ((octant == 6) | (octant == 1)) ? (T)sincos[luTdex][1] + : ((octant == 3) | (octant == 4)) ? (T)-sincos[luTdex][0] + : ((octant == 2) | (octant == 5)) ? (T)-sincos[luTdex][1] + : (T)sincos[luTdex][0]; + // Below two are the cases when the output corresponds to + or - (0 or 1) for which there is no entry in the lookup + // table + output[1] = ((posinput == 0.125) | (posinput == 0.375)) ? T(0.7071067811865475244008) + : ((posinput == 0.625) | (posinput == 0.875)) ? T(-0.7071067811865475244008) + : outputtemp[1]; + output[0] = ((posinput == 0.125) | (posinput == 0.875)) ? T(0.7071067811865475244008) + : ((posinput == 0.375) | (posinput == 0.625)) ? T(-0.7071067811865475244008) + : outputtemp[0]; + } + + if (T::width - T::iwidth <= 2) { + output[1] = (posinput == 0) ? (T)0 + : (posinput == 0.25) ? (T)1 + : (posinput == 0.5) ? (T)0 + : (posinput == 0.75) ? (T)-1 + : outputtemp[1]; + output[0] = (posinput == 0) ? (T)1 + : (posinput == 0.25) ? (T)0 + : (posinput == 0.5) ? (T)-1 + : (posinput == 0.75) ? (T)0 + : outputtemp[0]; + } + +#if !defined(__SYNTHESIS__) && defined(SINCOS_LUT_DEBUG) + std::cout << "FILE : " << __FILE__ << ", LINE : " << __LINE__ << std::endl; + std::cout << "============AP_FIXED SINCOS======================" << std::endl; + std::cout << "positive input is = " << posinput << std::endl; + std::cout << "lut index is = " << luTdex << std::endl; + std::cout << "sin value is = " << output[1] << std::endl; + std::cout << "cos value is = " << output[0] << std::endl; + std::cout << "=================================================" << std::endl; +#endif +} + +template T sin_lut(const T input) { + #pragma HLS INLINE + T sincos_res[2]; + T scaled_input = input * ap_ufixed<16, 0>(0.15915494309); // 1/(2*pi) + sincos_lut(scaled_input, sincos_res); + return sincos_res[1]; +} + +template T cos_lut(const T input) { + #pragma HLS INLINE + T sincos_res[2]; + T scaled_input = input * ap_ufixed<16, 0>(0.15915494309); // 1/(2*pi) + sincos_lut(scaled_input, sincos_res); + return sincos_res[0]; +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_merge.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_merge.h new file mode 100644 index 00000000..083c3185 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_merge.h @@ -0,0 +1,257 @@ +#ifndef NNET_MERGE_H_ +#define NNET_MERGE_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_mult.h" +#include + +namespace nnet { + +struct merge_config { + static const unsigned n_elem = 10; +}; + +struct dot_config { + static const unsigned n_in = 10; + static const unsigned n_out = 1; + static const unsigned reuse_factor = 1; + typedef float accum_t; + // Product function to use + template using product = nnet::product::mult; +}; + +struct concat_config { + static const unsigned n_elem1_0 = 10; + static const unsigned n_elem1_1 = 10; + static const unsigned n_elem1_2 = 10; + static const unsigned n_elem2_0 = 10; + static const unsigned n_elem2_1 = 10; + static const unsigned n_elem2_2 = 10; + + static const unsigned axis = -1; +}; + +template +void add(input1_T data1[CONFIG_T::n_elem], input2_T data2[CONFIG_T::n_elem], res_T res[CONFIG_T::n_elem]) { + #pragma HLS PIPELINE + + for (int ii = 0; ii < CONFIG_T::n_elem; ii++) { + res[ii] = data1[ii] + data2[ii]; + } +} + +template +void subtract(input1_T data1[CONFIG_T::n_elem], input2_T data2[CONFIG_T::n_elem], res_T res[CONFIG_T::n_elem]) { + #pragma HLS PIPELINE + + for (int ii = 0; ii < CONFIG_T::n_elem; ii++) { + res[ii] = data1[ii] - data2[ii]; + } +} + +template +void multiply(input1_T data1[CONFIG_T::n_elem], input2_T data2[CONFIG_T::n_elem*2], res_T res[CONFIG_T::n_elem*2]) { + #pragma HLS PIPELINE + + for (int ii = 0; ii < CONFIG_T::n_elem; ii++) { + res[ii*2] = data1[ii] * data2[ii*2]; + res[ii*2+1] = data1[ii] * data2[ii*2+1]; + } +} + +template +void average(input1_T data1[CONFIG_T::n_elem], input2_T data2[CONFIG_T::n_elem], res_T res[CONFIG_T::n_elem]) { + #pragma HLS PIPELINE + + for (int ii = 0; ii < CONFIG_T::n_elem; ii++) { + res[ii] = (data1[ii] + data2[ii]) / (res_T)2; + } +} + +template +void maximum(input1_T data1[CONFIG_T::n_elem], input2_T data2[CONFIG_T::n_elem], res_T res[CONFIG_T::n_elem]) { + #pragma HLS PIPELINE + + for (int ii = 0; ii < CONFIG_T::n_elem; ii++) { + res[ii] = (data1[ii] > data2[ii]) ? data1[ii] : data2[ii]; + } +} + +template +void minimum(input1_T data1[CONFIG_T::n_elem], input2_T data2[CONFIG_T::n_elem], res_T res[CONFIG_T::n_elem]) { + #pragma HLS PIPELINE + + for (int ii = 0; ii < CONFIG_T::n_elem; ii++) { + res[ii] = (data1[ii] < data2[ii]) ? data1[ii] : data2[ii]; + } +} + +template +void dot1d(input1_T data1[CONFIG_T::n_in], input2_T data2[CONFIG_T::n_in], res_T res[CONFIG_T::n_out]) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + + #pragma HLS ALLOCATION operation instances=mul limit=CONFIG_T::multiplier_limit + + typename CONFIG_T::accum_t mult[CONFIG_T::n_in]; + #pragma HLS ARRAY_PARTITION variable=mult complete + typename CONFIG_T::accum_t acc = 0; + +Product: + for (int i_mult = 0; i_mult < CONFIG_T::n_in; i_mult++) { + #pragma HLS UNROLL + mult[i_mult] = CONFIG_T::template product::product(data1[i_mult], data2[i_mult]); + } + +Accum: + for (int i_acc = 0; i_acc < CONFIG_T::n_in; i_acc++) { + #pragma HLS UNROLL + acc += mult[i_acc]; + } + + res[0] = cast(acc); +} + +template +void concatenate1d(input1_T data1[CONFIG_T::n_elem1_0], input2_T data2[CONFIG_T::n_elem2_0], + res_T res[CONFIG_T::n_elem1_0 + CONFIG_T::n_elem2_0]) { + #pragma HLS PIPELINE + + for (int ii = 0; ii < CONFIG_T::n_elem1_0; ii++) { + res[ii] = data1[ii]; + } + for (int ii = 0; ii < CONFIG_T::n_elem2_0; ii++) { + res[CONFIG_T::n_elem1_0 + ii] = data2[ii]; + } +} + +template +void concatenate2d_0(input1_T data1[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1], + input2_T data2[CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1], + res_T res[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1 + CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1]) { + #pragma HLS PIPELINE + + for (int ii = 0; ii < CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1; ii++) { + res[ii] = data1[ii]; + } + for (int ii = 0; ii < CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1; ii++) { + res[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1 + ii] = data2[ii]; + } +} + +template +void concatenate2d_1(input1_T data1[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1], + input2_T data2[CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1], + res_T res[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1 + CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1]) { + #pragma HLS PIPELINE + + for (int ii = 0; ii < CONFIG_T::n_elem1_0; ii++) { + for (int jj = 0; jj < CONFIG_T::n_elem1_1; jj++) { + res[ii * (CONFIG_T::n_elem1_1 + CONFIG_T::n_elem2_1) + jj] = data1[ii * CONFIG_T::n_elem1_1 + jj]; + } + for (int jj = 0; jj < CONFIG_T::n_elem2_1; jj++) { + res[ii * (CONFIG_T::n_elem1_1 + CONFIG_T::n_elem2_1) + CONFIG_T::n_elem1_1 + jj] = + data2[ii * CONFIG_T::n_elem2_1 + jj]; + } + } +} + +template +void concatenate2d(input1_T data1[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1], + input2_T data2[CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1], + res_T res[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1 + CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1]) { + #pragma HLS INLINE + + if (CONFIG_T::axis == 2 || CONFIG_T::axis == -1) { + concatenate2d_1(data1, data2, res); + } else { + concatenate2d_0(data1, data2, res); + } +} + +template +void concatenate3d_0(input1_T data1[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1 * CONFIG_T::n_elem1_2], + input2_T data2[CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1 * CONFIG_T::n_elem2_2], + res_T res[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1 * CONFIG_T::n_elem1_2 + + CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1 * CONFIG_T::n_elem2_2]) { + #pragma HLS PIPELINE + + for (int ii = 0; ii < CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1 * CONFIG_T::n_elem1_2; ii++) { + res[ii] = data1[ii]; + } + for (int ii = 0; ii < CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1 * CONFIG_T::n_elem2_2; ii++) { + res[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1 * CONFIG_T::n_elem1_2 + ii] = data2[ii]; + } +} + +template +void concatenate3d_1(input1_T data1[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1 * CONFIG_T::n_elem1_2], + input2_T data2[CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1 * CONFIG_T::n_elem2_2], + res_T res[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1 * CONFIG_T::n_elem1_2 + + CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1 * CONFIG_T::n_elem2_2]) { + #pragma HLS PIPELINE + + for (int ii = 0; ii < CONFIG_T::n_elem1_0; ii++) { + for (int jj = 0; jj < CONFIG_T::n_elem1_1; jj++) { + for (int kk = 0; kk < CONFIG_T::n_elem1_2; kk++) { + int res_idx = + ii * (CONFIG_T::n_elem1_1 + CONFIG_T::n_elem2_1) * CONFIG_T::n_elem1_2 + jj * CONFIG_T::n_elem1_2 + kk; + int data_idx = ii * CONFIG_T::n_elem1_1 * CONFIG_T::n_elem1_2 + jj * CONFIG_T::n_elem1_2 + kk; + res[res_idx] = data1[data_idx]; + } + } + for (int jj = 0; jj < CONFIG_T::n_elem2_1; jj++) { + for (int kk = 0; kk < CONFIG_T::n_elem2_2; kk++) { + int res_idx = ii * (CONFIG_T::n_elem1_1 + CONFIG_T::n_elem2_1) * CONFIG_T::n_elem1_2 + + (jj + CONFIG_T::n_elem1_1) * CONFIG_T::n_elem1_2 + kk; + int data_idx = ii * CONFIG_T::n_elem2_1 * CONFIG_T::n_elem2_2 + jj * CONFIG_T::n_elem2_2 + kk; + res[res_idx] = data2[data_idx]; + } + } + } +} + +template +void concatenate3d_2(input1_T data1[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1 * CONFIG_T::n_elem1_2], + input2_T data2[CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1 * CONFIG_T::n_elem2_2], + res_T res[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1 * CONFIG_T::n_elem1_2 + + CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1 * CONFIG_T::n_elem2_2]) { + #pragma HLS PIPELINE + + for (int ii = 0; ii < CONFIG_T::n_elem1_0; ii++) { + for (int jj = 0; jj < CONFIG_T::n_elem1_1; jj++) { + for (int kk = 0; kk < CONFIG_T::n_elem1_2; kk++) { + int res_idx = ii * CONFIG_T::n_elem1_1 * (CONFIG_T::n_elem1_2 + CONFIG_T::n_elem2_2) + + jj * (CONFIG_T::n_elem1_2 + CONFIG_T::n_elem2_2) + kk; + int data_idx = ii * CONFIG_T::n_elem1_1 * CONFIG_T::n_elem1_2 + jj * CONFIG_T::n_elem1_2 + kk; + res[res_idx] = data1[data_idx]; + } + for (int kk = 0; kk < CONFIG_T::n_elem1_2; kk++) { + int res_idx = ii * CONFIG_T::n_elem1_1 * (CONFIG_T::n_elem1_2 + CONFIG_T::n_elem2_2) + + jj * (CONFIG_T::n_elem1_2 + CONFIG_T::n_elem2_2) + kk + CONFIG_T::n_elem1_2; + int data_idx = ii * CONFIG_T::n_elem2_1 * CONFIG_T::n_elem2_2 + jj * CONFIG_T::n_elem2_2 + kk; + res[res_idx] = data2[data_idx]; + } + } + } +} + +template +void concatenate3d(input1_T data1[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1 * CONFIG_T::n_elem1_2], + input2_T data2[CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1 * CONFIG_T::n_elem2_2], + res_T res[CONFIG_T::n_elem1_0 * CONFIG_T::n_elem1_1 * CONFIG_T::n_elem1_2 + + CONFIG_T::n_elem2_0 * CONFIG_T::n_elem2_1 * CONFIG_T::n_elem2_2]) { + #pragma HLS INLINE + + if (CONFIG_T::axis == 3 || CONFIG_T::axis == -1) { + concatenate3d_2(data1, data2, res); + } else if (CONFIG_T::axis == 2 || CONFIG_T::axis == -2) { + concatenate3d_1(data1, data2, res); + } else { + concatenate3d_0(data1, data2, res); + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_merge_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_merge_stream.h new file mode 100644 index 00000000..a57ec78e --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_merge_stream.h @@ -0,0 +1,370 @@ +#ifndef NNET_MERGE_STREAM_H_ +#define NNET_MERGE_STREAM_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include + +namespace nnet { + +template +void add(hls::stream &data1, hls::stream &data2, hls::stream &res) { + assert(input1_T::size == input2_T::size && input1_T::size == res_T::size); + +AddLoop: + for (int i = 0; i < CONFIG_T::n_elem / input1_T::size; i++) { + #pragma HLS PIPELINE + + input1_T in_data1 = data1.read(); + input2_T in_data2 = data2.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + AddPack: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + out_data[j] = in_data1[j] + in_data2[j]; + } + + res.write(out_data); + } +} + +template +void subtract(hls::stream &data1, hls::stream &data2, hls::stream &res) { + assert(input1_T::size == input2_T::size && input1_T::size == res_T::size); + +SubtractLoop: + for (int i = 0; i < CONFIG_T::n_elem / input1_T::size; i++) { + #pragma HLS PIPELINE + + input1_T in_data1 = data1.read(); + input2_T in_data2 = data2.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + SubtractPack: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + out_data[j] = in_data1[j] - in_data2[j]; + } + + res.write(out_data); + } +} + +template +void multiply(hls::stream &data1, hls::stream &data2, hls::stream &res) { + assert(input1_T::size == input2_T::size && input1_T::size == res_T::size); + +MultiplyLoop: + for (int i = 0; i < CONFIG_T::n_elem / input1_T::size; i++) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + + input1_T in_data1 = data1.read(); + input2_T in_data2 = data2.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + MultiplyPack: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + out_data[j] = in_data1[j] * in_data2[j]; + } + + res.write(out_data); + } +} + +template +void average(hls::stream &data1, hls::stream &data2, hls::stream &res) { + assert(input1_T::size == input2_T::size && input1_T::size == res_T::size); + +AverageLoop: + for (int i = 0; i < CONFIG_T::n_elem / input1_T::size; i++) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + + input1_T in_data1 = data1.read(); + input2_T in_data2 = data2.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + AveragePack: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + out_data[j] = (in_data1[j] + in_data2[j]) / (typename res_T::value_type)2; + } + + res.write(out_data); + } +} + +template +void maximum(hls::stream &data1, hls::stream &data2, hls::stream &res) { + assert(input1_T::size == input2_T::size && input1_T::size == res_T::size); + +MaximumLoop: + for (int i = 0; i < CONFIG_T::n_elem / input1_T::size; i++) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + + input1_T in_data1 = data1.read(); + input2_T in_data2 = data2.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + MaximumPack: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + out_data[j] = (in_data1[j] > in_data2[j]) ? in_data1[j] : in_data2[j]; + } + + res.write(out_data); + } +} + +template +void minimum(hls::stream &data1, hls::stream &data2, hls::stream &res) { + assert(input1_T::size == input2_T::size && input1_T::size == res_T::size); + +MinimumLoop: + for (int i = 0; i < CONFIG_T::n_elem / input1_T::size; i++) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + + input1_T in_data1 = data1.read(); + input2_T in_data2 = data2.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + MinimumPack: + for (int j = 0; j < res_T::size; j++) { + #pragma HLS UNROLL + out_data[j] = (in_data1[j] < in_data2[j]) ? in_data1[j] : in_data2[j]; + } + + res.write(out_data); + } +} + +template +void concatenate3d_0(hls::stream &data1, hls::stream &data2, hls::stream &res) { +ConcatLoopHeight1: + for (int i = 0; i < CONFIG_T::n_elem1_0; i++) { + ConcatLoopWidth1: + for (int j = 0; j < CONFIG_T::n_elem1_1; j++) { + #pragma HLS PIPELINE II=1 + + input1_T in_data1 = data1.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + ConcatPackInput1: + for (int k = 0; k < input1_T::size; k++) { + #pragma HLS UNROLL + out_data[k] = in_data1[k]; + } + + res.write(out_data); + } + } +ConcatLoopHeight2: + for (int i = 0; i < CONFIG_T::n_elem2_0; i++) { + ConcatLoopWidth2: + for (int j = 0; j < CONFIG_T::n_elem2_1; j++) { + #pragma HLS PIPELINE II=1 + + input2_T in_data2 = data2.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + ConcatPackInput2: + for (int k = 0; k < input2_T::size; k++) { + #pragma HLS UNROLL + out_data[k] = in_data2[k]; + } + + res.write(out_data); + } + } +} + +template +void concatenate3d_1(hls::stream &data1, hls::stream &data2, hls::stream &res) { +ConcatLoopHeight: + for (int i = 0; i < CONFIG_T::n_elem1_0; i++) { + ConcatLoopWidth1: + for (int j = 0; j < CONFIG_T::n_elem1_1; j++) { + #pragma HLS PIPELINE II=1 + + input1_T in_data1 = data1.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + ConcatPackInput1: + for (int k = 0; k < input1_T::size; k++) { + #pragma HLS UNROLL + out_data[k] = in_data1[k]; + } + + res.write(out_data); + } + ConcatLoopWidth2: + for (int j = 0; j < CONFIG_T::n_elem2_1; j++) { + #pragma HLS PIPELINE II=1 + + input2_T in_data2 = data2.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + ConcatPackInput2: + for (int k = 0; k < input2_T::size; k++) { + #pragma HLS UNROLL + out_data[k] = in_data2[k]; + } + + res.write(out_data); + } + } +} + +template +void concatenate3d_2(hls::stream &data1, hls::stream &data2, hls::stream &res) { +ConcatLoopHeight: + for (int i = 0; i < CONFIG_T::n_elem1_0; i++) { + ConcatLoopWidth: + for (int j = 0; j < CONFIG_T::n_elem1_1; j++) { + #pragma HLS PIPELINE II=1 + + input1_T in_data1 = data1.read(); + input2_T in_data2 = data2.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + ConcatPackInput1: + for (int k = 0; k < input1_T::size; k++) { + #pragma HLS UNROLL + out_data[k] = in_data1[k]; + } + + ConcatPackInput2: + for (int k = 0; k < input2_T::size; k++) { + #pragma HLS UNROLL + out_data[input1_T::size + k] = in_data2[k]; + } + + res.write(out_data); + } + } +} + +template +void concatenate3d(hls::stream &data1, hls::stream &data2, hls::stream &res) { + if (CONFIG_T::axis == 3 || CONFIG_T::axis == -1) { + concatenate3d_2(data1, data2, res); + } else if (CONFIG_T::axis == 2 || CONFIG_T::axis == -2) { + concatenate3d_1(data1, data2, res); + } else { + concatenate3d_0(data1, data2, res); + } +} + +template +void concatenate2d_0(hls::stream &data1, hls::stream &data2, hls::stream &res) { +ConcatLoopHeight1: + for (int i = 0; i < CONFIG_T::n_elem1_0; i++) { + #pragma HLS PIPELINE II=1 + + input1_T in_data1 = data1.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + ConcatPackInput1: + for (int k = 0; k < input1_T::size; k++) { + #pragma HLS UNROLL + out_data[k] = in_data1[k]; + } + + res.write(out_data); + } +ConcatLoopHeight2: + for (int i = 0; i < CONFIG_T::n_elem2_0; i++) { + #pragma HLS PIPELINE II=1 + + input2_T in_data2 = data2.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + ConcatPackInput2: + for (int k = 0; k < input2_T::size; k++) { + #pragma HLS UNROLL + out_data[k] = in_data2[k]; + } + + res.write(out_data); + } +} + +template +void concatenate2d_1(hls::stream &data1, hls::stream &data2, hls::stream &res) { +ConcatLoopHeight: + for (int i = 0; i < CONFIG_T::n_elem1_0; i++) { + #pragma HLS PIPELINE II=1 + + input1_T in_data1 = data1.read(); + input2_T in_data2 = data2.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + ConcatPackInput1: + for (int k = 0; k < input1_T::size; k++) { + #pragma HLS UNROLL + out_data[k] = in_data1[k]; + } + + ConcatPackInput2: + for (int k = 0; k < input2_T::size; k++) { + #pragma HLS UNROLL + out_data[input1_T::size + k] = in_data2[k]; + } + + res.write(out_data); + } +} + +template +void concatenate2d(hls::stream &data1, hls::stream &data2, hls::stream &res) { + if (CONFIG_T::axis == 2 || CONFIG_T::axis == -1) { + concatenate2d_1(data1, data2, res); + } else { + concatenate2d_0(data1, data2, res); + } +} + +template +void concatenate1d(hls::stream &data1, hls::stream &data2, hls::stream &res) { + res_T out_data; + PRAGMA_DATA_PACK(out_data) +ConcatLoop1: + for (int i = 0; i < CONFIG_T::n_elem1_0 / input1_T::size; i++) { + #pragma HLS PIPELINE + input1_T in_data1 = data1.read(); + ConcatPack1: + for (int j = 0; j < input1_T::size; j++) { + #pragma HLS UNROLL + out_data[j + (i * input1_T::size)] = in_data1[j]; + } + } +ConcatLoop2: + for (int i = 0; i < CONFIG_T::n_elem2_0 / input2_T::size; i++) { + #pragma HLS PIPELINE + input2_T in_data2 = data2.read(); + ConcatPack2: + for (int j = 0; j < input2_T::size; j++) { + #pragma HLS UNROLL + out_data[j + (i * input2_T::size) + (CONFIG_T::n_elem1_0)] = in_data2[j]; + } + } + res.write(out_data); +} +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_mult.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_mult.h new file mode 100644 index 00000000..00d1c6d1 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_mult.h @@ -0,0 +1,116 @@ +#ifndef NNET_MULT_H_ +#define NNET_MULT_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_helpers.h" +#include +#include + +namespace nnet { + +namespace product { + +/* --- + * different methods to perform the product of input and weight, depending on the + * types of each. + * --- */ + +class Product {}; + +template class both_binary : public Product { + public: + static x_T product(x_T a, w_T w) { + // specialisation for 1-bit weights and incoming data + #pragma HLS INLINE + return a == w; + } +}; + +template class weight_binary : public Product { + public: + static auto product(x_T a, w_T w) -> decltype(-a) { + // Specialisation for 1-bit weights, arbitrary data + #pragma HLS INLINE + if (w == 0) + return -a; + else + return a; + } +}; + +template class data_binary : public Product { + public: + static auto product(x_T a, w_T w) -> decltype(-w) { + // Specialisation for 1-bit data, arbitrary weight + #pragma HLS INLINE + if (a == 0) + return -w; + else + return w; + } +}; + +template class weight_ternary : public Product { + public: + static auto product(x_T a, w_T w) -> decltype(-a) { + // Specialisation for 2-bit weights, arbitrary data + #pragma HLS INLINE + if (w == 0) + return 0; + else if (w == -1) + return -a; + else + return a; // if(w == 1) + } +}; + +template class mult : public Product { + public: + static auto product(x_T a, w_T w) -> decltype(a * w) { + // 'Normal' product + #pragma HLS INLINE + return a * w; + } +}; + +template class weight_exponential : public Product { + public: + using r_T = ap_fixed<2 * (decltype(w_T::weight)::width + x_T::width), (decltype(w_T::weight)::width + x_T::width)>; + static r_T product(x_T a, w_T w) { + // Shift product for exponential weights + #pragma HLS INLINE + + // Shift by the exponent. Negative weights shift right + r_T y = static_cast(a) << w.weight; + + // Negate or not depending on weight sign + return w.sign == 1 ? y : static_cast(-y); + } +}; + +} // namespace product + +template +inline typename std::enable_if>::value && + std::is_same>::value, + ap_int>::type +cast(typename CONFIG_T::accum_t x) { + return (ap_int)(x - CONFIG_T::n_in / 2) * 2; +} + +template +inline typename std::enable_if< + std::is_same>::value && !std::is_same>::value, res_T>::type +cast(typename CONFIG_T::accum_t x) { + return (res_T)x; +} + +template +inline typename std::enable_if<(!std::is_same>::value), res_T>::type cast(typename CONFIG_T::accum_t x) { + return (res_T)x; +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_padding.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_padding.h new file mode 100644 index 00000000..e48a2fb4 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_padding.h @@ -0,0 +1,145 @@ +#ifndef NNET_PADDING_H_ +#define NNET_PADDING_H_ + +#include + +namespace nnet { + +struct padding1d_config { + static const unsigned n_chan = 10; + static const unsigned in_width = 10; + static const unsigned out_width = 10; + static const unsigned pad_left = 0; + static const unsigned pad_right = 0; +}; + +template +void zeropad1d_cf(data_T data[CONFIG_T::n_chan * CONFIG_T::in_width], data_T res[CONFIG_T::n_chan * CONFIG_T::out_width]) { + #pragma HLS PIPELINE + + for (int j = 0; j < CONFIG_T::n_chan; j++) { + for (int i = 0; i < CONFIG_T::pad_left; i++) { + *(res++) = 0; + } + + for (int i = 0; i < CONFIG_T::in_width; i++) { + *(res++) = (res_T) * (data++); + } + + for (int i = 0; i < CONFIG_T::pad_right; i++) { + *(res++) = 0; + } + } +} + +template +void zeropad1d_cl(data_T data[CONFIG_T::n_chan * CONFIG_T::in_width], res_T res[CONFIG_T::n_chan * CONFIG_T::out_width]) { + #pragma HLS PIPELINE + + for (int i = 0; i < CONFIG_T::pad_left; i++) { + for (int j = 0; j < CONFIG_T::n_chan; j++) { + *(res++) = 0; + } + } + + for (int i = 0; i < CONFIG_T::in_width; i++) { + for (int j = 0; j < CONFIG_T::n_chan; j++) { + *(res++) = (res_T) * (data++); + } + } + + for (int i = 0; i < CONFIG_T::pad_right; i++) { + for (int j = 0; j < CONFIG_T::n_chan; j++) { + *(res++) = 0; + } + } +} + +struct padding2d_config { + static const unsigned n_chan = 10; + static const unsigned in_height = 10; + static const unsigned in_width = 10; + static const unsigned out_height = 10; + static const unsigned out_width = 10; + static const unsigned pad_top = 0; + static const unsigned pad_bottom = 0; + static const unsigned pad_left = 0; + static const unsigned pad_right = 0; +}; + +template +void zeropad2d_cf(data_T data[CONFIG_T::n_chan * CONFIG_T::in_height * CONFIG_T::in_width], + data_T res[CONFIG_T::n_chan * CONFIG_T::out_height * CONFIG_T::out_width]) { + #pragma HLS PIPELINE + + for (int k = 0; k < CONFIG_T::n_chan; k++) { + + for (int i = 0; i < CONFIG_T::pad_top; i++) { + for (int j = 0; j < CONFIG_T::out_width; j++) { + *(res++) = 0; + } + } + + for (int i = 0; i < CONFIG_T::in_height; i++) { + for (int j = 0; j < CONFIG_T::pad_left; j++) { + *(res++) = 0; + } + for (int j = 0; j < CONFIG_T::in_width; j++) { + *(res++) = (res_T) * (data++); + } + for (int j = 0; j < CONFIG_T::pad_right; j++) { + *(res++) = 0; + } + } + + for (int i = 0; i < CONFIG_T::pad_bottom; i++) { + for (int j = 0; j < CONFIG_T::out_width; j++) { + *(res++) = 0; + } + } + } +} + +template +void zeropad2d_cl(data_T data[CONFIG_T::n_chan * CONFIG_T::in_height * CONFIG_T::in_width], + res_T res[CONFIG_T::n_chan * CONFIG_T::out_height * CONFIG_T::out_width]) { + #pragma HLS PIPELINE + + for (int i = 0; i < CONFIG_T::pad_top; i++) { + for (int j = 0; j < CONFIG_T::out_width; j++) { + for (int k = 0; k < CONFIG_T::n_chan; k++) { + *(res++) = 0; + } + } + } + + for (int i = 0; i < CONFIG_T::in_height; i++) { + for (int j = 0; j < CONFIG_T::pad_left; j++) { + for (int k = 0; k < CONFIG_T::n_chan; k++) { + *(res++) = 0; + } + } + for (int j = 0; j < CONFIG_T::in_width; j++) { + for (int k = 0; k < CONFIG_T::n_chan; k++) { + *(res++) = (res_T) * (data++); + } + } + for (int j = 0; j < CONFIG_T::pad_right; j++) { + for (int k = 0; k < CONFIG_T::n_chan; k++) { + *(res++) = 0; + } + } + } + + for (int i = 0; i < CONFIG_T::pad_bottom; i++) { + for (int j = 0; j < CONFIG_T::out_width; j++) { + for (int k = 0; k < CONFIG_T::n_chan; k++) { + *(res++) = 0; + } + } + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_padding_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_padding_stream.h new file mode 100644 index 00000000..9df5d540 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_padding_stream.h @@ -0,0 +1,85 @@ +#ifndef NNET_PADDING_STREAM_H_ +#define NNET_PADDING_STREAM_H_ + +#include + +namespace nnet { + +template void fill_zero(hls::stream &res) { + #pragma HLS INLINE + res_T res_part; + for (int c = 0; c < CONFIG_T::n_chan; c++) { + #pragma HLS UNROLL + res_part[c] = 0; + } + res.write(res_part); +} + +template void fill_data(hls::stream &data, hls::stream &res) { + #pragma HLS INLINE + data_T data_part = data.read(); + res_T res_part; + for (int c = 0; c < CONFIG_T::n_chan; c++) { + #pragma HLS UNROLL + res_part[c] = data_part[c]; + } + res.write(res_part); +} + +template +void zeropad1d_cl(hls::stream &data, hls::stream &res) { +PadLeft: + for (int i = 0; i < CONFIG_T::pad_left; i++) { + fill_zero(res); + } + +CopyMain: + for (int i = 0; i < CONFIG_T::in_width; i++) { + fill_data(data, res); + } + +PadRight: + for (int i = 0; i < CONFIG_T::pad_right; i++) { + fill_zero(res); + } +} + +template +void zeropad2d_cl(hls::stream &data, hls::stream &res) { + +PadTop: + for (int i = 0; i < CONFIG_T::pad_top; i++) { + PadTopWidth: + for (int j = 0; j < CONFIG_T::out_width; j++) { + fill_zero(res); + } + } + +PadMain: + for (int i = 0; i < CONFIG_T::in_height; i++) { + PadLeft: + for (int j = 0; j < CONFIG_T::pad_left; j++) { + fill_zero(res); + } + CopyMain: + for (int j = 0; j < CONFIG_T::in_width; j++) { + fill_data(data, res); + } + PadRight: + for (int j = 0; j < CONFIG_T::pad_right; j++) { + fill_zero(res); + } + } + +PadBottom: + for (int i = 0; i < CONFIG_T::pad_bottom; i++) { + PadBottomWidth: + for (int j = 0; j < CONFIG_T::out_width; j++) { + fill_zero(res); + } + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_pooling.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_pooling.h new file mode 100644 index 00000000..12ac8fe3 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_pooling.h @@ -0,0 +1,373 @@ +#ifndef NNET_POOLING_H_ +#define NNET_POOLING_H_ + +#include "nnet_helpers.h" +#include + +namespace nnet { + +// Return the maximum value from an array +template T max(T x[N]) { + T y = x[0]; + for (int i = 1; i < N; i++) { + y = x[i] > y ? x[i] : y; + } + return y; +} + +template ap_int avg(ap_int (&x)[N]) { + // Use a wider accumulator than the input to avoid overflow + ap_int tmp = 0; + for (int i = 0; i < N; i++) { + tmp += x[i]; + } + tmp /= N; + // Now cast back to original type + ap_int y = tmp; + return tmp; +} + +template ap_int avg(ap_uint (&x)[N]) { + // Use a wider accumulator than the input to avoid overflow + ap_uint tmp = 0; + for (int i = 0; i < N; i++) { + tmp += x[i]; + } + tmp /= N; + // Now cast back to original type + ap_uint y = tmp; + return tmp; +} + +template ap_fixed avg(ap_fixed (&x)[N]) { + // Use a wider accumulator than the input to avoid overflow + ap_fixed tmp = 0; + for (int i = 0; i < N; i++) { + tmp += x[i]; + } + tmp /= N; + // Now cast back to original type + ap_fixed y = tmp; + return y; +} + +template ap_ufixed avg(ap_ufixed (&x)[N]) { + // Use a wider accumulator than the input to avoid overflow + ap_ufixed tmp = 0; + for (int i = 0; i < N; i++) { + tmp += x[i]; + } + tmp /= N; + // Now cast back to original type + ap_ufixed y = tmp; + return y; +} + +// Return the mean value of an array +template T avg(T (&x)[N]) { + T y = 0; + for (int i = 0; i < N; i++) { + y += x[i]; + } + y /= N; + return y; +} + +// Enumeration for pooling operation (max, avg, l2norm pooling) +enum Pool_Op { Max, Average }; // L2Norm }; +template T pool_op(T (&x)[N]) { + switch (op) { + case Max: + return max(x); + case Average: + return avg(x); + // case L2Norm: return l2norm(x); + } +} + +template T pad_val() { + /*--- + *- In Tensorflow, pooling ignores the value in the padded cells + *- For Avg pooling, return 0 (the divisior is modified to the + *- area overlapping the unpadded image. + *- For max pooling, return the most negative value for the type. + *- TODO this is not really generic, it assumes fixed point or integer T + ---*/ + switch (op) { + case Max: { + T x = 0; + x[x.width - 1] = 1; + return x; + break; + } + case Average: + return 0; + } +} + +struct pooling1d_config { + // IO size + static const unsigned n_in = 10; + static const unsigned pool_width = 2; + static const unsigned stride_width = 2; + static const unsigned n_out = (n_in - pool_width) / stride_width + 1; + static const unsigned pad_left = 0; + static const unsigned pad_right = 0; + static const bool count_pad = false; + // Pooling function + static const Pool_Op pool_op = Max; +}; + +template constexpr int pool_op_limit_1d() { + return CONFIG_T::n_in * CONFIG_T::n_filt / CONFIG_T::reuse_factor; +} + +template +void pooling1d_cl(data_T data[CONFIG_T::n_in * CONFIG_T::n_filt], res_T res[CONFIG_T::n_out * CONFIG_T::n_filt]) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + + // TODO partition the arrays according to the reuse factor + const int limit = pool_op_limit_1d(); + #pragma HLS ALLOCATION function instances=CONFIG_T::pool_op limit=limit + // Add any necessary padding + unsigned padded_width = CONFIG_T::n_in + CONFIG_T::pad_left + CONFIG_T::pad_right; + if (CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0) { + padded_width -= padded_width - (padded_width / CONFIG_T::stride_width * CONFIG_T::stride_width); + } + + for (int ff = 0; ff < CONFIG_T::n_filt; ff++) { + // Loop over input image x in steps of stride + for (int ii = 0; ii < padded_width; ii += CONFIG_T::stride_width) { + data_T pool[CONFIG_T::pool_width]; + #pragma HLS ARRAY_PARTITION variable=pool complete dim=0 + // Keep track of number of pixels in image vs padding region + unsigned img_overlap = 0; + // Loop over pool window x + for (int jj = 0; jj < CONFIG_T::stride_width; jj++) { + if (ii + jj < CONFIG_T::pad_left || ii + jj >= (padded_width - CONFIG_T::pad_right)) { + // Add padding + pool[jj] = pad_val(); + if (CONFIG_T::count_pad) + img_overlap++; + } else { + pool[jj] = data[(ii + jj - CONFIG_T::pad_left) * CONFIG_T::n_filt + ff]; + img_overlap++; + } + } + // do the pooling + // TODO in the case of average pooling, need to reduce width to area of pool window + // not overlapping padding region + res[(ii / CONFIG_T::stride_width) * CONFIG_T::n_filt + ff] = + pool_op(pool); + // If the pool op is Average, the zero-padding needs to be removed from the results + if (CONFIG_T::pool_op == Average) { + data_T rescale = static_cast(CONFIG_T::pool_width) / img_overlap; + res[(ii / CONFIG_T::stride_width) * CONFIG_T::n_filt + ff] *= rescale; + } + } + } +} + +template +void global_pooling1d_cl(data_T data[CONFIG_T::n_in * CONFIG_T::n_filt], res_T res[CONFIG_T::n_filt]) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + + assert(CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + assert(CONFIG_T::pool_width == CONFIG_T::stride_width); + + // TODO partition the arrays according to the reuse factor + const int limit = pool_op_limit_1d(); + #pragma HLS ALLOCATION function instances=CONFIG_T::pool_op limit=limit + + for (int ff = 0; ff < CONFIG_T::n_filt; ff++) { + data_T pool[CONFIG_T::n_in]; + #pragma HLS ARRAY_PARTITION variable=pool complete dim=0 + for (int jj = 0; jj < CONFIG_T::n_in; jj++) { + pool[jj] = data[jj * CONFIG_T::n_filt + ff]; + } + // do the pooling + res[ff] = pool_op(pool); + } +} + +struct pooling2d_config { + // IO size + static const unsigned in_height = 10; + static const unsigned in_width = 10; + static const unsigned n_filt = 4; + static const unsigned stride_height = 2; + static const unsigned stride_width = 2; + static const unsigned pool_height = 2; + static const unsigned pool_width = 2; + static const unsigned out_height = (in_height - pool_height) / stride_height + 1; + static const unsigned out_width = (in_width - pool_width) / stride_width + 1; + // Padding + static const unsigned pad_top = 0; + static const unsigned pad_bottom = 0; + static const unsigned pad_left = 0; + static const unsigned pad_right = 0; + static const bool count_pad = false; + // Pooling function + static const Pool_Op pool_op = Max; + // Reuse factor + static const unsigned reuse_factor = 1; + + // Internal data type definitions + typedef float accum_t; +}; + +template constexpr int pool_op_limit() { + return (CONFIG_T::out_height * CONFIG_T::out_width) * CONFIG_T::n_filt / CONFIG_T::reuse_factor; +} + +template +void pooling2d_cl(data_T data[CONFIG_T::in_height * CONFIG_T::in_width * CONFIG_T::n_filt], + res_T res[CONFIG_T::out_height * CONFIG_T::out_width * CONFIG_T::n_filt]) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + + // TODO partition the arrays according to the reuse factor + const int limit = pool_op_limit(); + #pragma HLS ALLOCATION function instances=CONFIG_T::pool_op limit=limit + // Add any necessary padding + unsigned padded_height = CONFIG_T::in_height + CONFIG_T::pad_top + CONFIG_T::pad_bottom; + unsigned padded_width = CONFIG_T::in_width + CONFIG_T::pad_left + CONFIG_T::pad_right; + if (CONFIG_T::pad_top == 0 && CONFIG_T::pad_bottom == 0 && CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0) { + padded_height -= padded_height - (padded_height / CONFIG_T::stride_height * CONFIG_T::stride_height); + padded_width -= padded_width - (padded_width / CONFIG_T::stride_width * CONFIG_T::stride_width); + } + + for (int ff = 0; ff < CONFIG_T::n_filt; ff++) { + // Loop over input image y in steps of stride + for (int ii = 0; ii < padded_height; ii += CONFIG_T::stride_height) { + // Loop over input image x in steps of stride + for (int jj = 0; jj < padded_width; jj += CONFIG_T::stride_width) { + data_T pool[CONFIG_T::pool_height * CONFIG_T::pool_width]; + #pragma HLS ARRAY_PARTITION variable=pool complete dim=0 + // Keep track of number of pixels in image vs padding region + unsigned img_overlap = 0; + // Loop over pool window y + for (int kk = 0; kk < CONFIG_T::stride_height; kk++) { + // Loop over pool window x + for (int ll = 0; ll < CONFIG_T::stride_width; ll++) { + if (ii + kk < CONFIG_T::pad_top || ii + kk >= (padded_height - CONFIG_T::pad_bottom) || + jj + ll < CONFIG_T::pad_left || jj + ll >= (padded_width - CONFIG_T::pad_right)) { + // Add padding + pool[kk * CONFIG_T::stride_width + ll] = pad_val(); + if (CONFIG_T::count_pad) + img_overlap++; + } else { + pool[kk * CONFIG_T::stride_width + ll] = + data[(ii + kk - CONFIG_T::pad_top) * CONFIG_T::in_width * CONFIG_T::n_filt + + (jj + ll - CONFIG_T::pad_left) * CONFIG_T::n_filt + ff]; + img_overlap++; + } + } + } + // do the pooling + // TODO in the case of average pooling, need to reduce height * width to area of pool window + // not overlapping padding region + res[(ii / CONFIG_T::stride_height) * CONFIG_T::out_width * CONFIG_T::n_filt + + (jj / CONFIG_T::stride_width) * CONFIG_T::n_filt + ff] = + pool_op(pool); + // If the pool op is Average, the zero-padding needs to be removed from the results + if (CONFIG_T::pool_op == Average) { + data_T rescale = + static_cast(CONFIG_T::pool_height) * static_cast(CONFIG_T::pool_width) / img_overlap; + res[(ii / CONFIG_T::stride_height) * CONFIG_T::out_width * CONFIG_T::n_filt + + (jj / CONFIG_T::stride_width) * CONFIG_T::n_filt + ff] *= rescale; + } + } + } + } +} + +template +void pooling2d_cf(data_T data[CONFIG_T::in_height * CONFIG_T::in_width * CONFIG_T::n_filt], + res_T res[CONFIG_T::out_height * CONFIG_T::out_width * CONFIG_T::n_filt]) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + + // TODO partition the arrays according to the reuse factor + const int limit = pool_op_limit(); + #pragma HLS ALLOCATION function instances=CONFIG_T::pool_op limit=limit + // Add any necessary padding + unsigned padded_height = CONFIG_T::in_height + CONFIG_T::pad_top + CONFIG_T::pad_bottom; + unsigned padded_width = CONFIG_T::in_width + CONFIG_T::pad_left + CONFIG_T::pad_right; + if (CONFIG_T::pad_top == 0 && CONFIG_T::pad_bottom == 0 && CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0) { + padded_height -= padded_height - (padded_height / CONFIG_T::stride_height * CONFIG_T::stride_height); + padded_width -= padded_width - (padded_width / CONFIG_T::stride_width * CONFIG_T::stride_width); + } + + for (int ff = 0; ff < CONFIG_T::n_filt; ff++) { + // Loop over input image y in steps of stride + for (int ii = 0; ii < padded_height; ii += CONFIG_T::stride_height) { + // Loop over input image x in steps of stride + for (int jj = 0; jj < padded_width; jj += CONFIG_T::stride_width) { + data_T pool[CONFIG_T::pool_height * CONFIG_T::pool_width]; + #pragma HLS ARRAY_PARTITION variable=pool complete dim=0 + // Keep track of number of pixels in image vs padding region + unsigned img_overlap = 0; + // Loop over pool window y + for (int kk = 0; kk < CONFIG_T::stride_height; kk++) { + // Loop over pool window x + for (int ll = 0; ll < CONFIG_T::stride_width; ll++) { + if (ii + kk < CONFIG_T::pad_top || ii + kk >= (padded_height - CONFIG_T::pad_bottom) || + jj + ll < CONFIG_T::pad_left || jj + ll >= (padded_width - CONFIG_T::pad_right)) { + // Add padding + pool[kk * CONFIG_T::stride_width + ll] = pad_val(); + if (CONFIG_T::count_pad) + img_overlap++; + } else { + pool[kk * CONFIG_T::stride_width + ll] = + data[(ii + kk - CONFIG_T::pad_top) * CONFIG_T::in_width + + ff * CONFIG_T::in_width * CONFIG_T::in_height + ll + jj - CONFIG_T::pad_left]; + img_overlap++; + } + } + } + // do the pooling + // TODO in the case of average pooling, need to reduce height * width to area of pool window + // not overlapping padding region + res[(ii / CONFIG_T::stride_height) * CONFIG_T::out_width + (jj / CONFIG_T::stride_width) + + ff * CONFIG_T::out_height * CONFIG_T::out_width] = + pool_op(pool); + // If the pool op is Average, the zero-padding needs to be removed from the results + if (CONFIG_T::pool_op == Average) { + data_T rescale = + static_cast(CONFIG_T::pool_height) * static_cast(CONFIG_T::pool_width) / img_overlap; + res[(ii / CONFIG_T::stride_height) * CONFIG_T::out_width + (jj / CONFIG_T::stride_width) + + ff * CONFIG_T::out_height * CONFIG_T::out_width] *= rescale; + } + } + } + } +} + +template +void global_pooling2d_cl(data_T data[CONFIG_T::in_height * CONFIG_T::in_width * CONFIG_T::n_filt], + res_T res[CONFIG_T::n_filt]) { + assert(CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + assert(CONFIG_T::pad_top == 0 && CONFIG_T::pad_bottom == 0); + assert(CONFIG_T::pool_width == CONFIG_T::stride_width); + assert(CONFIG_T::pool_height == CONFIG_T::stride_height); + + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + + const int limit = pool_op_limit(); + #pragma HLS ALLOCATION instances=pool_op limit=limit function + +FiltLoop: + for (int filt = 0; filt < CONFIG_T::n_filt; filt++) { + data_T pool[CONFIG_T::in_height * CONFIG_T::in_width]; + + InputLoop: + for (int i = 0; i < CONFIG_T::in_height * CONFIG_T::in_width; i++) { + pool[i] = data[i * CONFIG_T::n_filt + filt]; + } + + res[filt] = static_cast(pool_op(pool)); + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_pooling_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_pooling_stream.h new file mode 100644 index 00000000..13d5979a --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_pooling_stream.h @@ -0,0 +1,609 @@ +#ifndef NNET_POOLING_STREAM_H_ +#define NNET_POOLING_STREAM_H_ + +#include "ap_shift_reg.h" +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_conv_stream.h" +#include "nnet_pooling.h" +#include "utils/x_hls_utils.h" + +namespace nnet { + +// ************************************************* +// Max/average pooling +// ************************************************* + +template T reduce_pool(T x[N]) { + #pragma HLS INLINE + if (CONFIG_T::pool_op == Max) { + Op_max op_max; + return reduce>(x, op_max); + } else { + Op_add op_add; + T sum = reduce>(x, op_add); + return sum / N; + } +} + +template void init_pool_table(unsigned table[TABLE_SIZE]) { + for (unsigned ii = 0; ii < TABLE_SIZE; ii++) { + table[ii] = ii % POOL_SIZE; + } +} + +template +void compute_pool_encoded_2d( + const unsigned h_idx, const unsigned w_idx, const data_T &in_elem, + hls::stream data_window[CONFIG_T::pool_height * CONFIG_T::pool_width * CONFIG_T::n_filt], + hls::stream &res, res_T &res_pack, unsigned &outputs_ready) { + // Nearest H without unused pixels on the right + constexpr unsigned nH = + ((CONFIG_T::in_height - CONFIG_T::pool_height) / CONFIG_T::stride_height) * CONFIG_T::stride_height + + CONFIG_T::pool_height; + // Scaled H that behaves like original H + constexpr unsigned sH = + (DIV_ROUNDUP(CONFIG_T::pool_height, CONFIG_T::stride_height) - 1) * CONFIG_T::stride_height + CONFIG_T::pool_height; + // Nearest W without unused pixels on the right + constexpr unsigned nW = ((CONFIG_T::in_width - CONFIG_T::pool_width) / CONFIG_T::stride_width) * CONFIG_T::stride_width + + CONFIG_T::pool_width; + // Scaled W that behaves like original W + constexpr unsigned sW = + (DIV_ROUNDUP(CONFIG_T::pool_width, CONFIG_T::stride_width) - 1) * CONFIG_T::stride_width + CONFIG_T::pool_width; + +#ifdef __SYNTHESIS__ + bool initialized = false; + unsigned pool_table_height[CONFIG_T::in_height]; + unsigned pool_table_width[CONFIG_T::in_width]; +#else + static bool initialized = false; + static unsigned pool_table_height[CONFIG_T::in_height]; + static unsigned pool_table_width[CONFIG_T::in_width]; +#endif + if (!initialized) { + init_pool_table(pool_table_height); + init_pool_table(pool_table_width); + initialized = true; + } + + #pragma HLS INLINE + + if (data_T::size / CONFIG_T::n_filt > 1) { + #pragma HLS ARRAY_PARTITION variable=pool_table_height complete + #pragma HLS ARRAY_PARTITION variable=pool_table_width complete + } + + typename CONFIG_T::accum_t pool_window[CONFIG_T::pool_height * CONFIG_T::pool_width]; + #pragma HLS ARRAY_PARTITION variable=pool_window complete + + const unsigned sh_idx = pool_table_height[h_idx] * CONFIG_T::pool_width; + const unsigned wp_idx = w_idx * (data_T::size / CONFIG_T::n_filt); + +PixelLoop: + for (unsigned p = 0; p < data_T::size / CONFIG_T::n_filt; p++) { + #pragma HLS PIPELINE + + ap_uint filt_mask = 0; + if ((h_idx < nH) && (wp_idx + p < nW)) { + filt_mask = sh_idx + pool_table_width[wp_idx + p] + 1; + } + + CopyDataFilt: + for (unsigned c = 0; c < CONFIG_T::n_filt; c++) { + if (filt_mask > 0) + data_window[c * CONFIG_T::pool_height * CONFIG_T::pool_width + filt_mask.to_uint() - 1].write( + in_elem[p * CONFIG_T::n_filt + c]); + } + + if (filt_mask == CONFIG_T::pool_height * CONFIG_T::pool_width) { + FiltLoop: + for (unsigned c = 0; c < CONFIG_T::n_filt; c++) { + PoolLoop: + for (unsigned f = 0; f < CONFIG_T::pool_height * CONFIG_T::pool_width; f++) { + pool_window[f] = data_window[c * CONFIG_T::pool_height * CONFIG_T::pool_width + f].read(); + } + if (res_T::size / CONFIG_T::n_filt == + 1) { // Saves resources if we don't pack output, compiler will remove the else branch + res_pack[c] = + reduce_pool( + pool_window); + } else { + res_pack[outputs_ready * CONFIG_T::n_filt + c] = + reduce_pool( + pool_window); + } + } + if (res_T::size / CONFIG_T::n_filt == + 1) { // Saves resources if we don't pack output, compiler will remove the else branch + res.write(res_pack); + } else { + if (outputs_ready == (res_T::size / CONFIG_T::n_filt) - 1) { + res.write(res_pack); + outputs_ready = 0; + } else { + outputs_ready++; + } + } + } + } +} + +template +void pooling2d_encoded_cl(hls::stream &data, hls::stream &res) { + assert(CONFIG_T::pad_top == 0 && CONFIG_T::pad_bottom == 0 && CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + assert(CONFIG_T::pool_height == CONFIG_T::stride_height && CONFIG_T::pool_width == CONFIG_T::stride_width); + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + unsigned outputs_ready = 0; + + hls::stream data_window[CONFIG_T::pool_height * CONFIG_T::pool_width * CONFIG_T::n_filt]; + constexpr int win_depth = CONFIG_T::pool_height * CONFIG_T::out_width; + for (unsigned i_out = 0; i_out < CONFIG_T::pool_height * CONFIG_T::pool_width * CONFIG_T::n_filt; i_out++) { + #pragma HLS STREAM variable=data_window[i_out] depth=win_depth + } + + constexpr int pack_factor = data_T::size / CONFIG_T::n_filt; + +ReadInputHeight: + for (unsigned i_ih = 0; i_ih < CONFIG_T::in_height; i_ih++) { + ReadInputWidth: + for (unsigned i_iw = 0; i_iw < CONFIG_T::in_width / (pack_factor); i_iw++) { + #pragma HLS LOOP_FLATTEN + if (res_T::size / CONFIG_T::n_filt == 1) { + #pragma HLS PIPELINE II=pack_factor + } + compute_pool_encoded_2d(i_ih, i_iw, data.read(), data_window, res, res_pack, + outputs_ready); + } + } +} + +// ************************************************* +// Line Buffer Implementation (Phil's) +// ************************************************* +template +void compute_pool_buffer_2d(const data_T &in_elem, + ap_shift_reg + line_buffer[MAX(CONFIG_T::pool_height - 1, 1)][CONFIG_T::n_filt], + hls::stream &res) { + #pragma HLS INLINE + const static int lShiftX = CONFIG_T::pool_width - 1; + const static int lShiftY = CONFIG_T::pool_height - 1; + static int pX = 0; // pixel X + static int pY = 0; // pixel Y + static int sX = 0; // stride X + static int sY = 0; // stride Y + + typename CONFIG_T::accum_t pool_window[CONFIG_T::pool_height * CONFIG_T::pool_width]; + #pragma HLS ARRAY_PARTITION variable=pool_window complete + + static typename data_T::value_type kernel_data[CONFIG_T::pool_height * CONFIG_T::pool_width * CONFIG_T::n_filt]; + #pragma HLS ARRAY_PARTITION variable = kernel_data complete dim = 0 + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + + // Add pixel into line buffer, return pooling kernels + nnet::shift_line_buffer(in_elem, line_buffer, kernel_data); + + // Can compute pooling output + if ((sX - lShiftX) == 0 && (sY - lShiftY) == 0 && pY > lShiftY - 1 && pX > lShiftX - 1) { + FiltLoop: + for (unsigned i_ic = 0; i_ic < CONFIG_T::n_filt; i_ic++) { + #pragma HLS PIPELINE + + // Retrieve data for current channel + PoolLoop: + for (unsigned i_ihw = 0; i_ihw < CONFIG_T::pool_height * CONFIG_T::pool_width; i_ihw++) { + pool_window[i_ihw] = kernel_data[i_ihw * CONFIG_T::n_filt + i_ic]; + } + + // Compute Pooling + res_pack[i_ic] = + reduce_pool(pool_window); + } + + // Write to output + res.write(res_pack); + } + + // Counter Housekeeping + if (pX + 1 == CONFIG_T::in_width) // Includes padding, end of line (padded) + { + pX = 0; + sX = 0; + if (pY + 1 == CONFIG_T::in_height) { // Reached bottom of image + pY = 0; + sY = 0; + } else { // Next line + pY = pY + 1; + // Update stride (threshold) ? subtract stride : increment stride + sY = ((sY - lShiftY) == 0) ? sY - CONFIG_T::stride_height + 1 : sY + 1; + } + } else { + pX = pX + 1; + // Update stride (threshold) ? subtract stride : increment stride + sX = ((sX - lShiftX) == 0) ? sX - CONFIG_T::stride_width + 1 : sX + 1; + } +} + +template +void pooling2d_buffer_cl(hls::stream &data, hls::stream &res) { + assert(CONFIG_T::pad_top == 0 && CONFIG_T::pad_bottom == 0 && CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + assert(CONFIG_T::pool_height == CONFIG_T::stride_height && CONFIG_T::pool_width == CONFIG_T::stride_width); + + static ap_shift_reg line_buffer[MAX(CONFIG_T::pool_height - 1, 1)] + [CONFIG_T::n_filt]; + #pragma HLS ARRAY_PARTITION variable = line_buffer complete dim = 2 + +ReadInputHeight: + for (unsigned i_ih = 0; i_ih < CONFIG_T::in_height; i_ih++) { + ReadInputWidth: + for (unsigned i_iw = 0; i_iw < CONFIG_T::in_width; i_iw++) { + #pragma HLS LOOP_FLATTEN + #pragma HLS PIPELINE + + compute_pool_buffer_2d(data.read(), line_buffer, res); + } + } +} + +template +void pooling2d_cl(hls::stream &data, hls::stream &res) { + #pragma HLS inline recursive + switch (CONFIG_T::implementation) { + case conv_implementation::linebuffer: + pooling2d_buffer_cl(data, res); + break; + case conv_implementation::encoded: + pooling2d_encoded_cl(data, res); + break; + } +} + +// ************************************************* +// Pooling 1D +// ************************************************* + +template +void compute_pool_encoded_1d(const unsigned w_idx, const data_T &in_elem, + hls::stream data_window[CONFIG_T::pool_width * CONFIG_T::n_filt], + hls::stream &res, res_T &res_pack, unsigned &outputs_ready) { + // Nearest W without unused pixels on the right + constexpr unsigned nW = + ((CONFIG_T::n_in - CONFIG_T::pool_width) / CONFIG_T::stride_width) * CONFIG_T::stride_width + CONFIG_T::pool_width; + // Scaled W that behaves like original W + constexpr unsigned sW = + (DIV_ROUNDUP(CONFIG_T::pool_width, CONFIG_T::stride_width) - 1) * CONFIG_T::stride_width + CONFIG_T::pool_width; + +#ifdef __SYNTHESIS__ + bool initialized = false; + unsigned pool_table_width[CONFIG_T::n_in]; +#else + static bool initialized = false; + static unsigned pool_table_width[CONFIG_T::n_in]; +#endif + if (!initialized) { + init_pool_table(pool_table_width); + initialized = true; + } + + #pragma HLS INLINE + + if (data_T::size / CONFIG_T::n_filt > 1) { + #pragma HLS ARRAY_PARTITION variable=pool_table_width complete + } + + typename CONFIG_T::accum_t pool_window[CONFIG_T::pool_width]; + #pragma HLS ARRAY_PARTITION variable=pool_window complete + + const unsigned wp_idx = w_idx * (data_T::size / CONFIG_T::n_filt); + +PixelLoop: + for (unsigned p = 0; p < data_T::size / CONFIG_T::n_filt; p++) { + #pragma HLS PIPELINE + + ap_uint filt_mask = 0; + if (wp_idx + p < nW) { + filt_mask = pool_table_width[wp_idx + p] + 1; + } + + CopyDataFilt: + for (unsigned c = 0; c < CONFIG_T::n_filt; c++) { + if (filt_mask > 0) + data_window[c * CONFIG_T::pool_width + filt_mask.to_uint() - 1].write(in_elem[p * CONFIG_T::n_filt + c]); + } + + if (filt_mask == CONFIG_T::pool_width) { + FiltLoop: + for (unsigned c = 0; c < CONFIG_T::n_filt; c++) { + PoolLoop: + for (unsigned f = 0; f < CONFIG_T::pool_width; f++) { + pool_window[f] = data_window[c * CONFIG_T::pool_width + f].read(); + } + if (res_T::size / CONFIG_T::n_filt == + 1) { // Saves resources if we don't pack output, compiler will remove the else branch + res_pack[c] = reduce_pool(pool_window); + } else { + res_pack[outputs_ready * CONFIG_T::n_filt + c] = + reduce_pool(pool_window); + } + } + if (res_T::size / CONFIG_T::n_filt == + 1) { // Saves resources if we don't pack output, compiler will remove the else branch + res.write(res_pack); + } else { + if (outputs_ready == (res_T::size / CONFIG_T::n_filt) - 1) { + res.write(res_pack); + outputs_ready = 0; + } else { + outputs_ready++; + } + } + } + } +} + +template +void pooling1d_encoded_cl(hls::stream &data, hls::stream &res) { + assert(CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + assert(CONFIG_T::pool_width == CONFIG_T::stride_width); + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + unsigned outputs_ready = 0; + + hls::stream data_window[CONFIG_T::pool_width * CONFIG_T::n_filt]; + constexpr int win_depth = CONFIG_T::n_out; + for (unsigned i_out = 0; i_out < CONFIG_T::pool_width * CONFIG_T::n_filt; i_out++) { + #pragma HLS STREAM variable=data_window[i_out] depth=win_depth + } + + constexpr int pack_factor = data_T::size / CONFIG_T::n_filt; + +ReadInputWidth: + for (unsigned i_iw = 0; i_iw < CONFIG_T::n_in / (pack_factor); i_iw++) { + #pragma HLS LOOP_FLATTEN + if (res_T::size / CONFIG_T::n_filt == 1) { + #pragma HLS PIPELINE II=pack_factor + } + compute_pool_encoded_1d(i_iw, data.read(), data_window, res, res_pack, outputs_ready); + } +} + +// ************************************************* +// Line Buffer Implementation (Phil's) 1D +// ************************************************* +template +void compute_pool_buffer_1d(const data_T &in_elem, hls::stream &res) { + #pragma HLS INLINE + const static int lShiftX = CONFIG_T::pool_width - 1; + // Counters + static int pX = 0; + static int sX = 0; + + typename CONFIG_T::accum_t pool_window[CONFIG_T::pool_width]; + #pragma HLS ARRAY_PARTITION variable=pool_window complete + + static typename data_T::value_type kernel_data[CONFIG_T::pool_width * CONFIG_T::n_filt]; + #pragma HLS ARRAY_PARTITION variable = kernel_data complete dim = 0 + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + + // Add pixel into line buffer, return pooling kernels + // 1D case line buffer not necessary. Put directly into the kernel_data buffer + nnet::kernel_shift_1d(in_elem, kernel_data); + + // Can compute pooling output + if ((sX - lShiftX) == 0 && pX > lShiftX - 1) { + FiltLoop: + for (unsigned i_ic = 0; i_ic < CONFIG_T::n_filt; i_ic++) { + #pragma HLS PIPELINE + + // Retrieve data for current channel + PoolLoop: + for (unsigned i_iw = 0; i_iw < CONFIG_T::pool_width; i_iw++) { + pool_window[i_iw] = kernel_data[i_iw * CONFIG_T::n_filt + i_ic]; + } + + // Compute Pooling + res_pack[i_ic] = reduce_pool(pool_window); + } + + // Write to output + res.write(res_pack); + } + + // Counter Housekeeping + if (pX + 1 == CONFIG_T::n_in) // Includes padding, end of line (padded) + { + pX = 0; + sX = 0; + } else { + pX = pX + 1; + // Update stride (threshold) ? subtract stride : increment stride + sX = ((sX - lShiftX) == 0) ? sX - CONFIG_T::stride_width + 1 : sX + 1; + } +} + +template +void pooling1d_buffer_cl(hls::stream &data, hls::stream &res) { + assert(CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + +ReadInputWidth: + for (unsigned i_iw = 0; i_iw < CONFIG_T::n_in; i_iw++) { + #pragma HLS LOOP_FLATTEN + #pragma HLS PIPELINE + compute_pool_buffer_1d(data.read(), res); + } +} + +template +void pooling1d_cl(hls::stream &data, hls::stream &res) { + #pragma HLS inline recursive + switch (CONFIG_T::implementation) { + case conv_implementation::linebuffer: + pooling1d_buffer_cl(data, res); + break; + case conv_implementation::encoded: + pooling1d_encoded_cl(data, res); + break; + } +} + +// ************************************************* +// Global max/average pooling +// ************************************************* + +template T reduce_global_pool(T x, T y[N]) { + #pragma HLS INLINE + if (CONFIG_T::pool_op == Max) { + Op_max op_max; + T y_max = reduce>(y, op_max); + return (x > y_max) ? x : y_max; + } else { + Op_add op_add; + T y_sum = reduce>(y, op_add); + return x + y_sum; + } +} + +template +void compute_global_pool(const data_T &in_elem, typename CONFIG_T::accum_t data_window[CONFIG_T::n_filt]) { +PoolFilt: + for (unsigned c = 0; c < CONFIG_T::n_filt; c++) { + #pragma HLS UNROLL + + typename CONFIG_T::accum_t data_pack[data_T::size / CONFIG_T::n_filt]; + #pragma HLS ARRAY_PARTITION variable=data_pack complete dim=0 + + PixelLoop: + for (unsigned p = 0; p < data_T::size / CONFIG_T::n_filt; p++) { + #pragma HLS UNROLL + data_pack[p] = in_elem[p * CONFIG_T::n_filt + c]; + } + data_window[c] = reduce_global_pool( + data_window[c], data_pack); + } +} + +template +void global_pooling2d_cl(hls::stream &data, hls::stream &res) { + assert(CONFIG_T::pad_top == 0 && CONFIG_T::pad_bottom == 0 && CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + assert(CONFIG_T::pool_height == CONFIG_T::stride_height && CONFIG_T::pool_width == CONFIG_T::stride_width); + + typename CONFIG_T::accum_t data_window[CONFIG_T::n_filt]; + #pragma HLS ARRAY_PARTITION variable=data_window complete + + typename CONFIG_T::accum_t init = 0; + if (CONFIG_T::pool_op == Max) { + init = hls::numeric_limits::min(); + } + +PoolInitLoop: + for (unsigned i_init = 0; i_init < CONFIG_T::n_filt; i_init++) { + #pragma HLS UNROLL + data_window[i_init] = init; + } + +ReadInputHeight: + for (unsigned i_ih = 0; i_ih < CONFIG_T::in_height; i_ih++) { + ReadInputWidth: + for (unsigned i_iw = 0; i_iw < CONFIG_T::in_width / (data_T::size / CONFIG_T::n_filt); i_iw++) { + #pragma HLS LOOP_FLATTEN + compute_global_pool(data.read(), data_window); + } + } + + if (CONFIG_T::pool_op == Max) { + MaxPoolRes: + for (unsigned i_res = 0; i_res < CONFIG_T::n_filt / res_T::size; i_res++) { + #pragma HLS PIPELINE + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + MaxPoolPack: + for (unsigned i_pack = 0; i_pack < res_T::size; i_pack++) { + #pragma HLS UNROLL + res_pack[i_pack] = data_window[i_pack]; + } + res.write(res_pack); + } + } else { + AvgPoolRes: + for (unsigned i_res = 0; i_res < CONFIG_T::n_filt / res_T::size; i_res++) { + #pragma HLS PIPELINE + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + AvgPoolPack: + for (unsigned i_pack = 0; i_pack < res_T::size; i_pack++) { + #pragma HLS UNROLL + res_pack[i_pack] = data_window[i_pack] / (CONFIG_T::in_height * CONFIG_T::in_width); + } + res.write(res_pack); + } + } +} + +template +void global_pooling1d_cl(hls::stream &data, hls::stream &res) { + assert(CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + assert(CONFIG_T::pool_width == CONFIG_T::stride_width); + + typename CONFIG_T::accum_t data_window[CONFIG_T::n_filt]; + #pragma HLS ARRAY_PARTITION variable=data_window complete + + typename CONFIG_T::accum_t init = 0; + if (CONFIG_T::pool_op == Max) { + init = hls::numeric_limits::min(); + } + +PoolInitLoop: + for (unsigned i_init = 0; i_init < CONFIG_T::n_filt; i_init++) { + #pragma HLS UNROLL + data_window[i_init] = init; + } + +ReadInput: + for (unsigned i_iw = 0; i_iw < CONFIG_T::n_in / (data_T::size / CONFIG_T::n_filt); i_iw++) { + #pragma HLS LOOP_FLATTEN + compute_global_pool(data.read(), data_window); + } + + if (CONFIG_T::pool_op == Max) { + MaxPoolRes: + for (unsigned i_res = 0; i_res < CONFIG_T::n_filt / res_T::size; i_res++) { + #pragma HLS PIPELINE + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + MaxPoolPack: + for (unsigned i_pack = 0; i_pack < res_T::size; i_pack++) { + #pragma HLS UNROLL + res_pack[i_pack] = data_window[i_pack]; + } + res.write(res_pack); + } + } else { + AvgPoolRes: + for (unsigned i_res = 0; i_res < CONFIG_T::n_filt / res_T::size; i_res++) { + #pragma HLS PIPELINE + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + AvgPoolPack: + for (unsigned i_pack = 0; i_pack < res_T::size; i_pack++) { + #pragma HLS UNROLL + res_pack[i_pack] = data_window[i_pack] / CONFIG_T::n_in; + } + res.write(res_pack); + } + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_recr_activations.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_recr_activations.h new file mode 100644 index 00000000..f68d8066 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_recr_activations.h @@ -0,0 +1,56 @@ +#ifndef NNET_RECR_ACTIVATION_H_ +#define NNET_RECR_ACTIVATION_H_ + +#include "hls_stream.h" +#include "nnet_activation.h" +#include "nnet_common.h" +#include "nnet_helpers.h" +#include + +namespace nnet { + +namespace activation { + +template class Activation { + public: + // ************************************************* + // Blank Activation + // ************************************************* + static void activation(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) {} // Nothing to do here +}; + +template class relu : public Activation { + public: + // ************************************************* + // Relu Activation + // ************************************************* + static void activation(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + nnet::relu(data, res); + } +}; + +template class sigmoid : public Activation { + public: + // ************************************************* + // Sigmoid Activation + // ************************************************* + static void activation(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + nnet::sigmoid(data, res); + } +}; + +template class tanh : public Activation { + public: + // ************************************************* + // TanH Activation + // ************************************************* + static void activation(data_T data[CONFIG_T::n_in], res_T res[CONFIG_T::n_in]) { + nnet::tanh(data, res); + } +}; + +} // namespace activation + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_recurrent.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_recurrent.h new file mode 100644 index 00000000..6e868148 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_recurrent.h @@ -0,0 +1,571 @@ +#ifndef NNET_RECURSIVE_H_ +#define NNET_RECURSIVE_H_ + +#include "hls_stream.h" +#include "nnet_activation.h" +#include "nnet_common.h" +#include "nnet_dense.h" +#include "nnet_recr_activations.h" + +namespace nnet { + +struct lstm_config { + // Internal data type definitions + typedef float weight_t; + typedef float bias_t; + + // Layer Sizes + static const unsigned n_in = 2; + static const unsigned n_parts = 20; + static const unsigned n_out = 2; + static const unsigned n_state = 2; + static const unsigned n_4state = 8; + static const unsigned table_size = 1024; + + // Resource reuse info + static const unsigned io_type = io_parallel; + static const unsigned reuse_factor = 1; + static const unsigned n_zeros = 0; + static const bool store_weights_in_bram = false; + static const bool use_static = true; + + template using activation_recr = nnet::activation::relu; + template using activation = nnet::activation::relu; +}; +// Long Short term Memory NN (LSTM) +// Resources: +// https://github.com/nicodjimenez/lstm/blob/master/lstm.py +// https://github.com/llSourcell/LSTM_Networks/blob/master/LSTM%20Demo.ipynb +// https://en.wikipedia.org/wiki/Long_short-term_memory +// Notes: +// - LSTM naming conventions adopted from the above links +// - s_newstate = activation(U*input + W*state) +// - h_output = activation(U*input + W*state)*activation(s_newstate) +// - If softmax is needed on output, perform *outside* this operations +// Originall had a version allows for the state in each layer to be saved, moved this to above (this requires are LARGE +// dense network at the end) +template +void lstm(bool reset_state, data_T data[CONFIG_T::n_in], res_T h_newstate[CONFIG_T::n_state], + res_T s_newstate[CONFIG_T::n_state], typename CONFIG_T::weight_t param[CONFIG_T::n_state * 4 * CONFIG_T::n_in], + typename CONFIG_T::weight_t param_r[CONFIG_T::n_state * 4 * CONFIG_T::n_state], + typename CONFIG_T::bias_t param_b[CONFIG_T::n_state * 4], + typename CONFIG_T::bias_t param_br[CONFIG_T::n_state * 4]) { + // Initialize the state variable -- will maintain state between function calls + + typename CONFIG_T::accum_t tmpres[CONFIG_T::n_state * 4]; + typename CONFIG_T::accum_t tmpres_state[CONFIG_T::n_state * 4]; + typename CONFIG_T::accum_t tmpres_ifo[CONFIG_T::n_state * 3]; // activated i,f,o matrices (keras notation) + typename CONFIG_T::accum_t tmpres_c[CONFIG_T::n_state]; // activated c-matrix (keras notation) + typename CONFIG_T::accum_t inputacc_ifo[CONFIG_T::n_state * 3]; // i,f,o matrices (keras notation) + typename CONFIG_T::accum_t inputacc_c[CONFIG_T::n_state]; // c-matrix (keras notation) + typename CONFIG_T::accum_t s_actstate[CONFIG_T::n_state]; + + #pragma HLS ARRAY_PARTITION variable=h_newstate complete + #pragma HLS ARRAY_PARTITION variable=s_newstate complete + #pragma HLS ARRAY_PARTITION variable=tmpres complete + #pragma HLS ARRAY_PARTITION variable=tmpres_state complete + #pragma HLS ARRAY_PARTITION variable=tmpres_ifo complete + #pragma HLS ARRAY_PARTITION variable=tmpres_c complete + #pragma HLS ARRAY_PARTITION variable=inputacc_ifo complete + #pragma HLS ARRAY_PARTITION variable=inputacc_c complete + #pragma HLS ARRAY_PARTITION variable=s_actstate complete + + nnet::dense(data, tmpres, param, param_b); + nnet::dense(h_newstate, tmpres_state, param_r, param_br); + + for (int iacc = 0; iacc < (3 * CONFIG_T::n_state); iacc++) { + #pragma HLS UNROLL + int index = iacc; + if (iacc > 2 * CONFIG_T::n_state - 1) + index = iacc + CONFIG_T::n_state; + inputacc_ifo[iacc] = tmpres[index] + tmpres_state[index]; + } + for (int iacc = 0; iacc < (CONFIG_T::n_state); iacc++) { + #pragma HLS UNROLL + int index = iacc + CONFIG_T::n_state * 2; + inputacc_c[iacc] = tmpres[index] + tmpres_state[index]; + } + + CONFIG_T::template activation_recr::activation( + inputacc_ifo, tmpres_ifo); + + // Now for the confusion matrix + CONFIG_T::template activation::activation( + inputacc_c, tmpres_c); + + // Operation: s=g*i+sold*f (update state with buffer to avoid timing issues) + for (int iacc = 0; iacc < (CONFIG_T::n_state); iacc++) { + #pragma HLS UNROLL + s_newstate[iacc] = tmpres_c[iacc] * tmpres_ifo[iacc] + s_newstate[iacc] * tmpres_ifo[iacc + (CONFIG_T::n_state)]; + } + // Operation: h=act(s)*o + CONFIG_T::template activation::activation( + s_newstate, s_actstate); + + for (int iacc = 0; iacc < CONFIG_T::n_state; iacc++) { + #pragma HLS UNROLL + h_newstate[iacc] = tmpres_ifo[iacc + 2 * (CONFIG_T::n_state)] * s_actstate[iacc]; + } +} + +template +void lstm_static(bool reset_state, data_T data[CONFIG_T::n_in], res_T h_newstate[CONFIG_T::n_state], + res_T s_newstate[CONFIG_T::n_state], + typename CONFIG_T::weight_t param[CONFIG_T::n_state * 4 * CONFIG_T::n_in], + typename CONFIG_T::weight_t param_r[CONFIG_T::n_state * 4 * CONFIG_T::n_state], + typename CONFIG_T::bias_t param_b[CONFIG_T::n_state * 4], + typename CONFIG_T::bias_t param_br[CONFIG_T::n_state * 4]) { + static res_T h_state[CONFIG_T::n_state]; + static res_T s_state[CONFIG_T::n_state]; + // Initialize the state variable -- will maintain state between function calls + typename CONFIG_T::accum_t tmpres[CONFIG_T::n_state * 4]; + typename CONFIG_T::accum_t tmpres_state[CONFIG_T::n_state * 4]; + typename CONFIG_T::accum_t tmpres_ifo[CONFIG_T::n_state * 3]; // activated i,f,o matrices (keras notation) + typename CONFIG_T::accum_t tmpres_c[CONFIG_T::n_state]; // activated c-matrix (keras notation) + typename CONFIG_T::accum_t inputacc_ifo[CONFIG_T::n_state * 3]; // i,f,o matrices (keras notation) + typename CONFIG_T::accum_t inputacc_c[CONFIG_T::n_state]; // c-matrix (keras notation) + typename CONFIG_T::accum_t s_actstate[CONFIG_T::n_state]; + + #pragma HLS ARRAY_PARTITION variable=h_newstate complete + #pragma HLS ARRAY_PARTITION variable=s_newstate complete + #pragma HLS ARRAY_PARTITION variable=h_state complete + #pragma HLS ARRAY_PARTITION variable=s_state complete + #pragma HLS ARRAY_PARTITION variable=tmpres complete + #pragma HLS ARRAY_PARTITION variable=tmpres_state complete + #pragma HLS ARRAY_PARTITION variable=tmpres_ifo complete + #pragma HLS ARRAY_PARTITION variable=tmpres_c complete + #pragma HLS ARRAY_PARTITION variable=inputacc_ifo complete + #pragma HLS ARRAY_PARTITION variable=inputacc_c complete + #pragma HLS ARRAY_PARTITION variable=s_actstate complete + + if (reset_state) { + for (int i_state = 0; i_state < (CONFIG_T::n_state); i_state++) { + #pragma HLS UNROLL + s_state[i_state] = 0; + h_state[i_state] = 0; + } + } + + nnet::dense(data, tmpres, param, param_b); + nnet::dense(h_state, tmpres_state, param_r, + param_br); + + for (int iacc = 0; iacc < (3 * CONFIG_T::n_state); iacc++) { + #pragma HLS UNROLL + int index = iacc; + if (iacc > 2 * CONFIG_T::n_state - 1) + index = iacc + CONFIG_T::n_state; + inputacc_ifo[iacc] = tmpres[index] + tmpres_state[index]; + } + for (int iacc = 0; iacc < (CONFIG_T::n_state); iacc++) { + #pragma HLS UNROLL + int index = iacc + CONFIG_T::n_state * 2; + inputacc_c[iacc] = tmpres[index] + tmpres_state[index]; + } + + CONFIG_T::template activation_recr::activation( + inputacc_ifo, tmpres_ifo); + + // Now for the confusion matrix + CONFIG_T::template activation::activation( + inputacc_c, tmpres_c); + + // Operation: s=g*i+sold*f (update state with buffer to avoid timing issues) + for (int iacc = 0; iacc < (CONFIG_T::n_state); iacc++) { + #pragma HLS UNROLL + s_state[iacc] = tmpres_c[iacc] * tmpres_ifo[iacc] + s_state[iacc] * tmpres_ifo[iacc + (CONFIG_T::n_state)]; + s_newstate[iacc] = s_state[iacc]; + } + // Operation: h=act(s)*o + CONFIG_T::template activation::activation( + s_state, s_actstate); + + for (int iacc = 0; iacc < CONFIG_T::n_state; iacc++) { + #pragma HLS UNROLL + h_state[iacc] = tmpres_ifo[iacc + 2 * (CONFIG_T::n_state)] * s_actstate[iacc]; + h_newstate[iacc] = h_state[iacc]; + } +} + +template +void lstm_stack(data_T data[CONFIG_T::n_sequence * CONFIG_T::n_in], res_T res[CONFIG_T::n_sequence_out * CONFIG_T::n_state], + typename CONFIG_T::weight_t param[CONFIG_T::n_state * 4 * CONFIG_T::n_in], + typename CONFIG_T::weight_t param_r[CONFIG_T::n_state * 4 * CONFIG_T::n_state], + typename CONFIG_T::bias_t param_b[CONFIG_T::n_state * 4], + typename CONFIG_T::bias_t param_br[CONFIG_T::n_state * 4]) { + + res_T h_newstate[CONFIG_T::n_state]; + res_T s_newstate[CONFIG_T::n_state]; + data_T data_in[CONFIG_T::n_in]; + bool reset_state = true; + + #pragma HLS ARRAY_PARTITION variable=h_newstate complete + #pragma HLS ARRAY_PARTITION variable=s_newstate complete + + for (int ii = 0; ii < CONFIG_T::n_state; ii++) { + #pragma HLS UNROLL + h_newstate[ii] = 0; + s_newstate[ii] = 0; + } + for (int iloop = 0; iloop < CONFIG_T::n_sequence; iloop++) { + for (int j = 0; j < CONFIG_T::n_in; j++) { + #pragma HLS UNROLL + data_in[j] = data[j + iloop * CONFIG_T::n_in]; + } + if (CONFIG_T::use_static) + nnet::lstm_static(reset_state, data_in, h_newstate, s_newstate, param, param_r, param_b, + param_br); + else + nnet::lstm(reset_state, data_in, h_newstate, s_newstate, param, param_r, param_b, + param_br); + if (CONFIG_T::n_sequence_out > 1) + for (int i = CONFIG_T::n_state * iloop, j = 0; i < (CONFIG_T::n_state * (iloop + 1)); i++, j++) { + #pragma HLS UNROLL + res[i] = h_newstate[j]; + } + reset_state = false; + } + if (CONFIG_T::n_sequence_out == 1) + for (int i = 0; i < (CONFIG_T::n_state); i++) { + #pragma HLS UNROLL + res[i] = h_newstate[i]; + } +} + +template +void lstm_stack(hls::stream &data_stream, hls::stream &res_stream, + typename CONFIG_T::weight_t param[CONFIG_T::n_state * 4 * CONFIG_T::n_in], + typename CONFIG_T::weight_t param_r[CONFIG_T::n_state * 4 * CONFIG_T::n_state], + typename CONFIG_T::bias_t param_b[CONFIG_T::n_state * 4], + typename CONFIG_T::bias_t param_br[CONFIG_T::n_state * 4]) { + + typename res_T::value_type h_newstate[CONFIG_T::n_state]; + typename res_T::value_type s_newstate[CONFIG_T::n_state]; + #pragma HLS ARRAY_PARTITION variable=h_newstate complete + #pragma HLS ARRAY_PARTITION variable=s_newstate complete + + for (int ii = 0; ii < CONFIG_T::n_state; ii++) { + #pragma HLS UNROLL + h_newstate[ii] = 0; + s_newstate[ii] = 0; + } + + typename data_T::value_type data_in[CONFIG_T::n_in]; + bool reset_state = true; + +DataPropagation: + for (int i_in = 0; i_in < CONFIG_T::n_sequence * CONFIG_T::n_in / data_T::size; i_in++) { + if (CONFIG_T::n_sequence * CONFIG_T::n_in / data_T::size > 1) { + // #pragma HLS PIPELINE + } + data_T data_pack = data_stream.read(); + DataPack: + for (int i_pack = 0; i_pack < data_T::size; i_pack++) { + #pragma HLS UNROLL + data_in[i_pack] = data_pack[i_pack]; + } + if (CONFIG_T::use_static) + nnet::lstm_static( + reset_state, data_in, h_newstate, s_newstate, param, param_r, param_b, param_br); + else + nnet::lstm( + reset_state, data_in, h_newstate, s_newstate, param, param_r, param_b, param_br); + if (CONFIG_T::n_sequence_out > 1) { + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + ResPack_sequences: + for (int i_pack = 0; i_pack < res_T::size; i_pack++) { + #pragma HLS UNROLL + res_pack[i_pack] = h_newstate[i_pack]; + } + res_stream.write(res_pack); + } + reset_state = false; + } + + if (CONFIG_T::n_sequence_out == 1) { + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + ResPack: + for (int i_pack = 0; i_pack < res_T::size; i_pack++) { + #pragma HLS UNROLL + res_pack[i_pack] = h_newstate[i_pack]; + } + res_stream.write(res_pack); + } +} + +// Struct for the GRU template + +struct gru_config { + // Internal data type definitions + typedef float weight_t; + typedef float bias_t; + typedef float accum_t; + + // Layer Sizes + static const unsigned n_in = 2; + static const unsigned n_out = 2; + static const unsigned n_state = 2; + static const unsigned n_sequence = 2; + static const unsigned n_4state = 8; + static const unsigned table_size = 1024; + + // Resource reuse info + static const unsigned io_type = io_parallel; + static const unsigned reuse_factor = 1; + static const bool store_weights_in_bram = false; + static const bool use_static = true; + static const unsigned n_zeros = 0; + + template using activation_recr = nnet::activation::relu; + template using activation = nnet::activation::relu; +}; + +template +void gru(bool reset_state, data_T data[CONFIG_T::n_in], res_T h_newstate[CONFIG_T::n_state], + typename CONFIG_T::weight_t param[CONFIG_T::n_state * 3 * CONFIG_T::n_in], // TODO - Check the layout of the param + // weights - refer page in copy!! + typename CONFIG_T::weight_t param_zr[CONFIG_T::n_state * 3 * CONFIG_T::n_state], + typename CONFIG_T::bias_t param_b[CONFIG_T::n_state * 3], + typename CONFIG_T::bias_t param_br[CONFIG_T::n_state * 3]) { + // Initialize the state variable -- will maintain state between function calls + typename CONFIG_T::accum_t tmpres[CONFIG_T::n_state * 3]; + typename CONFIG_T::accum_t tmpres_state_zr[CONFIG_T::n_state * 3]; + typename CONFIG_T::accum_t tmpres_state_h[CONFIG_T::n_state]; + typename CONFIG_T::accum_t tmpres_zr[CONFIG_T::n_state * 2]; // activated i,f,o matrices (keras notation) + typename CONFIG_T::accum_t tmpres_h[CONFIG_T::n_state]; // activated c-matrix (keras notation) + typename CONFIG_T::accum_t inputacc_zr[CONFIG_T::n_state * 2]; // i,f,o matrices (keras notation) + typename CONFIG_T::accum_t inputacc_h[CONFIG_T::n_state]; // c-matrix (keras notation) + + #pragma HLS ARRAY_PARTITION variable=h_newstate complete + #pragma HLS ARRAY_PARTITION variable=tmpres complete + #pragma HLS ARRAY_PARTITION variable=tmpres_state_zr complete + #pragma HLS ARRAY_PARTITION variable=tmpres_state_h complete + #pragma HLS ARRAY_PARTITION variable=tmpres_zr complete + #pragma HLS ARRAY_PARTITION variable=tmpres_h complete + #pragma HLS ARRAY_PARTITION variable=inputacc_zr complete + #pragma HLS ARRAY_PARTITION variable=inputacc_h complete + + nnet::dense(data, tmpres, param, param_b); + nnet::dense(h_newstate, tmpres_state_zr, param_zr, + param_br); + + // Adding the individual vectors from the multiplication of tmpres = Wx*x(t); tmpres_state_zr = Wh*h(t-1); tmpres + // initialized with biases -- DONE + for (int iacc = 0; iacc < (2 * CONFIG_T::n_state); iacc++) { + #pragma HLS UNROLL + int index = iacc; + inputacc_zr[iacc] = tmpres[index] + tmpres_state_zr[index]; + } + + // Activation function Sub layer -- START + CONFIG_T::template activation_recr::activation(inputacc_zr, tmpres_zr); + + // Activation function Sub layer -- END + + // Hadamrd product of r(t) = inputacc_zr[2*n_state:n_state] and h(t-1) = h_newstate + for (int iacc = 0; iacc < (CONFIG_T::n_state); iacc++) { + #pragma HLS UNROLL + tmpres_state_h[iacc] = tmpres_zr[iacc + (CONFIG_T::n_state)] * tmpres_state_zr[iacc + (2 * CONFIG_T::n_state)]; + } + + // Assuming reset_after is false + for (int iacc = 0; iacc < (CONFIG_T::n_state); iacc++) { + #pragma HLS UNROLL + int index = iacc + CONFIG_T::n_state * 2; + inputacc_h[iacc] = tmpres[index] + tmpres_state_h[iacc]; + } + + // Now run the activation on this guy + CONFIG_T::template activation::activation(inputacc_h, tmpres_h); + + // Mix the stat with the previous state + for (int iacc = 0; iacc < (CONFIG_T::n_state); iacc++) { + #pragma HLS UNROLL + h_newstate[iacc] = (res_T)(tmpres_h[iacc] * (1 - tmpres_zr[iacc]) + h_newstate[iacc] * tmpres_zr[iacc]); + } +} + +template +void gru_static(bool reset_state, data_T data[CONFIG_T::n_in], res_T h_newstate[CONFIG_T::n_state], + typename CONFIG_T::weight_t param[CONFIG_T::n_state * 3 * CONFIG_T::n_in], + typename CONFIG_T::weight_t param_zr[CONFIG_T::n_state * 3 * CONFIG_T::n_state], + typename CONFIG_T::bias_t param_b[CONFIG_T::n_state * 3], + typename CONFIG_T::bias_t param_br[CONFIG_T::n_state * 3]) { + // Initialize the state variable -- will maintain state between function calls + + static res_T h_state[CONFIG_T::n_state]; + typename CONFIG_T::accum_t tmpres[CONFIG_T::n_state * 3]; + typename CONFIG_T::accum_t tmpres_state_zr[CONFIG_T::n_state * 3]; + typename CONFIG_T::accum_t tmpres_state_h[CONFIG_T::n_state]; + typename CONFIG_T::accum_t tmpres_zr[CONFIG_T::n_state * 2]; // activated i,f,o matrices (keras notation) + typename CONFIG_T::accum_t tmpres_h[CONFIG_T::n_state]; // activated c-matrix (keras notation) + typename CONFIG_T::accum_t inputacc_zr[CONFIG_T::n_state * 2]; // i,f,o matrices (keras notation) + typename CONFIG_T::accum_t inputacc_h[CONFIG_T::n_state]; // c-matrix (keras notation) + + #pragma HLS ARRAY_PARTITION variable=h_state complete + #pragma HLS ARRAY_PARTITION variable=h_newstate complete + #pragma HLS ARRAY_PARTITION variable=tmpres complete + #pragma HLS ARRAY_PARTITION variable=tmpres_state_zr complete + #pragma HLS ARRAY_PARTITION variable=tmpres_state_h complete + #pragma HLS ARRAY_PARTITION variable=tmpres_zr complete + #pragma HLS ARRAY_PARTITION variable=tmpres_h complete + #pragma HLS ARRAY_PARTITION variable=inputacc_zr complete + #pragma HLS ARRAY_PARTITION variable=inputacc_h complete + + if (reset_state) { + for (int i_h_state = 0; i_h_state < (CONFIG_T::n_state); i_h_state++) { + #pragma HLS UNROLL + h_state[i_h_state] = 0; + } + } + + nnet::dense(data, tmpres, param, param_b); + nnet::dense(h_state, tmpres_state_zr, param_zr, + param_br); + + // Adding the individual vectors from the multiplication of tmpres = Wx*x(t); tmpres_state_zr = Wh*h(t-1); tmpres + // initialized with biases -- DONE + for (int iacc = 0; iacc < (2 * CONFIG_T::n_state); iacc++) { + #pragma HLS UNROLL + int index = iacc; + inputacc_zr[iacc] = tmpres[index] + tmpres_state_zr[index]; + } + + // Activation function Sub layer -- START + CONFIG_T::template activation_recr::activation(inputacc_zr, tmpres_zr); + + // Activation function Sub layer -- END + + // Hadamrd product of r(t) = inputacc_zr[2*n_state:n_state] and h(t-1) = h_newstate + for (int iacc = 0; iacc < (CONFIG_T::n_state); iacc++) { + #pragma HLS UNROLL + tmpres_state_h[iacc] = tmpres_zr[iacc + (CONFIG_T::n_state)] * tmpres_state_zr[iacc + (2 * CONFIG_T::n_state)]; + } + + // Assuming reset_after is false + for (int iacc = 0; iacc < (CONFIG_T::n_state); iacc++) { + #pragma HLS UNROLL + int index = iacc + CONFIG_T::n_state * 2; + inputacc_h[iacc] = tmpres[index] + tmpres_state_h[iacc]; + } + + // Now run the activation on this guy + CONFIG_T::template activation::activation(inputacc_h, tmpres_h); + + // Mix the stat with the previous state + for (int iacc = 0; iacc < (CONFIG_T::n_state); iacc++) { + #pragma HLS UNROLL + h_state[iacc] = (res_T)(tmpres_h[iacc] * (1 - tmpres_zr[iacc]) + h_state[iacc] * tmpres_zr[iacc]); + h_newstate[iacc] = h_state[iacc]; + } +} + +template +void gru_stack(data_T data[CONFIG_T::n_sequence * CONFIG_T::n_in], res_T res[CONFIG_T::n_sequence_out * CONFIG_T::n_state], + typename CONFIG_T::weight_t param[CONFIG_T::n_state * 3 * CONFIG_T::n_in], + typename CONFIG_T::weight_t param_zr[CONFIG_T::n_state * 3 * CONFIG_T::n_state], + typename CONFIG_T::bias_t param_b[CONFIG_T::n_state * 3], + typename CONFIG_T::bias_t param_br[CONFIG_T::n_state * 3]) { + + res_T h_state[CONFIG_T::n_state]; + data_T data_in[CONFIG_T::n_in]; + bool reset_state = true; + + #pragma HLS ARRAY_PARTITION variable=h_state complete + #pragma HLS ARRAY_PARTITION variable=data_in complete + + for (int ii = 0; ii < CONFIG_T::n_state; ii++) { + #pragma HLS UNROLL + h_state[ii] = 0; + } + for (int iloop = 0; iloop < CONFIG_T::n_sequence; iloop++) { + for (int j = 0; j < CONFIG_T::n_in; j++) { + #pragma HLS UNROLL + data_in[j] = data[j + iloop * CONFIG_T::n_in]; + } + if (CONFIG_T::use_static) + nnet::gru_static(reset_state, data_in, h_state, param, param_zr, param_b, param_br); + else + nnet::gru(reset_state, data_in, h_state, param, param_zr, param_b, param_br); + if (CONFIG_T::n_sequence_out > 1) + for (int i = CONFIG_T::n_state * iloop, j = 0; i < (CONFIG_T::n_state * (iloop + 1)); i++, j++) { + #pragma HLS UNROLL + res[i] = h_state[j]; + } + reset_state = false; + } + if (CONFIG_T::n_sequence_out == 1) + for (int i = 0; i < (CONFIG_T::n_state); i++) { + #pragma HLS UNROLL + res[i] = h_state[i]; + } +} + +template +void gru_stack(hls::stream &data_stream, hls::stream &res_stream, + typename CONFIG_T::weight_t param[CONFIG_T::n_state * 3 * CONFIG_T::n_in], + typename CONFIG_T::weight_t param_zr[CONFIG_T::n_state * 3 * CONFIG_T::n_state], + typename CONFIG_T::bias_t param_b[CONFIG_T::n_state * 3], + typename CONFIG_T::bias_t param_br[CONFIG_T::n_state * 3]) { + + typename res_T::value_type h_newstate[CONFIG_T::n_state]; + #pragma HLS ARRAY_PARTITION variable=h_newstate complete + for (int ii = 0; ii < CONFIG_T::n_state; ii++) { + #pragma HLS UNROLL + h_newstate[ii] = 0; + } + + typename data_T::value_type data_in[CONFIG_T::n_in]; + bool reset_state = true; + +DataPropagation: + for (int i_in = 0; i_in < CONFIG_T::n_sequence * CONFIG_T::n_in / data_T::size; i_in++) { + if (CONFIG_T::n_sequence * CONFIG_T::n_in / data_T::size > 1) { + // #pragma HLS PIPELINE + } + data_T data_pack = data_stream.read(); + DataPack: + for (int i_pack = 0; i_pack < data_T::size; i_pack++) { + #pragma HLS UNROLL + data_in[i_pack] = data_pack[i_pack]; + } + if (CONFIG_T::use_static) + nnet::gru_static( + reset_state, data_in, h_newstate, param, param_zr, param_b, param_br); + else + nnet::gru(reset_state, data_in, h_newstate, + param, param_zr, param_b, param_br); + if (CONFIG_T::n_sequence_out > 1) { + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + ResPack_sequences: + for (int i_pack = 0; i_pack < res_T::size; i_pack++) { + #pragma HLS UNROLL + res_pack[i_pack] = h_newstate[i_pack]; + } + res_stream.write(res_pack); + } + reset_state = false; + } + + if (CONFIG_T::n_sequence_out == 1) { + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + ResPack: + for (int i_pack = 0; i_pack < res_T::size; i_pack++) { + #pragma HLS UNROLL + res_pack[i_pack] = h_newstate[i_pack]; + } + res_stream.write(res_pack); + } +} + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_sepconv1d_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_sepconv1d_stream.h new file mode 100644 index 00000000..254fc506 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_sepconv1d_stream.h @@ -0,0 +1,119 @@ +#ifndef NNET_SEPARABLE_CONV1D_STREAM_H_ +#define NNET_SEPARABLE_CONV1D_STREAM_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_conv1d_stream.h" +#include "nnet_sepconv_stream.h" + +namespace nnet { + +template +void depthwise_conv_1d_encoded_cl(hls::stream &data, hls::stream &res, + typename CONFIG_T::weight_t weights[CONFIG_T::filt_width * CONFIG_T::n_chan], + typename CONFIG_T::bias_t biases[CONFIG_T::n_chan]) { + assert(CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + + hls::stream data_window[CONFIG_T::filt_width * CONFIG_T::n_chan]; + const int win_depth = CONFIG_T::out_width; + for (unsigned i_out = 0; i_out < CONFIG_T::filt_width * CONFIG_T::n_chan; i_out++) { + #pragma HLS STREAM variable=data_window[i_out] depth=win_depth + } + + #pragma HLS ARRAY_PARTITION variable=CONFIG_T::pixels complete + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + unsigned outputs_ready = 0; + + ap_uint pixel_idx[data_T::size / CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable=pixel_idx complete + +ReadInputWidth: + for (unsigned i_iw = 0; i_iw < CONFIG_T::in_width / (data_T::size / CONFIG_T::n_chan); i_iw++) { + #pragma HLS LOOP_FLATTEN + if (CONFIG_T::strategy == nnet::latency && data_T::size / CONFIG_T::n_chan == 1) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + } + compute_scaled_indices_1d(i_iw, pixel_idx); + compute_depthwise_output_encoded(data.read(), data_window, res, res_pack, outputs_ready, + weights, biases, pixel_idx); + } +} + +template +void depthwise_conv_1d_buffer_cl(hls::stream &data, hls::stream &res, + typename CONFIG_T::weight_t weights[CONFIG_T::filt_width * CONFIG_T::n_chan], + typename CONFIG_T::bias_t biases[CONFIG_T::n_chan]) { + assert(CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + +ReadInputWidth: + for (unsigned i_iw = 0; i_iw < CONFIG_T::in_width; i_iw++) { + #pragma HLS LOOP_FLATTEN + if (CONFIG_T::strategy == nnet::latency) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + } + compute_depthwise_output_buffer_1d(data.read(), res, weights, biases); + } +} + +template +void depthwise_conv_1d_cl(hls::stream &data, hls::stream &res, + typename CONFIG_T::weight_t weights[CONFIG_T::filt_width * CONFIG_T::n_chan], + typename CONFIG_T::bias_t biases[CONFIG_T::n_chan]) { + #pragma HLS inline recursive + switch (CONFIG_T::implementation) { + case conv_implementation::linebuffer: + depthwise_conv_1d_buffer_cl(data, res, weights, biases); + break; + case conv_implementation::encoded: + depthwise_conv_1d_encoded_cl(data, res, weights, biases); + break; + } +} + +template +void pointwise_conv_1d_cl(hls::stream &data, hls::stream &res, + typename CONFIG_T::weight_t weights[CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + assert(CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + assert(CONFIG_T::filt_width == 1); + + #pragma HLS ARRAY_PARTITION variable=weights complete + #pragma HLS ARRAY_PARTITION variable=biases complete + +ReadInputWidth: + for (unsigned i_iw = 0; i_iw < CONFIG_T::in_width / (data_T::size / CONFIG_T::n_chan); i_iw++) { + if (CONFIG_T::strategy == nnet::latency && data_T::size / CONFIG_T::n_chan == 1) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + } + if (i_iw % CONFIG_T::stride_width == 0) { + pointwise_mult_buffer(data.read(), res, weights, biases); + } else { + data.read(); + } + } +} + +template +void separable_conv_1d_cl(hls::stream &data, hls::stream &res, + typename CONFIG_T::depthwise_config::weight_t + depthwise_weights[CONFIG_T::depthwise_config::filt_width * CONFIG_T::depthwise_config::n_chan], + typename CONFIG_T::pointwise_config::weight_t + pointwise_weights[CONFIG_T::pointwise_config::n_chan * CONFIG_T::pointwise_config::n_filt], + typename CONFIG_T::depthwise_config::bias_t depthwise_biases[CONFIG_T::depthwise_config::n_chan], + typename CONFIG_T::pointwise_config::bias_t pointwise_biases[CONFIG_T::pointwise_config::n_filt]) { + #pragma HLS DATAFLOW + + hls::stream depthwise_res; + unsigned res_depth = CONFIG_T::depthwise_config::out_width; + #pragma HLS STREAM variable=depthwise_res depth=res_depth + + depthwise_conv_1d_cl(data, depthwise_res, depthwise_weights, + depthwise_biases); + pointwise_conv_1d_cl(depthwise_res, res, pointwise_weights, + pointwise_biases); +} + +} // namespace nnet +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_sepconv2d_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_sepconv2d_stream.h new file mode 100644 index 00000000..d56ed6d9 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_sepconv2d_stream.h @@ -0,0 +1,143 @@ +#ifndef NNET_SEPARABLE_CONV2D_STREAM_H_ +#define NNET_SEPARABLE_CONV2D_STREAM_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_conv2d_stream.h" +#include "nnet_sepconv_stream.h" +#include "nnet_types.h" + +namespace nnet { + +template +void depthwise_conv_2d_encoded_cl( + hls::stream &data, hls::stream &res, + typename CONFIG_T::weight_t weights[CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan], + typename CONFIG_T::bias_t biases[CONFIG_T::n_chan]) { + assert(CONFIG_T::pad_top == 0 && CONFIG_T::pad_bottom == 0 && CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + assert(CONFIG_T::filt_height == CONFIG_T::filt_width); + + hls::stream data_window[CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan]; + const int win_depth = CONFIG_T::filt_height * CONFIG_T::out_width; + for (unsigned i_out = 0; i_out < CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan; i_out++) { + #pragma HLS STREAM variable=data_window[i_out] depth=win_depth + } + + #pragma HLS ARRAY_PARTITION variable=CONFIG_T::pixels complete + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + unsigned outputs_ready = 0; + + ap_uint pixel_idx[data_T::size / CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable=pixel_idx complete + +ReadInputHeight: + for (unsigned i_ih = 0; i_ih < CONFIG_T::in_height; i_ih++) { + ReadInputWidth: + for (unsigned i_iw = 0; i_iw < CONFIG_T::in_width / (data_T::size / CONFIG_T::n_chan); i_iw++) { + #pragma HLS LOOP_FLATTEN + if (CONFIG_T::strategy == nnet::latency && data_T::size / CONFIG_T::n_chan == 1) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + } + compute_scaled_indices_2d(i_ih, i_iw, pixel_idx); + compute_depthwise_output_encoded(data.read(), data_window, res, res_pack, outputs_ready, + weights, biases, pixel_idx); + } + } +} + +// Line Buffer Implementation (Phil's) +template +void depthwise_conv_2d_buffer_cl( + hls::stream &data, hls::stream &res, + typename CONFIG_T::weight_t weights[CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan], + typename CONFIG_T::bias_t biases[CONFIG_T::n_chan]) { + assert(CONFIG_T::pad_top == 0 && CONFIG_T::pad_bottom == 0 && CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + + static ap_shift_reg line_buffer[CONFIG_T::filt_height - 1] + [CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable = line_buffer complete dim = 2 + +ReadInputHeight: + for (unsigned i_ih = 0; i_ih < CONFIG_T::in_height; i_ih++) { + ReadInputWidth: + for (unsigned i_iw = 0; i_iw < CONFIG_T::in_width; i_iw++) { + #pragma HLS LOOP_FLATTEN + if (CONFIG_T::strategy == nnet::latency) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + } + if (CONFIG_T::filt_height > 1) { + compute_depthwise_output_buffer_2d(data.read(), line_buffer, res, weights, biases); + } else { + compute_depthwise_output_buffer_1d(data.read(), res, weights, biases); + } + } + } +} + +template +void depthwise_conv_2d_cl( + hls::stream &data, hls::stream &res, + typename CONFIG_T::weight_t weights[CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan], + typename CONFIG_T::bias_t biases[CONFIG_T::n_chan]) { + #pragma HLS inline recursive + switch (CONFIG_T::implementation) { + case conv_implementation::linebuffer: + depthwise_conv_2d_buffer_cl(data, res, weights, biases); + break; + case conv_implementation::encoded: + depthwise_conv_2d_encoded_cl(data, res, weights, biases); + break; + } +} + +template +void pointwise_conv_2d_cl(hls::stream &data, hls::stream &res, + typename CONFIG_T::weight_t weights[CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + assert(CONFIG_T::pad_top == 0 && CONFIG_T::pad_bottom == 0 && CONFIG_T::pad_left == 0 && CONFIG_T::pad_right == 0); + assert(CONFIG_T::filt_height == 1 && CONFIG_T::filt_width == 1); + + #pragma HLS ARRAY_PARTITION variable=weights complete + #pragma HLS ARRAY_PARTITION variable=biases complete + +ReadInputHeight: + for (unsigned i_ih = 0; i_ih < CONFIG_T::in_height; i_ih++) { + ReadInputWidth: + for (unsigned i_iw = 0; i_iw < CONFIG_T::in_width / (data_T::size / CONFIG_T::n_chan); i_iw++) { + if (CONFIG_T::strategy == nnet::latency && data_T::size / CONFIG_T::n_chan == 1) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + } + if (i_ih % CONFIG_T::stride_height == 0 && i_iw % CONFIG_T::stride_width == 0) { + pointwise_mult_buffer(data.read(), res, weights, biases); + } else { + data.read(); + } + } + } +} + +template +void separable_conv_2d_cl(hls::stream &data, hls::stream &res, + typename CONFIG_T::depthwise_config::weight_t + depthwise_weights[CONFIG_T::depthwise_config::filt_height * + CONFIG_T::depthwise_config::filt_width * CONFIG_T::depthwise_config::n_chan], + typename CONFIG_T::pointwise_config::weight_t + pointwise_weights[CONFIG_T::pointwise_config::n_chan * CONFIG_T::pointwise_config::n_filt], + typename CONFIG_T::depthwise_config::bias_t depthwise_biases[CONFIG_T::depthwise_config::n_chan], + typename CONFIG_T::pointwise_config::bias_t pointwise_biases[CONFIG_T::pointwise_config::n_filt]) { + #pragma HLS DATAFLOW + + hls::stream depthwise_res; + unsigned res_depth = CONFIG_T::depthwise_config::out_height * CONFIG_T::depthwise_config::out_width; + #pragma HLS STREAM variable=depthwise_res depth=res_depth + + depthwise_conv_2d_cl(data, depthwise_res, depthwise_weights, + depthwise_biases); + pointwise_conv_2d_cl(depthwise_res, res, pointwise_weights, + pointwise_biases); +} + +} // namespace nnet +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_sepconv_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_sepconv_stream.h new file mode 100644 index 00000000..9c16de19 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_sepconv_stream.h @@ -0,0 +1,306 @@ +#ifndef NNET_SEPARABLE_CONV_STREAM_H_ +#define NNET_SEPARABLE_CONV_STREAM_H_ + +#include "hls_stream.h" +#include "nnet_common.h" +#include "nnet_conv_stream.h" + +namespace nnet { + +template +void depthwise_product(data_T data[CONFIG_T::kernel_size * CONFIG_T::n_chan], res_T res[CONFIG_T::n_chan], + typename CONFIG_T::weight_t weights[CONFIG_T::kernel_size * CONFIG_T::n_chan], + typename CONFIG_T::bias_t biases[CONFIG_T::n_chan]) { + #pragma HLS INLINE + + typename CONFIG_T::accum_t mult[CONFIG_T::kernel_size * CONFIG_T::n_chan]; + typename CONFIG_T::accum_t acc[CONFIG_T::n_chan]; + + // Use a function_instantiate in case it helps to explicitly optimize unchanging weights/biases + #pragma HLS function_instantiate variable=weights + + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + + #pragma HLS ARRAY_PARTITION variable=mult complete + + #pragma HLS ALLOCATION operation instances=mul limit=CONFIG_T::multiplier_limit + +// Do the matrix-multiply +Product: + for (int ii = 0; ii < CONFIG_T::kernel_size * CONFIG_T::n_chan; ii++) { + #pragma HLS UNROLL + mult[ii] = CONFIG_T::mult_config::template product::product( + data[ii], weights[ii]); + } + +// Initialize accumulator with input biases +ResetAccum: + for (int iacc = 0; iacc < CONFIG_T::n_chan; iacc++) { + #pragma HLS UNROLL + acc[iacc] = (typename CONFIG_T::accum_t)biases[iacc]; + } + +// Accumulate multiplication result +Accum1: + for (int ii = 0; ii < CONFIG_T::kernel_size; ii++) { + Accum2: + for (int jj = 0; jj < CONFIG_T::n_chan; jj++) { + int index = ii * CONFIG_T::n_chan + jj; + acc[jj] += mult[index]; + } + } + +// Cast to "res_t" type +Result: + for (int ires = 0; ires < CONFIG_T::n_chan; ires++) { + #pragma HLS UNROLL + res[ires] = cast(acc[ires]); + } +} + +template +void depthwise_mult_buffer(hls::stream data_window[CONFIG_T::kernel_size * CONFIG_T::n_chan], + res_T &res_pack, hls::stream &res_stream, unsigned &outputs_ready, + typename CONFIG_T::weight_t weights[CONFIG_T::kernel_size * CONFIG_T::n_chan], + typename CONFIG_T::bias_t biases[CONFIG_T::n_chan]) { + #pragma HLS INLINE + + typename data_T::value_type data[CONFIG_T::kernel_size * CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable=data complete + typename res_T::value_type res[CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable=res complete + +InitData: + for (int id = 0; id < CONFIG_T::kernel_size * CONFIG_T::n_chan; id++) { + #pragma HLS UNROLL + data[id] = data_window[id].read(); + } + + #pragma HLS INLINE recursive + if (CONFIG_T::strategy == nnet::latency) { + depthwise_product(data, res, weights, biases); + } else { + assert("Resource strategy for DepthwiseConv2D is not supported." && false); + } + +CastLoop: + for (unsigned jj = 0; jj < CONFIG_T::n_chan; jj++) { + #pragma HLS UNROLL + if (res_T::size / CONFIG_T::n_chan == 1) { + res_pack[jj] = res[jj]; + } else { + res_pack[outputs_ready * CONFIG_T::n_chan + jj] = res[jj]; + } + } + + if (res_T::size / CONFIG_T::n_chan == 1) { + res_stream.write(res_pack); + } else { + if (outputs_ready == (res_T::size / CONFIG_T::n_chan) - 1) { + res_stream.write(res_pack); + outputs_ready = 0; + } else { + outputs_ready++; + } + } +} + +template +void compute_depthwise_output_encoded( + const data_T &in_elem, hls::stream data_window[CONFIG_T::kernel_size * CONFIG_T::n_chan], + hls::stream &res, res_T &res_pack, unsigned &outputs_ready, + typename CONFIG_T::weight_t weights[CONFIG_T::kernel_size * CONFIG_T::n_chan], + typename CONFIG_T::bias_t biases[CONFIG_T::n_chan], ap_uint *pixel_idx) { + #pragma HLS INLINE + +MultLoop: + for (unsigned p = 0; p < data_T::size / CONFIG_T::n_chan; p++) { + #pragma HLS PIPELINE II=CONFIG_T::reuse_factor + CopyDataFilt: + for (unsigned f = 0; f < CONFIG_T::kernel_size; f++) { + #pragma HLS UNROLL + CopyDataChan: + for (unsigned c = 0; c < CONFIG_T::n_chan; c++) { + #pragma HLS UNROLL + if (pixel_idx[p][f]) + data_window[f * CONFIG_T::n_chan + c].write(in_elem[p * CONFIG_T::n_chan + c]); + } + } + if (pixel_idx[p][CONFIG_T::kernel_size - 1]) { + depthwise_mult_buffer(data_window, res_pack, res, outputs_ready, weights, biases); + } + } +} + +template +void pointwise_mult_buffer(const data_T &data_pack, hls::stream &res_stream, + typename CONFIG_T::weight_t weights[CONFIG_T::n_chan * CONFIG_T::n_filt], + typename CONFIG_T::bias_t biases[CONFIG_T::n_filt]) { + #pragma HLS INLINE + + typename data_T::value_type data[CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable=data complete + + typename res_T::value_type res[CONFIG_T::n_filt]; + #pragma HLS ARRAY_PARTITION variable=res complete + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + +InitData: + for (int id = 0; id < CONFIG_T::n_chan; id++) { + #pragma HLS UNROLL + data[id] = data_pack[id]; + } + + #pragma HLS INLINE recursive + if (CONFIG_T::strategy == nnet::latency) { + dense_latency( + data, res, weights, biases); + } else { + dense_resource( + data, res, weights, biases); + } + +CastLoop: + for (unsigned jj = 0; jj < CONFIG_T::n_filt; jj++) { + #pragma HLS UNROLL + res_pack[jj] = res[jj]; + } + + res_stream.write(res_pack); +} + +// Line Buffer Implementation (Phil's) +template +void compute_depthwise_output_buffer_1d(const data_T &in_elem, hls::stream &res_stream, + typename CONFIG_T::weight_t weights[CONFIG_T::kernel_size * CONFIG_T::n_chan], + typename CONFIG_T::bias_t biases[CONFIG_T::n_chan]) { + #pragma HLS INLINE + + // Thresholds + const static int lShiftX = CONFIG_T::filt_width - 1; + + // Counters + static int pX = 0; + static int sX = 0; + + static typename data_T::value_type kernel_data[CONFIG_T::filt_width * CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable=kernel_data complete + + typename res_T::value_type res_out[CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable=res_out complete dim = 0 + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + + // Add pixel to buffer + nnet::kernel_shift_1d(in_elem, kernel_data); + + // Check to see if we have a full kernel + if ((sX - lShiftX) == 0 && pX > lShiftX - 1) { + // Dense multiply + #pragma HLS INLINE recursive + if (CONFIG_T::strategy == nnet::latency) { + depthwise_product(kernel_data, res_out, + weights, biases); + } else { + assert("Resource strategy for DepthwiseConv1D is not supported." && false); + } + + // Pack output + CastLoop: + for (unsigned i_ic = 0; i_ic < CONFIG_T::n_filt; i_ic++) { + #pragma HLS UNROLL + res_pack[i_ic] = res_out[i_ic]; + } + + // Write output to stream when output ready + res_stream.write(res_pack); + } + + // Pointer Housekeeping + if (pX + 1 == CONFIG_T::in_width) // Includes padding, end of line (padded) + { + pX = 0; + sX = 0; + } else { + pX = pX + 1; + sX = ((sX - lShiftX) == 0) ? sX - CONFIG_T::stride_width + 1 : sX + 1; + } +} + +template +void compute_depthwise_output_buffer_2d(const data_T &in_elem, + ap_shift_reg + line_buffer[MAX(CONFIG_T::filt_height - 1, 1)][CONFIG_T::n_chan], + hls::stream &res_stream, + typename CONFIG_T::weight_t weights[CONFIG_T::kernel_size * CONFIG_T::n_chan], + typename CONFIG_T::bias_t biases[CONFIG_T::n_chan]) { + #pragma HLS INLINE + + // Thresholds + const static int lShiftX = CONFIG_T::filt_width - 1; + const static int lShiftY = CONFIG_T::filt_height - 1; + + // counters + static int pX = 0; // pixel X + static int pY = 0; // pixel Y + + static int sX = 0; // stride X + static int sY = 0; // stride Y + + static typename data_T::value_type kernel_data[CONFIG_T::filt_height * CONFIG_T::filt_width * CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable=kernel_data complete + + typename res_T::value_type res_out[CONFIG_T::n_chan]; + #pragma HLS ARRAY_PARTITION variable=res_out complete dim = 0 + + res_T res_pack; + PRAGMA_DATA_PACK(res_pack) + + // Add pixel to buffer + nnet::shift_line_buffer(in_elem, line_buffer, kernel_data); + + // Check to see if we have a full kernel + if ((sX - lShiftX) == 0 && (sY - lShiftY) == 0 && pY > lShiftY - 1 && pX > lShiftX - 1) { + // Dense multiply + #pragma HLS INLINE recursive + if (CONFIG_T::strategy == nnet::latency) { + depthwise_product(kernel_data, res_out, + weights, biases); + } else { + assert("Resource strategy for DepthwiseConv2D is not supported." && false); + } + + // Pack output + CastLoop: + for (unsigned i_ic = 0; i_ic < CONFIG_T::n_filt; i_ic++) { + #pragma HLS UNROLL + res_pack[i_ic] = res_out[i_ic]; + } + + // Write output to stream when output ready + res_stream.write(res_pack); + } + + // Pointer Housekeeping + if (pX + 1 == CONFIG_T::in_width) // Includes padding, end of line (padded) + { + pX = 0; + sX = 0; + if (pY + 1 == CONFIG_T::in_height) { // Reached bottom of image + pY = 0; + sY = 0; + } else { + pY = pY + 1; + sY = ((sY - lShiftY) == 0) ? sY - CONFIG_T::stride_height + 1 : sY + 1; + } + } else { + pX = pX + 1; + sX = ((sX - lShiftX) == 0) ? sX - CONFIG_T::stride_width + 1 : sX + 1; + } +} + +} // namespace nnet +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_stream.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_stream.h new file mode 100644 index 00000000..900db16c --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_stream.h @@ -0,0 +1,207 @@ + +#ifndef NNET_STREAM_H +#define NNET_STREAM_H + +#include "hls_stream.h" +#include "nnet_common.h" + +namespace nnet { + +struct broadcast_config { + static const unsigned in_height = 1; + static const unsigned in_width = 1; + static const unsigned in_chan = 3; + static const unsigned out_height = 2; + static const unsigned out_width = 2; + static const unsigned out_chan = 3; +}; + +template +void clone_stream(hls::stream &data, hls::stream &res1, hls::stream &res2) { +CloneLoop: + for (int i = 0; i < N / data_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data1; + res_T out_data2; + PRAGMA_DATA_PACK(out_data1) + PRAGMA_DATA_PACK(out_data2) + + ClonePack: + for (int j = 0; j < data_T::size; j++) { + #pragma HLS UNROLL + out_data1[j] = in_data[j]; + out_data2[j] = in_data[j]; + } + + res1.write(out_data1); + res2.write(out_data2); + } +} + +template +void clone_stream(hls::stream &data, hls::stream &res1, hls::stream &res2, hls::stream &res3) { +CloneLoop: + for (int i = 0; i < N / data_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data1; + res_T out_data2; + res_T out_data3; + PRAGMA_DATA_PACK(out_data1) + PRAGMA_DATA_PACK(out_data2) + PRAGMA_DATA_PACK(out_data3) + + ClonePack: + for (int j = 0; j < data_T::size; j++) { + #pragma HLS UNROLL + out_data1[j] = in_data[j]; + out_data2[j] = in_data[j]; + out_data3[j] = in_data[j]; + } + + res1.write(out_data1); + res2.write(out_data2); + res3.write(out_data3); + } +} + +template void repack_stream(hls::stream &data, hls::stream &res) { + if (data_T::size == res_T::size) { + for (int i = 0; i < N / data_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + for (int j = 0; j < data_T::size; j++) { + #pragma HLS UNROLL + out_data[j] = in_data[j]; + } + + res.write(out_data); + } + } else if (data_T::size > res_T::size) { + constexpr unsigned pack_diff = data_T::size / res_T::size; + for (int i = 0; i < N / data_T::size; i++) { + if (N / data_T::size > 1) { + #pragma HLS PIPELINE + } + + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + + for (int j = 0; j < pack_diff; j++) { + #pragma HLS PIPELINE + + res_T out_data; + for (int k = 0; k < res_T::size; k++) { + #pragma HLS UNROLL + out_data[k] = in_data[j * res_T::size + k]; + } + res.write(out_data); + } + } + } else { // data_T::size < res_T::size + res_T out_data; + constexpr unsigned pack_diff = res_T::size / data_T::size; + unsigned pack_cnt = 0; + for (int i = 0; i < N / data_T::size; i++) { + #pragma HLS PIPELINE + + data_T in_data = data.read(); + for (int j = 0; j < data_T::size; j++) { + #pragma HLS UNROLL + out_data[pack_cnt * data_T::size + j] = in_data[j]; + } + + if (pack_cnt == pack_diff - 1) { + res.write(out_data); + pack_cnt = 0; + } else { + pack_cnt++; + } + } + } +} + +template +void broadcast_stream_1x1xC(hls::stream &data, hls::stream &res) { + assert(CONFIG_T::in_height == 1 && CONFIG_T::in_width == 1 && CONFIG_T::in_chan == CONFIG_T::out_chan); + int n_dupl = (CONFIG_T::out_height * CONFIG_T::out_width * CONFIG_T::out_chan) / + (CONFIG_T::in_height * CONFIG_T::in_width * CONFIG_T::in_chan); +BroadcastLoop: + for (int i = 0; i < CONFIG_T::in_height * CONFIG_T::in_width * CONFIG_T::in_chan / data_T::size; i++) { + #pragma HLS PIPELINE + data_T in_data = data.read(); + for (int j = 0; j < n_dupl; j++) { + #pragma HLS PIPELINE + res_T out_data; + PRAGMA_DATA_PACK(out_data) + for (int k = 0; k < res_T::size; k++) { + #pragma HLS UNROLL + out_data[k] = in_data[k]; + } + res.write(out_data); + } + } +} + +template +void broadcast_stream_HxWx1(hls::stream &data, hls::stream &res) { + assert(CONFIG_T::in_chan == 1 && CONFIG_T::in_height == CONFIG_T::out_height && + CONFIG_T::in_width == CONFIG_T::out_width); +BroadcastLoop: + for (int i = 0; i < CONFIG_T::in_height * CONFIG_T::in_width * CONFIG_T::in_chan / data_T::size; i++) { + #pragma HLS PIPELINE + data_T in_data = data.read(); + res_T out_data; + PRAGMA_DATA_PACK(out_data) + for (int k = 0; k < res_T::size; k++) { + #pragma HLS UNROLL + out_data[k] = in_data[0]; + } + res.write(out_data); + } +} + +template +void broadcast_stream(hls::stream &data, hls::stream &res) { + if (CONFIG_T::in_height == 1 && CONFIG_T::in_width == 1 && CONFIG_T::in_chan == CONFIG_T::out_chan) { + broadcast_stream_1x1xC(data, res); + } else if (CONFIG_T::in_chan == 1 && CONFIG_T::in_height == CONFIG_T::out_height && + CONFIG_T::in_width == CONFIG_T::out_width) { + broadcast_stream_HxWx1(data, res); + } +} + +template +void transpose_2d(hls::stream &data, hls::stream &res) { + typename data_T::value_type data_array[CONFIG_T::height * CONFIG_T::width]; + #pragma HLS ARRAY_PARTITION variable=data_array complete + + for (int i = 0; i < CONFIG_T::height * CONFIG_T::width / data_T::size; i++) { + #pragma HLS PIPELINE + data_T in_data = data.read(); + for (int j = 0; j < data_T::size; j++) { + data_array[i * data_T::size + j] = typename data_T::value_type(in_data[j]); + } + } + + for (int i = 0; i < CONFIG_T::height * CONFIG_T::width / res_T::size; i++) { + #pragma HLS PIPELINE + res_T out_data; + PRAGMA_DATA_PACK(out_data) + for (int j = 0; j < res_T::size; j++) { + out_data[j] = typename res_T::value_type(data_array[j * data_T::size + i]); + } + res.write(out_data); + } +} +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_types.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_types.h new file mode 100644 index 00000000..0fcac134 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/nnet_utils/nnet_types.h @@ -0,0 +1,64 @@ +#ifndef NNET_TYPES_H_ +#define NNET_TYPES_H_ + +#include +#include +#include + +namespace nnet { + +// Fixed-size array +template struct array { + typedef T value_type; + static const unsigned size = N; + + T data[N]; + + T &operator[](size_t pos) { return data[pos]; } + + const T &operator[](size_t pos) const { return data[pos]; } + + array &operator=(const array &other) { + if (&other == this) + return *this; + + assert(N == other.size && "Array sizes must match."); + + for (unsigned i = 0; i < N; i++) { + #pragma HLS UNROLL + data[i] = other[i]; + } + return *this; + } +}; + +// Generic lookup-table implementation, for use in approximations of math functions +template class lookup_table { + public: + lookup_table(T from, T to) : range_start(from), range_end(to), base_div(ap_uint<16>(N) / T(to - from)) { + T step = (range_end - range_start) / ap_uint<16>(N); + for (size_t i = 0; i < N; i++) { + T num = range_start + ap_uint<16>(i) * step; + T sample = func(num); + samples[i] = sample; + } + } + + T operator()(T n) const { + int index = (n - range_start) * base_div; + if (index < 0) + index = 0; + else if (index > N - 1) + index = N - 1; + return samples[index]; + } + + private: + T samples[N]; + const T range_start, range_end; + ap_fixed<20, 16> base_div; +}; + +} // namespace nnet + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/parameters.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/parameters.h new file mode 100644 index 00000000..9d4d11a0 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/parameters.h @@ -0,0 +1,247 @@ +#ifndef PARAMETERS_H_ +#define PARAMETERS_H_ + +#include "ap_fixed.h" +#include "ap_int.h" + +#include "nnet_utils/nnet_code_gen.h" +#include "nnet_utils/nnet_helpers.h" +// hls-fpga-machine-learning insert includes +#include "nnet_utils/nnet_activation.h" +#include "nnet_utils/nnet_activation_stream.h" +#include "nnet_utils/nnet_conv1d.h" +#include "nnet_utils/nnet_embed.h" +#include "nnet_utils/nnet_embed_stream.h" +#include "nnet_utils/nnet_merge.h" +#include "nnet_utils/nnet_merge_stream.h" +#include "nnet_utils/nnet_pooling.h" +#include "nnet_utils/nnet_pooling_stream.h" +#include "nnet_utils/nnet_sepconv1d_stream.h" + +// hls-fpga-machine-learning insert weights +#include "weights/e3.h" +#include "weights/e4.h" +#include "weights/w22.h" +#include "weights/b22.h" +#include "weights/w23.h" +#include "weights/b23.h" +#include "weights/w24.h" +#include "weights/b24.h" + +// hls-fpga-machine-learning insert layer-config +// embedding0 +struct config3 : nnet::embed_config { + static const unsigned n_in = 100; + static const unsigned n_out = 2; + static const unsigned vocab_size = 6; + static const unsigned io_type = nnet::io_parallel; + static const unsigned reuse_factor = 1; + typedef embedding0_embeddings_t embeddings_t; +}; + +// embedding1 +struct config4 : nnet::embed_config { + static const unsigned n_in = 100; + static const unsigned n_out = 2; + static const unsigned vocab_size = 4; + static const unsigned io_type = nnet::io_parallel; + static const unsigned reuse_factor = 1; + typedef embedding1_embeddings_t embeddings_t; +}; + +// concatenate +struct config6 : nnet::concat_config { + static const unsigned n_elem1_0 = 100; + static const unsigned n_elem1_1 = 2; + static const unsigned n_elem1_2 = 0; + static const unsigned n_elem2_0 = 100; + static const unsigned n_elem2_1 = 2; + static const unsigned n_elem2_2 = 0; + + static const int axis = -1; +}; + +// concatenate_1 +struct config7 : nnet::concat_config { + static const unsigned n_elem1_0 = 100; + static const unsigned n_elem1_1 = 4; + static const unsigned n_elem1_2 = 0; + static const unsigned n_elem2_0 = 100; + static const unsigned n_elem2_1 = 4; + static const unsigned n_elem2_2 = 0; + + static const int axis = -1; +}; + +// dense +struct config22_mult : nnet::dense_config { + static const unsigned n_in = 8; + static const unsigned n_out = 12; + static const unsigned reuse_factor = 1; + static const unsigned strategy = nnet::latency; + static const unsigned n_zeros = 0; + static const unsigned multiplier_limit = DIV_ROUNDUP(n_in * n_out, reuse_factor) - n_zeros / reuse_factor; + typedef model_default_t accum_t; + typedef dense_bias_t bias_t; + typedef dense_weight_t weight_t; + template + using product = nnet::product::mult; +}; + +struct config22 : nnet::conv1d_config { + static const unsigned pad_left = 0; + static const unsigned pad_right = 0; + static const unsigned in_width = 100; + static const unsigned n_chan = 8; + static const unsigned filt_width = 1; + static const unsigned kernel_size = filt_width; + static const unsigned n_filt = 12; + static const unsigned stride_width = 1; + static const unsigned dilation = 1; + static const unsigned out_width = 100; + static const unsigned reuse_factor = 1; + static const unsigned n_zeros = 0; + static const bool store_weights_in_bram = false; + static const unsigned strategy = nnet::latency; + static const nnet::conv_implementation implementation = nnet::conv_implementation::linebuffer; + static const unsigned min_width = 100; + static const ap_uint pixels[min_width]; + static const unsigned n_partitions = 100; + static const unsigned n_pixels = out_width / n_partitions; + template + using fill_buffer = nnet::fill_buffer_22; + typedef model_default_t accum_t; + typedef dense_bias_t bias_t; + typedef dense_weight_t weight_t; + typedef config22_mult mult_config; + template + using scale_index = nnet::scale_index_unscaled; +}; +const ap_uint config22::pixels[] = {0}; + +// activation +struct tanh_config11 : nnet::activ_config { + static const unsigned n_in = 1200; + static const unsigned table_size = 1024; + static const unsigned io_type = nnet::io_parallel; + static const unsigned reuse_factor = 1; + typedef activation_table_t table_t; +}; + +// dense_1 +struct config23_mult : nnet::dense_config { + static const unsigned n_in = 12; + static const unsigned n_out = 36; + static const unsigned reuse_factor = 1; + static const unsigned strategy = nnet::latency; + static const unsigned n_zeros = 0; + static const unsigned multiplier_limit = DIV_ROUNDUP(n_in * n_out, reuse_factor) - n_zeros / reuse_factor; + typedef model_default_t accum_t; + typedef dense_1_bias_t bias_t; + typedef dense_1_weight_t weight_t; + template + using product = nnet::product::mult; +}; + +struct config23 : nnet::conv1d_config { + static const unsigned pad_left = 0; + static const unsigned pad_right = 0; + static const unsigned in_width = 100; + static const unsigned n_chan = 12; + static const unsigned filt_width = 1; + static const unsigned kernel_size = filt_width; + static const unsigned n_filt = 36; + static const unsigned stride_width = 1; + static const unsigned dilation = 1; + static const unsigned out_width = 100; + static const unsigned reuse_factor = 1; + static const unsigned n_zeros = 0; + static const bool store_weights_in_bram = false; + static const unsigned strategy = nnet::latency; + static const nnet::conv_implementation implementation = nnet::conv_implementation::linebuffer; + static const unsigned min_width = 100; + static const ap_uint pixels[min_width]; + static const unsigned n_partitions = 100; + static const unsigned n_pixels = out_width / n_partitions; + template + using fill_buffer = nnet::fill_buffer_23; + typedef model_default_t accum_t; + typedef dense_1_bias_t bias_t; + typedef dense_1_weight_t weight_t; + typedef config23_mult mult_config; + template + using scale_index = nnet::scale_index_unscaled; +}; +const ap_uint config23::pixels[] = {0}; + +// activation_1 +struct tanh_config15 : nnet::activ_config { + static const unsigned n_in = 3600; + static const unsigned table_size = 1024; + static const unsigned io_type = nnet::io_parallel; + static const unsigned reuse_factor = 1; + typedef activation_1_table_t table_t; +}; + +// met_weight +struct config24_mult : nnet::dense_config { + static const unsigned n_in = 36; + static const unsigned n_out = 1; + static const unsigned reuse_factor = 1; + static const unsigned strategy = nnet::latency; + static const unsigned n_zeros = 0; + static const unsigned multiplier_limit = DIV_ROUNDUP(n_in * n_out, reuse_factor) - n_zeros / reuse_factor; + typedef model_default_t accum_t; + typedef met_weight_bias_t bias_t; + typedef met_weight_weight_t weight_t; + template + using product = nnet::product::mult; +}; + +struct config24 : nnet::conv1d_config { + static const unsigned pad_left = 0; + static const unsigned pad_right = 0; + static const unsigned in_width = 100; + static const unsigned n_chan = 36; + static const unsigned filt_width = 1; + static const unsigned kernel_size = filt_width; + static const unsigned n_filt = 1; + static const unsigned stride_width = 1; + static const unsigned dilation = 1; + static const unsigned out_width = 100; + static const unsigned reuse_factor = 1; + static const unsigned n_zeros = 0; + static const bool store_weights_in_bram = false; + static const unsigned strategy = nnet::latency; + static const nnet::conv_implementation implementation = nnet::conv_implementation::linebuffer; + static const unsigned min_width = 100; + static const ap_uint pixels[min_width]; + static const unsigned n_partitions = 100; + static const unsigned n_pixels = out_width / n_partitions; + template + using fill_buffer = nnet::fill_buffer_24; + typedef model_default_t accum_t; + typedef met_weight_bias_t bias_t; + typedef met_weight_weight_t weight_t; + typedef config24_mult mult_config; + template + using scale_index = nnet::scale_index_unscaled; +}; +const ap_uint config24::pixels[] = {0}; + +// multiply +struct config20 : nnet::merge_config { + static const unsigned n_elem = N_OUTPUTS_24*N_FILT_24; +}; + +// output +struct config21 : nnet::pooling1d_config { + static const unsigned n_in = 100; + static const unsigned n_filt = 2; + static const nnet::Pool_Op pool_op = nnet::Average; + static const unsigned reuse_factor = 1; + typedef model_default_t accum_t; +}; + + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b22.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b22.h new file mode 100644 index 00000000..e9c30326 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b22.h @@ -0,0 +1,15 @@ +//Numpy array shape [12] +//Min -0.455119371414 +//Max 0.398226708174 +//Number of zeros 0 + +#ifndef B22_H_ +#define B22_H_ + +#ifndef __SYNTHESIS__ +dense_bias_t b22[12]; +#else +dense_bias_t b22[12] = {-0.227416396141052, -0.321803480386734, -0.105886071920395, 0.004980653524399, -1.102990508079529, 1.840189456939697, -0.065355993807316, -0.420345693826675, -0.125013768672943, -0.633407652378082, 0.452038317918777, -0.057287767529488}; +#endif + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b22.txt b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b22.txt new file mode 100644 index 00000000..c6c56a2f --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b22.txt @@ -0,0 +1 @@ +-0.227416396141052, -0.321803480386734, -0.105886071920395, 0.004980653524399, -1.102990508079529, 1.840189456939697, -0.065355993807316, -0.420345693826675, -0.125013768672943, -0.633407652378082, 0.452038317918777, -0.057287767529488 \ No newline at end of file diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b23.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b23.h new file mode 100644 index 00000000..2665bfe2 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b23.h @@ -0,0 +1,15 @@ +//Numpy array shape [36] +//Min -0.522930324078 +//Max 0.388318747282 +//Number of zeros 0 + +#ifndef B23_H_ +#define B23_H_ + +#ifndef __SYNTHESIS__ +dense_1_bias_t b23[36]; +#else +dense_1_bias_t b23[36] = {-28.527759552001953, -6.611515045166016, -14.351591110229492, -3.294915914535522, 14.957226753234863, -5.450253486633301, -5.768840312957764, 1.048536539077759, -1.573255777359009, -4.288578033447266, -2.320878744125366, 2.320586442947388, -2.193000793457031, 14.887507438659668, 2.135548591613770, -6.345302581787109, 1.965700864791870, -6.714401245117188, -1.507563710212708, -7.482578754425049, -5.760603904724121, -8.901734352111816, 4.178072929382324, -7.702874183654785, -5.517005920410156, 2.493387222290039, -5.700569152832031, 3.564873695373535, 1.121586322784424, 8.881909370422363, 6.257650375366211, -0.310464382171631, 1.509941101074219, 5.575150012969971, -4.270040988922119, 4.464414119720459}; +#endif + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b23.txt b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b23.txt new file mode 100644 index 00000000..e14f7cf8 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b23.txt @@ -0,0 +1 @@ +-28.527759552001953, -6.611515045166016, -14.351591110229492, -3.294915914535522, 14.957226753234863, -5.450253486633301, -5.768840312957764, 1.048536539077759, -1.573255777359009, -4.288578033447266, -2.320878744125366, 2.320586442947388, -2.193000793457031, 14.887507438659668, 2.135548591613770, -6.345302581787109, 1.965700864791870, -6.714401245117188, -1.507563710212708, -7.482578754425049, -5.760603904724121, -8.901734352111816, 4.178072929382324, -7.702874183654785, -5.517005920410156, 2.493387222290039, -5.700569152832031, 3.564873695373535, 1.121586322784424, 8.881909370422363, 6.257650375366211, -0.310464382171631, 1.509941101074219, 5.575150012969971, -4.270040988922119, 4.464414119720459 \ No newline at end of file diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b24.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b24.h new file mode 100644 index 00000000..9daede16 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b24.h @@ -0,0 +1,15 @@ +//Numpy array shape [1] +//Min 3.417605638504 +//Max 3.417605638504 +//Number of zeros 0 + +#ifndef B24_H_ +#define B24_H_ + +#ifndef __SYNTHESIS__ +met_weight_bias_t b24[1]; +#else +met_weight_bias_t b24[1] = {2.417605638504028}; +#endif + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b24.txt b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b24.txt new file mode 100644 index 00000000..42659b3e --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/b24.txt @@ -0,0 +1 @@ +2.417605638504028 \ No newline at end of file diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e3.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e3.h new file mode 100644 index 00000000..34773dd1 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e3.h @@ -0,0 +1,15 @@ +//Numpy array shape [6, 2] +//Min -2.672395467758 +//Max 2.548557043076 +//Number of zeros 0 + +#ifndef E3_H_ +#define E3_H_ + +#ifndef __SYNTHESIS__ +embedding0_embeddings_t e3[12]; +#else +embedding0_embeddings_t e3[12] = {1.620906114578247, -0.427226632833481, -2.672395467758179, -0.035970680415630, 2.548557043075562, 0.323681503534317, 1.538867950439453, 1.997532844543457, -0.704283535480499, 0.116950742900372, -0.906534552574158, 0.974053442478180}; +#endif + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e3.txt b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e3.txt new file mode 100644 index 00000000..3c0038cb --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e3.txt @@ -0,0 +1 @@ +1.620906114578247, -0.427226632833481, -2.672395467758179, -0.035970680415630, 2.548557043075562, 0.323681503534317, 1.538867950439453, 1.997532844543457, -0.704283535480499, 0.116950742900372, -0.906534552574158, 0.974053442478180 \ No newline at end of file diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e4.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e4.h new file mode 100644 index 00000000..5835c2a4 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e4.h @@ -0,0 +1,15 @@ +//Numpy array shape [4, 2] +//Min -1.666811108589 +//Max 1.295734167099 +//Number of zeros 0 + +#ifndef E4_H_ +#define E4_H_ + +#ifndef __SYNTHESIS__ +embedding1_embeddings_t e4[8]; +#else +embedding1_embeddings_t e4[8] = {1.295734167098999, 0.254000633955002, -1.661195635795593, 0.048672962933779, -0.138032227754593, -0.875923097133636, -1.666811108589172, 0.035932607948780}; +#endif + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e4.txt b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e4.txt new file mode 100644 index 00000000..d6d8ec98 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/e4.txt @@ -0,0 +1 @@ +1.295734167098999, 0.254000633955002, -1.661195635795593, 0.048672962933779, -0.138032227754593, -0.875923097133636, -1.666811108589172, 0.035932607948780 \ No newline at end of file diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w22.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w22.h new file mode 100644 index 00000000..2716062b --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w22.h @@ -0,0 +1,15 @@ +//Numpy array shape [8, 12] +//Min -3.111060142517 +//Max 1.904985547066 +//Number of zeros 0 + +#ifndef W22_H_ +#define W22_H_ + +#ifndef __SYNTHESIS__ +dense_weight_t w22[96]; +#else +dense_weight_t w22[96] = {-0.005496513564140, -0.077705480158329, -0.291069507598877, 0.003703390946612, 0.009928826242685, 0.002178243128583, 0.007691420149058, -0.122642949223518, -0.004901545587927, 0.184459403157234, 0.077915966510773, -0.002935178112239, -0.630976676940918, -0.129218742251396, 0.172030463814735, -0.613496303558350, -0.006485627032816, -0.007314948830754, -0.013219951651990, 0.035634342581034, 0.011636621318758, -0.013739237561822, -0.052910525351763, 0.007741326466203, -0.003901405725628, 0.006636092904955, 0.014814227819443, 0.002152013825253, -0.000235362793319, -0.003903909819201, 0.000954345799983, 0.004304980859160, -0.000281526794424, 0.014572271145880, -0.007630184758455, 0.001944163814187, -0.545304834842682, 0.224154502153397, 1.193614006042480, 0.672130286693573, 0.079618625342846, -0.729031324386597, 1.117634415626526, 0.088703706860542, 0.263513863086700, 0.946384370326996, 0.078555844724178, 0.085146762430668, -0.199110791087151, -0.093624226748943, 0.001692321849987, 0.204557403922081, 0.073481321334839, 0.260788798332214, -0.122535862028599, -0.085562728345394, 0.025333112105727, -0.131282433867455, -0.406875669956207, -0.066440477967262, -0.042630787938833, 0.427074193954468, 1.956082224845886, 0.046955518424511, 0.030683849006891, 0.232642397284508, -0.598365366458893, -0.853525161743164, -0.292229890823364, -2.031559944152832, 0.012307391501963, 0.127083599567413, 0.060593571513891, -0.268928855657578, -0.487386792898178, -0.127690494060516, -0.012389726005495, 0.656857013702393, 0.665676295757294, -0.315022528171539, -0.161770179867744, 0.515646219253540, -0.374600380659103, -0.031053755432367, 0.023489914834499, -0.527695715427399, -0.117961816489697, -0.055053103715181, -0.132891759276390, -0.345012873411179, -0.197673514485359, 0.346816360950470, 0.160986021161079, -0.146570160984993, -0.089796856045723, -0.088734544813633}; +#endif + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w22.txt b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w22.txt new file mode 100644 index 00000000..e518ed71 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w22.txt @@ -0,0 +1 @@ +-0.005496513564140, -0.077705480158329, -0.291069507598877, 0.003703390946612, 0.009928826242685, 0.002178243128583, 0.007691420149058, -0.122642949223518, -0.004901545587927, 0.184459403157234, 0.077915966510773, -0.002935178112239, -0.630976676940918, -0.129218742251396, 0.172030463814735, -0.613496303558350, -0.006485627032816, -0.007314948830754, -0.013219951651990, 0.035634342581034, 0.011636621318758, -0.013739237561822, -0.052910525351763, 0.007741326466203, -0.003901405725628, 0.006636092904955, 0.014814227819443, 0.002152013825253, -0.000235362793319, -0.003903909819201, 0.000954345799983, 0.004304980859160, -0.000281526794424, 0.014572271145880, -0.007630184758455, 0.001944163814187, -0.545304834842682, 0.224154502153397, 1.193614006042480, 0.672130286693573, 0.079618625342846, -0.729031324386597, 1.117634415626526, 0.088703706860542, 0.263513863086700, 0.946384370326996, 0.078555844724178, 0.085146762430668, -0.199110791087151, -0.093624226748943, 0.001692321849987, 0.204557403922081, 0.073481321334839, 0.260788798332214, -0.122535862028599, -0.085562728345394, 0.025333112105727, -0.131282433867455, -0.406875669956207, -0.066440477967262, -0.042630787938833, 0.427074193954468, 1.956082224845886, 0.046955518424511, 0.030683849006891, 0.232642397284508, -0.598365366458893, -0.853525161743164, -0.292229890823364, -2.031559944152832, 0.012307391501963, 0.127083599567413, 0.060593571513891, -0.268928855657578, -0.487386792898178, -0.127690494060516, -0.012389726005495, 0.656857013702393, 0.665676295757294, -0.315022528171539, -0.161770179867744, 0.515646219253540, -0.374600380659103, -0.031053755432367, 0.023489914834499, -0.527695715427399, -0.117961816489697, -0.055053103715181, -0.132891759276390, -0.345012873411179, -0.197673514485359, 0.346816360950470, 0.160986021161079, -0.146570160984993, -0.089796856045723, -0.088734544813633 \ No newline at end of file diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w23.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w23.h new file mode 100644 index 00000000..ed36b365 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w23.h @@ -0,0 +1,15 @@ +//Numpy array shape [12, 36] +//Min -1.362776517868 +//Max 1.903477072716 +//Number of zeros 0 + +#ifndef W23_H_ +#define W23_H_ + +#ifndef __SYNTHESIS__ +dense_1_weight_t w23[432]; +#else +dense_1_weight_t w23[432] = {-34.272384643554688, -15.242276191711426, -12.153550148010254, -0.517302453517914, 16.459009170532227, -0.927374601364136, -16.420297622680664, 2.281730651855469, -10.332298278808594, 1.368979692459106, -14.852247238159180, 2.289415359497070, 4.450272083282471, 15.091560363769531, 13.234894752502441, 5.019698619842529, 0.659490466117859, -10.297682762145996, -6.819073200225830, 0.061284162104130, -17.845451354980469, -12.342288970947266, 9.018982887268066, -7.944165229797363, -9.916581153869629, -9.689590454101562, 1.593392252922058, -0.548580884933472, 2.834589481353760, 13.109604835510254, -13.948617935180664, 4.110248565673828, -2.018397331237793, -6.860967636108398, 2.082887887954712, -1.957600474357605, -0.321475505828857, 0.820872783660889, 2.677054405212402, -1.768133521080017, -1.177917003631592, -1.118692636489868, 3.211776494979858, -3.037288188934326, 5.288896083831787, -0.581319391727448, 0.694460690021515, 0.631229758262634, 3.280242681503296, 6.218200206756592, -2.129676103591919, 8.349854469299316, 1.471119880676270, 7.490054130554199, 0.753753662109375, -0.399599075317383, 2.416818141937256, 1.339800357818604, -0.718787252902985, 0.338143020868301, 1.145107865333557, 5.754922389984131, -4.704513549804688, -1.252747058868408, 0.465840101242065, -3.112505197525024, 4.487011432647705, -0.808801710605621, 7.409661293029785, -8.000079154968262, 0.356041222810745, -1.234661579132080, -13.651395797729492, 4.551627635955811, 3.547161102294922, -1.346346378326416, -6.481750965118408, 0.371593445539474, -0.909239649772644, 0.803896009922028, -0.864329278469086, -0.167551159858704, 1.271770358085632, 0.128098145127296, -0.319244086742401, -8.963575363159180, -4.575497150421143, -4.347470760345459, 0.099872648715973, 1.076389431953430, 1.537157297134399, -0.342850208282471, -3.088666439056396, 1.880550146102905, -2.499561071395874, 0.960815191268921, 1.989226579666138, 5.396582126617432, 4.611053466796875, 1.478802204132080, -0.381258249282837, -1.447740316390991, -0.485423654317856, 1.209582686424255, -6.765387535095215, 0.879579961299896, 3.126605033874512, -1.396452188491821, 35.301498413085938, 16.390518188476562, 10.991186141967773, 0.457286953926086, -16.055135726928711, 0.732447206974030, 12.833724975585938, -0.869582533836365, 5.935638427734375, 2.171858549118042, 15.994698524475098, -1.975315093994141, -0.577428340911865, -16.300628662109375, -12.036094665527344, -12.248717308044434, -0.296559274196625, 9.253703117370605, 7.236478328704834, 0.100461378693581, 15.662371635437012, 13.149472236633301, -9.011061668395996, 9.156368255615234, 9.083997726440430, 8.143834114074707, 6.395058631896973, 0.768283843994141, -2.189213037490845, -12.856546401977539, 10.946484565734863, -3.122458934783936, 2.356916427612305, 10.203166007995605, 3.314955234527588, 2.006448984146118, -4.138628959655762, 9.784881591796875, -7.701581478118896, -2.161497592926025, 5.081796169281006, 0.722472250461578, -6.947623729705811, 0.428102672100067, -1.017104268074036, -5.616028785705566, 7.207549571990967, -3.425596952438354, -0.324499905109406, -1.508072257041931, -0.423026353120804, -6.807011127471924, -2.165873289108276, -6.257976055145264, -1.110751748085022, -0.680330693721771, -8.726241111755371, 6.876333713531494, 0.122669994831085, -6.020811080932617, -1.936614274978638, 7.679961681365967, 6.832388401031494, 2.089343547821045, -5.815147399902344, 1.034743905067444, 6.128062248229980, 3.326957702636719, -6.113448143005371, 0.656117796897888, -0.316450953483582, 0.792564570903778, 10.708021163940430, 10.246310234069824, -4.989016532897949, -2.966490268707275, 4.010641574859619, 1.000328898429871, -35.920978546142578, -1.863970279693604, 1.379239320755005, -0.364904999732971, 3.232958555221558, -0.646893203258514, 4.449232578277588, -6.601441383361816, 7.810013294219971, 0.764219939708710, -0.887412309646606, 4.851296424865723, -3.773882389068604, 0.953490376472473, -28.108135223388672, 7.164631843566895, 5.078193187713623, -4.744826793670654, -7.120871067047119, -7.749808311462402, 10.820018768310547, 0.171118795871735, -1.084927797317505, 1.892885923385620, -28.651664733886719, 10.953318595886230, -5.435957431793213, -21.623348236083984, 2.465915918350220, -8.539632797241211, -7.903433799743652, -3.474239349365234, 0.243321105837822, -0.380062937736511, 5.332633972167969, 2.151208877563477, 2.022930383682251, -1.463849902153015, -2.719141244888306, -1.985015749931335, 1.754704952239990, -3.623456001281738, 4.132822036743164, -2.998028755187988, 4.864254474639893, 7.019001007080078, -2.887226343154907, -2.157429456710815, -13.182174682617188, -0.038866952061653, -5.827670574188232, 5.151016235351562, 2.542974710464478, -12.306578636169434, -1.044925689697266, 11.257448196411133, -1.981187462806702, -1.172790408134460, -1.593691825866699, 5.988854408264160, 11.212390899658203, 6.184563636779785, 1.851197481155396, -7.376731395721436, 2.947922706604004, -3.116251468658447, 9.032855033874512, 11.189463615417480, -14.047230720520020, -1.882185339927673, 13.061312675476074, -3.894136667251587, -18.382831573486328, 5.108212947845459, 1.680236458778381, 5.855550289154053, 1.753978013992310, 8.817825317382812, 4.784208774566650, -9.456546783447266, 6.749723434448242, -3.826550960540771, 8.439210891723633, 2.381058931350708, -6.254682064056396, 0.979307055473328, -12.932164192199707, 6.614181041717529, 7.724326133728027, -8.186627388000488, -11.564584732055664, -5.705511093139648, 0.615724623203278, 2.294805049896240, 8.561786651611328, 10.862165451049805, -11.637836456298828, 8.550187110900879, -2.799665927886963, -4.847795963287354, 2.903936386108398, -6.381844997406006, 6.450922012329102, 26.763093948364258, 3.013844728469849, -0.924964666366577, -6.920816898345947, -2.560798168182373, -34.196998596191406, 1.623008966445923, 10.048088073730469, 0.985973894596100, 23.329315185546875, 1.722676992416382, -0.090961724519730, -5.953221797943115, 0.280752390623093, -14.521141052246094, 1.948345661163330, 6.979897975921631, 4.035674571990967, 1.044640779495239, -19.007211685180664, 21.142364501953125, -1.837882161140442, 2.050447940826416, 1.542031645774841, -7.565482616424561, 26.773376464843750, 0.171006053686142, 3.358534336090088, -8.234274864196777, -27.216566085815430, 7.212102413177490, -5.000186920166016, -20.917554855346680, 2.152885198593140, -3.181938886642456, 10.018072128295898, 6.692709445953369, 7.562778472900391, -0.397445559501648, -11.695134162902832, 1.699540257453918, 1.424039125442505, -1.628181338310242, 4.050493717193604, 0.047106776386499, -0.717159509658813, -3.311089277267456, -2.847960948944092, -9.831811904907227, -7.529915332794189, -2.769558668136597, -2.932808637619019, 6.914423465728760, 13.812906265258789, 0.466079294681549, -0.697627902030945, 0.283607631921768, -7.250504493713379, 13.122053146362305, 4.825413227081299, 2.828585863113403, 6.724539756774902, -0.596229493618011, -4.759947776794434, -9.946646690368652, -2.232836484909058, -3.401717901229858, -1.199927449226379, 3.097918748855591, 0.726092457771301, 1.352552175521851, -1.831664323806763, -6.564773082733154, 1.155098319053650, -2.088497400283813, -0.057716656476259, -0.293432414531708, -5.829917907714844, -2.137289047241211, 2.680857658386230, -3.795029640197754, 0.601609170436859, -2.534255266189575, 0.599966049194336, 9.936664581298828, -1.825383901596069, 2.551906108856201, -2.613932371139526, 5.252158164978027, -0.459596127271652, -1.080929756164551, -5.785776615142822, -4.251605510711670, 1.853045225143433, 1.728189826011658, -1.679710865020752, 3.655097484588623, -4.362958908081055, 1.981420755386353, -4.094293117523193, 0.941113770008087, -7.290192604064941, 2.577519655227661, 0.405787110328674, -5.861212253570557, -2.390504837036133, -4.859991073608398, 21.085351943969727, 2.001378059387207, -24.684366226196289, -4.457293987274170, 22.137004852294922, -1.187330603599548, -37.353851318359375, -1.755694746971130, 1.482097148895264, -1.574132204055786, 12.119773864746094, -4.834329605102539, 0.834708034992218, -21.962982177734375, 39.640460968017578, -9.078592300415039, -3.510553598403931, -16.044708251953125, -4.902245998382568, 0.224997147917747, -34.180931091308594, 7.509442806243896, 3.701504945755005, -11.197209358215332, -22.056798934936523, -27.012636184692383, 15.913613319396973, 4.364429473876953, -1.197503089904785, 8.571378707885742, -19.667821884155273, 22.258554458618164, -7.341328144073486, -17.936431884765625, -0.463554143905640, -5.726800918579102}; +#endif + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w23.txt b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w23.txt new file mode 100644 index 00000000..d99bb2c7 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w23.txt @@ -0,0 +1 @@ +-34.272384643554688, -15.242276191711426, -12.153550148010254, -0.517302453517914, 16.459009170532227, -0.927374601364136, -16.420297622680664, 2.281730651855469, -10.332298278808594, 1.368979692459106, -14.852247238159180, 2.289415359497070, 4.450272083282471, 15.091560363769531, 13.234894752502441, 5.019698619842529, 0.659490466117859, -10.297682762145996, -6.819073200225830, 0.061284162104130, -17.845451354980469, -12.342288970947266, 9.018982887268066, -7.944165229797363, -9.916581153869629, -9.689590454101562, 1.593392252922058, -0.548580884933472, 2.834589481353760, 13.109604835510254, -13.948617935180664, 4.110248565673828, -2.018397331237793, -6.860967636108398, 2.082887887954712, -1.957600474357605, -0.321475505828857, 0.820872783660889, 2.677054405212402, -1.768133521080017, -1.177917003631592, -1.118692636489868, 3.211776494979858, -3.037288188934326, 5.288896083831787, -0.581319391727448, 0.694460690021515, 0.631229758262634, 3.280242681503296, 6.218200206756592, -2.129676103591919, 8.349854469299316, 1.471119880676270, 7.490054130554199, 0.753753662109375, -0.399599075317383, 2.416818141937256, 1.339800357818604, -0.718787252902985, 0.338143020868301, 1.145107865333557, 5.754922389984131, -4.704513549804688, -1.252747058868408, 0.465840101242065, -3.112505197525024, 4.487011432647705, -0.808801710605621, 7.409661293029785, -8.000079154968262, 0.356041222810745, -1.234661579132080, -13.651395797729492, 4.551627635955811, 3.547161102294922, -1.346346378326416, -6.481750965118408, 0.371593445539474, -0.909239649772644, 0.803896009922028, -0.864329278469086, -0.167551159858704, 1.271770358085632, 0.128098145127296, -0.319244086742401, -8.963575363159180, -4.575497150421143, -4.347470760345459, 0.099872648715973, 1.076389431953430, 1.537157297134399, -0.342850208282471, -3.088666439056396, 1.880550146102905, -2.499561071395874, 0.960815191268921, 1.989226579666138, 5.396582126617432, 4.611053466796875, 1.478802204132080, -0.381258249282837, -1.447740316390991, -0.485423654317856, 1.209582686424255, -6.765387535095215, 0.879579961299896, 3.126605033874512, -1.396452188491821, 35.301498413085938, 16.390518188476562, 10.991186141967773, 0.457286953926086, -16.055135726928711, 0.732447206974030, 12.833724975585938, -0.869582533836365, 5.935638427734375, 2.171858549118042, 15.994698524475098, -1.975315093994141, -0.577428340911865, -16.300628662109375, -12.036094665527344, -12.248717308044434, -0.296559274196625, 9.253703117370605, 7.236478328704834, 0.100461378693581, 15.662371635437012, 13.149472236633301, -9.011061668395996, 9.156368255615234, 9.083997726440430, 8.143834114074707, 6.395058631896973, 0.768283843994141, -2.189213037490845, -12.856546401977539, 10.946484565734863, -3.122458934783936, 2.356916427612305, 10.203166007995605, 3.314955234527588, 2.006448984146118, -4.138628959655762, 9.784881591796875, -7.701581478118896, -2.161497592926025, 5.081796169281006, 0.722472250461578, -6.947623729705811, 0.428102672100067, -1.017104268074036, -5.616028785705566, 7.207549571990967, -3.425596952438354, -0.324499905109406, -1.508072257041931, -0.423026353120804, -6.807011127471924, -2.165873289108276, -6.257976055145264, -1.110751748085022, -0.680330693721771, -8.726241111755371, 6.876333713531494, 0.122669994831085, -6.020811080932617, -1.936614274978638, 7.679961681365967, 6.832388401031494, 2.089343547821045, -5.815147399902344, 1.034743905067444, 6.128062248229980, 3.326957702636719, -6.113448143005371, 0.656117796897888, -0.316450953483582, 0.792564570903778, 10.708021163940430, 10.246310234069824, -4.989016532897949, -2.966490268707275, 4.010641574859619, 1.000328898429871, -35.920978546142578, -1.863970279693604, 1.379239320755005, -0.364904999732971, 3.232958555221558, -0.646893203258514, 4.449232578277588, -6.601441383361816, 7.810013294219971, 0.764219939708710, -0.887412309646606, 4.851296424865723, -3.773882389068604, 0.953490376472473, -28.108135223388672, 7.164631843566895, 5.078193187713623, -4.744826793670654, -7.120871067047119, -7.749808311462402, 10.820018768310547, 0.171118795871735, -1.084927797317505, 1.892885923385620, -28.651664733886719, 10.953318595886230, -5.435957431793213, -21.623348236083984, 2.465915918350220, -8.539632797241211, -7.903433799743652, -3.474239349365234, 0.243321105837822, -0.380062937736511, 5.332633972167969, 2.151208877563477, 2.022930383682251, -1.463849902153015, -2.719141244888306, -1.985015749931335, 1.754704952239990, -3.623456001281738, 4.132822036743164, -2.998028755187988, 4.864254474639893, 7.019001007080078, -2.887226343154907, -2.157429456710815, -13.182174682617188, -0.038866952061653, -5.827670574188232, 5.151016235351562, 2.542974710464478, -12.306578636169434, -1.044925689697266, 11.257448196411133, -1.981187462806702, -1.172790408134460, -1.593691825866699, 5.988854408264160, 11.212390899658203, 6.184563636779785, 1.851197481155396, -7.376731395721436, 2.947922706604004, -3.116251468658447, 9.032855033874512, 11.189463615417480, -14.047230720520020, -1.882185339927673, 13.061312675476074, -3.894136667251587, -18.382831573486328, 5.108212947845459, 1.680236458778381, 5.855550289154053, 1.753978013992310, 8.817825317382812, 4.784208774566650, -9.456546783447266, 6.749723434448242, -3.826550960540771, 8.439210891723633, 2.381058931350708, -6.254682064056396, 0.979307055473328, -12.932164192199707, 6.614181041717529, 7.724326133728027, -8.186627388000488, -11.564584732055664, -5.705511093139648, 0.615724623203278, 2.294805049896240, 8.561786651611328, 10.862165451049805, -11.637836456298828, 8.550187110900879, -2.799665927886963, -4.847795963287354, 2.903936386108398, -6.381844997406006, 6.450922012329102, 26.763093948364258, 3.013844728469849, -0.924964666366577, -6.920816898345947, -2.560798168182373, -34.196998596191406, 1.623008966445923, 10.048088073730469, 0.985973894596100, 23.329315185546875, 1.722676992416382, -0.090961724519730, -5.953221797943115, 0.280752390623093, -14.521141052246094, 1.948345661163330, 6.979897975921631, 4.035674571990967, 1.044640779495239, -19.007211685180664, 21.142364501953125, -1.837882161140442, 2.050447940826416, 1.542031645774841, -7.565482616424561, 26.773376464843750, 0.171006053686142, 3.358534336090088, -8.234274864196777, -27.216566085815430, 7.212102413177490, -5.000186920166016, -20.917554855346680, 2.152885198593140, -3.181938886642456, 10.018072128295898, 6.692709445953369, 7.562778472900391, -0.397445559501648, -11.695134162902832, 1.699540257453918, 1.424039125442505, -1.628181338310242, 4.050493717193604, 0.047106776386499, -0.717159509658813, -3.311089277267456, -2.847960948944092, -9.831811904907227, -7.529915332794189, -2.769558668136597, -2.932808637619019, 6.914423465728760, 13.812906265258789, 0.466079294681549, -0.697627902030945, 0.283607631921768, -7.250504493713379, 13.122053146362305, 4.825413227081299, 2.828585863113403, 6.724539756774902, -0.596229493618011, -4.759947776794434, -9.946646690368652, -2.232836484909058, -3.401717901229858, -1.199927449226379, 3.097918748855591, 0.726092457771301, 1.352552175521851, -1.831664323806763, -6.564773082733154, 1.155098319053650, -2.088497400283813, -0.057716656476259, -0.293432414531708, -5.829917907714844, -2.137289047241211, 2.680857658386230, -3.795029640197754, 0.601609170436859, -2.534255266189575, 0.599966049194336, 9.936664581298828, -1.825383901596069, 2.551906108856201, -2.613932371139526, 5.252158164978027, -0.459596127271652, -1.080929756164551, -5.785776615142822, -4.251605510711670, 1.853045225143433, 1.728189826011658, -1.679710865020752, 3.655097484588623, -4.362958908081055, 1.981420755386353, -4.094293117523193, 0.941113770008087, -7.290192604064941, 2.577519655227661, 0.405787110328674, -5.861212253570557, -2.390504837036133, -4.859991073608398, 21.085351943969727, 2.001378059387207, -24.684366226196289, -4.457293987274170, 22.137004852294922, -1.187330603599548, -37.353851318359375, -1.755694746971130, 1.482097148895264, -1.574132204055786, 12.119773864746094, -4.834329605102539, 0.834708034992218, -21.962982177734375, 39.640460968017578, -9.078592300415039, -3.510553598403931, -16.044708251953125, -4.902245998382568, 0.224997147917747, -34.180931091308594, 7.509442806243896, 3.701504945755005, -11.197209358215332, -22.056798934936523, -27.012636184692383, 15.913613319396973, 4.364429473876953, -1.197503089904785, 8.571378707885742, -19.667821884155273, 22.258554458618164, -7.341328144073486, -17.936431884765625, -0.463554143905640, -5.726800918579102 \ No newline at end of file diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w24.h b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w24.h new file mode 100644 index 00000000..421ca42b --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w24.h @@ -0,0 +1,15 @@ +//Numpy array shape [36, 1] +//Min -16.967756271362 +//Max 12.259524345398 +//Number of zeros 0 + +#ifndef W24_H_ +#define W24_H_ + +#ifndef __SYNTHESIS__ +met_weight_weight_t w24[36]; +#else +met_weight_weight_t w24[36] = {-16.967756271362305, -3.760226726531982, 3.262881755828857, -9.485597610473633, -3.357334852218628, -15.149440765380859, 3.543870449066162, -2.800054788589478, 4.344166755676270, -2.786701679229736, 6.405607700347900, -3.039294004440308, -2.860914230346680, 2.979121685028076, -3.144270658493042, -3.578038454055786, -2.965110778808594, 3.106849431991577, 3.355989456176758, -2.746005535125732, 3.465666294097900, -3.180762529373169, -2.911018371582031, 3.576281547546387, 3.597542285919189, 3.606025695800781, -3.061075925827026, 12.259524345397949, -3.002163410186768, -3.301740884780884, 3.924034357070923, -3.431127548217773, 2.811718702316284, 2.879392385482788, -2.894979476928711, 3.125239610671997}; +#endif + +#endif diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w24.txt b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w24.txt new file mode 100644 index 00000000..5fab1cdb --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/firmware/weights/w24.txt @@ -0,0 +1 @@ +-16.967756271362305, -3.760226726531982, 3.262881755828857, -9.485597610473633, -3.357334852218628, -15.149440765380859, 3.543870449066162, -2.800054788589478, 4.344166755676270, -2.786701679229736, 6.405607700347900, -3.039294004440308, -2.860914230346680, 2.979121685028076, -3.144270658493042, -3.578038454055786, -2.965110778808594, 3.106849431991577, 3.355989456176758, -2.746005535125732, 3.465666294097900, -3.180762529373169, -2.911018371582031, 3.576281547546387, 3.597542285919189, 3.606025695800781, -3.061075925827026, 12.259524345397949, -3.002163410186768, -3.301740884780884, 3.924034357070923, -3.431127548217773, 2.811718702316284, 2.879392385482788, -2.894979476928711, 3.125239610671997 \ No newline at end of file diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/hls4ml_config.yml b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/hls4ml_config.yml new file mode 100644 index 00000000..466ce955 --- /dev/null +++ b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/hls4ml_config.yml @@ -0,0 +1,119 @@ +Backend: Vivado +ClockPeriod: 5 +HLSConfig: + LayerName: + activation: + Precision: + result: ap_fixed<32,16> + Trace: true + activation_1: + Precision: + result: ap_fixed<32,16> + Trace: true + batch_normalization: + Precision: + bias: ap_fixed<32,16> + result: ap_fixed<32,16> + scale: ap_fixed<32,16> + Trace: true + batch_normalization_1: + Precision: + bias: ap_fixed<32,16> + result: ap_fixed<32,16> + scale: ap_fixed<32,16> + Trace: true + concatenate: + Precision: + result: ap_fixed<32,16> + Trace: true + concatenate_1: + Precision: + result: ap_fixed<32,16> + Trace: true + dense: + Precision: + bias: ap_fixed<32,16> + result: ap_fixed<32,16> + weight: ap_fixed<32,16> + Trace: true + dense_1: + Precision: + bias: ap_fixed<32,16> + result: ap_fixed<32,16> + weight: ap_fixed<32,16> + Trace: true + dense_1_linear: + Precision: + result: ap_fixed<32,16> + Trace: true + dense_linear: + Precision: + result: ap_fixed<32,16> + Trace: true + embedding0: + Precision: + embeddings: ap_fixed<32,16> + result: ap_fixed<32,16> + Trace: true + embedding1: + Precision: + embeddings: ap_fixed<32,16> + result: ap_fixed<32,16> + Trace: true + input_cat0: + Precision: + result: ap_uint<4> + Trace: true + input_cat1: + Precision: + result: ap_uint<4> + Trace: true + input_cont: + Precision: + result: ap_fixed<32,16> + Trace: true + input_pxpy: + Precision: + result: ap_fixed<32,16> + Trace: true + met_weight: + Precision: + bias: ap_fixed<32,16> + result: ap_fixed<32,16> + weight: ap_fixed<32,16> + Trace: true + met_weight_linear: + Precision: + result: ap_fixed<32,16> + Trace: true + met_weight_minus_one: + Precision: + bias: ap_fixed<32,16> + result: ap_fixed<32,16> + scale: ap_fixed<32,16> + Trace: true + multiply: + Precision: + result: ap_fixed<32,16> + Trace: true + n_elem: 100 + output: + Precision: + result: ap_fixed<32,16> + Trace: true + n_filt: 2 + Model: + BramFactor: 1000000000 + Precision: ap_fixed<32,16> + ReuseFactor: 1 + Strategy: Latency + TraceOutput: false +IOType: io_parallel +InputData: null +KerasModel: !keras_model 'hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/keras_model.h5' +OutputDir: hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16> +OutputPredictions: null +Part: xcvu13p-flga2577-2-e +ProjectName: L1METML_v1 +Stamp: 95715E3e +Version: 1.0.0 diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/keras_model.h5 b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/keras_model.h5 new file mode 100644 index 0000000000000000000000000000000000000000..13a4d59943923496ebce14fa9552009cd48ee5d5 GIT binary patch literal 52632 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 l1Lr&Qx2JC9GgEl}yW^L6 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 I^OlqU1J8ZgZU6uP literal 0 HcmV?d00001 diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/model.h5 b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/model.h5 new file mode 100644 index 0000000000000000000000000000000000000000..13a4d59943923496ebce14fa9552009cd48ee5d5 GIT binary patch literal 52632 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 l1Lr&Qx2JC9GgEl}yW^L6 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 I^OlqU1J8ZgZU6uP literal 0 HcmV?d00001 diff --git a/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/model_hls4ml.png b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/model_hls4ml.png new file mode 100644 index 0000000000000000000000000000000000000000..f04b84a5d2e078125e109691d77c537deebcd6d3 GIT binary patch literal 240089 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%0DH`}%OU;gsXRjcqv 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/profiling_MET.png b/hls_output_trained_DeepMET_io_parallel_Latency_rf1_ap_fixed<32,16>/profiling_MET.png new file mode 100644 index 0000000000000000000000000000000000000000..2545be2bf910bb13756444a2210b008491cefa1a GIT binary patch literal 467522 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%0Ajqd8C|?9hU(`qGkz# z5XLstr>phFff}QRxJ}?dlZ8Y%6OMuMkOV%wu)pgB@1;ArT2KXEe2lFOaxqT99uRJ* zOzaifWWkS{W{-hm(i{LGgFm=9kdRs$OHPS*at>Sv(H5?pQ}DpJ?m?FVDW>Wpd-kQy zb-g$;GPpGT`m>;|tbq*W#gzqKEkQEl38vU7;CkydZW^|}>W}B7P?)_TP~Kkqgj>l< ztr)JHFS}!9Pfaem*yF$I7_JQ-u;XYVyH@;#y4I+MBB{npfT`8{`kPm_v*++>-{+fR z$;zg3ZX2fSB{DY*|5hz@o}*F0c*I?ujhX)jmCG}>rHC4aoU;KI9mI-@BK8qyuY~MHkajrE2@7`QgjUpcdY(;$Ht`Zy26Bis&iC#R4b$pqX1rpT8XS ztb0HB!~Fe7!C*Y1t9{$25|nafM#t|!e=e@*%T|2Q)s{F`Rc+EuoA8JE2nWs4tP1E@ z{Ey^FRa9<6>sokkfwzCRjf;Ny;C9h<4X82-w&_u22mlAl-Q(jO$H6d;Glnkhtb1Qa z9?se1PD$#hi)ICcyy+WT#3tSjH=a194h4&SMPb}nwi09#RXsxk9WzqsZRGjpW*{MZ z6n-JxuB2yO1JZE4DC+Q?)sV^s!FV71E^ zQux79GAl24GOq*AZI259K|-<1v|Rk3X?(^Lrl@~;q_|0XHuUmDC{mCeI&%ERl@>dh zeXz+$$*C=oPaP{WAyLszwRb)IR_tdGwth=SV8->#7kN9NYW~cU?l(BvEeOAJ=f9WO z&i(`ZF--jM1qO_y^~G*^^ERK$V{i1F2>1(&hFxV}CEqpviy&t2o%#Kk$hax7QCxj( zk^yYfD}j}Wg!;Kr0JJYCL##`nlys;rOiMwkshxjOO%Y0(k!mXLxq~r5({93)P&uC` zg7YVJ+I8sj6%K^9*s*dgC!Ys@IrcUhgq}!tPiqEgi6EEzz@TN&NC^6E_**9w3|ti7 zRte1%X!f#R3j=F&i!Wvc1gP~RPTtM-v7w&v$+BMaB?1ckYbHlO~z zQ?$Wp7M|1XkKvmO)p5uDQ_2lM?jW5;P7wt5lx;mc73vIP2PI8AJ=vt z@ihkct}g%upX){fLoYX zs!JdIqb$z**K_CvBHnZ;%|f+uwJB~%I`(hXPONAq^L9*c&}6-;Ta`mS=*toR+^=W~ z

    !v?% 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�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