diff --git a/tests/core/test_custom_logging_code.py b/tests/core/test_custom_logging_code.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/test_persistent_data.py b/tests/core/test_persistent_data.py similarity index 100% rename from tests/test_persistent_data.py rename to tests/core/test_persistent_data.py diff --git a/tests/test_return_store_memaddr.py b/tests/core/test_return_store_memaddr.py similarity index 100% rename from tests/test_return_store_memaddr.py rename to tests/core/test_return_store_memaddr.py diff --git a/tests/test_run_system.py b/tests/core/test_run_system.py similarity index 100% rename from tests/test_run_system.py rename to tests/core/test_run_system.py diff --git a/tests/extra_tests.py b/tests/extra_tests.py new file mode 100644 index 0000000000000000000000000000000000000000..279e9d970650192dca306dc346c55b45bb33e2a4 --- /dev/null +++ b/tests/extra_tests.py @@ -0,0 +1,36 @@ +import subprocess +import os + +# Script containing extra tests +# TODO: store the version somewhere + +def test_binary_c_installed(): + binary_c_dir = os.getenv("BINARY_C", None) + + assert binary_c_dir is not None, "Error: the BINARY_C environment variable is not set." + assert os.path.isfile(os.path.join(binary_c_dir, 'binary_c')), "binary_c doesn't exist!" + +def test_binary_c_version(): + required_binary_c_versions = ['2.1.7'] + + binary_c_dir = os.getenv("BINARY_C", None) + binary_c_config = os.path.join(binary_c_dir, "binary_c-config") + + installed_binary_c_version = ( + subprocess.run( + [binary_c_config, "version"], stdout=subprocess.PIPE, check=True + ) + .stdout.decode("utf-8") + .split() + )[0] + + message = """ + The binary_c version that is installed ({}) does not match the binary_c versions ({}) + that this release of the binary_c python module requires. + """.format(installed_binary_c_version, required_binary_c_versions) + assert installed_binary_c_version in required_binary_c_versions, message +### + +if __name__ == "__main__": + test_binary_c_version() + test_binary_c_installed() \ No newline at end of file diff --git a/tests/function_tests.py b/tests/function_tests.py index 107e19008f4466940da3bbd1745a2619ab1b1095..a10e44dbe42b6315cddd3e20608b5c2a299a6f25 100644 --- a/tests/function_tests.py +++ b/tests/function_tests.py @@ -1,11 +1,54 @@ -from binarycpython.utils.functions import get_help_super, get_help_all, get_help +from binarycpython.utils.functions import ( + get_help_super, + get_help_all, + get_help, +) ############################# -# File containing some tests to function. These are not unit tests where output is compared. +# Script that contains unit tests for functions from the binarycpython.utils.functions file +def test_get_help_super(): + """ + Function to test the get_help_super function + """ -## Help functionality -print(get_help_super(print_help=True, return_dict=False, fail_silently=False)) -print(get_help_all(print_help=True)) -print(get_help("M_1")) -# + get_help_super_output = get_help_super() + get_help_super_keys = get_help_super_output.keys() + + assert 'stars' in get_help_super_keys, "missing section" + assert 'binary' in get_help_super_keys, "missing section" + assert 'nucsyn' in get_help_super_keys, "missing section" + assert 'output' in get_help_super_keys, "missing section" + assert 'i/o' in get_help_super_keys, "missing section" + assert 'algorithms' in get_help_super_keys, "missing section" + assert 'misc' in get_help_super_keys, "missing section" + + print(get_help_super_output.keys()) + +def test_get_help_all(): + """ + Function to test the get_help_all function + """ + + get_help_all_output = get_help_all(print_help=False) + get_help_all_keys = get_help_all_output.keys() + + assert 'stars' in get_help_all_keys, "missing section" + assert 'binary' in get_help_all_keys, "missing section" + assert 'nucsyn' in get_help_all_keys, "missing section" + assert 'output' in get_help_all_keys, "missing section" + assert 'i/o' in get_help_all_keys, "missing section" + assert 'algorithms' in get_help_all_keys, "missing section" + assert 'misc' in get_help_all_keys, "missing section" + +def test_get_help(): + """ + Function to test the get_help function + """ + + assert get_help("M_1", print_help=False)['parameter_name'] == 'M_1', "get_help('M_1') should return the correct parameter name" + +if __name__ == "__main__": + test_get_help() + test_get_help_all() + test_get_help_super() diff --git a/tests/main.py b/tests/main.py new file mode 100644 index 0000000000000000000000000000000000000000..728e1fa1da9c1934941c14dc36c9c4f2e5525b9d --- /dev/null +++ b/tests/main.py @@ -0,0 +1 @@ +# Main file for the tests. This file imports all the combined_test functions from all files. \ No newline at end of file diff --git a/tests/population/grid_tests.py b/tests/population/grid_tests.py index b1874816134afc09dbf43b6dd6af52150bc3d2ed..2b87c8f3f686e55807e7782fab5cf3d9703a37d6 100644 --- a/tests/population/grid_tests.py +++ b/tests/population/grid_tests.py @@ -4,218 +4,289 @@ import time import pickle import sys -import matplotlib.pyplot as plt - +# import matplotlib.pyplot as plt from binarycpython.utils.grid import Population -from binarycpython.utils.functions import get_help_all, get_help - -## Script is intended for some testing of grid functionality. Its a bit random, not really structured tbh -test_pop = Population() - -## Setting values -# print(test_pop.bse_options['M_1']) -# print(test_pop.bse_options['M_2']) -# test_pop.set(M_1=10, M_2=500) -# print(test_pop.bse_options['M_1']) -# print(test_pop.bse_options['M_2']) -test_pop.set( - M_1=10, - separation=0, - orbital_period=4580, - max_evolution_time=15000, - eccentricity=0.02, +from binarycpython.utils.functions import ( + get_help_all, + get_help, + output_lines, ) -# print(test_pop.bse_options) -# print(len(test_pop.return_binary_c_defaults())) -# print('\n\n') -# print(len(test_pop.cleanup_defaults())) +def test_setup_population(): + """ + Unit test for setting up the population object + """ -line = test_pop.return_argline(test_pop.cleanup_defaults()) + test_pop = Population() -## Testing single evolution -# test_pop.evolve_single() -# test_pop.test_evolve_single() + assert isinstance(test_pop, Population), "Population object not created properly" -## Setting custom value -# test_pop.set(data_dir=os.path.join(os.environ['BINARYC_DATA_ROOT'], 'development_example')) -# print(test_pop.custom_options['data_dir']) +def test_set_value_population(): + """ + Unit test for setting values in the population object + """ -## printing all options -# print(json.dumps(test_pop.return_population_settings(), indent=4)) + test_pop = Population() + + test_pop.set( + verbosity=1, + ) + + test_pop.set( + M_1=10, + data_dir='/tmp/binary-c/output', + ensemble_filter_SUPERNOVAE=1, + ) -## return arglines: -# test_pop.set(M_1=10, M_2=500) -# print(test_pop.return_argline()) -# test_pop.return_argline() + assert test_pop.bse_options['M_1'] == 10, 'BSE options not correctly set' + assert test_pop.grid_options['verbosity'] == 1, 'Grid options not correctly set' + assert test_pop.custom_options['data_dir'] == '/tmp/binary-c/output', 'Custom options not correctly set' + assert test_pop.bse_options['ensemble_filter_SUPERNOVAE'] == 1, "Parameters are not getting caught correctly (The wildcards of parameters with %d in their name)" -## return version info -# version_info = test_pop.return_binary_c_version_info() -# print(version_info) +def test_set_argline_output_population(): + """ + Unit test for setting values in the population object + """ + test_pop = Population() -## Use custom arg file -# test_pop.evolve_population(custom_arg_file='/home/david/projects/binary_c_root/binary_c-python/tests/population/custom_arg_file.txt') + test_pop.set( + M_1=10, + M_2 = 14.0, # Msun + separation = 0, # 0 = ignored, use period + orbital_period = 4530.0, # days + eccentricity = 0.0, + metallicity = 0.02, + max_evolution_time = 15000, + verbosity=1, + ) -## Custom logging: -# test_pop.set(C_auto_logging={'MY_HEADER_LINE': ['star[0].mass', 'star[1].mass', 'model.probability']}) -# test_pop.set(C_logging_code='Printf("MY_STELLAR_DATA time=%g mass=%g radius=%g\\n", stardata->model.time, stardata->star[0].mass, stardata->star[0].radius);') -# test_pop.evolve_population() + argline = test_pop.return_argline() + assert argline == "binary_c M_1 10 M_2 14.0 eccentricity 0.0 max_evolution_time 15000 metallicity 0.02 orbital_period 4530.0 separation 0", "Argline not constructed correctly. Check if values are set properly." +def test_version_info_dict_population(): + """ + Unit test for setting values in the population object -## Custom logging with bigger print statement: -# test_pop.set(M_1=100, M_2=1, metallicity=0.0002, orbital_period=500000000) -# test_pop.set( -# C_logging_code=""" -# if(stardata->star[0].stellar_type>=MS) -# { -# if (stardata->model.time < stardata->model.max_evolution_time) -# { -# Printf("DAVID_SCO %30.12e %g %g %g %g %d %d\\n", -# // -# stardata->model.time, // 1 - -# stardata->star[0].mass, //2 -# stardata->previous_stardata->star[0].mass, //3 - -# stardata->star[0].radius, //4 -# stardata->previous_stardata->star[0].radius, //5 - -# stardata->star[0].stellar_type, //6 -# stardata->previous_stardata->star[0].stellar_type //7 -# ); -# }; -# /* Kill the simulation to save time */ -# // stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm; -# }; -# """ -# ) -# test_pop.evolve_population() + TODO: Add status to output of the version_info, with -1 if there are unmatched items + """ + test_pop = Population() -## Help all -# print(get_help_all(return_dict=True)) + # return version info + version_info = test_pop.return_binary_c_version_info(parsed=True) + version_info_keys = version_info.keys() -# get_help_all() -# print(get_help('M_1', print_help=False, return_dict=True)) + assert "L_SUN" in version_info_keys, "Missing item in version info" + assert "ADAPTIVE_RLOF_LOG" in version_info_keys, "Missing item in version info" + assert "GSL_VERSION" in version_info_keys, "Missing item in version info" + assert "git_revision" in version_info_keys, "Missing item in version info" +def test_settings_output_population(): + """ + Unit test for outputting the settings of the population dict object + """ + + test_pop = Population() + + # return version info + population_settings = test_pop.return_population_settings() + population_settings_keys = population_settings.keys() -## return all info: -# print(json.dumps(test_pop.return_all_info(), indent=4)) -# test_pop.export_all_info(outfile=os.path.join(os.getcwd(), "test_output.txt")) + assert 'bse_options' in population_settings_keys, "Missing information in the population_settings dict" + assert 'grid_options' in population_settings_keys, "Missing information in the population_settings dict" + assert 'custom_options' in population_settings_keys, "Missing information in the population_settings dict" -################# Parse function -## Testing some stuff out with giving a parse_function. -# test_pop.set( -# C_logging_code=""" -# if(stardata->star[0].stellar_type>=NS) -# { -# if (stardata->model.time < stardata->model.max_evolution_time) -# { -# Printf("DAVID_SCO %30.12e %g %g %g %g %d %d\\n", -# // -# stardata->model.time, // 1 +def test_all_info_population(): + """ + Unit test for outputting all information of the population object + """ -# stardata->star[0].mass, //2 -# stardata->previous_stardata->star[0].mass, //3 + test_pop = Population() + + # return all info: + all_info_dict = test_pop.return_all_info() + all_info_keys = all_info_dict.keys() -# stardata->star[0].radius, //4 -# stardata->previous_stardata->star[0].radius, //5 + assert 'population_settings' in all_info_keys, "Missing information in the all_info settings dict" + assert 'binary_c_defaults' in all_info_keys, "Missing information in the all_info settings dict" + assert 'binary_c_version_info' in all_info_keys, "Missing information in the all_info settings dict" + assert 'binary_c_help_all' in all_info_keys, "Missing information in the all_info settings dict" + +def test_evolve_single_system_population(): + """ + Unit test for the evolve_single_system function of the population object + """ + + test_pop = Population() + + test_pop.set( + M_1=10, + M_2 = 14.0, # Msun + separation = 0, # 0 = ignored, use period + orbital_period = 4530.0, # days + eccentricity = 0.0, + metallicity = 0.02, + max_evolution_time = 15000, + verbosity=0, + ) + + output = test_pop.evolve_single() + + assert "SINGLE_STAR_LIFETIME" in output, "Failed to evolve a system" + +# def test_custom_logging_memory_adress(): + +def test_C_auto_logging_population(): + """ + Unit test for the creating a custom logging output by setting the + C_auto_logging value with a list containing a headerline as key and a list of parameters as value + """ + + test_pop = Population() + + test_pop.set( + M_1 = 14, + M_2 = 10.0, # Msun + separation = 0, # 0 = ignored, use period + orbital_period = 4530.0, # days + eccentricity = 0.0, + metallicity = 0.02, + max_evolution_time = 15000, + verbosity=0, + ) + + + test_pop.set(C_auto_logging={'MY_HEADER_LINE': ['star[0].mass', 'star[1].mass', 'model.probability']}) + + output = test_pop.evolve_single() -# stardata->star[0].stellar_type, //6 -# stardata->previous_stardata->star[0].stellar_type //7 -# ); -# }; -# /* Kill the simulation to save time */ -# stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm; -# }; -# """ -# ) + print(output.splitlines()[0].split()) + + first_line = output.splitlines()[0].split() + + assert first_line[0] == "MY_HEADER_LINE" , "Failed to set the custom logging correctly" + assert first_line[1] == "14" , "Failed to set the custom logging correctly. First mass should be 14" + assert first_line[2] == "10" , "Failed to set the custom logging correctly. Second mass should be 10" + assert first_line[3] == "1" , "Failed to set the custom logging correctly. Probability should be 1" + +def test_C_logging_code_population(): + """ + Unit test for the creating a custom logging output by setting the + C_logging_code which contains the exact print statement (including possible logic). + This will be evaluated and put into binary_c + """ + + test_pop = Population() + + test_pop.set( + M_1 = 14, + M_2 = 10.0, # Msun + separation = 10000, # 0 = ignored, use period + # orbital_period = 4530.0, # days + eccentricity = 0.0, + metallicity = 0.02, + max_evolution_time = 15000, + verbosity=0, + ) + + test_pop.set(C_logging_code='Printf("MY_STELLAR_DATA mass=%g separation=%g probability=%g\\n", stardata->star[0].mass, stardata->common.orbit.separation, stardata->model.probability);') + + output = test_pop.evolve_single() + first_line = output.splitlines()[0].split() + + assert first_line[0] == "MY_STELLAR_DATA" , "Failed to set the custom logging correctly. Headerline should be MY_STELLAR_DATA" + assert first_line[1] == "mass=14" , "Failed to set the custom logging correctly. First mass should be 14" + assert first_line[2] == "separation=10000" , "Failed to set the custom logging correctly. Separation should be 10000" + assert first_line[3] == "probability=1" , "Failed to set the custom logging correctly. Probability should be 1" + +def parse_function(self, output): + """ + Dummy parse function for handling the output of a system + """ + + parameters = ['mass_1', 'separation', 'probability'] + separator='\t' + + outfilename = os.path.join(self.grid_options['tmp_dir'], 'output_parse_function_test.txt') + if os.path.isfile(outfilename): + os.remove(outfilename) + + for el in output_lines(output): + headerline = el.split()[0] + + if (headerline=='MY_STELLAR_DATA'): + values = el.split()[1:] + if not os.path.exists(outfilename): + with open(outfilename, 'w') as f: + f.write(separator.join(parameters)+'\n') + + with open(outfilename, 'a') as f: + f.write(separator.join(values)+'\n') + +def test_parse_function_population(): + """ + Unit test to test the ise of a parsing function for the output + """ + + test_pop = Population() + + test_pop.set( + M_1=10, + M_2 = 14.0, # Msun + separation = 0, # 0 = ignored, use period + orbital_period = 4530.0, # days + eccentricity = 0.0, + metallicity = 0.02, + max_evolution_time = 15000, + verbosity=0, + ) + + test_pop.set( + C_logging_code='Printf("MY_STELLAR_DATA mass=%g separation=%g probability=%g\\n", stardata->star[0].mass, stardata->common.orbit.separation, stardata->model.probability);' + ) + + test_pop.set( + parse_function=parse_function + ) + + # Run with parse function + test_pop.evolve_single(parse_function) + + outfilename = os.path.join(test_pop.grid_options['tmp_dir'], 'output_parse_function_test.txt') + assert os.path.isfile(outfilename), "Output file not created!" + + with open(outfilename, 'r') as outfile: + output = outfile.readlines() + first_line_split = output[0].strip().split("\t") + + assert first_line_split[0] == 'mass_1', "Output header not created correctly" + assert first_line_split[1] == 'separation', "Output header not created correctly" + assert first_line_split[2] == 'probability', "Output header not created correctly" + assert len(output) > 1, "File doesn't seem to contain any real data" + +if __name__ == "__main__": + # test_setup_population() + # test_set_value_population() + # test_set_argline_output_population() + # test_version_info_dict_population() + # test_settings_output_population() + # test_all_info_population() + # test_evolve_single_system_population() + # test_C_auto_logging_population() + # test_C_logging_code_population() + # test_parse_function_population() + print('yo') + +quit() -# def output_lines(output): -# """ -# Function that outputs the lines that were recieved from the binary_c run. -# """ -# return output.splitlines() - -# def parse_function(self, output): -# # extract info from the population instance -# # TODO: think about whether this is smart. Passing around this object might be an overkill - -# # Get some information from the -# data_dir = self.custom_options['data_dir'] -# base_filename = self.custom_options['base_filename'] -# outfilename = os.path.join(data_dir, base_filename) - -# # TODO: make population settings available in this function -# for el in output_lines(output): -# headerline = el.split()[0] - -# if (headerline=='DAVID_SCO'): -# parameters = ['time', 'mass_1', 'prev_mass_1', 'radius_1', 'prev_radius_1', 'stellar_type_1', 'prev_stellar_type_1'] -# values = el.split()[1:] -# seperator='\t' - -# if not os.path.exists(outfilename): -# with open(outfilename, 'w') as f: -# f.write(seperator.join(parameters)+'\n') - -# with open(outfilename, 'a') as f: -# f.write(seperator.join(values)+'\n') - - -# #test_pop.evolve_single(parse_function) -# test_pop.set(M_1=90, data_dir=os.path.join(os.environ['BINARYC_DATA_ROOT'], 'testing_python'), base_filename='test_pop.dat') -# test_pop.evolve_single(parse_function) -# test_pop.set(M_1=80) -# test_pop.evolve_single(parse_function) -# test_pop.set(M_1=70) -# test_pop.evolve_single(parse_function) -# test_pop.set(M_1=60) -# test_pop.evolve_single(parse_function) - -################## -## CHeck size of commands: -## Using pickle to dump it. -## https://stackoverflow.com/questions/563840/how-can-i-check-the-memory-usage-of-objects-in-ipython/565382#565382 - -# def generate_commands_return_size(amt_systems): -# print("Doing {} systems".format(amt_systems)) -# start_generate_time = time.time() -# commands = [test_pop.return_argline() for el in range(amt_systems)] -# stop_generate_time = time.time() - -# size = sys.getsizeof(pickle.dumps(commands)) -# size_in_mb = size/(1024*1024) -# return size_in_mb - -# amounts = [1, 10, 100, 1000, 10000, 100000, 1000000, 10000000] -# sizes = [] -# for amount in amounts: -# sizes.append(generate_commands_return_size(amount)) - - -# plt.title('size scaling for binary_c commands with:\n`{}`'.format(test_pop.return_argline())) -# plt.plot(amounts, sizes, 'bo', label='MB for ') -# plt.legend() -# plt.xlabel("Amount of systems") -# plt.ylabel("Size in MB") -# plt.xscale('log') -# plt.yscale('log') -# plt.savefig('sizes_for_commands.png') -# plt.show() - -# def ding(val): -# return val -# test_pop.set(extra_prob_function=ding) - - -### Cleaning up custom logging code - -# test_pop.set(C_logging_code='Printf("MY_STELLAR_DATA time=%g mass=%g radius=%g\\n", stardata->model.time, stardata->star[0].mass, stardata->star[0].radius);') -# print(test_pop.evolve_single()) -# quit() +# print(len(test_pop.return_binary_c_defaults())) +# print('\n\n') +# print(len(test_pop.cleanup_defaults())) + +## Use custom arg file +# test_pop.evolve_population(custom_arg_file='/home/david/projects/binary_c_root/binary_c-python/tests/population/custom_arg_file.txt') ### Grid generating testing diff --git a/tests/population/surreypc_errorlog.txt b/tests/population/surreypc_errorlog.txt deleted file mode 100644 index 399653eacf83b1f17618043935584d0dfd7612d1..0000000000000000000000000000000000000000 --- a/tests/population/surreypc_errorlog.txt +++ /dev/null @@ -1,81 +0,0 @@ -adding: C_logging_code= -if(stardata->star[0].SN_type != SN_NONE) -{ - if (stardata->model.time < stardata->model.max_evolution_time) - { - Printf("DAVID_SN %30.12e %g %g %g %d\n", - // - stardata->model.time, // 1 - stardata->star[0].mass, //2 - stardata->previous_stardata->star[0].mass, //3 - stardata->star[0].pms_mass, //4 - stardata->star[0].SN_type //5 - ); - }; - /* Kill the simulation to save time */ - stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm; -}; - to grid_options -adding: separation=1000000000 to BSE_options -adding: orbital_period=400000000 to BSE_options -adding: metallicity=0.002 to BSE_options -!! Key doesnt match previously known parameter: adding: data_dir=/vol/ph/astro_code/dhendriks/binaryc/results/testing_python/multiprocessing2/surreypc to custom_options -/usr/bin/ld: /tmp/ccca3KKm.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC -/tmp/ccca3KKm.o: error adding symbols: Bad value -collect2: error: ld returned 1 exit status -Traceback (most recent call last): - File "multiprocessing_via_population_comparison.py", line 106, in <module> - res = test_pop.evolve_population_comparison(parse_function, amt=int(amt_systems), nodes=int(amt_nodes)) - File "/vol/ph/astro_code/dhendriks/binaryc/binary_c-python/binarycpython/utils/grid.py", line 456, in evolve_population_comparison - self.set_custom_logging() - File "/vol/ph/astro_code/dhendriks/binaryc/binary_c-python/binarycpython/utils/grid.py", line 364, in set_custom_logging - ] = create_and_load_logging_function(custom_logging_code) - File "/vol/ph/astro_code/dhendriks/binaryc/binary_c-python/binarycpython/utils/custom_logging_functions.py", line 302, in create_and_load_logging_function - outfile_name=library_name, - File "/vol/ph/astro_code/dhendriks/binaryc/binary_c-python/binarycpython/utils/custom_logging_functions.py", line 262, in compile_shared_lib - res = subprocess.check_output("{command}".format(command=command), shell=True) - File "/user/HS128/dh00601/.pyenv/versions/3.6.4/lib/python3.6/subprocess.py", line 336, in check_output - **kwargs).stdout - File "/user/HS128/dh00601/.pyenv/versions/3.6.4/lib/python3.6/subprocess.py", line 418, in run - output=stdout, stderr=stderr) -subprocess.CalledProcessError: Command 'gcc -DALIGNSIZE=8 -std=gnu99 -march=native -mtune=native -ffast-math -fno-associative-math -fno-finite-math-only -fsignaling-nans -fomit-frame-pointer -DCPUFREQ=3600 -DOPERATING_SYSTEM=linux -DLINUX -DPOSIX -DLARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFPU_CONTROL -DGIT_REVISION=4797:20200127:369f3df -DGIT_URL=gitlab@gitlab.eps.surrey.ac.uk:ri0005/binary_c.git -D__HAVE_LIBC__ -D__HAVE_LIBGSL__ -I/user/HS128/dh00601/.local/include -DUSE_GSL -D__HAVE_LIBGSLCBLAS__ -D__HAVE_LIBBACKTRACE__ -D__HAVE_LIBBSD__ -D__HAVE_LIBM__ -D__HAVE_IEEE754_H__ -D__HAVE_DRAND48__ -D__HAVE_HSEARCH_DATA__ -D__HAVE_MALLOC_H__ -D__HAVE_SETITIMER__ -D__HAVE_PKG_CONFIG__ -D__HAVE_VALGRIND__ -D__SHOW_STARDATA__ -D__DIFF_STARDATA__ -O3 -shared -D_SEARCH_H -L/vol/ph/astro_code/dhendriks/binaryc/binary_c/src -L/user/HS128/dh00601/.local/lib -L/vol/ph/astro_code/dhendriks/binaryc/binary_c/src -lbinary_c -lc -lgsl -lgsl -lgslcblas -lm -lgslcblas -lbacktrace -lbsd -lm -o /tmp/binary_c_python/libcustom_logging_db727f25d8e14d4fbeaed42a32f23764.so /tmp/binary_c_python/custom_logging.c -I/vol/ph/astro_code/dhendriks/binaryc/binary_c -I/vol/ph/astro_code/dhendriks/binaryc/binary_c/src -I/usr/include -I/usr/local/include -I/vol/ph/astro_code/dhendriks/binaryc/binary_c/src' returned non-zero exit status 1. - - - -### -https://github.com/pybind/pybind11/issues/1234 might be useful - - -(binaryc_py3.6.4) ➜ population git:(population) ✗ machine_overview -System: Host: phws71 Kernel: 4.4.0-171-generic x86_64 (64 bit gcc: 5.4.0) Desktop: Xfce 4.12.3 (Gtk 2.24.28) - Distro: Ubuntu 16.04 xenial -Machine: System: Dell product: OptiPlex 7050 - Mobo: Dell model: 0XHGV1 v: A01 Bios: Dell v: 1.8.3 date: 03/23/2018 -CPU: Quad core Intel Core i5-6500 (-MCP-) cache: 6144 KB - flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx) bmips: 25536 - clock speeds: max: 3600 MHz 1: 864 MHz 2: 881 MHz 3: 863 MHz 4: 849 MHz -Graphics: Card: Intel HD Graphics 530 bus-ID: 00:02.0 - Display Server: X.Org 1.18.4 drivers: intel (unloaded: fbdev,vesa) - Resolution: 1920x1080@60.00hz, 1920x1080@60.00hz - GLX Renderer: Mesa DRI Intel HD Graphics 530 (Skylake GT2) - GLX Version: 3.0 Mesa 18.0.5 Direct Rendering: Yes -Audio: Card Intel 200 Series PCH HD Audio driver: snd_hda_intel bus-ID: 00:1f.3 - Sound: Advanced Linux Sound Architecture v: k4.4.0-171-generic -Network: Card: Intel Ethernet Connection (5) I219-LM driver: e1000e v: 3.2.6-k bus-ID: 00:1f.6 - IF: enp0s31f6 state: up speed: 1000 Mbps duplex: full mac: 8c:ec:4b:7b:54:21 -Drives: HDD Total Size: 512.1GB (25.5% used) ID-1: /dev/sda model: ADATA_SSD_DM900 size: 512.1GB -Partition: ID-1: / size: 184G used: 55G (32%) fs: ext4 dev: /dev/dm-0 - ID-2: /tmp size: 9.1G used: 38M (1%) fs: ext4 dev: /dev/dm-2 - ID-3: swap-1 size: 8.19GB used: 0.24GB (3%) fs: swap dev: /dev/dm-1 -RAID: No RAID devices: /proc/mdstat, md_mod kernel module present -Sensors: System Temperatures: cpu: 29.8C mobo: 27.8C - Fan Speeds (in rpm): cpu: N/A -Info: Processes: 308 Uptime: 10 days Memory: 6456.8/15911.6MB Init: systemd runlevel: 5 Gcc sys: 5.4.0 - Client: Shell (zsh 5.6.2) inxi: 2.2.35 - -(binaryc_py3.6.4) ➜ population git:(population) ✗ gcc --version -gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609 -Copyright (C) 2015 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - diff --git a/tests/population/profiling/profile_run.txt b/tests/profiling/profile_run.txt similarity index 100% rename from tests/population/profiling/profile_run.txt rename to tests/profiling/profile_run.txt diff --git a/tests/population/profiling/profile_test.txt b/tests/profiling/profile_test.txt similarity index 100% rename from tests/population/profiling/profile_test.txt rename to tests/profiling/profile_test.txt diff --git a/tests/population/profiling/readout_profile.py b/tests/profiling/readout_profile.py similarity index 100% rename from tests/population/profiling/readout_profile.py rename to tests/profiling/readout_profile.py diff --git a/tests/population/scaling/argparse_setup.py b/tests/scaling/argparse_setup.py similarity index 100% rename from tests/population/scaling/argparse_setup.py rename to tests/scaling/argparse_setup.py diff --git a/tests/population/scaling/plot_scaling.py b/tests/scaling/plot_scaling.py similarity index 100% rename from tests/population/scaling/plot_scaling.py rename to tests/scaling/plot_scaling.py diff --git a/tests/population/scaling/scaling_functions.py b/tests/scaling/scaling_functions.py similarity index 100% rename from tests/population/scaling/scaling_functions.py rename to tests/scaling/scaling_functions.py diff --git a/tests/scaling/scaling_plots/speedup_scaling_Astro1.eps b/tests/scaling/scaling_plots/speedup_scaling_Astro1.eps new file mode 100644 index 0000000000000000000000000000000000000000..db04cdb492269bb70a5f374dd791b1b24f254d19 --- /dev/null +++ b/tests/scaling/scaling_plots/speedup_scaling_Astro1.eps @@ -0,0 +1,2382 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Title: scaling_plots/speedup_scaling_Astro1.eps +%%Creator: matplotlib version 3.1.2, http://matplotlib.org/ +%%CreationDate: Mon Feb 10 18:09:40 2020 +%%Orientation: portrait +%%BoundingBox: 75.6 223.20000000000002 536.4 568.8 +%%EndComments +%%BeginProlog +/mpldict 8 dict def +mpldict begin +/m { moveto } bind def +/l { lineto } bind def +/r { rlineto } bind def +/c { curveto } bind def +/cl { closepath } bind def +/box { +m +1 index 0 r +0 exch r +neg 0 r +cl +} bind def +/clipbox { +box +clip +newpath +} bind def +%!PS-Adobe-3.0 Resource-Font +%%Title: DejaVu Sans +%%Copyright: Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain +%%Creator: Converted from TrueType to type 3 by PPR +25 dict begin +/_d{bind def}bind def +/_m{moveto}_d +/_l{lineto}_d +/_cl{closepath eofill}_d +/_c{curveto}_d +/_sc{7 -1 roll{setcachedevice}{pop pop pop pop pop pop}ifelse}_d +/_e{exec}_d +/FontName /DejaVuSans def +/PaintType 0 def +/FontMatrix[.001 0 0 .001 0 0]def +/FontBBox[-1021 -463 1793 1232]def +/FontType 3 def +/Encoding [ /space /ampersand /parenleft /parenright /period /slash /zero /one /two /three /four /five /six /seven /eight /A /S /underscore /a /c /d /e /f /i /l /m /n /o /p /r /s /t /u /v /y ] def +/FontInfo 10 dict dup begin +/FamilyName (DejaVu Sans) def +/FullName (DejaVu Sans) def +/Notice (Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain ) def +/Weight (Book) def +/Version (Version 2.35) def +/ItalicAngle 0.0 def +/isFixedPitch false def +/UnderlinePosition -130 def +/UnderlineThickness 90 def +end readonly def +/CharStrings 36 dict dup begin +/.notdef 0 def +/space{318 0 0 0 0 0 _sc +}_d +/ampersand{{780 0 63 -13 749 742 _sc +243 392 _m +213 366 192 339 178 313 _c +164 287 157 259 157 231 _c +157 183 174 144 209 112 _c +243 80 287 65 339 65 _c +369 65 398 70 425 80 _c +452 90 478 106 502 127 _c +243 392 _l +312 447 _m +560 193 _l +579 221 594 252 605 285 _c +615 318 622 353 624 391 _c +715 391 _l +711 348 700 306 683 264 _c +666 222 643 180 613 139 _c +749 0 _l +626 0 _l +}_e{556 72 _l +522 42 486 21 449 7 _c +412 -6 372 -13 330 -13 _c +251 -13 187 9 137 53 _c +87 97 63 155 63 225 _c +63 267 73 306 95 342 _c +117 378 150 413 194 446 _c +178 466 166 487 158 507 _c +150 527 146 547 146 567 _c +146 619 164 662 200 694 _c +236 726 284 742 344 742 _c +371 742 398 739 425 733 _c +451 727 479 719 507 707 _c +507 618 _l +478 633 451 645 425 653 _c +}_e{399 661 376 665 354 665 _c +320 665 292 656 271 638 _c +249 620 239 596 239 568 _c +239 551 243 534 253 518 _c +263 501 282 477 312 447 _c +_cl}_e}_d +/parenleft{390 0 86 -131 310 759 _sc +310 759 _m +266 683 234 609 213 536 _c +191 463 181 389 181 314 _c +181 238 191 164 213 91 _c +234 17 266 -56 310 -131 _c +232 -131 _l +183 -54 146 20 122 94 _c +98 168 86 241 86 314 _c +86 386 98 459 122 533 _c +146 607 182 682 232 759 _c +310 759 _l +_cl}_d +/parenright{390 0 80 -131 304 759 _sc +80 759 _m +158 759 _l +206 682 243 607 267 533 _c +291 459 304 386 304 314 _c +304 241 291 168 267 94 _c +243 20 206 -54 158 -131 _c +80 -131 _l +123 -56 155 17 177 91 _c +198 164 209 238 209 314 _c +209 389 198 463 177 536 _c +155 609 123 683 80 759 _c +_cl}_d +/period{318 0 107 0 210 124 _sc +107 124 _m +210 124 _l +210 0 _l +107 0 _l +107 124 _l +_cl}_d +/slash{337 0 0 -92 337 729 _sc +254 729 _m +337 729 _l +83 -92 _l +0 -92 _l +254 729 _l +_cl}_d +/zero{636 0 66 -13 570 742 _sc +318 664 _m +267 664 229 639 203 589 _c +177 539 165 464 165 364 _c +165 264 177 189 203 139 _c +229 89 267 64 318 64 _c +369 64 407 89 433 139 _c +458 189 471 264 471 364 _c +471 464 458 539 433 589 _c +407 639 369 664 318 664 _c +318 742 _m +399 742 461 709 505 645 _c +548 580 570 486 570 364 _c +570 241 548 147 505 83 _c +461 19 399 -13 318 -13 _c +236 -13 173 19 130 83 _c +87 147 66 241 66 364 _c +66 486 87 580 130 645 _c +173 709 236 742 318 742 _c +_cl}_d +/one{636 0 110 0 544 729 _sc +124 83 _m +285 83 _l +285 639 _l +110 604 _l +110 694 _l +284 729 _l +383 729 _l +383 83 _l +544 83 _l +544 0 _l +124 0 _l +124 83 _l +_cl}_d +/two{{636 0 73 0 536 742 _sc +192 83 _m +536 83 _l +536 0 _l +73 0 _l +73 83 _l +110 121 161 173 226 239 _c +290 304 331 346 348 365 _c +380 400 402 430 414 455 _c +426 479 433 504 433 528 _c +433 566 419 598 392 622 _c +365 646 330 659 286 659 _c +255 659 222 653 188 643 _c +154 632 117 616 78 594 _c +78 694 _l +118 710 155 722 189 730 _c +223 738 255 742 284 742 _c +}_e{359 742 419 723 464 685 _c +509 647 532 597 532 534 _c +532 504 526 475 515 449 _c +504 422 484 390 454 354 _c +446 344 420 317 376 272 _c +332 227 271 164 192 83 _c +_cl}_e}_d +/three{{636 0 76 -13 556 742 _sc +406 393 _m +453 383 490 362 516 330 _c +542 298 556 258 556 212 _c +556 140 531 84 482 45 _c +432 6 362 -13 271 -13 _c +240 -13 208 -10 176 -4 _c +144 1 110 10 76 22 _c +76 117 _l +103 101 133 89 166 81 _c +198 73 232 69 268 69 _c +330 69 377 81 409 105 _c +441 129 458 165 458 212 _c +458 254 443 288 413 312 _c +383 336 341 349 287 349 _c +}_e{202 349 _l +202 430 _l +291 430 _l +339 430 376 439 402 459 _c +428 478 441 506 441 543 _c +441 580 427 609 401 629 _c +374 649 336 659 287 659 _c +260 659 231 656 200 650 _c +169 644 135 635 98 623 _c +98 711 _l +135 721 170 729 203 734 _c +235 739 266 742 296 742 _c +370 742 429 725 473 691 _c +517 657 539 611 539 553 _c +539 513 527 479 504 451 _c +481 423 448 403 406 393 _c +_cl}_e}_d +/four{636 0 49 0 580 729 _sc +378 643 _m +129 254 _l +378 254 _l +378 643 _l +352 729 _m +476 729 _l +476 254 _l +580 254 _l +580 172 _l +476 172 _l +476 0 _l +378 0 _l +378 172 _l +49 172 _l +49 267 _l +352 729 _l +_cl}_d +/five{{636 0 77 -13 549 729 _sc +108 729 _m +495 729 _l +495 646 _l +198 646 _l +198 467 _l +212 472 227 476 241 478 _c +255 480 270 482 284 482 _c +365 482 429 459 477 415 _c +525 370 549 310 549 234 _c +549 155 524 94 475 51 _c +426 8 357 -13 269 -13 _c +238 -13 207 -10 175 -6 _c +143 -1 111 6 77 17 _c +77 116 _l +106 100 136 88 168 80 _c +199 72 232 69 267 69 _c +}_e{323 69 368 83 401 113 _c +433 143 450 183 450 234 _c +450 284 433 324 401 354 _c +368 384 323 399 267 399 _c +241 399 214 396 188 390 _c +162 384 135 375 108 363 _c +108 729 _l +_cl}_e}_d +/six{{636 0 70 -13 573 742 _sc +330 404 _m +286 404 251 388 225 358 _c +199 328 186 286 186 234 _c +186 181 199 139 225 109 _c +251 79 286 64 330 64 _c +374 64 409 79 435 109 _c +461 139 474 181 474 234 _c +474 286 461 328 435 358 _c +409 388 374 404 330 404 _c +526 713 _m +526 623 _l +501 635 476 644 451 650 _c +425 656 400 659 376 659 _c +310 659 260 637 226 593 _c +}_e{192 549 172 482 168 394 _c +187 422 211 444 240 459 _c +269 474 301 482 336 482 _c +409 482 467 459 509 415 _c +551 371 573 310 573 234 _c +573 159 550 99 506 54 _c +462 9 403 -13 330 -13 _c +246 -13 181 19 137 83 _c +92 147 70 241 70 364 _c +70 479 97 571 152 639 _c +206 707 280 742 372 742 _c +396 742 421 739 447 735 _c +472 730 498 723 526 713 _c +_cl}_e}_d +/seven{636 0 82 0 551 729 _sc +82 729 _m +551 729 _l +551 687 _l +286 0 _l +183 0 _l +432 646 _l +82 646 _l +82 729 _l +_cl}_d +/eight{{636 0 68 -13 568 742 _sc +318 346 _m +271 346 234 333 207 308 _c +180 283 167 249 167 205 _c +167 161 180 126 207 101 _c +234 76 271 64 318 64 _c +364 64 401 76 428 102 _c +455 127 469 161 469 205 _c +469 249 455 283 429 308 _c +402 333 365 346 318 346 _c +219 388 _m +177 398 144 418 120 447 _c +96 476 85 511 85 553 _c +85 611 105 657 147 691 _c +188 725 245 742 318 742 _c +}_e{390 742 447 725 489 691 _c +530 657 551 611 551 553 _c +551 511 539 476 515 447 _c +491 418 459 398 417 388 _c +464 377 501 355 528 323 _c +554 291 568 251 568 205 _c +568 134 546 80 503 43 _c +459 5 398 -13 318 -13 _c +237 -13 175 5 132 43 _c +89 80 68 134 68 205 _c +68 251 81 291 108 323 _c +134 355 171 377 219 388 _c +183 544 _m +183 506 194 476 218 455 _c +}_e{242 434 275 424 318 424 _c +360 424 393 434 417 455 _c +441 476 453 506 453 544 _c +453 582 441 611 417 632 _c +393 653 360 664 318 664 _c +275 664 242 653 218 632 _c +194 611 183 582 183 544 _c +_cl}_e}_d +/A{684 0 8 0 676 729 _sc +342 632 _m +208 269 _l +476 269 _l +342 632 _l +286 729 _m +398 729 _l +676 0 _l +573 0 _l +507 187 _l +178 187 _l +112 0 _l +8 0 _l +286 729 _l +_cl}_d +/S{{635 0 66 -13 579 742 _sc +535 705 _m +535 609 _l +497 627 462 640 429 649 _c +395 657 363 662 333 662 _c +279 662 237 651 208 631 _c +179 610 165 580 165 542 _c +165 510 174 485 194 469 _c +213 452 250 439 304 429 _c +364 417 _l +437 403 491 378 526 343 _c +561 307 579 260 579 201 _c +579 130 555 77 508 41 _c +460 5 391 -13 300 -13 _c +265 -13 228 -9 189 -2 _c +}_e{150 5 110 16 69 32 _c +69 134 _l +109 111 148 94 186 83 _c +224 71 262 66 300 66 _c +356 66 399 77 430 99 _c +460 121 476 152 476 194 _c +476 230 465 258 443 278 _c +421 298 385 313 335 323 _c +275 335 _l +201 349 148 372 115 404 _c +82 435 66 478 66 534 _c +66 598 88 649 134 686 _c +179 723 242 742 322 742 _c +356 742 390 739 426 733 _c +461 727 497 717 535 705 _c +}_e{_cl}_e}_d +/underscore{500 0 -9 -235 510 -165 _sc +510 -165 _m +510 -235 _l +-9 -235 _l +-9 -165 _l +510 -165 _l +_cl}_d +/a{{613 0 60 -13 522 560 _sc +343 275 _m +270 275 220 266 192 250 _c +164 233 150 205 150 165 _c +150 133 160 107 181 89 _c +202 70 231 61 267 61 _c +317 61 357 78 387 114 _c +417 149 432 196 432 255 _c +432 275 _l +343 275 _l +522 312 _m +522 0 _l +432 0 _l +432 83 _l +411 49 385 25 355 10 _c +325 -5 287 -13 243 -13 _c +187 -13 142 2 109 33 _c +76 64 60 106 60 159 _c +}_e{60 220 80 266 122 298 _c +163 329 224 345 306 345 _c +432 345 _l +432 354 _l +432 395 418 427 391 450 _c +364 472 326 484 277 484 _c +245 484 215 480 185 472 _c +155 464 127 453 100 439 _c +100 522 _l +132 534 164 544 195 550 _c +226 556 256 560 286 560 _c +365 560 424 539 463 498 _c +502 457 522 395 522 312 _c +_cl}_e}_d +/c{{550 0 55 -13 488 560 _sc +488 526 _m +488 442 _l +462 456 437 466 411 473 _c +385 480 360 484 334 484 _c +276 484 230 465 198 428 _c +166 391 150 339 150 273 _c +150 206 166 154 198 117 _c +230 80 276 62 334 62 _c +360 62 385 65 411 72 _c +437 79 462 90 488 104 _c +488 21 _l +462 9 436 0 410 -5 _c +383 -10 354 -13 324 -13 _c +242 -13 176 12 128 64 _c +}_e{79 115 55 185 55 273 _c +55 362 79 432 128 483 _c +177 534 244 560 330 560 _c +358 560 385 557 411 551 _c +437 545 463 537 488 526 _c +_cl}_e}_d +/d{{635 0 55 -13 544 760 _sc +454 464 _m +454 760 _l +544 760 _l +544 0 _l +454 0 _l +454 82 _l +435 49 411 25 382 10 _c +353 -5 319 -13 279 -13 _c +213 -13 159 13 117 65 _c +75 117 55 187 55 273 _c +55 359 75 428 117 481 _c +159 533 213 560 279 560 _c +319 560 353 552 382 536 _c +411 520 435 496 454 464 _c +148 273 _m +148 207 161 155 188 117 _c +215 79 253 61 301 61 _c +}_e{348 61 385 79 413 117 _c +440 155 454 207 454 273 _c +454 339 440 390 413 428 _c +385 466 348 485 301 485 _c +253 485 215 466 188 428 _c +161 390 148 339 148 273 _c +_cl}_e}_d +/e{{615 0 55 -13 562 560 _sc +562 296 _m +562 252 _l +149 252 _l +153 190 171 142 205 110 _c +238 78 284 62 344 62 _c +378 62 412 66 444 74 _c +476 82 509 95 541 113 _c +541 28 _l +509 14 476 3 442 -3 _c +408 -9 373 -13 339 -13 _c +251 -13 182 12 131 62 _c +80 112 55 181 55 268 _c +55 357 79 428 127 481 _c +175 533 241 560 323 560 _c +397 560 455 536 498 489 _c +}_e{540 441 562 377 562 296 _c +472 322 _m +471 371 457 410 431 440 _c +404 469 368 484 324 484 _c +274 484 234 469 204 441 _c +174 413 156 373 152 322 _c +472 322 _l +_cl}_e}_d +/f{352 0 23 0 371 760 _sc +371 760 _m +371 685 _l +285 685 _l +253 685 230 678 218 665 _c +205 652 199 629 199 595 _c +199 547 _l +347 547 _l +347 477 _l +199 477 _l +199 0 _l +109 0 _l +109 477 _l +23 477 _l +23 547 _l +109 547 _l +109 585 _l +109 645 123 690 151 718 _c +179 746 224 760 286 760 _c +371 760 _l +_cl}_d +/i{278 0 94 0 184 760 _sc +94 547 _m +184 547 _l +184 0 _l +94 0 _l +94 547 _l +94 760 _m +184 760 _l +184 646 _l +94 646 _l +94 760 _l +_cl}_d +/l{278 0 94 0 184 760 _sc +94 760 _m +184 760 _l +184 0 _l +94 0 _l +94 760 _l +_cl}_d +/m{{974 0 91 0 889 560 _sc +520 442 _m +542 482 569 511 600 531 _c +631 550 668 560 711 560 _c +767 560 811 540 842 500 _c +873 460 889 403 889 330 _c +889 0 _l +799 0 _l +799 327 _l +799 379 789 418 771 444 _c +752 469 724 482 686 482 _c +639 482 602 466 575 435 _c +548 404 535 362 535 309 _c +535 0 _l +445 0 _l +445 327 _l +445 379 435 418 417 444 _c +398 469 369 482 331 482 _c +}_e{285 482 248 466 221 435 _c +194 404 181 362 181 309 _c +181 0 _l +91 0 _l +91 547 _l +181 547 _l +181 462 _l +201 495 226 520 255 536 _c +283 552 317 560 357 560 _c +397 560 430 550 458 530 _c +486 510 506 480 520 442 _c +_cl}_e}_d +/n{634 0 91 0 549 560 _sc +549 330 _m +549 0 _l +459 0 _l +459 327 _l +459 379 448 417 428 443 _c +408 469 378 482 338 482 _c +289 482 251 466 223 435 _c +195 404 181 362 181 309 _c +181 0 _l +91 0 _l +91 547 _l +181 547 _l +181 462 _l +202 494 227 519 257 535 _c +286 551 320 560 358 560 _c +420 560 468 540 500 501 _c +532 462 549 405 549 330 _c +_cl}_d +/o{612 0 55 -13 557 560 _sc +306 484 _m +258 484 220 465 192 427 _c +164 389 150 338 150 273 _c +150 207 163 156 191 118 _c +219 80 257 62 306 62 _c +354 62 392 80 420 118 _c +448 156 462 207 462 273 _c +462 337 448 389 420 427 _c +392 465 354 484 306 484 _c +306 560 _m +384 560 445 534 490 484 _c +534 433 557 363 557 273 _c +557 183 534 113 490 63 _c +445 12 384 -13 306 -13 _c +227 -13 165 12 121 63 _c +77 113 55 183 55 273 _c +55 363 77 433 121 484 _c +165 534 227 560 306 560 _c +_cl}_d +/p{{635 0 91 -207 580 560 _sc +181 82 _m +181 -207 _l +91 -207 _l +91 547 _l +181 547 _l +181 464 _l +199 496 223 520 252 536 _c +281 552 316 560 356 560 _c +422 560 476 533 518 481 _c +559 428 580 359 580 273 _c +580 187 559 117 518 65 _c +476 13 422 -13 356 -13 _c +316 -13 281 -5 252 10 _c +223 25 199 49 181 82 _c +487 273 _m +487 339 473 390 446 428 _c +418 466 381 485 334 485 _c +}_e{286 485 249 466 222 428 _c +194 390 181 339 181 273 _c +181 207 194 155 222 117 _c +249 79 286 61 334 61 _c +381 61 418 79 446 117 _c +473 155 487 207 487 273 _c +_cl}_e}_d +/r{411 0 91 0 411 560 _sc +411 463 _m +401 469 390 473 378 476 _c +366 478 353 480 339 480 _c +288 480 249 463 222 430 _c +194 397 181 350 181 288 _c +181 0 _l +91 0 _l +91 547 _l +181 547 _l +181 462 _l +199 495 224 520 254 536 _c +284 552 321 560 365 560 _c +371 560 378 559 386 559 _c +393 558 401 557 411 555 _c +411 463 _l +_cl}_d +/s{{521 0 54 -13 472 560 _sc +443 531 _m +443 446 _l +417 458 391 468 364 475 _c +336 481 308 485 279 485 _c +234 485 200 478 178 464 _c +156 450 145 430 145 403 _c +145 382 153 366 169 354 _c +185 342 217 330 265 320 _c +296 313 _l +360 299 405 279 432 255 _c +458 230 472 195 472 151 _c +472 100 452 60 412 31 _c +372 1 316 -13 246 -13 _c +216 -13 186 -10 154 -5 _c +}_e{122 0 89 8 54 20 _c +54 113 _l +87 95 120 82 152 74 _c +184 65 216 61 248 61 _c +290 61 323 68 346 82 _c +368 96 380 117 380 144 _c +380 168 371 187 355 200 _c +339 213 303 226 247 238 _c +216 245 _l +160 257 119 275 95 299 _c +70 323 58 356 58 399 _c +58 450 76 490 112 518 _c +148 546 200 560 268 560 _c +301 560 332 557 362 552 _c +391 547 418 540 443 531 _c +}_e{_cl}_e}_d +/t{392 0 27 0 368 702 _sc +183 702 _m +183 547 _l +368 547 _l +368 477 _l +183 477 _l +183 180 _l +183 135 189 106 201 94 _c +213 81 238 75 276 75 _c +368 75 _l +368 0 _l +276 0 _l +206 0 158 13 132 39 _c +106 65 93 112 93 180 _c +93 477 _l +27 477 _l +27 547 _l +93 547 _l +93 702 _l +183 702 _l +_cl}_d +/u{634 0 85 -13 543 560 _sc +85 216 _m +85 547 _l +175 547 _l +175 219 _l +175 167 185 129 205 103 _c +225 77 255 64 296 64 _c +344 64 383 79 411 110 _c +439 141 453 183 453 237 _c +453 547 _l +543 547 _l +543 0 _l +453 0 _l +453 84 _l +431 50 405 26 377 10 _c +348 -5 315 -13 277 -13 _c +214 -13 166 6 134 45 _c +101 83 85 140 85 216 _c +311 560 _m +311 560 _l +_cl}_d +/v{592 0 30 0 562 547 _sc +30 547 _m +125 547 _l +296 88 _l +467 547 _l +562 547 _l +357 0 _l +235 0 _l +30 547 _l +_cl}_d +/y{592 0 30 -207 562 547 _sc +322 -50 _m +296 -114 271 -157 247 -177 _c +223 -197 191 -207 151 -207 _c +79 -207 _l +79 -132 _l +132 -132 _l +156 -132 175 -126 189 -114 _c +203 -102 218 -75 235 -31 _c +251 9 _l +30 547 _l +125 547 _l +296 119 _l +467 547 _l +562 547 _l +322 -50 _l +_cl}_d +end readonly def + +/BuildGlyph + {exch begin + CharStrings exch + 2 copy known not{pop /.notdef}if + true 3 1 roll get exec + end}_d + +/BuildChar { + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec +}_d + +FontName currentdict end definefont pop +end +%%EndProlog +mpldict begin +75.6 223.2 translate +460.8 345.6 0 0 clipbox +gsave +0 0 m +460.8 0 l +460.8 345.6 l +0 345.6 l +cl +1.000 setgray +fill +grestore +gsave +57.6 38.016 m +414.72 38.016 l +414.72 304.128 l +57.6 304.128 l +cl +1.000 setgray +fill +grestore +0.800 setlinewidth +1 setlinejoin +2 setlinecap +[] 0 setdash +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 38.016 m +57.6 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 38.016 o +grestore +/DejaVuSans findfont +10.000 scalefont +setfont +gsave +54.420313 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +107.2 38.016 m +107.2 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +107.2 38.016 o +grestore +gsave +104.020313 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /five glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +156.8 38.016 m +156.8 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +156.8 38.016 o +grestore +gsave +150.440625 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +206.4 38.016 m +206.4 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +206.4 38.016 o +grestore +gsave +200.040625 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /five glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +256 38.016 m +256 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +256 38.016 o +grestore +gsave +249.640625 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /two glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +305.6 38.016 m +305.6 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +305.6 38.016 o +grestore +gsave +299.240625 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /two glyphshow +6.362305 0.000000 m /five glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +355.2 38.016 m +355.2 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +355.2 38.016 o +grestore +gsave +348.840625 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /three glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +404.8 38.016 m +404.8 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +404.8 38.016 o +grestore +gsave +398.440625 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /three glyphshow +6.362305 0.000000 m /five glyphshow +grestore +gsave +181.308437 9.750375 translate +0.000000 rotate +0.000000 0.000000 m /A glyphshow +6.840820 0.000000 m /m glyphshow +16.582031 0.000000 m /o glyphshow +22.700195 0.000000 m /u glyphshow +29.038086 0.000000 m /n glyphshow +35.375977 0.000000 m /t glyphshow +39.296875 0.000000 m /space glyphshow +42.475586 0.000000 m /o glyphshow +48.593750 0.000000 m /f glyphshow +52.114258 0.000000 m /space glyphshow +55.292969 0.000000 m /c glyphshow +60.791016 0.000000 m /o glyphshow +66.909180 0.000000 m /r glyphshow +71.020508 0.000000 m /e glyphshow +77.172852 0.000000 m /s glyphshow +82.382812 0.000000 m /space glyphshow +85.561523 0.000000 m /u glyphshow +91.899414 0.000000 m /s glyphshow +97.109375 0.000000 m /e glyphshow +103.261719 0.000000 m /d glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 38.016 m +414.72 38.016 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 38.016 o +grestore +gsave +34.693750 34.219125 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 74.846409 m +414.72 74.846409 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 74.8464 o +grestore +gsave +34.693750 71.049534 translate +0.000000 rotate +0.000000 0.000000 m /two glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /five glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 111.676819 m +414.72 111.676819 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 111.677 o +grestore +gsave +34.693750 107.879944 translate +0.000000 rotate +0.000000 0.000000 m /five glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 148.507228 m +414.72 148.507228 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 148.507 o +grestore +gsave +34.693750 144.710353 translate +0.000000 rotate +0.000000 0.000000 m /seven glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /five glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 185.337638 m +414.72 185.337638 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 185.338 o +grestore +gsave +28.334375 181.540763 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /period glyphshow +15.903320 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 222.168047 m +414.72 222.168047 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 222.168 o +grestore +gsave +28.334375 218.371172 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /two glyphshow +12.724609 0.000000 m /period glyphshow +15.903320 0.000000 m /five glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 258.998457 m +414.72 258.998457 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 258.998 o +grestore +gsave +28.334375 255.201582 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /five glyphshow +12.724609 0.000000 m /period glyphshow +15.903320 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 295.828866 m +414.72 295.828866 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 295.829 o +grestore +gsave +28.334375 292.031991 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /seven glyphshow +12.724609 0.000000 m /period glyphshow +15.903320 0.000000 m /five glyphshow +grestore +gsave +21.975000 66.790750 translate +90.000000 rotate +0.000000 0.000000 m /S glyphshow +6.347656 0.000000 m /p glyphshow +12.695312 0.000000 m /e glyphshow +18.847656 0.000000 m /e glyphshow +25.000000 0.000000 m /d glyphshow +31.347656 0.000000 m /space glyphshow +34.526367 0.000000 m /u glyphshow +40.864258 0.000000 m /p glyphshow +47.211914 0.000000 m /space glyphshow +50.390625 0.000000 m /r glyphshow +54.501953 0.000000 m /a glyphshow +60.629883 0.000000 m /t glyphshow +64.550781 0.000000 m /i glyphshow +67.329102 0.000000 m /o glyphshow +73.447266 0.000000 m /space glyphshow +76.625977 0.000000 m /parenleft glyphshow +80.527344 0.000000 m /t glyphshow +84.448242 0.000000 m /i glyphshow +87.226562 0.000000 m /m glyphshow +96.967773 0.000000 m /e glyphshow +103.120117 0.000000 m /underscore glyphshow +108.120117 0.000000 m /l glyphshow +110.898438 0.000000 m /i glyphshow +113.676758 0.000000 m /n glyphshow +120.014648 0.000000 m /e glyphshow +126.166992 0.000000 m /a glyphshow +132.294922 0.000000 m /r glyphshow +136.406250 0.000000 m /slash glyphshow +139.775391 0.000000 m /t glyphshow +143.696289 0.000000 m /i glyphshow +146.474609 0.000000 m /m glyphshow +156.215820 0.000000 m /e glyphshow +162.368164 0.000000 m /underscore glyphshow +167.368164 0.000000 m /p glyphshow +173.715820 0.000000 m /a glyphshow +179.843750 0.000000 m /r glyphshow +183.955078 0.000000 m /a glyphshow +190.083008 0.000000 m /l glyphshow +192.861328 0.000000 m /l glyphshow +195.639648 0.000000 m /e glyphshow +201.791992 0.000000 m /l glyphshow +204.570312 0.000000 m /parenright glyphshow +grestore +1.500 setlinewidth +0.122 0.467 0.706 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +97.28 93.11321 m +97.28 94.937504 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +136.96 138.726819 m +136.96 143.152523 l +stroke +grestore +1.000 0.498 0.055 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +98.272 92.6672 m +98.272 94.395781 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +137.952 141.230754 m +137.952 143.810763 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +217.312 234.854494 m +217.312 242.886387 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +376.032 270.31909 m +376.032 272.021243 l +stroke +grestore +0.173 0.627 0.173 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +99.264 93.561171 m +99.264 95.050768 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +138.944 142.690301 m +138.944 144.958992 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +218.304 238.15113 m +218.304 243.654053 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +377.024 272.364581 m +377.024 276.918413 l +stroke +grestore +0.839 0.153 0.157 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +100.256 94.167442 m +100.256 94.827622 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +139.936 143.074747 m +139.936 143.925556 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +219.296 239.160228 m +219.296 249.373902 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +378.016 268.236873 m +378.016 281.090472 l +stroke +grestore +1.000 setlinewidth +0 setlinejoin +0.122 0.467 0.706 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +0.122 0.467 0.706 setrgbcolor +fill +grestore +stroke +grestore +} bind def +97.28 94.0254 o +136.96 140.94 o +grestore +1.000 0.498 0.055 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +1.000 0.498 0.055 setrgbcolor +fill +grestore +stroke +grestore +} bind def +98.272 93.5315 o +137.952 142.521 o +217.312 238.87 o +376.032 271.17 o +grestore +0.173 0.627 0.173 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +0.173 0.627 0.173 setrgbcolor +fill +grestore +stroke +grestore +} bind def +99.264 94.306 o +138.944 143.825 o +218.304 240.903 o +377.024 274.641 o +grestore +0.839 0.153 0.157 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +0.839 0.153 0.157 setrgbcolor +fill +grestore +stroke +grestore +} bind def +100.256 94.4975 o +139.936 143.5 o +219.296 244.267 o +378.016 274.664 o +grestore +0.800 setlinewidth +2 setlinecap +[] 0 setdash +0.000 setgray +gsave +57.6 38.016 m +57.6 304.128 l +stroke +grestore +gsave +414.72 38.016 m +414.72 304.128 l +stroke +grestore +gsave +57.6 38.016 m +414.72 38.016 l +stroke +grestore +gsave +57.6 304.128 m +414.72 304.128 l +stroke +grestore +gsave +97.379200 93.288749 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /two glyphshow +grestore +gsave +137.059200 140.203063 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /two glyphshow +grestore +gsave +98.371200 92.794882 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /two glyphshow +grestore +gsave +138.051200 141.784150 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /two glyphshow +grestore +gsave +217.411200 238.133832 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /two glyphshow +grestore +gsave +376.131200 270.433558 translate +0.000000 rotate +0.000000 0.000000 m /four glyphshow +grestore +gsave +99.363200 93.569361 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /one glyphshow +grestore +gsave +139.043200 143.088038 translate +0.000000 rotate +0.000000 0.000000 m /eight glyphshow +grestore +gsave +218.403200 240.165983 translate +0.000000 rotate +0.000000 0.000000 m /eight glyphshow +grestore +gsave +377.123200 273.904889 translate +0.000000 rotate +0.000000 0.000000 m /eight glyphshow +grestore +gsave +100.355200 93.760924 translate +0.000000 rotate +0.000000 0.000000 m /four glyphshow +grestore +gsave +140.035200 142.763544 translate +0.000000 rotate +0.000000 0.000000 m /four glyphshow +grestore +gsave +219.395200 243.530457 translate +0.000000 rotate +0.000000 0.000000 m /four glyphshow +grestore +gsave +378.115200 273.927064 translate +0.000000 rotate +0.000000 0.000000 m /four glyphshow +grestore +/DejaVuSans findfont +12.000 scalefont +setfont +gsave +1.363125 310.128000 translate +0.000000 rotate +0.000000 0.000000 m /S glyphshow +7.617188 0.000000 m /p glyphshow +15.234375 0.000000 m /e glyphshow +22.617188 0.000000 m /e glyphshow +30.000000 0.000000 m /d glyphshow +37.617188 0.000000 m /space glyphshow +41.431641 0.000000 m /u glyphshow +49.037109 0.000000 m /p glyphshow +56.654297 0.000000 m /space glyphshow +60.468750 0.000000 m /r glyphshow +65.402344 0.000000 m /a glyphshow +72.755859 0.000000 m /t glyphshow +77.460938 0.000000 m /i glyphshow +80.794922 0.000000 m /o glyphshow +88.136719 0.000000 m /space glyphshow +91.951172 0.000000 m /v glyphshow +99.052734 0.000000 m /s glyphshow +105.304688 0.000000 m /space glyphshow +109.119141 0.000000 m /a glyphshow +116.472656 0.000000 m /m glyphshow +128.162109 0.000000 m /o glyphshow +135.503906 0.000000 m /u glyphshow +143.109375 0.000000 m /n glyphshow +150.714844 0.000000 m /t glyphshow +155.419922 0.000000 m /space glyphshow +159.234375 0.000000 m /o glyphshow +166.576172 0.000000 m /f glyphshow +170.800781 0.000000 m /space glyphshow +174.615234 0.000000 m /c glyphshow +181.212891 0.000000 m /o glyphshow +188.554688 0.000000 m /r glyphshow +193.488281 0.000000 m /e glyphshow +200.871094 0.000000 m /s glyphshow +207.123047 0.000000 m /space glyphshow +210.937500 0.000000 m /f glyphshow +215.162109 0.000000 m /o glyphshow +222.503906 0.000000 m /r glyphshow +227.437500 0.000000 m /space glyphshow +231.251953 0.000000 m /d glyphshow +238.869141 0.000000 m /i glyphshow +242.203125 0.000000 m /f glyphshow +246.427734 0.000000 m /f glyphshow +250.652344 0.000000 m /e glyphshow +258.035156 0.000000 m /r glyphshow +262.968750 0.000000 m /e glyphshow +270.351562 0.000000 m /n glyphshow +277.957031 0.000000 m /t glyphshow +282.662109 0.000000 m /space glyphshow +286.476562 0.000000 m /a glyphshow +293.830078 0.000000 m /m glyphshow +305.519531 0.000000 m /o glyphshow +312.861328 0.000000 m /u glyphshow +320.466797 0.000000 m /n glyphshow +328.072266 0.000000 m /t glyphshow +332.777344 0.000000 m /s glyphshow +339.029297 0.000000 m /space glyphshow +342.843750 0.000000 m /o glyphshow +350.185547 0.000000 m /f glyphshow +354.410156 0.000000 m /space glyphshow +358.224609 0.000000 m /s glyphshow +364.476562 0.000000 m /y glyphshow +371.578125 0.000000 m /s glyphshow +377.830078 0.000000 m /t glyphshow +382.535156 0.000000 m /e glyphshow +389.917969 0.000000 m /m glyphshow +401.607422 0.000000 m /s glyphshow +407.859375 0.000000 m /space glyphshow +411.673828 0.000000 m /o glyphshow +419.015625 0.000000 m /n glyphshow +426.621094 0.000000 m /space glyphshow +430.435547 0.000000 m /A glyphshow +438.644531 0.000000 m /s glyphshow +444.896484 0.000000 m /t glyphshow +449.601562 0.000000 m /r glyphshow +454.535156 0.000000 m /o glyphshow +461.876953 0.000000 m /one glyphshow +grestore +1.000 setlinewidth +0 setlinecap +0.800 setgray +gsave +173.75125 43.016 m +407.72 43.016 l +409.053333 43.016 409.72 43.682667 409.72 45.016 c +409.72 102.7035 l +409.72 104.036833 409.053333 104.7035 407.72 104.7035 c +173.75125 104.7035 l +172.417917 104.7035 171.75125 104.036833 171.75125 102.7035 c +171.75125 45.016 l +171.75125 43.682667 172.417917 43.016 173.75125 43.016 c +cl +gsave +1.000 setgray +fill +grestore +stroke +grestore +1.500 setlinewidth +1 setlinejoin +[] 0 setdash +0.122 0.467 0.706 setrgbcolor +gsave +185.75125 91.60975 m +185.75125 101.60975 l +stroke +grestore +1.000 setlinewidth +0 setlinejoin +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +0.122 0.467 0.706 setrgbcolor +fill +grestore +stroke +grestore +} bind def +185.751 96.6097 o +grestore +0.000 setgray +/DejaVuSans findfont +10.000 scalefont +setfont +gsave +203.751250 93.109750 translate +0.000000 rotate +0.000000 0.000000 m /S glyphshow +6.347656 0.000000 m /p glyphshow +12.695312 0.000000 m /e glyphshow +18.847656 0.000000 m /e glyphshow +25.000000 0.000000 m /d glyphshow +31.347656 0.000000 m /space glyphshow +34.526367 0.000000 m /u glyphshow +40.864258 0.000000 m /p glyphshow +47.211914 0.000000 m /space glyphshow +50.390625 0.000000 m /ampersand glyphshow +58.188477 0.000000 m /space glyphshow +61.367188 0.000000 m /e glyphshow +67.519531 0.000000 m /f glyphshow +71.040039 0.000000 m /f glyphshow +74.560547 0.000000 m /i glyphshow +77.338867 0.000000 m /c glyphshow +82.836914 0.000000 m /i glyphshow +85.615234 0.000000 m /e glyphshow +91.767578 0.000000 m /n glyphshow +98.105469 0.000000 m /c glyphshow +103.603516 0.000000 m /y glyphshow +109.521484 0.000000 m /space glyphshow +112.700195 0.000000 m /o glyphshow +118.818359 0.000000 m /f glyphshow +122.338867 0.000000 m /space glyphshow +125.517578 0.000000 m /one glyphshow +131.879883 0.000000 m /zero glyphshow +138.242188 0.000000 m /zero glyphshow +144.604492 0.000000 m /zero glyphshow +150.966797 0.000000 m /space glyphshow +154.145508 0.000000 m /s glyphshow +159.355469 0.000000 m /y glyphshow +165.273438 0.000000 m /s glyphshow +170.483398 0.000000 m /t glyphshow +174.404297 0.000000 m /e glyphshow +180.556641 0.000000 m /m glyphshow +190.297852 0.000000 m /s glyphshow +grestore +1.500 setlinewidth +1 setlinejoin +1.000 0.498 0.055 setrgbcolor +gsave +185.75125 76.937875 m +185.75125 86.937875 l +stroke +grestore +1.000 setlinewidth +0 setlinejoin +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +1.000 0.498 0.055 setrgbcolor +fill +grestore +stroke +grestore +} bind def +185.751 81.9379 o +grestore +0.000 setgray +gsave +203.751250 78.437875 translate +0.000000 rotate +0.000000 0.000000 m /S glyphshow +6.347656 0.000000 m /p glyphshow +12.695312 0.000000 m /e glyphshow +18.847656 0.000000 m /e glyphshow +25.000000 0.000000 m /d glyphshow +31.347656 0.000000 m /space glyphshow +34.526367 0.000000 m /u glyphshow +40.864258 0.000000 m /p glyphshow +47.211914 0.000000 m /space glyphshow +50.390625 0.000000 m /ampersand glyphshow +58.188477 0.000000 m /space glyphshow +61.367188 0.000000 m /e glyphshow +67.519531 0.000000 m /f glyphshow +71.040039 0.000000 m /f glyphshow +74.560547 0.000000 m /i glyphshow +77.338867 0.000000 m /c glyphshow +82.836914 0.000000 m /i glyphshow +85.615234 0.000000 m /e glyphshow +91.767578 0.000000 m /n glyphshow +98.105469 0.000000 m /c glyphshow +103.603516 0.000000 m /y glyphshow +109.521484 0.000000 m /space glyphshow +112.700195 0.000000 m /o glyphshow +118.818359 0.000000 m /f glyphshow +122.338867 0.000000 m /space glyphshow +125.517578 0.000000 m /two glyphshow +131.879883 0.000000 m /zero glyphshow +138.242188 0.000000 m /zero glyphshow +144.604492 0.000000 m /zero glyphshow +150.966797 0.000000 m /space glyphshow +154.145508 0.000000 m /s glyphshow +159.355469 0.000000 m /y glyphshow +165.273438 0.000000 m /s glyphshow +170.483398 0.000000 m /t glyphshow +174.404297 0.000000 m /e glyphshow +180.556641 0.000000 m /m glyphshow +190.297852 0.000000 m /s glyphshow +grestore +1.500 setlinewidth +1 setlinejoin +0.173 0.627 0.173 setrgbcolor +gsave +185.75125 62.266 m +185.75125 72.266 l +stroke +grestore +1.000 setlinewidth +0 setlinejoin +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +0.173 0.627 0.173 setrgbcolor +fill +grestore +stroke +grestore +} bind def +185.751 67.266 o +grestore +0.000 setgray +gsave +203.751250 63.766000 translate +0.000000 rotate +0.000000 0.000000 m /S glyphshow +6.347656 0.000000 m /p glyphshow +12.695312 0.000000 m /e glyphshow +18.847656 0.000000 m /e glyphshow +25.000000 0.000000 m /d glyphshow +31.347656 0.000000 m /space glyphshow +34.526367 0.000000 m /u glyphshow +40.864258 0.000000 m /p glyphshow +47.211914 0.000000 m /space glyphshow +50.390625 0.000000 m /ampersand glyphshow +58.188477 0.000000 m /space glyphshow +61.367188 0.000000 m /e glyphshow +67.519531 0.000000 m /f glyphshow +71.040039 0.000000 m /f glyphshow +74.560547 0.000000 m /i glyphshow +77.338867 0.000000 m /c glyphshow +82.836914 0.000000 m /i glyphshow +85.615234 0.000000 m /e glyphshow +91.767578 0.000000 m /n glyphshow +98.105469 0.000000 m /c glyphshow +103.603516 0.000000 m /y glyphshow +109.521484 0.000000 m /space glyphshow +112.700195 0.000000 m /o glyphshow +118.818359 0.000000 m /f glyphshow +122.338867 0.000000 m /space glyphshow +125.517578 0.000000 m /five glyphshow +131.879883 0.000000 m /zero glyphshow +138.242188 0.000000 m /zero glyphshow +144.604492 0.000000 m /zero glyphshow +150.966797 0.000000 m /space glyphshow +154.145508 0.000000 m /s glyphshow +159.355469 0.000000 m /y glyphshow +165.273438 0.000000 m /s glyphshow +170.483398 0.000000 m /t glyphshow +174.404297 0.000000 m /e glyphshow +180.556641 0.000000 m /m glyphshow +190.297852 0.000000 m /s glyphshow +grestore +1.500 setlinewidth +1 setlinejoin +0.839 0.153 0.157 setrgbcolor +gsave +185.75125 47.594125 m +185.75125 57.594125 l +stroke +grestore +1.000 setlinewidth +0 setlinejoin +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +0 3 m +-3 -3 l +3 -3 l +cl + +gsave +0.839 0.153 0.157 setrgbcolor +fill +grestore +stroke +grestore +} bind def +185.751 52.5941 o +grestore +0.000 setgray +gsave +203.751250 49.094125 translate +0.000000 rotate +0.000000 0.000000 m /S glyphshow +6.347656 0.000000 m /p glyphshow +12.695312 0.000000 m /e glyphshow +18.847656 0.000000 m /e glyphshow +25.000000 0.000000 m /d glyphshow +31.347656 0.000000 m /space glyphshow +34.526367 0.000000 m /u glyphshow +40.864258 0.000000 m /p glyphshow +47.211914 0.000000 m /space glyphshow +50.390625 0.000000 m /ampersand glyphshow +58.188477 0.000000 m /space glyphshow +61.367188 0.000000 m /e glyphshow +67.519531 0.000000 m /f glyphshow +71.040039 0.000000 m /f glyphshow +74.560547 0.000000 m /i glyphshow +77.338867 0.000000 m /c glyphshow +82.836914 0.000000 m /i glyphshow +85.615234 0.000000 m /e glyphshow +91.767578 0.000000 m /n glyphshow +98.105469 0.000000 m /c glyphshow +103.603516 0.000000 m /y glyphshow +109.521484 0.000000 m /space glyphshow +112.700195 0.000000 m /o glyphshow +118.818359 0.000000 m /f glyphshow +122.338867 0.000000 m /space glyphshow +125.517578 0.000000 m /one glyphshow +131.879883 0.000000 m /zero glyphshow +138.242188 0.000000 m /zero glyphshow +144.604492 0.000000 m /zero glyphshow +150.966797 0.000000 m /zero glyphshow +157.329102 0.000000 m /space glyphshow +160.507812 0.000000 m /s glyphshow +165.717773 0.000000 m /y glyphshow +171.635742 0.000000 m /s glyphshow +176.845703 0.000000 m /t glyphshow +180.766602 0.000000 m /e glyphshow +186.918945 0.000000 m /m glyphshow +196.660156 0.000000 m /s glyphshow +grestore +0.800 setlinewidth +1 setlinejoin +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +414.72 38.016 o +grestore +gsave +421.720000 34.219125 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /zero glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +414.72 91.2384 o +grestore +gsave +421.720000 87.441525 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /two glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +414.72 144.461 o +grestore +gsave +421.720000 140.663925 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /four glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +414.72 197.683 o +grestore +gsave +421.720000 193.886325 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /six glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +414.72 250.906 o +grestore +gsave +421.720000 247.108725 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /eight glyphshow +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +414.72 304.128 o +grestore +gsave +421.720000 300.331125 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /period glyphshow +9.541016 0.000000 m /zero glyphshow +grestore +1.500 setlinewidth +2 setlinecap +0.122 0.467 0.706 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +97.28 290.944934 m +136.96 270.409085 l +stroke +grestore +1.000 0.498 0.055 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +98.272 288.714717 m +137.952 273.979049 l +217.312 264.772307 l +376.032 169.626677 l +stroke +grestore +0.173 0.627 0.173 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +99.264 292.212135 m +138.944 276.923119 l +218.304 267.066521 l +377.024 171.586171 l +stroke +grestore +0.839 0.153 0.157 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +100.256 293.077199 m +139.936 276.190438 l +219.296 270.864871 l +378.016 171.598688 l +stroke +grestore +0.800 setlinewidth +0 setlinejoin +[] 0 setdash +0.000 setgray +gsave +57.6 38.016 m +57.6 304.128 l +stroke +grestore +gsave +414.72 38.016 m +414.72 304.128 l +stroke +grestore +gsave +57.6 38.016 m +414.72 38.016 l +stroke +grestore +gsave +57.6 304.128 m +414.72 304.128 l +stroke +grestore + +end +showpage diff --git a/tests/scaling/scaling_plots/speedup_scaling_Astro1.pdf b/tests/scaling/scaling_plots/speedup_scaling_Astro1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e8db74de0b8e2096eda9bc8373b85c7a29879285 Binary files /dev/null and b/tests/scaling/scaling_plots/speedup_scaling_Astro1.pdf differ diff --git a/tests/scaling/scaling_plots/speedup_scaling_Astro1.png b/tests/scaling/scaling_plots/speedup_scaling_Astro1.png new file mode 100644 index 0000000000000000000000000000000000000000..e2cf4fc604300568299fe851838b3f12a73d71f0 Binary files /dev/null and b/tests/scaling/scaling_plots/speedup_scaling_Astro1.png differ diff --git a/tests/scaling/scaling_plots/total_time_scaling_Astro1.eps b/tests/scaling/scaling_plots/total_time_scaling_Astro1.eps new file mode 100644 index 0000000000000000000000000000000000000000..924e890f9ffe4a4f7862ef8cce246fa2f5491400 --- /dev/null +++ b/tests/scaling/scaling_plots/total_time_scaling_Astro1.eps @@ -0,0 +1,2552 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Title: scaling_plots/total_time_scaling_Astro1.eps +%%Creator: matplotlib version 3.1.2, http://matplotlib.org/ +%%CreationDate: Mon Feb 10 18:09:44 2020 +%%Orientation: portrait +%%BoundingBox: 75.6 223.20000000000002 536.4 568.8 +%%EndComments +%%BeginProlog +/mpldict 8 dict def +mpldict begin +/m { moveto } bind def +/l { lineto } bind def +/r { rlineto } bind def +/c { curveto } bind def +/cl { closepath } bind def +/box { +m +1 index 0 r +0 exch r +neg 0 r +cl +} bind def +/clipbox { +box +clip +newpath +} bind def +%!PS-Adobe-3.0 Resource-Font +%%Title: DejaVu Sans +%%Copyright: Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain +%%Creator: Converted from TrueType to type 3 by PPR +25 dict begin +/_d{bind def}bind def +/_m{moveto}_d +/_l{lineto}_d +/_cl{closepath eofill}_d +/_c{curveto}_d +/_sc{7 -1 roll{setcachedevice}{pop pop pop pop pop pop}ifelse}_d +/_e{exec}_d +/FontName /DejaVuSans def +/PaintType 0 def +/FontMatrix[.001 0 0 .001 0 0]def +/FontBBox[-1021 -463 1793 1232]def +/FontType 3 def +/Encoding [ /space /parenleft /parenright /zero /one /two /three /four /five /A /M /P /T /a /c /d /e /f /i /k /l /m /n /o /q /r /s /t /u /y ] def +/FontInfo 10 dict dup begin +/FamilyName (DejaVu Sans) def +/FullName (DejaVu Sans) def +/Notice (Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain ) def +/Weight (Book) def +/Version (Version 2.35) def +/ItalicAngle 0.0 def +/isFixedPitch false def +/UnderlinePosition -130 def +/UnderlineThickness 90 def +end readonly def +/CharStrings 31 dict dup begin +/.notdef 0 def +/space{318 0 0 0 0 0 _sc +}_d +/parenleft{390 0 86 -131 310 759 _sc +310 759 _m +266 683 234 609 213 536 _c +191 463 181 389 181 314 _c +181 238 191 164 213 91 _c +234 17 266 -56 310 -131 _c +232 -131 _l +183 -54 146 20 122 94 _c +98 168 86 241 86 314 _c +86 386 98 459 122 533 _c +146 607 182 682 232 759 _c +310 759 _l +_cl}_d +/parenright{390 0 80 -131 304 759 _sc +80 759 _m +158 759 _l +206 682 243 607 267 533 _c +291 459 304 386 304 314 _c +304 241 291 168 267 94 _c +243 20 206 -54 158 -131 _c +80 -131 _l +123 -56 155 17 177 91 _c +198 164 209 238 209 314 _c +209 389 198 463 177 536 _c +155 609 123 683 80 759 _c +_cl}_d +/zero{636 0 66 -13 570 742 _sc +318 664 _m +267 664 229 639 203 589 _c +177 539 165 464 165 364 _c +165 264 177 189 203 139 _c +229 89 267 64 318 64 _c +369 64 407 89 433 139 _c +458 189 471 264 471 364 _c +471 464 458 539 433 589 _c +407 639 369 664 318 664 _c +318 742 _m +399 742 461 709 505 645 _c +548 580 570 486 570 364 _c +570 241 548 147 505 83 _c +461 19 399 -13 318 -13 _c +236 -13 173 19 130 83 _c +87 147 66 241 66 364 _c +66 486 87 580 130 645 _c +173 709 236 742 318 742 _c +_cl}_d +/one{636 0 110 0 544 729 _sc +124 83 _m +285 83 _l +285 639 _l +110 604 _l +110 694 _l +284 729 _l +383 729 _l +383 83 _l +544 83 _l +544 0 _l +124 0 _l +124 83 _l +_cl}_d +/two{{636 0 73 0 536 742 _sc +192 83 _m +536 83 _l +536 0 _l +73 0 _l +73 83 _l +110 121 161 173 226 239 _c +290 304 331 346 348 365 _c +380 400 402 430 414 455 _c +426 479 433 504 433 528 _c +433 566 419 598 392 622 _c +365 646 330 659 286 659 _c +255 659 222 653 188 643 _c +154 632 117 616 78 594 _c +78 694 _l +118 710 155 722 189 730 _c +223 738 255 742 284 742 _c +}_e{359 742 419 723 464 685 _c +509 647 532 597 532 534 _c +532 504 526 475 515 449 _c +504 422 484 390 454 354 _c +446 344 420 317 376 272 _c +332 227 271 164 192 83 _c +_cl}_e}_d +/three{{636 0 76 -13 556 742 _sc +406 393 _m +453 383 490 362 516 330 _c +542 298 556 258 556 212 _c +556 140 531 84 482 45 _c +432 6 362 -13 271 -13 _c +240 -13 208 -10 176 -4 _c +144 1 110 10 76 22 _c +76 117 _l +103 101 133 89 166 81 _c +198 73 232 69 268 69 _c +330 69 377 81 409 105 _c +441 129 458 165 458 212 _c +458 254 443 288 413 312 _c +383 336 341 349 287 349 _c +}_e{202 349 _l +202 430 _l +291 430 _l +339 430 376 439 402 459 _c +428 478 441 506 441 543 _c +441 580 427 609 401 629 _c +374 649 336 659 287 659 _c +260 659 231 656 200 650 _c +169 644 135 635 98 623 _c +98 711 _l +135 721 170 729 203 734 _c +235 739 266 742 296 742 _c +370 742 429 725 473 691 _c +517 657 539 611 539 553 _c +539 513 527 479 504 451 _c +481 423 448 403 406 393 _c +_cl}_e}_d +/four{636 0 49 0 580 729 _sc +378 643 _m +129 254 _l +378 254 _l +378 643 _l +352 729 _m +476 729 _l +476 254 _l +580 254 _l +580 172 _l +476 172 _l +476 0 _l +378 0 _l +378 172 _l +49 172 _l +49 267 _l +352 729 _l +_cl}_d +/five{{636 0 77 -13 549 729 _sc +108 729 _m +495 729 _l +495 646 _l +198 646 _l +198 467 _l +212 472 227 476 241 478 _c +255 480 270 482 284 482 _c +365 482 429 459 477 415 _c +525 370 549 310 549 234 _c +549 155 524 94 475 51 _c +426 8 357 -13 269 -13 _c +238 -13 207 -10 175 -6 _c +143 -1 111 6 77 17 _c +77 116 _l +106 100 136 88 168 80 _c +199 72 232 69 267 69 _c +}_e{323 69 368 83 401 113 _c +433 143 450 183 450 234 _c +450 284 433 324 401 354 _c +368 384 323 399 267 399 _c +241 399 214 396 188 390 _c +162 384 135 375 108 363 _c +108 729 _l +_cl}_e}_d +/A{684 0 8 0 676 729 _sc +342 632 _m +208 269 _l +476 269 _l +342 632 _l +286 729 _m +398 729 _l +676 0 _l +573 0 _l +507 187 _l +178 187 _l +112 0 _l +8 0 _l +286 729 _l +_cl}_d +/M{863 0 98 0 765 729 _sc +98 729 _m +245 729 _l +431 233 _l +618 729 _l +765 729 _l +765 0 _l +669 0 _l +669 640 _l +481 140 _l +382 140 _l +194 640 _l +194 0 _l +98 0 _l +98 729 _l +_cl}_d +/P{603 0 98 0 569 729 _sc +197 648 _m +197 374 _l +321 374 _l +367 374 402 385 427 409 _c +452 433 465 467 465 511 _c +465 555 452 588 427 612 _c +402 636 367 648 321 648 _c +197 648 _l +98 729 _m +321 729 _l +402 729 464 710 506 673 _c +548 636 569 582 569 511 _c +569 439 548 384 506 348 _c +464 311 402 293 321 293 _c +197 293 _l +197 0 _l +98 0 _l +98 729 _l +_cl}_d +/T{611 0 -2 0 614 729 _sc +-2 729 _m +614 729 _l +614 646 _l +355 646 _l +355 0 _l +256 0 _l +256 646 _l +-2 646 _l +-2 729 _l +_cl}_d +/a{{613 0 60 -13 522 560 _sc +343 275 _m +270 275 220 266 192 250 _c +164 233 150 205 150 165 _c +150 133 160 107 181 89 _c +202 70 231 61 267 61 _c +317 61 357 78 387 114 _c +417 149 432 196 432 255 _c +432 275 _l +343 275 _l +522 312 _m +522 0 _l +432 0 _l +432 83 _l +411 49 385 25 355 10 _c +325 -5 287 -13 243 -13 _c +187 -13 142 2 109 33 _c +76 64 60 106 60 159 _c +}_e{60 220 80 266 122 298 _c +163 329 224 345 306 345 _c +432 345 _l +432 354 _l +432 395 418 427 391 450 _c +364 472 326 484 277 484 _c +245 484 215 480 185 472 _c +155 464 127 453 100 439 _c +100 522 _l +132 534 164 544 195 550 _c +226 556 256 560 286 560 _c +365 560 424 539 463 498 _c +502 457 522 395 522 312 _c +_cl}_e}_d +/c{{550 0 55 -13 488 560 _sc +488 526 _m +488 442 _l +462 456 437 466 411 473 _c +385 480 360 484 334 484 _c +276 484 230 465 198 428 _c +166 391 150 339 150 273 _c +150 206 166 154 198 117 _c +230 80 276 62 334 62 _c +360 62 385 65 411 72 _c +437 79 462 90 488 104 _c +488 21 _l +462 9 436 0 410 -5 _c +383 -10 354 -13 324 -13 _c +242 -13 176 12 128 64 _c +}_e{79 115 55 185 55 273 _c +55 362 79 432 128 483 _c +177 534 244 560 330 560 _c +358 560 385 557 411 551 _c +437 545 463 537 488 526 _c +_cl}_e}_d +/d{{635 0 55 -13 544 760 _sc +454 464 _m +454 760 _l +544 760 _l +544 0 _l +454 0 _l +454 82 _l +435 49 411 25 382 10 _c +353 -5 319 -13 279 -13 _c +213 -13 159 13 117 65 _c +75 117 55 187 55 273 _c +55 359 75 428 117 481 _c +159 533 213 560 279 560 _c +319 560 353 552 382 536 _c +411 520 435 496 454 464 _c +148 273 _m +148 207 161 155 188 117 _c +215 79 253 61 301 61 _c +}_e{348 61 385 79 413 117 _c +440 155 454 207 454 273 _c +454 339 440 390 413 428 _c +385 466 348 485 301 485 _c +253 485 215 466 188 428 _c +161 390 148 339 148 273 _c +_cl}_e}_d +/e{{615 0 55 -13 562 560 _sc +562 296 _m +562 252 _l +149 252 _l +153 190 171 142 205 110 _c +238 78 284 62 344 62 _c +378 62 412 66 444 74 _c +476 82 509 95 541 113 _c +541 28 _l +509 14 476 3 442 -3 _c +408 -9 373 -13 339 -13 _c +251 -13 182 12 131 62 _c +80 112 55 181 55 268 _c +55 357 79 428 127 481 _c +175 533 241 560 323 560 _c +397 560 455 536 498 489 _c +}_e{540 441 562 377 562 296 _c +472 322 _m +471 371 457 410 431 440 _c +404 469 368 484 324 484 _c +274 484 234 469 204 441 _c +174 413 156 373 152 322 _c +472 322 _l +_cl}_e}_d +/f{352 0 23 0 371 760 _sc +371 760 _m +371 685 _l +285 685 _l +253 685 230 678 218 665 _c +205 652 199 629 199 595 _c +199 547 _l +347 547 _l +347 477 _l +199 477 _l +199 0 _l +109 0 _l +109 477 _l +23 477 _l +23 547 _l +109 547 _l +109 585 _l +109 645 123 690 151 718 _c +179 746 224 760 286 760 _c +371 760 _l +_cl}_d +/i{278 0 94 0 184 760 _sc +94 547 _m +184 547 _l +184 0 _l +94 0 _l +94 547 _l +94 760 _m +184 760 _l +184 646 _l +94 646 _l +94 760 _l +_cl}_d +/k{579 0 91 0 576 760 _sc +91 760 _m +181 760 _l +181 311 _l +449 547 _l +564 547 _l +274 291 _l +576 0 _l +459 0 _l +181 267 _l +181 0 _l +91 0 _l +91 760 _l +_cl}_d +/l{278 0 94 0 184 760 _sc +94 760 _m +184 760 _l +184 0 _l +94 0 _l +94 760 _l +_cl}_d +/m{{974 0 91 0 889 560 _sc +520 442 _m +542 482 569 511 600 531 _c +631 550 668 560 711 560 _c +767 560 811 540 842 500 _c +873 460 889 403 889 330 _c +889 0 _l +799 0 _l +799 327 _l +799 379 789 418 771 444 _c +752 469 724 482 686 482 _c +639 482 602 466 575 435 _c +548 404 535 362 535 309 _c +535 0 _l +445 0 _l +445 327 _l +445 379 435 418 417 444 _c +398 469 369 482 331 482 _c +}_e{285 482 248 466 221 435 _c +194 404 181 362 181 309 _c +181 0 _l +91 0 _l +91 547 _l +181 547 _l +181 462 _l +201 495 226 520 255 536 _c +283 552 317 560 357 560 _c +397 560 430 550 458 530 _c +486 510 506 480 520 442 _c +_cl}_e}_d +/n{634 0 91 0 549 560 _sc +549 330 _m +549 0 _l +459 0 _l +459 327 _l +459 379 448 417 428 443 _c +408 469 378 482 338 482 _c +289 482 251 466 223 435 _c +195 404 181 362 181 309 _c +181 0 _l +91 0 _l +91 547 _l +181 547 _l +181 462 _l +202 494 227 519 257 535 _c +286 551 320 560 358 560 _c +420 560 468 540 500 501 _c +532 462 549 405 549 330 _c +_cl}_d +/o{612 0 55 -13 557 560 _sc +306 484 _m +258 484 220 465 192 427 _c +164 389 150 338 150 273 _c +150 207 163 156 191 118 _c +219 80 257 62 306 62 _c +354 62 392 80 420 118 _c +448 156 462 207 462 273 _c +462 337 448 389 420 427 _c +392 465 354 484 306 484 _c +306 560 _m +384 560 445 534 490 484 _c +534 433 557 363 557 273 _c +557 183 534 113 490 63 _c +445 12 384 -13 306 -13 _c +227 -13 165 12 121 63 _c +77 113 55 183 55 273 _c +55 363 77 433 121 484 _c +165 534 227 560 306 560 _c +_cl}_d +/q{{635 0 55 -207 544 560 _sc +148 273 _m +148 207 161 155 188 117 _c +215 79 253 61 301 61 _c +348 61 385 79 413 117 _c +440 155 454 207 454 273 _c +454 339 440 390 413 428 _c +385 466 348 485 301 485 _c +253 485 215 466 188 428 _c +161 390 148 339 148 273 _c +454 82 _m +435 49 411 25 382 10 _c +353 -5 319 -13 279 -13 _c +213 -13 159 13 117 65 _c +75 117 55 187 55 273 _c +}_e{55 359 75 428 117 481 _c +159 533 213 560 279 560 _c +319 560 353 552 382 536 _c +411 520 435 496 454 464 _c +454 547 _l +544 547 _l +544 -207 _l +454 -207 _l +454 82 _l +_cl}_e}_d +/r{411 0 91 0 411 560 _sc +411 463 _m +401 469 390 473 378 476 _c +366 478 353 480 339 480 _c +288 480 249 463 222 430 _c +194 397 181 350 181 288 _c +181 0 _l +91 0 _l +91 547 _l +181 547 _l +181 462 _l +199 495 224 520 254 536 _c +284 552 321 560 365 560 _c +371 560 378 559 386 559 _c +393 558 401 557 411 555 _c +411 463 _l +_cl}_d +/s{{521 0 54 -13 472 560 _sc +443 531 _m +443 446 _l +417 458 391 468 364 475 _c +336 481 308 485 279 485 _c +234 485 200 478 178 464 _c +156 450 145 430 145 403 _c +145 382 153 366 169 354 _c +185 342 217 330 265 320 _c +296 313 _l +360 299 405 279 432 255 _c +458 230 472 195 472 151 _c +472 100 452 60 412 31 _c +372 1 316 -13 246 -13 _c +216 -13 186 -10 154 -5 _c +}_e{122 0 89 8 54 20 _c +54 113 _l +87 95 120 82 152 74 _c +184 65 216 61 248 61 _c +290 61 323 68 346 82 _c +368 96 380 117 380 144 _c +380 168 371 187 355 200 _c +339 213 303 226 247 238 _c +216 245 _l +160 257 119 275 95 299 _c +70 323 58 356 58 399 _c +58 450 76 490 112 518 _c +148 546 200 560 268 560 _c +301 560 332 557 362 552 _c +391 547 418 540 443 531 _c +}_e{_cl}_e}_d +/t{392 0 27 0 368 702 _sc +183 702 _m +183 547 _l +368 547 _l +368 477 _l +183 477 _l +183 180 _l +183 135 189 106 201 94 _c +213 81 238 75 276 75 _c +368 75 _l +368 0 _l +276 0 _l +206 0 158 13 132 39 _c +106 65 93 112 93 180 _c +93 477 _l +27 477 _l +27 547 _l +93 547 _l +93 702 _l +183 702 _l +_cl}_d +/u{634 0 85 -13 543 560 _sc +85 216 _m +85 547 _l +175 547 _l +175 219 _l +175 167 185 129 205 103 _c +225 77 255 64 296 64 _c +344 64 383 79 411 110 _c +439 141 453 183 453 237 _c +453 547 _l +543 547 _l +543 0 _l +453 0 _l +453 84 _l +431 50 405 26 377 10 _c +348 -5 315 -13 277 -13 _c +214 -13 166 6 134 45 _c +101 83 85 140 85 216 _c +311 560 _m +311 560 _l +_cl}_d +/y{592 0 30 -207 562 547 _sc +322 -50 _m +296 -114 271 -157 247 -177 _c +223 -197 191 -207 151 -207 _c +79 -207 _l +79 -132 _l +132 -132 _l +156 -132 175 -126 189 -114 _c +203 -102 218 -75 235 -31 _c +251 9 _l +30 547 _l +125 547 _l +296 119 _l +467 547 _l +562 547 _l +322 -50 _l +_cl}_d +end readonly def + +/BuildGlyph + {exch begin + CharStrings exch + 2 copy known not{pop /.notdef}if + true 3 1 roll get exec + end}_d + +/BuildChar { + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec +}_d + +FontName currentdict end definefont pop +end +%%EndProlog +mpldict begin +75.6 223.2 translate +460.8 345.6 0 0 clipbox +gsave +0 0 m +460.8 0 l +460.8 345.6 l +0 345.6 l +cl +1.000 setgray +fill +grestore +gsave +57.6 38.016 m +414.72 38.016 l +414.72 304.128 l +57.6 304.128 l +cl +1.000 setgray +fill +grestore +0.800 setlinewidth +1 setlinejoin +2 setlinecap +[] 0 setdash +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 38.016 m +57.6 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 38.016 o +grestore +/DejaVuSans findfont +10.000 scalefont +setfont +gsave +54.420313 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +126.276923 38.016 m +126.276923 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +126.277 38.016 o +grestore +gsave +119.917548 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +194.953846 38.016 m +194.953846 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +194.954 38.016 o +grestore +gsave +188.594471 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /two glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +263.630769 38.016 m +263.630769 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +263.631 38.016 o +grestore +gsave +257.271394 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /three glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +332.307692 38.016 m +332.307692 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +332.308 38.016 o +grestore +gsave +325.948317 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /four glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +400.984615 38.016 m +400.984615 304.128 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +400.985 38.016 o +grestore +gsave +394.625240 23.422250 translate +0.000000 rotate +0.000000 0.000000 m /five glyphshow +6.362305 0.000000 m /zero glyphshow +grestore +gsave +181.308437 9.750375 translate +0.000000 rotate +0.000000 0.000000 m /A glyphshow +6.840820 0.000000 m /m glyphshow +16.582031 0.000000 m /o glyphshow +22.700195 0.000000 m /u glyphshow +29.038086 0.000000 m /n glyphshow +35.375977 0.000000 m /t glyphshow +39.296875 0.000000 m /space glyphshow +42.475586 0.000000 m /o glyphshow +48.593750 0.000000 m /f glyphshow +52.114258 0.000000 m /space glyphshow +55.292969 0.000000 m /c glyphshow +60.791016 0.000000 m /o glyphshow +66.909180 0.000000 m /r glyphshow +71.020508 0.000000 m /e glyphshow +77.172852 0.000000 m /s glyphshow +82.382812 0.000000 m /space glyphshow +85.561523 0.000000 m /u glyphshow +91.899414 0.000000 m /s glyphshow +97.109375 0.000000 m /e glyphshow +103.261719 0.000000 m /d glyphshow +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 162.367622 m +414.72 162.367622 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 162.368 o +grestore +gsave +32.600000 157.906684 translate +0.000000 rotate +/DejaVuSans findfont +10.0 scalefont +setfont +0.000000 0.976562 moveto +/one glyphshow + +6.362305 0.976562 moveto +/zero glyphshow + +/DejaVuSans findfont +7.0 scalefont +setfont +12.820312 4.804688 moveto +/two glyphshow + + +grestore +2 setlinecap +0.690 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +57.6 289.116896 m +414.72 289.116896 l +stroke +grestore +0 setlinecap +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 289.117 o +grestore +gsave +32.600000 284.655958 translate +0.000000 rotate +/DejaVuSans findfont +10.0 scalefont +setfont +0.000000 0.976562 moveto +/one glyphshow + +6.362305 0.976562 moveto +/zero glyphshow + +/DejaVuSans findfont +7.0 scalefont +setfont +12.820312 4.804688 moveto +/three glyphshow + + +grestore +0.600 setlinewidth +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 73.7737 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 96.0931 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 111.929 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 124.212 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 134.248 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 142.734 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 150.084 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 156.568 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 200.523 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 222.842 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 238.678 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 250.962 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 260.998 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 269.483 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 276.834 o +grestore +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +57.6 283.317 o +grestore +gsave +26.521875 121.775125 translate +90.000000 rotate +0.000000 0.000000 m /T glyphshow +6.092773 0.000000 m /o glyphshow +12.210938 0.000000 m /t glyphshow +16.131836 0.000000 m /a glyphshow +22.259766 0.000000 m /l glyphshow +25.038086 0.000000 m /space glyphshow +28.216797 0.000000 m /t glyphshow +32.137695 0.000000 m /i glyphshow +34.916016 0.000000 m /m glyphshow +44.657227 0.000000 m /e glyphshow +50.809570 0.000000 m /space glyphshow +53.988281 0.000000 m /t glyphshow +57.909180 0.000000 m /a glyphshow +64.037109 0.000000 m /k glyphshow +69.828125 0.000000 m /e glyphshow +75.980469 0.000000 m /n glyphshow +82.318359 0.000000 m /space glyphshow +85.497070 0.000000 m /parenleft glyphshow +89.398438 0.000000 m /s glyphshow +94.608398 0.000000 m /parenright glyphshow +grestore +1.000 setlinewidth +0.000 0.000 1.000 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +85.070769 163.723345 m +85.070769 164.866354 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +112.541538 163.528633 m +112.541538 164.642327 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +85.070769 90.094555 m +85.070769 91.481994 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +112.541538 56.061391 m +112.541538 58.119284 l +stroke +grestore +0.000 0.502 0.000 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +85.757538 201.165776 m +85.757538 202.673914 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +113.228308 201.635611 m +113.228308 202.784503 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +168.169846 201.5032 m +168.169846 203.061394 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +278.052923 202.156079 m +278.052923 202.92828 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +85.757538 128.32746 m +85.757538 129.47306 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +113.228308 93.963437 m +113.228308 94.77086 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +168.169846 57.911438 m +168.169846 59.05175 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +278.052923 50.112 m +278.052923 50.932844 l +stroke +grestore +1.000 0.000 0.000 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +86.444308 252.197989 m +86.444308 253.425658 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +113.915077 252.285271 m +113.915077 253.365067 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +168.856615 251.558467 m +168.856615 253.254194 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +278.739692 252.152703 m +278.739692 253.089911 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +86.444308 178.729098 m +86.444308 179.326355 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +113.915077 144.03464 m +113.915077 144.562712 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +168.856615 107.660024 m +168.856615 108.431221 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +278.739692 99.398993 m +278.739692 100.181425 l +stroke +grestore +0.000 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +87.131077 291.028651 m +87.131077 291.337948 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +114.601846 290.503925 m +114.601846 291.056957 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +169.543385 290.290069 m +169.543385 292.032 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +279.426462 290.124371 m +279.426462 291.873238 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +87.131077 216.882711 m +87.131077 217.533888 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +114.601846 182.341738 m +114.601846 182.498887 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +169.543385 145.402339 m +169.543385 146.411599 l +stroke +grestore +gsave +357.1 266.1 57.6 38.02 clipbox +279.426462 137.551212 m +279.426462 138.809517 l +stroke +grestore +2 setlinecap +0.000 0.000 1.000 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +85.070769 164.297816 m +112.541538 164.088297 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +0.000 0.000 1.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +85.0708 164.298 o +112.542 164.088 o +grestore +1 setlinejoin +2 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +85.070769 90.792646 m +112.541538 57.099953 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +0.000 0.000 1.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +85.0708 90.7926 o +112.542 57.1 o +grestore +1 setlinejoin +2 setlinecap +0.000 0.502 0.000 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +85.757538 201.92501 m +113.228308 202.213054 l +168.169846 202.287811 l +278.052923 202.543533 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +0.000 0.502 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +85.7575 201.925 o +113.228 202.213 o +168.17 202.288 o +278.053 202.544 o +grestore +1 setlinejoin +2 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +85.757538 128.90324 m +113.228308 94.368629 l +168.169846 58.484547 l +278.052923 50.523952 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +0.000 0.502 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +85.7575 128.903 o +113.228 94.3686 o +168.17 58.4845 o +278.053 50.524 o +grestore +1 setlinejoin +2 setlinecap +1.000 0.000 0.000 setrgbcolor +gsave +357.1 266.1 57.6 38.02 clipbox +86.444308 252.815246 m +113.915077 252.827816 l +168.856615 252.41286 l +278.739692 252.623302 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +1.000 0.000 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +86.4443 252.815 o +113.915 252.828 o +168.857 252.413 o +278.74 252.623 o +grestore +1 setlinejoin +2 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +86.444308 179.028536 m +113.915077 144.299309 l +168.856615 108.046973 l +278.739692 99.791599 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +1.000 0.000 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +86.4443 179.029 o +113.915 144.299 o +168.857 108.047 o +278.74 99.7916 o +grestore +1 setlinejoin +2 setlinecap +0.000 setgray +gsave +357.1 266.1 57.6 38.02 clipbox +87.131077 291.183517 m +114.601846 290.781136 l +169.543385 291.167925 l +279.426462 291.005749 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +87.1311 291.184 o +114.602 290.781 o +169.543 291.168 o +279.426 291.006 o +grestore +1 setlinejoin +2 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +87.131077 217.209263 m +114.601846 182.420368 l +169.543385 145.909282 l +279.426462 138.18396 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +357.1 266.1 57.6 38.02 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +87.1311 217.209 o +114.602 182.42 o +169.543 145.909 o +279.426 138.184 o +grestore +0.800 setlinewidth +2 setlinecap +[] 0 setdash +gsave +57.6 38.016 m +57.6 304.128 l +stroke +grestore +gsave +414.72 38.016 m +414.72 304.128 l +stroke +grestore +gsave +57.6 38.016 m +414.72 38.016 l +stroke +grestore +gsave +57.6 304.128 m +414.72 304.128 l +stroke +grestore +/DejaVuSans findfont +12.000 scalefont +setfont +gsave +7.214687 310.128000 translate +0.000000 rotate +0.000000 0.000000 m /T glyphshow +7.298828 0.000000 m /o glyphshow +14.640625 0.000000 m /t glyphshow +19.345703 0.000000 m /a glyphshow +26.699219 0.000000 m /l glyphshow +30.033203 0.000000 m /space glyphshow +33.847656 0.000000 m /t glyphshow +38.552734 0.000000 m /i glyphshow +41.886719 0.000000 m /m glyphshow +53.576172 0.000000 m /e glyphshow +60.958984 0.000000 m /space glyphshow +64.773438 0.000000 m /f glyphshow +68.998047 0.000000 m /o glyphshow +76.339844 0.000000 m /r glyphshow +81.273438 0.000000 m /space glyphshow +85.087891 0.000000 m /s glyphshow +91.339844 0.000000 m /e glyphshow +98.722656 0.000000 m /q glyphshow +106.339844 0.000000 m /u glyphshow +113.945312 0.000000 m /e glyphshow +121.328125 0.000000 m /n glyphshow +128.933594 0.000000 m /t glyphshow +133.638672 0.000000 m /i glyphshow +136.972656 0.000000 m /a glyphshow +144.326172 0.000000 m /l glyphshow +147.660156 0.000000 m /space glyphshow +151.474609 0.000000 m /a glyphshow +158.828125 0.000000 m /n glyphshow +166.433594 0.000000 m /d glyphshow +174.050781 0.000000 m /space glyphshow +177.865234 0.000000 m /M glyphshow +188.218750 0.000000 m /P glyphshow +195.455078 0.000000 m /space glyphshow +199.269531 0.000000 m /f glyphshow +203.494141 0.000000 m /o glyphshow +210.835938 0.000000 m /r glyphshow +215.769531 0.000000 m /space glyphshow +219.583984 0.000000 m /d glyphshow +227.201172 0.000000 m /i glyphshow +230.535156 0.000000 m /f glyphshow +234.759766 0.000000 m /f glyphshow +238.984375 0.000000 m /e glyphshow +246.367188 0.000000 m /r glyphshow +251.300781 0.000000 m /e glyphshow +258.683594 0.000000 m /n glyphshow +266.289062 0.000000 m /t glyphshow +270.994141 0.000000 m /space glyphshow +274.808594 0.000000 m /a glyphshow +282.162109 0.000000 m /m glyphshow +293.851562 0.000000 m /o glyphshow +301.193359 0.000000 m /u glyphshow +308.798828 0.000000 m /n glyphshow +316.404297 0.000000 m /t glyphshow +321.109375 0.000000 m /s glyphshow +327.361328 0.000000 m /space glyphshow +331.175781 0.000000 m /o glyphshow +338.517578 0.000000 m /f glyphshow +342.742188 0.000000 m /space glyphshow +346.556641 0.000000 m /s glyphshow +352.808594 0.000000 m /y glyphshow +359.910156 0.000000 m /s glyphshow +366.162109 0.000000 m /t glyphshow +370.867188 0.000000 m /e glyphshow +378.250000 0.000000 m /m glyphshow +389.939453 0.000000 m /s glyphshow +396.191406 0.000000 m /space glyphshow +400.005859 0.000000 m /o glyphshow +407.347656 0.000000 m /n glyphshow +414.953125 0.000000 m /space glyphshow +418.767578 0.000000 m /A glyphshow +426.976562 0.000000 m /s glyphshow +433.228516 0.000000 m /t glyphshow +437.933594 0.000000 m /r glyphshow +442.867188 0.000000 m /o glyphshow +450.208984 0.000000 m /one glyphshow +grestore +1.000 setlinewidth +0 setlinecap +0.800 setgray +gsave +247.860625 110.8845 m +407.72 110.8845 l +409.053333 110.8845 409.72 111.551167 409.72 112.8845 c +409.72 229.2595 l +409.72 230.592833 409.053333 231.2595 407.72 231.2595 c +247.860625 231.2595 l +246.527292 231.2595 245.860625 230.592833 245.860625 229.2595 c +245.860625 112.8845 l +245.860625 111.551167 246.527292 110.8845 247.860625 110.8845 c +cl +gsave +1.000 setgray +fill +grestore +stroke +grestore +1 setlinejoin +[] 0 setdash +0.000 0.000 1.000 setrgbcolor +gsave +259.860625 218.16575 m +259.860625 228.16575 l +stroke +grestore +2 setlinecap +gsave +249.860625 223.16575 m +269.860625 223.16575 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +0.000 0.000 1.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +259.861 223.166 o +grestore +0.000 setgray +/DejaVuSans findfont +10.000 scalefont +setfont +gsave +277.860625 219.665750 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /space glyphshow +28.627930 0.000000 m /s glyphshow +33.837891 0.000000 m /y glyphshow +39.755859 0.000000 m /s glyphshow +44.965820 0.000000 m /t glyphshow +48.886719 0.000000 m /e glyphshow +55.039062 0.000000 m /m glyphshow +64.780273 0.000000 m /s glyphshow +69.990234 0.000000 m /space glyphshow +73.168945 0.000000 m /l glyphshow +75.947266 0.000000 m /i glyphshow +78.725586 0.000000 m /n glyphshow +85.063477 0.000000 m /e glyphshow +91.215820 0.000000 m /a glyphshow +97.343750 0.000000 m /r glyphshow +101.455078 0.000000 m /space glyphshow +104.633789 0.000000 m /r glyphshow +108.745117 0.000000 m /u glyphshow +115.083008 0.000000 m /n glyphshow +grestore +1 setlinejoin +0.000 0.000 1.000 setrgbcolor +gsave +259.860625 203.493875 m +259.860625 213.493875 l +stroke +grestore +2 setlinecap +gsave +249.860625 208.493875 m +269.860625 208.493875 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +0.000 0.000 1.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +259.861 208.494 o +grestore +0.000 setgray +gsave +277.860625 204.993875 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /space glyphshow +28.627930 0.000000 m /s glyphshow +33.837891 0.000000 m /y glyphshow +39.755859 0.000000 m /s glyphshow +44.965820 0.000000 m /t glyphshow +48.886719 0.000000 m /e glyphshow +55.039062 0.000000 m /m glyphshow +64.780273 0.000000 m /s glyphshow +69.990234 0.000000 m /space glyphshow +73.168945 0.000000 m /M glyphshow +81.796875 0.000000 m /P glyphshow +87.827148 0.000000 m /space glyphshow +91.005859 0.000000 m /r glyphshow +95.117188 0.000000 m /u glyphshow +101.455078 0.000000 m /n glyphshow +grestore +1 setlinejoin +0.000 0.502 0.000 setrgbcolor +gsave +259.860625 188.822 m +259.860625 198.822 l +stroke +grestore +2 setlinecap +gsave +249.860625 193.822 m +269.860625 193.822 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +0.000 0.502 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +259.861 193.822 o +grestore +0.000 setgray +gsave +277.860625 190.322000 translate +0.000000 rotate +0.000000 0.000000 m /two glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /space glyphshow +28.627930 0.000000 m /s glyphshow +33.837891 0.000000 m /y glyphshow +39.755859 0.000000 m /s glyphshow +44.965820 0.000000 m /t glyphshow +48.886719 0.000000 m /e glyphshow +55.039062 0.000000 m /m glyphshow +64.780273 0.000000 m /s glyphshow +69.990234 0.000000 m /space glyphshow +73.168945 0.000000 m /l glyphshow +75.947266 0.000000 m /i glyphshow +78.725586 0.000000 m /n glyphshow +85.063477 0.000000 m /e glyphshow +91.215820 0.000000 m /a glyphshow +97.343750 0.000000 m /r glyphshow +101.455078 0.000000 m /space glyphshow +104.633789 0.000000 m /r glyphshow +108.745117 0.000000 m /u glyphshow +115.083008 0.000000 m /n glyphshow +grestore +1 setlinejoin +0.000 0.502 0.000 setrgbcolor +gsave +259.860625 174.150125 m +259.860625 184.150125 l +stroke +grestore +2 setlinecap +gsave +249.860625 179.150125 m +269.860625 179.150125 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +0.000 0.502 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +259.861 179.15 o +grestore +0.000 setgray +gsave +277.860625 175.650125 translate +0.000000 rotate +0.000000 0.000000 m /two glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /space glyphshow +28.627930 0.000000 m /s glyphshow +33.837891 0.000000 m /y glyphshow +39.755859 0.000000 m /s glyphshow +44.965820 0.000000 m /t glyphshow +48.886719 0.000000 m /e glyphshow +55.039062 0.000000 m /m glyphshow +64.780273 0.000000 m /s glyphshow +69.990234 0.000000 m /space glyphshow +73.168945 0.000000 m /M glyphshow +81.796875 0.000000 m /P glyphshow +87.827148 0.000000 m /space glyphshow +91.005859 0.000000 m /r glyphshow +95.117188 0.000000 m /u glyphshow +101.455078 0.000000 m /n glyphshow +grestore +1 setlinejoin +1.000 0.000 0.000 setrgbcolor +gsave +259.860625 159.47825 m +259.860625 169.47825 l +stroke +grestore +2 setlinecap +gsave +249.860625 164.47825 m +269.860625 164.47825 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +1.000 0.000 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +259.861 164.478 o +grestore +0.000 setgray +gsave +277.860625 160.978250 translate +0.000000 rotate +0.000000 0.000000 m /five glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /space glyphshow +28.627930 0.000000 m /s glyphshow +33.837891 0.000000 m /y glyphshow +39.755859 0.000000 m /s glyphshow +44.965820 0.000000 m /t glyphshow +48.886719 0.000000 m /e glyphshow +55.039062 0.000000 m /m glyphshow +64.780273 0.000000 m /s glyphshow +69.990234 0.000000 m /space glyphshow +73.168945 0.000000 m /l glyphshow +75.947266 0.000000 m /i glyphshow +78.725586 0.000000 m /n glyphshow +85.063477 0.000000 m /e glyphshow +91.215820 0.000000 m /a glyphshow +97.343750 0.000000 m /r glyphshow +101.455078 0.000000 m /space glyphshow +104.633789 0.000000 m /r glyphshow +108.745117 0.000000 m /u glyphshow +115.083008 0.000000 m /n glyphshow +grestore +1 setlinejoin +1.000 0.000 0.000 setrgbcolor +gsave +259.860625 144.806375 m +259.860625 154.806375 l +stroke +grestore +2 setlinecap +gsave +249.860625 149.806375 m +269.860625 149.806375 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +1.000 0.000 0.000 setrgbcolor +fill +grestore +stroke +grestore +} bind def +259.861 149.806 o +grestore +0.000 setgray +gsave +277.860625 146.306375 translate +0.000000 rotate +0.000000 0.000000 m /five glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /space glyphshow +28.627930 0.000000 m /s glyphshow +33.837891 0.000000 m /y glyphshow +39.755859 0.000000 m /s glyphshow +44.965820 0.000000 m /t glyphshow +48.886719 0.000000 m /e glyphshow +55.039062 0.000000 m /m glyphshow +64.780273 0.000000 m /s glyphshow +69.990234 0.000000 m /space glyphshow +73.168945 0.000000 m /M glyphshow +81.796875 0.000000 m /P glyphshow +87.827148 0.000000 m /space glyphshow +91.005859 0.000000 m /r glyphshow +95.117188 0.000000 m /u glyphshow +101.455078 0.000000 m /n glyphshow +grestore +1 setlinejoin +gsave +259.860625 130.1345 m +259.860625 140.1345 l +stroke +grestore +2 setlinecap +gsave +249.860625 135.1345 m +269.860625 135.1345 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-1 -3 m +1 -3 l +1 -1 l +3 -1 l +3 1 l +1 1 l +1 3 l +-1 3 l +-1 1 l +-3 1 l +-3 -1 l +-1 -1 l +cl + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +259.861 135.134 o +grestore +gsave +277.860625 131.634500 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /zero glyphshow +31.811523 0.000000 m /space glyphshow +34.990234 0.000000 m /s glyphshow +40.200195 0.000000 m /y glyphshow +46.118164 0.000000 m /s glyphshow +51.328125 0.000000 m /t glyphshow +55.249023 0.000000 m /e glyphshow +61.401367 0.000000 m /m glyphshow +71.142578 0.000000 m /s glyphshow +76.352539 0.000000 m /space glyphshow +79.531250 0.000000 m /l glyphshow +82.309570 0.000000 m /i glyphshow +85.087891 0.000000 m /n glyphshow +91.425781 0.000000 m /e glyphshow +97.578125 0.000000 m /a glyphshow +103.706055 0.000000 m /r glyphshow +107.817383 0.000000 m /space glyphshow +110.996094 0.000000 m /r glyphshow +115.107422 0.000000 m /u glyphshow +121.445312 0.000000 m /n glyphshow +grestore +1 setlinejoin +gsave +259.860625 115.462625 m +259.860625 125.462625 l +stroke +grestore +2 setlinecap +gsave +249.860625 120.462625 m +269.860625 120.462625 l +stroke +grestore +0 setlinejoin +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +0 setlinejoin +0 setlinecap +-0 -4.242641 m +2.545584 0 l +0 4.242641 l +-2.545584 0 l +cl + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +259.861 120.463 o +grestore +gsave +277.860625 116.962625 translate +0.000000 rotate +0.000000 0.000000 m /one glyphshow +6.362305 0.000000 m /zero glyphshow +12.724609 0.000000 m /zero glyphshow +19.086914 0.000000 m /zero glyphshow +25.449219 0.000000 m /zero glyphshow +31.811523 0.000000 m /space glyphshow +34.990234 0.000000 m /s glyphshow +40.200195 0.000000 m /y glyphshow +46.118164 0.000000 m /s glyphshow +51.328125 0.000000 m /t glyphshow +55.249023 0.000000 m /e glyphshow +61.401367 0.000000 m /m glyphshow +71.142578 0.000000 m /s glyphshow +76.352539 0.000000 m /space glyphshow +79.531250 0.000000 m /M glyphshow +88.159180 0.000000 m /P glyphshow +94.189453 0.000000 m /space glyphshow +97.368164 0.000000 m /r glyphshow +101.479492 0.000000 m /u glyphshow +107.817383 0.000000 m /n glyphshow +grestore + +end +showpage diff --git a/tests/scaling/scaling_plots/total_time_scaling_Astro1.pdf b/tests/scaling/scaling_plots/total_time_scaling_Astro1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..da2dc313ee909ecdb3c37c12ac67a4b548c6c1ca Binary files /dev/null and b/tests/scaling/scaling_plots/total_time_scaling_Astro1.pdf differ diff --git a/tests/scaling/scaling_plots/total_time_scaling_Astro1.png b/tests/scaling/scaling_plots/total_time_scaling_Astro1.png new file mode 100644 index 0000000000000000000000000000000000000000..f9d490fa0c303edcc90ec78a867a62a460614bd8 Binary files /dev/null and b/tests/scaling/scaling_plots/total_time_scaling_Astro1.png differ diff --git a/tests/scaling/scaling_results/david-Lenovo-IdeaPad-S340-14IWL_100_systems.json b/tests/scaling/scaling_results/david-Lenovo-IdeaPad-S340-14IWL_100_systems.json new file mode 100644 index 0000000000000000000000000000000000000000..cda34fb1607e42f5a893975d7742d15cae740b46 --- /dev/null +++ b/tests/scaling/scaling_results/david-Lenovo-IdeaPad-S340-14IWL_100_systems.json @@ -0,0 +1 @@ +{"amt_systems": 100, "linear": [19.72011685371399, 19.587830066680908, 19.708610773086548, 19.45118284225464, 20.126941442489624], "mp": {"1": [18.83211064338684, 17.930497884750366, 17.592474222183228, 19.59392213821411, 17.999958276748657], "2": [9.893681287765503, 9.778665542602539, 9.639752388000488, 9.601866722106934, 9.518643379211426], "3": [8.624024391174316, 8.044230937957764, 7.8276495933532715, 8.299225568771362, 8.205702066421509], "4": [8.024757623672485, 8.07252287864685, 7.411813259124756, 7.60955548286438, 7.499555349349976]}} \ No newline at end of file diff --git a/tests/scaling/scaling_results/david-Lenovo-IdeaPad-S340-14IWL_200_systems.json b/tests/scaling/scaling_results/david-Lenovo-IdeaPad-S340-14IWL_200_systems.json new file mode 100644 index 0000000000000000000000000000000000000000..2ec5e535e94d686ad897976e5ffcf8cd1b229c69 --- /dev/null +++ b/tests/scaling/scaling_results/david-Lenovo-IdeaPad-S340-14IWL_200_systems.json @@ -0,0 +1,24 @@ +{ + "amt_systems": 200, + "hostname": "david-Lenovo-IdeaPad-S340-14IWL", + "amt_logical_cores": 4, + "amt_of_physical_cores": 2, + "testcase": "linear vs MP batched", + "linear": [ + 16.011094570159912 + ], + "mp": { + "1": [ + 14.876800060272217 + ], + "2": [ + 8.265092372894287 + ], + "3": [ + 9.207342624664307 + ], + "4": [ + 8.85547423362732 + ] + } +} \ No newline at end of file diff --git a/tests/scaling/scaling_results/david-Lenovo-IdeaPad-S340-14IWL_2500_systems.json b/tests/scaling/scaling_results/david-Lenovo-IdeaPad-S340-14IWL_2500_systems.json new file mode 100644 index 0000000000000000000000000000000000000000..3c1be948716bfe135295f9d641f3e84382ab7747 --- /dev/null +++ b/tests/scaling/scaling_results/david-Lenovo-IdeaPad-S340-14IWL_2500_systems.json @@ -0,0 +1 @@ +{"amt_systems": 2500, "linear": [535.2446541786194, 531.679586648941, 503.9523551464081, 516.4467158317566, 419.0196635723114], "mp": {"1": [324.1483242511749, 324.7180655002594, 308.04840874671936, 320.5808265209198, 269.06056094169617], "2": [198.5036120414734, 200.80192279815674, 200.7008581161499, 201.11187481880188, 195.4440987110138], "3": [177.40493178367615, 185.3030173778534, 185.9845471382141, 167.43135380744934, 176.51506352424622], "4": [168.93674492835999, 170.39990496635437, 170.85545444488525, 166.5380687713623, 154.52895426750183]}} \ No newline at end of file diff --git a/tests/scaling/scaling_results/speedup_scaling_Example.pdf b/tests/scaling/scaling_results/speedup_scaling_Example.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a7cd4fe2086a19953427c09d82dd38a5bb63aac5 Binary files /dev/null and b/tests/scaling/scaling_results/speedup_scaling_Example.pdf differ diff --git a/tests/scaling/scaling_results/speedup_scaling_Example.png b/tests/scaling/scaling_results/speedup_scaling_Example.png new file mode 100644 index 0000000000000000000000000000000000000000..20859bdc4cf27d5fa19c60c82513460cf9e828f1 Binary files /dev/null and b/tests/scaling/scaling_results/speedup_scaling_Example.png differ diff --git a/tests/population/scaling/scaling_script.py b/tests/scaling/scaling_script.py similarity index 100% rename from tests/population/scaling/scaling_script.py rename to tests/scaling/scaling_script.py